@eve-horizon/cli 0.2.11 → 0.2.13
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/dist/index.js +65918 -121
- package/package.json +5 -3
- package/dist/commands/admin.js +0 -81
- package/dist/commands/agents.js +0 -196
- package/dist/commands/api.js +0 -350
- package/dist/commands/auth.js +0 -823
- package/dist/commands/build.js +0 -397
- package/dist/commands/chat.js +0 -55
- package/dist/commands/db.js +0 -204
- package/dist/commands/env.js +0 -673
- package/dist/commands/event.js +0 -273
- package/dist/commands/harness.js +0 -158
- package/dist/commands/init.js +0 -290
- package/dist/commands/integrations.js +0 -73
- package/dist/commands/job.js +0 -2537
- package/dist/commands/manifest.js +0 -86
- package/dist/commands/org.js +0 -106
- package/dist/commands/pipeline.js +0 -629
- package/dist/commands/profile.js +0 -155
- package/dist/commands/project.js +0 -212
- package/dist/commands/release.js +0 -69
- package/dist/commands/secrets.js +0 -218
- package/dist/commands/skills.js +0 -390
- package/dist/commands/system.js +0 -649
- package/dist/commands/workflow.js +0 -337
- package/dist/lib/args.js +0 -57
- package/dist/lib/client.js +0 -116
- package/dist/lib/config.js +0 -49
- package/dist/lib/context.js +0 -187
- package/dist/lib/git.js +0 -158
- package/dist/lib/harness-capabilities.js +0 -74
- package/dist/lib/help.js +0 -1572
- package/dist/lib/logs.js +0 -51
- package/dist/lib/output.js +0 -14
package/dist/lib/help.js
DELETED
|
@@ -1,1572 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Progressive help system for Eve Horizon CLI.
|
|
4
|
-
*
|
|
5
|
-
* Help is available at every level:
|
|
6
|
-
* - eve --help → top-level commands
|
|
7
|
-
* - eve profile --help → profile subcommands
|
|
8
|
-
* - eve profile set --help → specific usage
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.HELP = void 0;
|
|
12
|
-
exports.showMainHelp = showMainHelp;
|
|
13
|
-
exports.showCommandHelp = showCommandHelp;
|
|
14
|
-
exports.showSubcommandHelp = showSubcommandHelp;
|
|
15
|
-
exports.shouldShowHelp = shouldShowHelp;
|
|
16
|
-
exports.HELP = {
|
|
17
|
-
org: {
|
|
18
|
-
description: 'Manage organizations. Organizations group projects and users.',
|
|
19
|
-
usage: 'eve org <subcommand> [options]',
|
|
20
|
-
subcommands: {
|
|
21
|
-
list: {
|
|
22
|
-
description: 'List all organizations',
|
|
23
|
-
usage: 'eve org list [--limit N] [--offset N]',
|
|
24
|
-
options: [
|
|
25
|
-
'--limit <n> Number of results (default: 10)',
|
|
26
|
-
'--offset <n> Skip first n results',
|
|
27
|
-
'--include-deleted Include soft-deleted orgs',
|
|
28
|
-
],
|
|
29
|
-
},
|
|
30
|
-
get: {
|
|
31
|
-
description: 'Get organization details',
|
|
32
|
-
usage: 'eve org get <org_id>',
|
|
33
|
-
},
|
|
34
|
-
ensure: {
|
|
35
|
-
description: 'Create org if it doesn\'t exist, or return existing',
|
|
36
|
-
usage: 'eve org ensure <name>',
|
|
37
|
-
examples: ['eve org ensure "My Company"'],
|
|
38
|
-
},
|
|
39
|
-
update: {
|
|
40
|
-
description: 'Update organization',
|
|
41
|
-
usage: 'eve org update <org_id> [--name <name>] [--deleted <bool>]',
|
|
42
|
-
},
|
|
43
|
-
delete: {
|
|
44
|
-
description: 'Soft-delete an organization',
|
|
45
|
-
usage: 'eve org delete <org_id>',
|
|
46
|
-
examples: ['eve org delete org_xxx'],
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
examples: [
|
|
50
|
-
'eve org ensure "Acme Corp"',
|
|
51
|
-
'eve org list --limit 20',
|
|
52
|
-
'eve org delete org_xxx',
|
|
53
|
-
],
|
|
54
|
-
},
|
|
55
|
-
project: {
|
|
56
|
-
description: 'Manage projects. Projects link a git repo to an organization for running jobs.',
|
|
57
|
-
usage: 'eve project <subcommand> [options]',
|
|
58
|
-
subcommands: {
|
|
59
|
-
list: {
|
|
60
|
-
description: 'List projects in an organization',
|
|
61
|
-
usage: 'eve project list [--org <org_id>]',
|
|
62
|
-
options: [
|
|
63
|
-
'--org <id> Organization ID (uses profile default)',
|
|
64
|
-
'--limit <n> Number of results',
|
|
65
|
-
'--offset <n> Skip first n results',
|
|
66
|
-
],
|
|
67
|
-
},
|
|
68
|
-
get: {
|
|
69
|
-
description: 'Get project details',
|
|
70
|
-
usage: 'eve project get <project_id>',
|
|
71
|
-
},
|
|
72
|
-
ensure: {
|
|
73
|
-
description: 'Create project if it doesn\'t exist, or return existing',
|
|
74
|
-
usage: 'eve project ensure --name <name> --repo-url <url> [--org <org_id>] [--branch <branch>] [--slug <slug>]',
|
|
75
|
-
options: [
|
|
76
|
-
'--name <name> Project name (required)',
|
|
77
|
-
'--repo-url <url> Git repository URL (required)',
|
|
78
|
-
'--org <id> Organization ID',
|
|
79
|
-
'--branch <branch> Default branch (default: main)',
|
|
80
|
-
'--slug <slug> Short memorable slug (4-8 chars, e.g., MyProj)',
|
|
81
|
-
'--force Re-clone repo even if project exists',
|
|
82
|
-
],
|
|
83
|
-
examples: [
|
|
84
|
-
'eve project ensure --name my-app --slug MyApp --repo-url https://github.com/org/repo',
|
|
85
|
-
'eve project ensure --name my-app --repo-url file:///path/to/repo --force # dev/test only',
|
|
86
|
-
],
|
|
87
|
-
},
|
|
88
|
-
update: {
|
|
89
|
-
description: 'Update project',
|
|
90
|
-
usage: 'eve project update <project_id> [--name <name>] [--deleted <bool>]',
|
|
91
|
-
},
|
|
92
|
-
sync: {
|
|
93
|
-
description: 'Sync manifest from local .eve/manifest.yaml to Eve API',
|
|
94
|
-
usage: 'eve project sync [project] [--path <manifest_path>]',
|
|
95
|
-
options: [
|
|
96
|
-
'<project> Project ID (uses profile default if omitted)',
|
|
97
|
-
'--path <path> Path to manifest (default: .eve/manifest.yaml)',
|
|
98
|
-
'--validate-secrets Validate manifest required secrets',
|
|
99
|
-
'--strict Fail sync if required secrets are missing',
|
|
100
|
-
],
|
|
101
|
-
examples: [
|
|
102
|
-
'eve project sync',
|
|
103
|
-
'eve project sync proj_xxx',
|
|
104
|
-
'eve project sync --path ./custom-manifest.yaml',
|
|
105
|
-
],
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
manifest: {
|
|
110
|
-
description: 'Validate project manifests for schema and required secrets.',
|
|
111
|
-
usage: 'eve manifest <subcommand> [options]',
|
|
112
|
-
subcommands: {
|
|
113
|
-
validate: {
|
|
114
|
-
description: 'Validate a manifest (schema + secrets)',
|
|
115
|
-
usage: 'eve manifest validate [--project <id>] [--path <path>] [--latest]',
|
|
116
|
-
options: [
|
|
117
|
-
'--project <id> Project ID (uses profile default)',
|
|
118
|
-
'--path <path> Path to manifest (default: .eve/manifest.yaml)',
|
|
119
|
-
'--latest Validate latest synced manifest instead of local file',
|
|
120
|
-
'--validate-secrets Validate required secrets (from manifest)',
|
|
121
|
-
'--strict Fail validation if required secrets are missing',
|
|
122
|
-
],
|
|
123
|
-
examples: [
|
|
124
|
-
'eve manifest validate',
|
|
125
|
-
'eve manifest validate --project proj_xxx',
|
|
126
|
-
'eve manifest validate --latest --project proj_xxx',
|
|
127
|
-
],
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
secrets: {
|
|
132
|
-
description: 'Manage secrets at system/org/user/project scope. Values are never returned in plaintext.',
|
|
133
|
-
usage: 'eve secrets <subcommand> [options]',
|
|
134
|
-
subcommands: {
|
|
135
|
-
set: {
|
|
136
|
-
description: 'Create or update a secret value',
|
|
137
|
-
usage: 'eve secrets set <key> <value> [--system|--project <id>|--org <id>|--user <id>] [--type <type>]',
|
|
138
|
-
options: [
|
|
139
|
-
'--system System scope (admin only)',
|
|
140
|
-
'--project <id> Project ID (uses profile default)',
|
|
141
|
-
'--org <id> Organization ID',
|
|
142
|
-
'--user <id> User ID',
|
|
143
|
-
'--type <type> env_var | file | github_token | ssh_key',
|
|
144
|
-
],
|
|
145
|
-
},
|
|
146
|
-
list: {
|
|
147
|
-
description: 'List secrets (metadata only)',
|
|
148
|
-
usage: 'eve secrets list [--system|--project <id>|--org <id>|--user <id>]',
|
|
149
|
-
options: [
|
|
150
|
-
'--system System scope (admin only)',
|
|
151
|
-
'--project <id> Project ID (uses profile default)',
|
|
152
|
-
'--org <id> Organization ID',
|
|
153
|
-
'--user <id> User ID',
|
|
154
|
-
],
|
|
155
|
-
},
|
|
156
|
-
show: {
|
|
157
|
-
description: 'Show a masked secret value',
|
|
158
|
-
usage: 'eve secrets show <key> [--system|--project <id>|--org <id>|--user <id>]',
|
|
159
|
-
options: [
|
|
160
|
-
'--system System scope (admin only)',
|
|
161
|
-
'--project <id> Project ID (uses profile default)',
|
|
162
|
-
'--org <id> Organization ID',
|
|
163
|
-
'--user <id> User ID',
|
|
164
|
-
],
|
|
165
|
-
},
|
|
166
|
-
delete: {
|
|
167
|
-
description: 'Delete a secret',
|
|
168
|
-
usage: 'eve secrets delete <key> [--system|--project <id>|--org <id>|--user <id>]',
|
|
169
|
-
options: [
|
|
170
|
-
'--system System scope (admin only)',
|
|
171
|
-
'--project <id> Project ID (uses profile default)',
|
|
172
|
-
'--org <id> Organization ID',
|
|
173
|
-
'--user <id> User ID',
|
|
174
|
-
],
|
|
175
|
-
},
|
|
176
|
-
import: {
|
|
177
|
-
description: 'Import env entries from an env file',
|
|
178
|
-
usage: 'eve secrets import [--file <path>] [--system|--project <id>|--org <id>|--user <id>]',
|
|
179
|
-
options: [
|
|
180
|
-
'--file <path> Defaults to .env',
|
|
181
|
-
'--system System scope (admin only)',
|
|
182
|
-
'--project <id> Project ID (uses profile default)',
|
|
183
|
-
'--org <id> Organization ID',
|
|
184
|
-
'--user <id> User ID',
|
|
185
|
-
],
|
|
186
|
-
},
|
|
187
|
-
validate: {
|
|
188
|
-
description: 'Validate manifest-required secrets for a project',
|
|
189
|
-
usage: 'eve secrets validate --project <id> [--keys <k1,k2>]',
|
|
190
|
-
options: [
|
|
191
|
-
'--project <id> Project ID (uses profile default)',
|
|
192
|
-
'--keys <k1,k2> Explicit keys to validate (default: latest manifest)',
|
|
193
|
-
],
|
|
194
|
-
},
|
|
195
|
-
ensure: {
|
|
196
|
-
description: 'Ensure safe secrets exist at project scope',
|
|
197
|
-
usage: 'eve secrets ensure --project <id> --keys <k1,k2>',
|
|
198
|
-
options: [
|
|
199
|
-
'--project <id> Project ID (uses profile default)',
|
|
200
|
-
'--keys <k1,k2> Keys to ensure (allowlist only)',
|
|
201
|
-
],
|
|
202
|
-
},
|
|
203
|
-
export: {
|
|
204
|
-
description: 'Export safe secrets for external configuration',
|
|
205
|
-
usage: 'eve secrets export --project <id> --keys <k1,k2> [--json]',
|
|
206
|
-
options: [
|
|
207
|
-
'--project <id> Project ID (uses profile default)',
|
|
208
|
-
'--keys <k1,k2> Keys to export (allowlist only)',
|
|
209
|
-
'--json JSON output',
|
|
210
|
-
],
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
examples: [
|
|
214
|
-
'eve secrets set GITHUB_TOKEN ghp_xxx --project proj_xxx --type github_token',
|
|
215
|
-
'eve secrets show GITHUB_TOKEN --project proj_xxx',
|
|
216
|
-
'eve secrets validate --project proj_xxx',
|
|
217
|
-
'eve secrets ensure --project proj_xxx --keys GITHUB_WEBHOOK_SECRET',
|
|
218
|
-
'eve secrets export --project proj_xxx --keys GITHUB_WEBHOOK_SECRET',
|
|
219
|
-
],
|
|
220
|
-
},
|
|
221
|
-
job: {
|
|
222
|
-
description: `Manage jobs. Jobs are units of work executed by AI agents against a project's repo.
|
|
223
|
-
|
|
224
|
-
Phase lifecycle: idea → backlog → ready → active → review → done (or cancelled)
|
|
225
|
-
Jobs default to 'ready' phase, making them immediately schedulable.`,
|
|
226
|
-
usage: 'eve job <subcommand> [options]',
|
|
227
|
-
subcommands: {
|
|
228
|
-
create: {
|
|
229
|
-
description: 'Create a new job',
|
|
230
|
-
usage: 'eve job create --project <id> --description "..." [options]',
|
|
231
|
-
options: [
|
|
232
|
-
'--project <id> Project ID (or use profile default)',
|
|
233
|
-
'--description <text> Work description/prompt (required)',
|
|
234
|
-
'--title <text> Title (auto-generated from description if omitted)',
|
|
235
|
-
'--parent <id> Parent job ID (for sub-jobs)',
|
|
236
|
-
'--type <type> Issue type: task, bug, feature, epic, chore (default: task)',
|
|
237
|
-
'--priority <0-4> Priority P0-P4 (default: 2)',
|
|
238
|
-
'--phase <phase> Initial phase (default: ready)',
|
|
239
|
-
'--review <type> Review requirement: none, human, agent (default: none)',
|
|
240
|
-
'--labels <a,b,c> Comma-separated labels',
|
|
241
|
-
'--assignee <id> Assign to agent/user',
|
|
242
|
-
'--defer-until <date> Hide until date (ISO 8601)',
|
|
243
|
-
'--due-at <date> Deadline (ISO 8601)',
|
|
244
|
-
'',
|
|
245
|
-
'Harness selection (top-level job fields):',
|
|
246
|
-
'--harness <name> Preferred harness, e.g., mclaude',
|
|
247
|
-
'--profile <name> Harness profile name',
|
|
248
|
-
'--variant <name> Harness variant preset',
|
|
249
|
-
'--model <name> Model override for harness',
|
|
250
|
-
'--reasoning <level> Reasoning effort: low|medium|high|x-high',
|
|
251
|
-
'',
|
|
252
|
-
'Scheduling hints (used by scheduler when claiming):',
|
|
253
|
-
'--worker-type <type> Worker type preference',
|
|
254
|
-
'--permission <policy> Permission policy: default, auto_edit, yolo',
|
|
255
|
-
'--timeout <seconds> Execution timeout',
|
|
256
|
-
'',
|
|
257
|
-
'Inline execution (for agents creating sub-jobs):',
|
|
258
|
-
'--claim Create and immediately claim the job',
|
|
259
|
-
'--agent <id> Agent ID for claim (default: $EVE_AGENT_ID)',
|
|
260
|
-
'',
|
|
261
|
-
'Git controls (optional, override project/manifest defaults):',
|
|
262
|
-
'--git-ref <ref> Target ref (branch, tag, or SHA)',
|
|
263
|
-
'--git-ref-policy <policy> auto|env|project_default|explicit',
|
|
264
|
-
'--git-branch <branch> Branch to create/checkout',
|
|
265
|
-
'--git-create-branch <mode> never|if_missing|always',
|
|
266
|
-
'--git-commit <policy> never|manual|auto|required',
|
|
267
|
-
'--git-commit-message <text> Commit message template',
|
|
268
|
-
'--git-push <policy> never|on_success|required',
|
|
269
|
-
'--git-remote <remote> Remote to push to (default: origin)',
|
|
270
|
-
'',
|
|
271
|
-
'Workspace options:',
|
|
272
|
-
'--workspace-mode <mode> job|session|isolated (default: job)',
|
|
273
|
-
'--workspace-key <key> Workspace key for session mode',
|
|
274
|
-
],
|
|
275
|
-
examples: [
|
|
276
|
-
'eve job create --description "Fix the login bug in auth.ts"',
|
|
277
|
-
'eve job create --description "Add dark mode" --priority 1 --harness mclaude',
|
|
278
|
-
'eve job create --parent MyProj-abc123 --description "Implement tokens" --claim',
|
|
279
|
-
'eve job create --description "Feature branch work" --git-branch feature/new-api --git-push on_success',
|
|
280
|
-
],
|
|
281
|
-
},
|
|
282
|
-
list: {
|
|
283
|
-
description: 'List jobs in a project',
|
|
284
|
-
usage: 'eve job list [--project <id>] [--phase <phase>] [--assignee <id>] [--since <time>] [--stuck]',
|
|
285
|
-
options: [
|
|
286
|
-
'--project <id> Project ID (or use profile default)',
|
|
287
|
-
'--phase <phase> Filter by phase',
|
|
288
|
-
'--assignee <id> Filter by assignee',
|
|
289
|
-
'--priority <n> Filter by priority',
|
|
290
|
-
'--since <time> Filter jobs created after time (e.g., "1h", "30m", "2d", or ISO timestamp)',
|
|
291
|
-
'--stuck Show only jobs stuck in active phase (no progress for 5+ min)',
|
|
292
|
-
'--stuck-minutes <n> Minutes threshold for stuck detection (default: 5)',
|
|
293
|
-
'--limit <n> Number of results (default: 50)',
|
|
294
|
-
'--offset <n> Skip first n results',
|
|
295
|
-
],
|
|
296
|
-
examples: [
|
|
297
|
-
'eve job list --phase active',
|
|
298
|
-
'eve job list --since 1h',
|
|
299
|
-
'eve job list --stuck',
|
|
300
|
-
],
|
|
301
|
-
},
|
|
302
|
-
ready: {
|
|
303
|
-
description: 'Show schedulable jobs (ready phase, not blocked, not deferred)',
|
|
304
|
-
usage: 'eve job ready [--project <id>] [--limit <n>]',
|
|
305
|
-
options: [
|
|
306
|
-
'--project <id> Project ID (or use profile default)',
|
|
307
|
-
'--limit <n> Number of results (default: 10)',
|
|
308
|
-
],
|
|
309
|
-
},
|
|
310
|
-
blocked: {
|
|
311
|
-
description: 'Show jobs blocked by dependencies',
|
|
312
|
-
usage: 'eve job blocked [--project <id>]',
|
|
313
|
-
options: [
|
|
314
|
-
'--project <id> Project ID (or use profile default)',
|
|
315
|
-
],
|
|
316
|
-
},
|
|
317
|
-
show: {
|
|
318
|
-
description: 'Get job details',
|
|
319
|
-
usage: 'eve job show <job-id> [--verbose]',
|
|
320
|
-
options: [
|
|
321
|
-
'--verbose Include attempt details, exit codes, durations',
|
|
322
|
-
],
|
|
323
|
-
examples: ['eve job show MyProj-abc123', 'eve job show MyProj-abc123 --verbose'],
|
|
324
|
-
},
|
|
325
|
-
current: {
|
|
326
|
-
description: 'Get the current job context (defaults to EVE_JOB_ID)',
|
|
327
|
-
usage: 'eve job current [<job-id>] [--json|--tree]',
|
|
328
|
-
options: [
|
|
329
|
-
'--tree Render job hierarchy instead of JSON',
|
|
330
|
-
],
|
|
331
|
-
examples: ['eve job current', 'eve job current MyProj-abc123 --tree'],
|
|
332
|
-
},
|
|
333
|
-
diagnose: {
|
|
334
|
-
description: 'Comprehensive job debugging (state, attempts, timeline, logs, recommendations)',
|
|
335
|
-
usage: 'eve job diagnose <job-id>',
|
|
336
|
-
examples: ['eve job diagnose MyProj-abc123'],
|
|
337
|
-
},
|
|
338
|
-
tree: {
|
|
339
|
-
description: 'Show job hierarchy (parent + children)',
|
|
340
|
-
usage: 'eve job tree <job-id>',
|
|
341
|
-
examples: ['eve job tree MyProj-abc123'],
|
|
342
|
-
},
|
|
343
|
-
update: {
|
|
344
|
-
description: 'Update job fields',
|
|
345
|
-
usage: 'eve job update <job-id> [--phase <phase>] [--priority <n>] ...',
|
|
346
|
-
options: [
|
|
347
|
-
'--phase <phase> Transition phase (validated)',
|
|
348
|
-
'--priority <n> Set priority (0-4)',
|
|
349
|
-
'--assignee <id> Set assignee',
|
|
350
|
-
'--title <text> Update title',
|
|
351
|
-
'--description <text> Update description',
|
|
352
|
-
'--labels <a,b,c> Set labels',
|
|
353
|
-
'--defer-until <date> Set defer date',
|
|
354
|
-
'--due-at <date> Set due date',
|
|
355
|
-
'--review <type> Set review requirement',
|
|
356
|
-
'',
|
|
357
|
-
'Git controls (optional, override project/manifest defaults):',
|
|
358
|
-
'--git-ref <ref> Target ref (branch, tag, or SHA)',
|
|
359
|
-
'--git-ref-policy <policy> auto|env|project_default|explicit',
|
|
360
|
-
'--git-branch <branch> Branch to create/checkout',
|
|
361
|
-
'--git-create-branch <mode> never|if_missing|always',
|
|
362
|
-
'--git-commit <policy> never|manual|auto|required',
|
|
363
|
-
'--git-commit-message <text> Commit message template',
|
|
364
|
-
'--git-push <policy> never|on_success|required',
|
|
365
|
-
'--git-remote <remote> Remote to push to (default: origin)',
|
|
366
|
-
'',
|
|
367
|
-
'Workspace options:',
|
|
368
|
-
'--workspace-mode <mode> job|session|isolated (default: job)',
|
|
369
|
-
'--workspace-key <key> Workspace key for session mode',
|
|
370
|
-
],
|
|
371
|
-
examples: [
|
|
372
|
-
'eve job update MyProj-abc123 --git-branch feature/work --git-push on_success',
|
|
373
|
-
'eve job update MyProj-abc123 --workspace-mode session --workspace-key session:123',
|
|
374
|
-
],
|
|
375
|
-
},
|
|
376
|
-
close: {
|
|
377
|
-
description: 'Mark job as done',
|
|
378
|
-
usage: 'eve job close <job-id> [--reason "..."]',
|
|
379
|
-
options: [
|
|
380
|
-
'--reason <text> Completion reason',
|
|
381
|
-
],
|
|
382
|
-
},
|
|
383
|
-
cancel: {
|
|
384
|
-
description: 'Mark job as cancelled',
|
|
385
|
-
usage: 'eve job cancel <job-id> [--reason "..."]',
|
|
386
|
-
options: [
|
|
387
|
-
'--reason <text> Cancellation reason',
|
|
388
|
-
],
|
|
389
|
-
},
|
|
390
|
-
dep: {
|
|
391
|
-
description: 'Manage job dependencies',
|
|
392
|
-
usage: 'eve job dep <add|remove|list> [args]',
|
|
393
|
-
options: [
|
|
394
|
-
'add <from> <to> Add dependency: from depends on to',
|
|
395
|
-
'remove <from> <to> Remove dependency',
|
|
396
|
-
'list <job-id> Show dependencies and dependents',
|
|
397
|
-
],
|
|
398
|
-
examples: [
|
|
399
|
-
'eve job dep add MyProj-abc123 MyProj-def456',
|
|
400
|
-
'eve job dep list MyProj-abc123',
|
|
401
|
-
],
|
|
402
|
-
},
|
|
403
|
-
claim: {
|
|
404
|
-
description: 'Claim a job for execution (creates attempt, transitions to active)',
|
|
405
|
-
usage: 'eve job claim <job-id> [--agent <id>] [--harness <name>]',
|
|
406
|
-
options: [
|
|
407
|
-
'--agent <id> Agent identifier (default: $EVE_AGENT_ID or cli-user)',
|
|
408
|
-
'--harness <name> Harness to use (overrides job harness)',
|
|
409
|
-
'',
|
|
410
|
-
'NOTE: This is typically called by the scheduler or by agents creating',
|
|
411
|
-
'sub-jobs. For normal workflows, jobs are auto-scheduled when ready.',
|
|
412
|
-
],
|
|
413
|
-
},
|
|
414
|
-
release: {
|
|
415
|
-
description: 'Release a claimed job (ends attempt, returns to ready)',
|
|
416
|
-
usage: 'eve job release <job-id> [--agent <id>] [--reason "..."]',
|
|
417
|
-
options: [
|
|
418
|
-
'--agent <id> Agent identifier (default: $EVE_AGENT_ID or cli-user)',
|
|
419
|
-
'--reason <text> Release reason',
|
|
420
|
-
],
|
|
421
|
-
},
|
|
422
|
-
attempts: {
|
|
423
|
-
description: 'List execution attempts for a job',
|
|
424
|
-
usage: 'eve job attempts <job-id>',
|
|
425
|
-
},
|
|
426
|
-
logs: {
|
|
427
|
-
description: 'View execution logs for a job attempt',
|
|
428
|
-
usage: 'eve job logs <job-id> [--attempt <n>] [--after <seq>]',
|
|
429
|
-
options: [
|
|
430
|
-
'--attempt <n> Attempt number (default: latest)',
|
|
431
|
-
'--after <seq> Return logs after sequence number',
|
|
432
|
-
],
|
|
433
|
-
},
|
|
434
|
-
submit: {
|
|
435
|
-
description: 'Submit job for review',
|
|
436
|
-
usage: 'eve job submit <job-id> --summary "..."',
|
|
437
|
-
options: [
|
|
438
|
-
'--summary <text> Submission summary (required)',
|
|
439
|
-
'--agent-id <id> Agent ID (default: cli-user)',
|
|
440
|
-
],
|
|
441
|
-
},
|
|
442
|
-
approve: {
|
|
443
|
-
description: 'Approve a job in review',
|
|
444
|
-
usage: 'eve job approve <job-id> [--comment "..."]',
|
|
445
|
-
options: [
|
|
446
|
-
'--comment <text> Approval comment',
|
|
447
|
-
'--reviewer-id <id> Reviewer ID (default: cli-user)',
|
|
448
|
-
],
|
|
449
|
-
},
|
|
450
|
-
reject: {
|
|
451
|
-
description: 'Reject a job in review (creates new attempt)',
|
|
452
|
-
usage: 'eve job reject <job-id> --reason "..."',
|
|
453
|
-
options: [
|
|
454
|
-
'--reason <text> Rejection reason (required)',
|
|
455
|
-
'--reviewer-id <id> Reviewer ID (default: cli-user)',
|
|
456
|
-
],
|
|
457
|
-
},
|
|
458
|
-
result: {
|
|
459
|
-
description: 'Get job execution result',
|
|
460
|
-
usage: 'eve job result <job-id> [--attempt <n>]',
|
|
461
|
-
options: [
|
|
462
|
-
'--attempt <n> Attempt number (default: latest)',
|
|
463
|
-
],
|
|
464
|
-
examples: ['eve job result MyProj-abc123'],
|
|
465
|
-
},
|
|
466
|
-
wait: {
|
|
467
|
-
description: 'Wait for job completion, polling until done',
|
|
468
|
-
usage: 'eve job wait <job-id> [--timeout <seconds>] [--quiet]',
|
|
469
|
-
options: [
|
|
470
|
-
'--timeout <seconds> Max wait time (default: 300)',
|
|
471
|
-
'--quiet Suppress progress output',
|
|
472
|
-
],
|
|
473
|
-
examples: ['eve job wait MyProj-abc123', 'eve job wait MyProj-abc123 --timeout 600'],
|
|
474
|
-
},
|
|
475
|
-
follow: {
|
|
476
|
-
description: 'Stream job logs in real-time (SSE)',
|
|
477
|
-
usage: 'eve job follow <job-id> [--raw] [--no-result]',
|
|
478
|
-
options: [
|
|
479
|
-
'--raw Show raw log entries',
|
|
480
|
-
'--no-result Don\'t fetch final result when done',
|
|
481
|
-
],
|
|
482
|
-
examples: ['eve job follow MyProj-abc123'],
|
|
483
|
-
},
|
|
484
|
-
},
|
|
485
|
-
examples: [
|
|
486
|
-
'eve job create --description "Fix the bug in auth.ts"',
|
|
487
|
-
'eve job list --phase ready',
|
|
488
|
-
'eve job show MyProj-abc123',
|
|
489
|
-
'eve job close MyProj-abc123 --reason "Completed"',
|
|
490
|
-
],
|
|
491
|
-
},
|
|
492
|
-
harness: {
|
|
493
|
-
description: 'Inspect available harnesses, variants, and auth status.',
|
|
494
|
-
usage: 'eve harness <subcommand> [options]',
|
|
495
|
-
subcommands: {
|
|
496
|
-
list: {
|
|
497
|
-
description: 'List available harnesses',
|
|
498
|
-
usage: 'eve harness list [--capabilities]',
|
|
499
|
-
options: [
|
|
500
|
-
'--capabilities Show model/reasoning capability hints',
|
|
501
|
-
],
|
|
502
|
-
},
|
|
503
|
-
get: {
|
|
504
|
-
description: 'Get harness details and auth requirements',
|
|
505
|
-
usage: 'eve harness get <name>',
|
|
506
|
-
examples: ['eve harness get mclaude'],
|
|
507
|
-
},
|
|
508
|
-
},
|
|
509
|
-
examples: ['eve harness list', 'eve harness get mclaude'],
|
|
510
|
-
},
|
|
511
|
-
agents: {
|
|
512
|
-
description: 'Inspect agent policy config and harness capabilities for orchestration. Default profile: primary-orchestrator.',
|
|
513
|
-
usage: 'eve agents <config|sync> [options]',
|
|
514
|
-
subcommands: {
|
|
515
|
-
config: {
|
|
516
|
-
description: 'Show agent policy (profiles/councils) and harness availability',
|
|
517
|
-
usage: 'eve agents config [--path <dir>] [--no-harnesses]',
|
|
518
|
-
options: [
|
|
519
|
-
'--path <dir> Repository root to inspect (default: cwd)',
|
|
520
|
-
'--repo-dir <dir> Alias for --path',
|
|
521
|
-
'--no-harnesses Skip harness availability lookup',
|
|
522
|
-
],
|
|
523
|
-
examples: [
|
|
524
|
-
'eve agents config',
|
|
525
|
-
'eve agents config --json',
|
|
526
|
-
'eve agents config --path ../my-repo',
|
|
527
|
-
],
|
|
528
|
-
},
|
|
529
|
-
sync: {
|
|
530
|
-
description: 'Sync agents.yaml/teams.yaml/chat.yaml to the API',
|
|
531
|
-
usage: 'eve agents sync --project <id> --ref <sha|branch> [--repo-dir <path>]',
|
|
532
|
-
options: [
|
|
533
|
-
'--project <id> Project ID (uses profile default)',
|
|
534
|
-
'--ref <ref> Git ref to sync (required unless --local)',
|
|
535
|
-
'--local Allow local sync (only for localhost/lvh.me API)',
|
|
536
|
-
'--allow-dirty Allow syncing a dirty working tree',
|
|
537
|
-
'--repo-dir <path> Repository root (default: cwd)',
|
|
538
|
-
'--force-nonlocal Allow --local against non-local API URL',
|
|
539
|
-
],
|
|
540
|
-
examples: [
|
|
541
|
-
'eve agents sync --project proj_xxx --ref main',
|
|
542
|
-
'eve agents sync --project proj_xxx --ref HEAD',
|
|
543
|
-
'eve agents sync --project proj_xxx --local --allow-dirty',
|
|
544
|
-
],
|
|
545
|
-
},
|
|
546
|
-
},
|
|
547
|
-
examples: ['eve agents config --json', 'eve agents sync --project proj_xxx --ref main'],
|
|
548
|
-
},
|
|
549
|
-
profile: {
|
|
550
|
-
description: `Manage repo-local CLI profiles. Profiles store defaults (API URL, org, project) so you don't
|
|
551
|
-
have to specify them on every command.
|
|
552
|
-
|
|
553
|
-
Profiles live in .eve/profile.yaml inside the repo, so each project keeps its own defaults
|
|
554
|
-
and switching profiles won't affect other checkouts.`,
|
|
555
|
-
usage: 'eve profile <subcommand> [options]',
|
|
556
|
-
subcommands: {
|
|
557
|
-
list: {
|
|
558
|
-
description: 'List all profiles',
|
|
559
|
-
usage: 'eve profile list',
|
|
560
|
-
},
|
|
561
|
-
show: {
|
|
562
|
-
description: 'Show profile details',
|
|
563
|
-
usage: 'eve profile show [name]',
|
|
564
|
-
examples: ['eve profile show', 'eve profile show prod'],
|
|
565
|
-
},
|
|
566
|
-
use: {
|
|
567
|
-
description: 'Switch active profile (repo-local)',
|
|
568
|
-
usage: 'eve profile use <name> [--org <id>] [--project <id>]',
|
|
569
|
-
options: [
|
|
570
|
-
'--org <id> Set org override',
|
|
571
|
-
'--project <id> Set project override',
|
|
572
|
-
'--api-url <url> Set API URL override',
|
|
573
|
-
'--clear Remove local .eve/profile.yaml (clears all profiles)',
|
|
574
|
-
],
|
|
575
|
-
examples: [
|
|
576
|
-
'eve profile use staging --org org_xxx --project proj_yyy',
|
|
577
|
-
'eve profile use --clear',
|
|
578
|
-
],
|
|
579
|
-
},
|
|
580
|
-
create: {
|
|
581
|
-
description: 'Create a new named profile (repo-local)',
|
|
582
|
-
usage: 'eve profile create <name> [--api-url <url>] [--org <id>] [--project <id>]',
|
|
583
|
-
options: [
|
|
584
|
-
'--api-url <url> API base URL',
|
|
585
|
-
'--org <id> Default organization ID',
|
|
586
|
-
'--project <id> Default project ID',
|
|
587
|
-
'--harness <name> Default harness (e.g., mclaude:fast)',
|
|
588
|
-
'--supabase-url <url> Supabase URL (for cloud auth)',
|
|
589
|
-
'--supabase-anon-key <key> Supabase anon key',
|
|
590
|
-
'--default-email <email> Default email for auth login',
|
|
591
|
-
'--default-ssh-key <path> Default SSH key path for auth login',
|
|
592
|
-
],
|
|
593
|
-
examples: [
|
|
594
|
-
'eve profile create local --api-url http://localhost:4701',
|
|
595
|
-
'eve profile create prod --api-url https://api.example.com --org org_xxx',
|
|
596
|
-
],
|
|
597
|
-
},
|
|
598
|
-
set: {
|
|
599
|
-
description: 'Update profile settings (repo-local)',
|
|
600
|
-
usage: 'eve profile set [name] [--org <id>] [--project <id>]',
|
|
601
|
-
options: [
|
|
602
|
-
'--org <id> Default organization ID',
|
|
603
|
-
'--project <id> Default project ID',
|
|
604
|
-
'--api-url <url> API base URL',
|
|
605
|
-
'--harness <name> Default harness',
|
|
606
|
-
'--supabase-url <url> Supabase URL',
|
|
607
|
-
'--supabase-anon-key <key> Supabase anon key',
|
|
608
|
-
'--default-email <email> Default email for auth login',
|
|
609
|
-
'--default-ssh-key <path> Default SSH key path for auth login',
|
|
610
|
-
],
|
|
611
|
-
examples: [
|
|
612
|
-
'eve profile set --org org_xxx --project proj_yyy',
|
|
613
|
-
'eve profile set staging --org org_xxx --project proj_yyy',
|
|
614
|
-
'eve profile set --default-email user@example.com',
|
|
615
|
-
],
|
|
616
|
-
},
|
|
617
|
-
remove: {
|
|
618
|
-
description: 'Remove a named profile (repo-local)',
|
|
619
|
-
usage: 'eve profile remove <name>',
|
|
620
|
-
},
|
|
621
|
-
},
|
|
622
|
-
examples: [
|
|
623
|
-
'eve profile set --org org_xxx --project proj_yyy # writes .eve/profile.yaml',
|
|
624
|
-
'eve profile use staging --org org_xxx # writes .eve/profile.yaml',
|
|
625
|
-
'eve profile set --default-email me@dev.com # writes .eve/profile.yaml',
|
|
626
|
-
],
|
|
627
|
-
},
|
|
628
|
-
auth: {
|
|
629
|
-
description: `Authenticate with Eve Horizon. Auth is optional for local development but required
|
|
630
|
-
for cloud deployments. Credentials are stored globally per API URL.`,
|
|
631
|
-
usage: 'eve auth <login|logout|status|whoami|bootstrap|sync|creds|token|mint>',
|
|
632
|
-
subcommands: {
|
|
633
|
-
login: {
|
|
634
|
-
description: 'Login via GitHub SSH challenge (default) or Supabase (legacy)',
|
|
635
|
-
usage: 'eve auth login [--email <email>] [--ssh-key <path>] [--ttl <days>]',
|
|
636
|
-
options: [
|
|
637
|
-
'--email <email> Email address for SSH login (uses profile default_email if not provided)',
|
|
638
|
-
'--user-id <id> User id for SSH login',
|
|
639
|
-
'--ssh-key <path> Path to SSH private key (uses profile default_ssh_key, then ~/.ssh/id_ed25519)',
|
|
640
|
-
'--ttl <days> Token TTL in days (1-90, default: server configured)',
|
|
641
|
-
'--password <pass> Supabase password (triggers Supabase login)',
|
|
642
|
-
'--supabase-url <url> Supabase URL',
|
|
643
|
-
'--supabase-anon-key <key> Supabase anon key',
|
|
644
|
-
],
|
|
645
|
-
examples: [
|
|
646
|
-
'eve auth login --email user@example.com',
|
|
647
|
-
'eve auth login --email user@example.com --ttl 30',
|
|
648
|
-
'eve auth login # uses profile defaults if set',
|
|
649
|
-
'eve auth login --ssh-key ~/.ssh/id_rsa',
|
|
650
|
-
],
|
|
651
|
-
},
|
|
652
|
-
logout: {
|
|
653
|
-
description: 'Clear stored credentials',
|
|
654
|
-
usage: 'eve auth logout',
|
|
655
|
-
},
|
|
656
|
-
status: {
|
|
657
|
-
description: 'Check authentication status',
|
|
658
|
-
usage: 'eve auth status',
|
|
659
|
-
},
|
|
660
|
-
whoami: {
|
|
661
|
-
description: 'Show current user info',
|
|
662
|
-
usage: 'eve auth whoami',
|
|
663
|
-
},
|
|
664
|
-
token: {
|
|
665
|
-
description: 'Print the current access token to stdout for sharing with reviewers or use in scripts',
|
|
666
|
-
usage: 'eve auth token [--print]',
|
|
667
|
-
options: [
|
|
668
|
-
'--print Explicitly request token print (default behavior)',
|
|
669
|
-
],
|
|
670
|
-
examples: [
|
|
671
|
-
'eve auth token',
|
|
672
|
-
'TOKEN=$(eve auth token)',
|
|
673
|
-
'curl -H "Authorization: Bearer $(eve auth token)" https://api.example.com',
|
|
674
|
-
'eve auth token | pbcopy # Copy to clipboard',
|
|
675
|
-
'eve auth token # Share with reviewers for PR preview access',
|
|
676
|
-
],
|
|
677
|
-
},
|
|
678
|
-
mint: {
|
|
679
|
-
description: 'Mint a user token (admin-only, no SSH login required)',
|
|
680
|
-
usage: 'eve auth mint --email <email> [--org <org_id> | --project <project_id>] [--role <role>] [--ttl <days>]',
|
|
681
|
-
options: [
|
|
682
|
-
'--email <email> Target user email (created if missing)',
|
|
683
|
-
'--org <org_id> Org scope for membership and permission checks',
|
|
684
|
-
'--project <id> Project scope for membership and permission checks',
|
|
685
|
-
'--role <role> Role to assign (member|admin), default member',
|
|
686
|
-
'--ttl <days> Token TTL in days (1-90, default: server configured)',
|
|
687
|
-
],
|
|
688
|
-
examples: [
|
|
689
|
-
'eve auth mint --email app-bot@example.com --org org_xxx',
|
|
690
|
-
'eve auth mint --email app-bot@example.com --project proj_xxx',
|
|
691
|
-
'eve auth mint --email app-bot@example.com --project proj_xxx --role admin',
|
|
692
|
-
'eve auth mint --email bot@example.com --org org_xxx --ttl 90',
|
|
693
|
-
],
|
|
694
|
-
},
|
|
695
|
-
bootstrap: {
|
|
696
|
-
description: 'Bootstrap the first admin user with flexible security modes',
|
|
697
|
-
usage: 'eve auth bootstrap --email <email> [--token <token>] [options]',
|
|
698
|
-
options: [
|
|
699
|
-
'--email <email> Admin email address (required for bootstrap)',
|
|
700
|
-
'--token <token> Bootstrap token (required in secure mode, or use EVE_BOOTSTRAP_TOKEN)',
|
|
701
|
-
'--ssh-key <path> Path to SSH public key (default: ~/.ssh/id_ed25519.pub)',
|
|
702
|
-
'--display-name <name> Display name for the admin user',
|
|
703
|
-
'--status Check bootstrap status instead of bootstrapping',
|
|
704
|
-
'',
|
|
705
|
-
'Bootstrap modes (configured server-side via BOOTSTRAP_MODE):',
|
|
706
|
-
' auto-open Token not required during initial window (default for new installs)',
|
|
707
|
-
' recovery Like auto-open, but for disaster recovery scenarios',
|
|
708
|
-
' secure Token always required (recommended for production)',
|
|
709
|
-
' closed Bootstrap disabled (use database seeding instead)',
|
|
710
|
-
],
|
|
711
|
-
examples: [
|
|
712
|
-
'eve auth bootstrap --status',
|
|
713
|
-
'eve auth bootstrap --email admin@example.com',
|
|
714
|
-
'eve auth bootstrap --email admin@example.com --token secret123',
|
|
715
|
-
'EVE_BOOTSTRAP_TOKEN=secret123 eve auth bootstrap --email admin@example.com',
|
|
716
|
-
'eve auth bootstrap --email admin@example.com --ssh-key ~/.ssh/id_rsa.pub',
|
|
717
|
-
],
|
|
718
|
-
},
|
|
719
|
-
sync: {
|
|
720
|
-
description: 'Extract OAuth tokens from host and set as Eve secrets',
|
|
721
|
-
usage: 'eve auth sync [--claude] [--codex] [--org <id>] [--project <id>] [--dry-run]',
|
|
722
|
-
options: [
|
|
723
|
-
'--claude Only extract Claude/Anthropic tokens',
|
|
724
|
-
'--codex Only extract Codex/OpenAI tokens',
|
|
725
|
-
'--org <id> Set as org-level secrets',
|
|
726
|
-
'--project <id> Set as project-level secrets',
|
|
727
|
-
'--dry-run Show what would be set without actually setting',
|
|
728
|
-
'',
|
|
729
|
-
'Scope priority: --project > --org > user (default)',
|
|
730
|
-
'Default scope is user-level, so credentials are available to all your jobs.',
|
|
731
|
-
],
|
|
732
|
-
examples: [
|
|
733
|
-
'eve auth sync # Sync to user-level (default)',
|
|
734
|
-
'eve auth sync --org org_xxx # Sync to org-level',
|
|
735
|
-
'eve auth sync --project proj_xxx # Sync to project-level',
|
|
736
|
-
'eve auth sync --dry-run # Preview without syncing',
|
|
737
|
-
],
|
|
738
|
-
},
|
|
739
|
-
creds: {
|
|
740
|
-
description: 'Show local AI tool credentials (Claude Code, Codex/Code) without syncing',
|
|
741
|
-
usage: 'eve auth creds [--claude] [--codex]',
|
|
742
|
-
options: [
|
|
743
|
-
'--claude Only check Claude/Anthropic credentials',
|
|
744
|
-
'--codex Only check Codex/OpenAI credentials',
|
|
745
|
-
],
|
|
746
|
-
examples: [
|
|
747
|
-
'eve auth creds',
|
|
748
|
-
'eve auth creds --claude',
|
|
749
|
-
'eve auth creds --json',
|
|
750
|
-
],
|
|
751
|
-
},
|
|
752
|
-
},
|
|
753
|
-
},
|
|
754
|
-
env: {
|
|
755
|
-
description: 'Manage environments for projects. Environments are deployment targets (staging, production, test).',
|
|
756
|
-
usage: 'eve env <subcommand> [options]',
|
|
757
|
-
subcommands: {
|
|
758
|
-
list: {
|
|
759
|
-
description: 'List environments for a project',
|
|
760
|
-
usage: 'eve env list [project]',
|
|
761
|
-
options: [
|
|
762
|
-
'<project> Project ID or slug (uses profile default if omitted)',
|
|
763
|
-
],
|
|
764
|
-
examples: ['eve env list', 'eve env list proj_xxx'],
|
|
765
|
-
},
|
|
766
|
-
show: {
|
|
767
|
-
description: 'Show details of an environment',
|
|
768
|
-
usage: 'eve env show <project> <name>',
|
|
769
|
-
examples: ['eve env show proj_xxx staging', 'eve env show my-project production'],
|
|
770
|
-
},
|
|
771
|
-
create: {
|
|
772
|
-
description: 'Create an environment',
|
|
773
|
-
usage: 'eve env create <name> --type=<type> [options]',
|
|
774
|
-
options: [
|
|
775
|
-
'<name> Environment name (e.g., staging, production, test)',
|
|
776
|
-
'--type <type> Environment type: persistent or temporary (required)',
|
|
777
|
-
'--namespace <ns> K8s namespace (optional)',
|
|
778
|
-
'--db-ref <ref> Database reference (optional)',
|
|
779
|
-
'--project <id> Project ID (uses profile default if omitted)',
|
|
780
|
-
],
|
|
781
|
-
examples: [
|
|
782
|
-
'eve env create staging --type=persistent',
|
|
783
|
-
'eve env create test --type=persistent --namespace=eve-test',
|
|
784
|
-
],
|
|
785
|
-
},
|
|
786
|
-
deploy: {
|
|
787
|
-
description: 'Deploy to an environment',
|
|
788
|
-
usage: 'eve env deploy <env> --ref <sha> [--direct] [--inputs <json>] [--image-tag <tag>] [--repo-dir <path>] [--project <id>]',
|
|
789
|
-
options: [
|
|
790
|
-
'<env> Environment name (staging, production, test)',
|
|
791
|
-
'--ref <sha> Git SHA (required). Non-SHA refs resolve against the repo in --repo-dir or cwd.',
|
|
792
|
-
'--direct Bypass pipeline and do direct deploy',
|
|
793
|
-
'--inputs <json> JSON inputs for the deployment (e.g., \'{"release_id":"rel_xxx"}\')',
|
|
794
|
-
'--image-tag <tag> Use a specific image tag for deploy (direct only)',
|
|
795
|
-
'--repo-dir <path> Resolve --ref against this repo instead of cwd',
|
|
796
|
-
'--project <id> Project ID or slug (uses profile default if omitted)',
|
|
797
|
-
'--watch Poll deployment status until ready (default: true)',
|
|
798
|
-
'--timeout <seconds> Watch timeout in seconds (default: 120)',
|
|
799
|
-
],
|
|
800
|
-
examples: [
|
|
801
|
-
'eve env deploy staging --ref 0123456789abcdef0123456789abcdef01234567',
|
|
802
|
-
'eve env deploy staging --ref 0123456789abcdef0123456789abcdef01234567 --direct',
|
|
803
|
-
'eve env deploy staging --ref 0123456789abcdef0123456789abcdef01234567 --inputs \'{"release_id":"rel_xxx","smoke_test":false}\'',
|
|
804
|
-
'eve env deploy staging --ref 0123456789abcdef0123456789abcdef01234567 --direct --inputs \'{"release_id":"rel_xxx"}\'',
|
|
805
|
-
'eve env deploy staging --ref main --repo-dir ./my-app',
|
|
806
|
-
],
|
|
807
|
-
},
|
|
808
|
-
diagnose: {
|
|
809
|
-
description: 'Diagnose environment deployments (k8s-only)',
|
|
810
|
-
usage: 'eve env diagnose <project> <env> [--events <n>]',
|
|
811
|
-
options: [
|
|
812
|
-
'<project> Project ID or slug',
|
|
813
|
-
'<env> Environment name',
|
|
814
|
-
'--events <n> Limit number of recent events',
|
|
815
|
-
],
|
|
816
|
-
examples: [
|
|
817
|
-
'eve env diagnose proj_xxx staging',
|
|
818
|
-
'eve env diagnose proj_xxx staging --events 20',
|
|
819
|
-
],
|
|
820
|
-
},
|
|
821
|
-
logs: {
|
|
822
|
-
description: 'Fetch logs for a service in an environment (k8s-only)',
|
|
823
|
-
usage: 'eve env logs <project> <env> <service> [--since <seconds>] [--tail <n>] [--grep <text>]',
|
|
824
|
-
options: [
|
|
825
|
-
'<project> Project ID or slug',
|
|
826
|
-
'<env> Environment name (staging, production, test)',
|
|
827
|
-
'<service> Service name from manifest',
|
|
828
|
-
'--since <seconds> Seconds since now (optional)',
|
|
829
|
-
'--tail <n> Tail line count (optional)',
|
|
830
|
-
'--grep <text> Filter lines containing text (optional)',
|
|
831
|
-
],
|
|
832
|
-
examples: [
|
|
833
|
-
'eve env logs proj_xxx staging api --tail 200',
|
|
834
|
-
'eve env logs proj_xxx staging api --since 3600 --grep ERROR',
|
|
835
|
-
],
|
|
836
|
-
},
|
|
837
|
-
delete: {
|
|
838
|
-
description: 'Delete an environment',
|
|
839
|
-
usage: 'eve env delete <name> [--project=<id>] [--force]',
|
|
840
|
-
options: [
|
|
841
|
-
'<name> Environment name to delete',
|
|
842
|
-
'--project <id> Project ID (uses profile default if omitted)',
|
|
843
|
-
'--force Skip confirmation prompt',
|
|
844
|
-
],
|
|
845
|
-
examples: [
|
|
846
|
-
'eve env delete test',
|
|
847
|
-
'eve env delete staging --project=proj_xxx',
|
|
848
|
-
'eve env delete old-env --force',
|
|
849
|
-
],
|
|
850
|
-
},
|
|
851
|
-
},
|
|
852
|
-
examples: [
|
|
853
|
-
'eve env list',
|
|
854
|
-
'eve env create test --type=persistent',
|
|
855
|
-
'eve env deploy staging --ref abc123',
|
|
856
|
-
'eve env logs proj_xxx staging api --tail 200',
|
|
857
|
-
'eve env diagnose proj_xxx staging',
|
|
858
|
-
],
|
|
859
|
-
},
|
|
860
|
-
api: {
|
|
861
|
-
description: 'Explore project API sources and call them with Eve auth.',
|
|
862
|
-
usage: 'eve api <subcommand> [options]',
|
|
863
|
-
subcommands: {
|
|
864
|
-
list: {
|
|
865
|
-
description: 'List API sources for a project',
|
|
866
|
-
usage: 'eve api list [project] [--env <name>]',
|
|
867
|
-
options: [
|
|
868
|
-
'<project> Project ID (uses profile default if omitted)',
|
|
869
|
-
'--env <name> Environment name (optional filter)',
|
|
870
|
-
],
|
|
871
|
-
examples: ['eve api list', 'eve api list proj_xxx --env staging'],
|
|
872
|
-
},
|
|
873
|
-
show: {
|
|
874
|
-
description: 'Show details for a single API source',
|
|
875
|
-
usage: 'eve api show <name> [project]',
|
|
876
|
-
options: ['--env <name> Environment name (optional filter)'],
|
|
877
|
-
examples: ['eve api show app', 'eve api show app proj_xxx --env staging'],
|
|
878
|
-
},
|
|
879
|
-
spec: {
|
|
880
|
-
description: 'Show cached API spec (OpenAPI/GraphQL)',
|
|
881
|
-
usage: 'eve api spec <name> [project]',
|
|
882
|
-
options: ['--env <name> Environment name (optional filter)'],
|
|
883
|
-
examples: ['eve api spec app', 'eve api spec app proj_xxx --env staging'],
|
|
884
|
-
},
|
|
885
|
-
refresh: {
|
|
886
|
-
description: 'Refresh cached API spec',
|
|
887
|
-
usage: 'eve api refresh <name> [project]',
|
|
888
|
-
options: ['--env <name> Environment name (optional filter)'],
|
|
889
|
-
examples: ['eve api refresh app --env staging'],
|
|
890
|
-
},
|
|
891
|
-
examples: {
|
|
892
|
-
description: 'Print curl templates from the cached API spec',
|
|
893
|
-
usage: 'eve api examples <name> [project]',
|
|
894
|
-
options: ['--env <name> Environment name (optional filter)'],
|
|
895
|
-
examples: ['eve api examples app', 'eve api examples app --env staging'],
|
|
896
|
-
},
|
|
897
|
-
call: {
|
|
898
|
-
description: 'Call an API endpoint with Eve auth',
|
|
899
|
-
usage: 'eve api call <name> <method> <path> [options]',
|
|
900
|
-
options: [
|
|
901
|
-
'--project <id> Project ID (uses profile default)',
|
|
902
|
-
'--env <name> Environment name (optional source)',
|
|
903
|
-
'--json <payload> JSON body inline or @file',
|
|
904
|
-
'--jq <expr> Filter JSON output with jq',
|
|
905
|
-
'--graphql <query> GraphQL query inline or @file',
|
|
906
|
-
'--variables <json> JSON variables for GraphQL query',
|
|
907
|
-
'--token <token> Override auth token',
|
|
908
|
-
'--print-curl Print curl command instead of executing',
|
|
909
|
-
],
|
|
910
|
-
examples: [
|
|
911
|
-
'eve api call app GET /notes --jq ".items"',
|
|
912
|
-
'eve api call app POST /notes --json "{\"title\":\"Hello\"}"',
|
|
913
|
-
'eve api call graphql POST /graphql --graphql "{ notes { id } }"',
|
|
914
|
-
],
|
|
915
|
-
},
|
|
916
|
-
},
|
|
917
|
-
},
|
|
918
|
-
db: {
|
|
919
|
-
description: 'Inspect and query environment databases with Eve auth + RLS.',
|
|
920
|
-
usage: 'eve db <subcommand> [options]',
|
|
921
|
-
subcommands: {
|
|
922
|
-
schema: {
|
|
923
|
-
description: 'Show database schema for an environment',
|
|
924
|
-
usage: 'eve db schema --env <name> [--project <id>]',
|
|
925
|
-
options: ['--env <name> Environment name (required)'],
|
|
926
|
-
examples: ['eve db schema --env staging'],
|
|
927
|
-
},
|
|
928
|
-
rls: {
|
|
929
|
-
description: 'Show RLS policies and tables for an environment',
|
|
930
|
-
usage: 'eve db rls --env <name> [--project <id>]',
|
|
931
|
-
options: ['--env <name> Environment name (required)'],
|
|
932
|
-
examples: ['eve db rls --env staging'],
|
|
933
|
-
},
|
|
934
|
-
sql: {
|
|
935
|
-
description: 'Run parameterized SQL as the calling user',
|
|
936
|
-
usage: 'eve db sql --env <name> --sql <statement> [options]',
|
|
937
|
-
options: [
|
|
938
|
-
'--env <name> Environment name (required)',
|
|
939
|
-
'--sql <statement> SQL to run (inline)',
|
|
940
|
-
'--file <path> Read SQL from file',
|
|
941
|
-
'--params <json> JSON array/object of parameters',
|
|
942
|
-
'--write Allow writes (requires db.write scope)',
|
|
943
|
-
],
|
|
944
|
-
examples: [
|
|
945
|
-
'eve db sql --env staging --sql "select * from notes"',
|
|
946
|
-
'eve db sql --env staging --file ./query.sql --params "[1]"',
|
|
947
|
-
],
|
|
948
|
-
},
|
|
949
|
-
},
|
|
950
|
-
},
|
|
951
|
-
pipeline: {
|
|
952
|
-
description: 'Run and inspect pipelines defined in the project manifest.',
|
|
953
|
-
usage: 'eve pipeline <subcommand> [options]',
|
|
954
|
-
subcommands: {
|
|
955
|
-
list: {
|
|
956
|
-
description: 'List pipelines for a project',
|
|
957
|
-
usage: 'eve pipeline list [project]',
|
|
958
|
-
options: [
|
|
959
|
-
'<project> Project ID or slug (uses profile default if omitted)',
|
|
960
|
-
],
|
|
961
|
-
examples: ['eve pipeline list', 'eve pipeline list proj_xxx'],
|
|
962
|
-
},
|
|
963
|
-
show: {
|
|
964
|
-
description: 'Show pipeline definition',
|
|
965
|
-
usage: 'eve pipeline show <project> <name>',
|
|
966
|
-
examples: ['eve pipeline show proj_xxx release', 'eve pipeline show my-project deploy'],
|
|
967
|
-
},
|
|
968
|
-
run: {
|
|
969
|
-
description: 'Run a pipeline',
|
|
970
|
-
usage: 'eve pipeline run <name> --ref <sha> [--env <env>] [--repo-dir <path>] [--wait] [--only <step>]',
|
|
971
|
-
options: [
|
|
972
|
-
'--ref <sha> Git SHA (required). Non-SHA refs resolve against the repo in --repo-dir or cwd.',
|
|
973
|
-
'--env <env> Target environment',
|
|
974
|
-
'--project <id> Project ID (uses profile default)',
|
|
975
|
-
'--wait Wait for completion',
|
|
976
|
-
'--timeout <n> Max wait time (seconds)',
|
|
977
|
-
'--inputs <json> JSON inputs for the pipeline',
|
|
978
|
-
'--only <step> Run a single step (includes dependencies)',
|
|
979
|
-
'--repo-dir <path> Resolve --ref against this repo instead of cwd',
|
|
980
|
-
],
|
|
981
|
-
examples: [
|
|
982
|
-
'eve pipeline run deploy-test --ref 0123456789abcdef0123456789abcdef01234567 --env test',
|
|
983
|
-
'eve pipeline run deploy-test --ref 0123456789abcdef0123456789abcdef01234567 --env test --wait --timeout 120',
|
|
984
|
-
'eve pipeline run deploy-test --ref main --repo-dir ./my-app --env test',
|
|
985
|
-
],
|
|
986
|
-
},
|
|
987
|
-
runs: {
|
|
988
|
-
description: 'List runs for a pipeline',
|
|
989
|
-
usage: 'eve pipeline runs <name> [project]',
|
|
990
|
-
options: [
|
|
991
|
-
'--limit <n> Number of results (default: 10)',
|
|
992
|
-
'--offset <n> Skip first n results',
|
|
993
|
-
],
|
|
994
|
-
examples: ['eve pipeline runs deploy-test', 'eve pipeline runs deploy-test proj_xxx'],
|
|
995
|
-
},
|
|
996
|
-
'show-run': {
|
|
997
|
-
description: 'Show a pipeline run',
|
|
998
|
-
usage: 'eve pipeline show-run <name> <run-id> [--project <id>]',
|
|
999
|
-
examples: ['eve pipeline show-run deploy-test prun_xxx'],
|
|
1000
|
-
},
|
|
1001
|
-
approve: {
|
|
1002
|
-
description: 'Approve a pipeline run awaiting approval',
|
|
1003
|
-
usage: 'eve pipeline approve <run-id>',
|
|
1004
|
-
examples: ['eve pipeline approve prun_xxx'],
|
|
1005
|
-
},
|
|
1006
|
-
cancel: {
|
|
1007
|
-
description: 'Cancel a pipeline run',
|
|
1008
|
-
usage: 'eve pipeline cancel <run-id> [--reason <text>]',
|
|
1009
|
-
examples: ['eve pipeline cancel prun_xxx --reason "superseded"'],
|
|
1010
|
-
},
|
|
1011
|
-
logs: {
|
|
1012
|
-
description: 'Show logs for a pipeline run',
|
|
1013
|
-
usage: 'eve pipeline logs <pipeline> <run-id> [--step <name>] [--follow]',
|
|
1014
|
-
options: [
|
|
1015
|
-
'--step <name> Show logs for a specific step only',
|
|
1016
|
-
'--follow (-f) Stream live logs via SSE',
|
|
1017
|
-
'--project <id> Project ID (uses profile default)',
|
|
1018
|
-
],
|
|
1019
|
-
examples: [
|
|
1020
|
-
'eve pipeline logs deploy-test prun_xxx',
|
|
1021
|
-
'eve pipeline logs deploy-test prun_xxx --step build',
|
|
1022
|
-
'eve pipeline logs deploy-test prun_xxx --follow',
|
|
1023
|
-
],
|
|
1024
|
-
},
|
|
1025
|
-
},
|
|
1026
|
-
examples: ['eve pipeline list', 'eve pipeline run deploy-test --ref 0123456789abcdef0123456789abcdef01234567 --env test', 'eve pipeline logs deploy-test prun_xxx --follow'],
|
|
1027
|
-
},
|
|
1028
|
-
workflow: {
|
|
1029
|
-
description: 'Inspect workflows defined in the project manifest (read-only in Phase 1).',
|
|
1030
|
-
usage: 'eve workflow <subcommand> [options]',
|
|
1031
|
-
subcommands: {
|
|
1032
|
-
list: {
|
|
1033
|
-
description: 'List workflows for a project',
|
|
1034
|
-
usage: 'eve workflow list [project]',
|
|
1035
|
-
options: [
|
|
1036
|
-
'<project> Project ID or slug (uses profile default if omitted)',
|
|
1037
|
-
],
|
|
1038
|
-
examples: ['eve workflow list', 'eve workflow list proj_xxx'],
|
|
1039
|
-
},
|
|
1040
|
-
show: {
|
|
1041
|
-
description: 'Show workflow definition',
|
|
1042
|
-
usage: 'eve workflow show <project> <name>',
|
|
1043
|
-
examples: ['eve workflow show proj_xxx qa-review', 'eve workflow show my-project release-notes'],
|
|
1044
|
-
},
|
|
1045
|
-
},
|
|
1046
|
-
examples: ['eve workflow list', 'eve workflow show proj_xxx qa-review'],
|
|
1047
|
-
},
|
|
1048
|
-
event: {
|
|
1049
|
-
description: 'Emit and inspect events. Apps use this to participate in the Event Ecosystem.',
|
|
1050
|
-
usage: 'eve event <subcommand> [options]',
|
|
1051
|
-
subcommands: {
|
|
1052
|
-
list: {
|
|
1053
|
-
description: 'List events for a project',
|
|
1054
|
-
usage: 'eve event list [project] [--type] [--source] [--status]',
|
|
1055
|
-
options: [
|
|
1056
|
-
'<project> Project ID or slug (uses profile default if omitted)',
|
|
1057
|
-
'--type <type> Filter by event type (e.g., github.push, app.deploy.complete)',
|
|
1058
|
-
'--source <source> Filter by source (e.g., github, cron, app)',
|
|
1059
|
-
'--status <status> Filter by status (pending, processed, failed)',
|
|
1060
|
-
'--limit <n> Number of results',
|
|
1061
|
-
'--offset <n> Skip first n results',
|
|
1062
|
-
],
|
|
1063
|
-
examples: ['eve event list', 'eve event list --type app.deploy.complete --source app'],
|
|
1064
|
-
},
|
|
1065
|
-
show: {
|
|
1066
|
-
description: 'Show event details',
|
|
1067
|
-
usage: 'eve event show <event_id> [--project <id>]',
|
|
1068
|
-
examples: ['eve event show evt_xxx', 'eve event show evt_xxx --project proj_yyy'],
|
|
1069
|
-
},
|
|
1070
|
-
emit: {
|
|
1071
|
-
description: 'Emit an event to trigger pipelines or notify other services',
|
|
1072
|
-
usage: 'eve event emit --type <type> --source <source> [options]',
|
|
1073
|
-
options: [
|
|
1074
|
-
'--project <id> Project ID (required)',
|
|
1075
|
-
'--type <type> Event type (e.g., app.build.complete, deploy.finished)',
|
|
1076
|
-
'--source <source> Event source (e.g., app, ci, manual)',
|
|
1077
|
-
'--env <name> Environment name',
|
|
1078
|
-
'--branch <branch> Git branch reference',
|
|
1079
|
-
'--sha <sha> Git commit SHA',
|
|
1080
|
-
'--payload <json> JSON payload with event data',
|
|
1081
|
-
],
|
|
1082
|
-
examples: [
|
|
1083
|
-
'eve event emit --project proj_xxx --type app.build.complete --source app',
|
|
1084
|
-
'eve event emit --project proj_xxx --type deploy.finished --source ci --env production --payload \'{"version":"1.2.3"}\'',
|
|
1085
|
-
],
|
|
1086
|
-
},
|
|
1087
|
-
},
|
|
1088
|
-
examples: [
|
|
1089
|
-
'eve event list',
|
|
1090
|
-
'eve event emit --type app.ready --source app --project proj_xxx',
|
|
1091
|
-
],
|
|
1092
|
-
},
|
|
1093
|
-
skills: {
|
|
1094
|
-
description: 'Install skills from skills.txt using openskills --universal.',
|
|
1095
|
-
usage: 'eve skills <subcommand> [options]',
|
|
1096
|
-
subcommands: {
|
|
1097
|
-
install: {
|
|
1098
|
-
description: 'Install skills from skills.txt manifest',
|
|
1099
|
-
usage: 'eve skills install [--skip-installed] [--no-sync] [--no-commit]',
|
|
1100
|
-
options: [
|
|
1101
|
-
'--skip-installed Skip skills that are already installed',
|
|
1102
|
-
'--no-sync Skip AGENTS.md sync after install',
|
|
1103
|
-
'--no-commit Skip committing AGENTS.md changes',
|
|
1104
|
-
],
|
|
1105
|
-
examples: [
|
|
1106
|
-
'eve skills install',
|
|
1107
|
-
'eve skills install --skip-installed',
|
|
1108
|
-
'eve skills install --no-commit',
|
|
1109
|
-
],
|
|
1110
|
-
},
|
|
1111
|
-
},
|
|
1112
|
-
examples: ['eve skills install', 'eve skills install --skip-installed'],
|
|
1113
|
-
},
|
|
1114
|
-
admin: {
|
|
1115
|
-
description: 'Administrative commands for user and identity management.',
|
|
1116
|
-
usage: 'eve admin <subcommand> [options]',
|
|
1117
|
-
subcommands: {
|
|
1118
|
-
invite: {
|
|
1119
|
-
description: 'Invite a user by registering their GitHub SSH keys and adding them to an org',
|
|
1120
|
-
usage: 'eve admin invite --email <email> [--github <username>] [--role <role>] [--org <org_id>]',
|
|
1121
|
-
options: [
|
|
1122
|
-
'--email <email> User email address (required)',
|
|
1123
|
-
'--github <username> GitHub username to fetch SSH keys from',
|
|
1124
|
-
'--role <role> Org role: owner, admin, member (default: member)',
|
|
1125
|
-
'--org <org_id> Organization to add user to',
|
|
1126
|
-
],
|
|
1127
|
-
examples: [
|
|
1128
|
-
'eve admin invite --email user@example.com --github octocat',
|
|
1129
|
-
'eve admin invite --email user@example.com --github octocat --role admin --org org_xxx',
|
|
1130
|
-
],
|
|
1131
|
-
},
|
|
1132
|
-
},
|
|
1133
|
-
examples: [
|
|
1134
|
-
'eve admin invite --email user@example.com --github octocat',
|
|
1135
|
-
'eve admin invite --email user@example.com --github octocat --org org_xxx',
|
|
1136
|
-
],
|
|
1137
|
-
},
|
|
1138
|
-
release: {
|
|
1139
|
-
description: 'Manage and inspect releases.',
|
|
1140
|
-
usage: 'eve release <subcommand> [options]',
|
|
1141
|
-
subcommands: {
|
|
1142
|
-
resolve: {
|
|
1143
|
-
description: 'Look up a release by tag and output its details',
|
|
1144
|
-
usage: 'eve release resolve <tag> [--project <id>]',
|
|
1145
|
-
options: [
|
|
1146
|
-
'<tag> Release tag (e.g., v1.2.3)',
|
|
1147
|
-
'--project <id> Project ID (uses profile default or .eve/manifest.yaml if omitted)',
|
|
1148
|
-
'--json Output as JSON',
|
|
1149
|
-
],
|
|
1150
|
-
examples: [
|
|
1151
|
-
'eve release resolve v1.2.3',
|
|
1152
|
-
'eve release resolve v1.2.3 --project proj_xxx',
|
|
1153
|
-
'eve release resolve v1.2.3 --json',
|
|
1154
|
-
],
|
|
1155
|
-
},
|
|
1156
|
-
},
|
|
1157
|
-
examples: [
|
|
1158
|
-
'eve release resolve v1.2.3',
|
|
1159
|
-
'eve release resolve v1.2.3 --json',
|
|
1160
|
-
],
|
|
1161
|
-
},
|
|
1162
|
-
build: {
|
|
1163
|
-
description: 'Manage builds. Builds are first-class primitives for container image creation (specs, runs, artifacts).',
|
|
1164
|
-
usage: 'eve build <subcommand> [options]',
|
|
1165
|
-
subcommands: {
|
|
1166
|
-
create: {
|
|
1167
|
-
description: 'Create a new build spec',
|
|
1168
|
-
usage: 'eve build create --project <id> --ref <sha> --manifest-hash <hash> [--services <s1,s2>] [--repo-dir <path>]',
|
|
1169
|
-
options: [
|
|
1170
|
-
'--project <id> Project ID (uses profile default)',
|
|
1171
|
-
'--ref <sha> Git SHA (required). Non-SHA refs resolve against the repo in --repo-dir or cwd.',
|
|
1172
|
-
'--manifest-hash <h> Manifest hash (required)',
|
|
1173
|
-
'--services <list> Comma-separated service names to build',
|
|
1174
|
-
'--repo-dir <path> Resolve --ref against this repo instead of cwd',
|
|
1175
|
-
],
|
|
1176
|
-
examples: [
|
|
1177
|
-
'eve build create --ref 0123456789abcdef0123456789abcdef01234567 --manifest-hash mfst_123',
|
|
1178
|
-
'eve build create --project proj_xxx --ref 0123456789abcdef0123456789abcdef01234567 --manifest-hash mfst_123 --services api,web',
|
|
1179
|
-
'eve build create --project proj_xxx --ref main --repo-dir ./my-app --manifest-hash mfst_123',
|
|
1180
|
-
],
|
|
1181
|
-
},
|
|
1182
|
-
list: {
|
|
1183
|
-
description: 'List build specs for a project',
|
|
1184
|
-
usage: 'eve build list [--project <id>] [--limit <n>] [--offset <n>]',
|
|
1185
|
-
options: [
|
|
1186
|
-
'--project <id> Project ID (uses profile default)',
|
|
1187
|
-
'--limit <n> Number of results',
|
|
1188
|
-
'--offset <n> Skip first n results',
|
|
1189
|
-
],
|
|
1190
|
-
examples: [
|
|
1191
|
-
'eve build list',
|
|
1192
|
-
'eve build list --project proj_xxx --limit 20',
|
|
1193
|
-
],
|
|
1194
|
-
},
|
|
1195
|
-
show: {
|
|
1196
|
-
description: 'Show build spec details',
|
|
1197
|
-
usage: 'eve build show <build_id>',
|
|
1198
|
-
examples: [
|
|
1199
|
-
'eve build show build_xxx',
|
|
1200
|
-
],
|
|
1201
|
-
},
|
|
1202
|
-
run: {
|
|
1203
|
-
description: 'Start a build run for an existing build spec',
|
|
1204
|
-
usage: 'eve build run <build_id>',
|
|
1205
|
-
examples: [
|
|
1206
|
-
'eve build run build_xxx',
|
|
1207
|
-
],
|
|
1208
|
-
},
|
|
1209
|
-
runs: {
|
|
1210
|
-
description: 'List runs for a build spec',
|
|
1211
|
-
usage: 'eve build runs <build_id> [--limit <n>]',
|
|
1212
|
-
options: [
|
|
1213
|
-
'--limit <n> Number of results',
|
|
1214
|
-
'--offset <n> Skip first n results',
|
|
1215
|
-
],
|
|
1216
|
-
examples: [
|
|
1217
|
-
'eve build runs build_xxx',
|
|
1218
|
-
],
|
|
1219
|
-
},
|
|
1220
|
-
logs: {
|
|
1221
|
-
description: 'Show build logs',
|
|
1222
|
-
usage: 'eve build logs <build_id> [--run <run_id>]',
|
|
1223
|
-
options: [
|
|
1224
|
-
'--run <id> Specific run ID (default: latest)',
|
|
1225
|
-
],
|
|
1226
|
-
examples: [
|
|
1227
|
-
'eve build logs build_xxx',
|
|
1228
|
-
'eve build logs build_xxx --run brun_yyy',
|
|
1229
|
-
],
|
|
1230
|
-
},
|
|
1231
|
-
artifacts: {
|
|
1232
|
-
description: 'List build artifacts (images produced)',
|
|
1233
|
-
usage: 'eve build artifacts <build_id>',
|
|
1234
|
-
examples: [
|
|
1235
|
-
'eve build artifacts build_xxx',
|
|
1236
|
-
],
|
|
1237
|
-
},
|
|
1238
|
-
diagnose: {
|
|
1239
|
-
description: 'Show full build state (spec, runs, artifacts, logs)',
|
|
1240
|
-
usage: 'eve build diagnose <build_id>',
|
|
1241
|
-
examples: [
|
|
1242
|
-
'eve build diagnose build_xxx',
|
|
1243
|
-
],
|
|
1244
|
-
},
|
|
1245
|
-
cancel: {
|
|
1246
|
-
description: 'Cancel an active build run',
|
|
1247
|
-
usage: 'eve build cancel <build_id>',
|
|
1248
|
-
examples: [
|
|
1249
|
-
'eve build cancel build_xxx',
|
|
1250
|
-
],
|
|
1251
|
-
},
|
|
1252
|
-
},
|
|
1253
|
-
examples: [
|
|
1254
|
-
'eve build create --ref 0123456789abcdef0123456789abcdef01234567 --manifest-hash mfst_123 --services api,web',
|
|
1255
|
-
'eve build list',
|
|
1256
|
-
'eve build show build_xxx',
|
|
1257
|
-
'eve build run build_xxx',
|
|
1258
|
-
'eve build logs build_xxx',
|
|
1259
|
-
'eve build artifacts build_xxx',
|
|
1260
|
-
'eve build diagnose build_xxx',
|
|
1261
|
-
],
|
|
1262
|
-
},
|
|
1263
|
-
init: {
|
|
1264
|
-
description: `Initialize a new Eve Horizon project from a template.
|
|
1265
|
-
|
|
1266
|
-
Downloads the starter template, strips git history, initializes a fresh repo,
|
|
1267
|
-
and installs skills. After init, start your AI coding agent and run the
|
|
1268
|
-
eve-new-project-setup skill to complete configuration.`,
|
|
1269
|
-
usage: 'eve init [directory] [--template <url>] [--branch <branch>]',
|
|
1270
|
-
subcommands: {
|
|
1271
|
-
'': {
|
|
1272
|
-
description: 'Initialize project in current or specified directory',
|
|
1273
|
-
usage: 'eve init [directory] [options]',
|
|
1274
|
-
options: [
|
|
1275
|
-
'[directory] Target directory (default: current directory)',
|
|
1276
|
-
'--template <url> Template repository URL',
|
|
1277
|
-
' (default: https://github.com/incept5/eve-horizon-starter)',
|
|
1278
|
-
'--branch <branch> Branch to use (default: main)',
|
|
1279
|
-
'--skip-skills Skip automatic skill installation',
|
|
1280
|
-
],
|
|
1281
|
-
examples: [
|
|
1282
|
-
'eve init',
|
|
1283
|
-
'eve init my-project',
|
|
1284
|
-
'eve init my-project --template https://github.com/myorg/my-template',
|
|
1285
|
-
'eve init . --branch develop',
|
|
1286
|
-
],
|
|
1287
|
-
},
|
|
1288
|
-
},
|
|
1289
|
-
examples: [
|
|
1290
|
-
'eve init my-project',
|
|
1291
|
-
'eve init',
|
|
1292
|
-
'eve init my-app --template https://github.com/myorg/custom-starter',
|
|
1293
|
-
],
|
|
1294
|
-
},
|
|
1295
|
-
system: {
|
|
1296
|
-
description: 'System administration and health checks (admin scope required for most commands).',
|
|
1297
|
-
usage: 'eve system <subcommand> [options]',
|
|
1298
|
-
subcommands: {
|
|
1299
|
-
health: {
|
|
1300
|
-
description: 'Quick health check of the API',
|
|
1301
|
-
usage: 'eve system health',
|
|
1302
|
-
examples: ['eve system health', 'eve system health --json'],
|
|
1303
|
-
},
|
|
1304
|
-
status: {
|
|
1305
|
-
description: 'Show comprehensive system status (admin only)',
|
|
1306
|
-
usage: 'eve system status',
|
|
1307
|
-
examples: ['eve system status', 'eve system status --json'],
|
|
1308
|
-
},
|
|
1309
|
-
jobs: {
|
|
1310
|
-
description: 'List all jobs across all projects (admin view)',
|
|
1311
|
-
usage: 'eve system jobs [--org <id>] [--project <id>] [--phase <phase>] [--limit <n>] [--offset <n>]',
|
|
1312
|
-
options: [
|
|
1313
|
-
'--org <id> Filter by organization ID',
|
|
1314
|
-
'--project <id> Filter by project ID',
|
|
1315
|
-
'--phase <phase> Filter by job phase',
|
|
1316
|
-
'--limit <n> Number of results (default: 50)',
|
|
1317
|
-
'--offset <n> Skip first n results',
|
|
1318
|
-
],
|
|
1319
|
-
examples: [
|
|
1320
|
-
'eve system jobs',
|
|
1321
|
-
'eve system jobs --phase active',
|
|
1322
|
-
'eve system jobs --project proj_xxx',
|
|
1323
|
-
],
|
|
1324
|
-
},
|
|
1325
|
-
envs: {
|
|
1326
|
-
description: 'List all environments across all projects (admin view)',
|
|
1327
|
-
usage: 'eve system envs [--org <id>] [--project <id>] [--limit <n>] [--offset <n>]',
|
|
1328
|
-
options: [
|
|
1329
|
-
'--org <id> Filter by organization ID',
|
|
1330
|
-
'--project <id> Filter by project ID',
|
|
1331
|
-
'--limit <n> Number of results (default: 50)',
|
|
1332
|
-
'--offset <n> Skip first n results',
|
|
1333
|
-
],
|
|
1334
|
-
examples: [
|
|
1335
|
-
'eve system envs',
|
|
1336
|
-
'eve system envs --project proj_xxx',
|
|
1337
|
-
],
|
|
1338
|
-
},
|
|
1339
|
-
logs: {
|
|
1340
|
-
description: 'Fetch recent logs for a system service (admin only)',
|
|
1341
|
-
usage: 'eve system logs <service> [--tail <n>]',
|
|
1342
|
-
options: [
|
|
1343
|
-
'--tail <n> Number of log lines (default: 100)',
|
|
1344
|
-
],
|
|
1345
|
-
examples: [
|
|
1346
|
-
'eve system logs api',
|
|
1347
|
-
'eve system logs worker --tail 200',
|
|
1348
|
-
],
|
|
1349
|
-
},
|
|
1350
|
-
pods: {
|
|
1351
|
-
description: 'List pods across the cluster (admin only)',
|
|
1352
|
-
usage: 'eve system pods',
|
|
1353
|
-
examples: ['eve system pods'],
|
|
1354
|
-
},
|
|
1355
|
-
events: {
|
|
1356
|
-
description: 'List recent cluster events (admin only)',
|
|
1357
|
-
usage: 'eve system events [--limit <n>]',
|
|
1358
|
-
options: [
|
|
1359
|
-
'--limit <n> Max number of events (default: 50)',
|
|
1360
|
-
],
|
|
1361
|
-
examples: ['eve system events', 'eve system events --limit 20'],
|
|
1362
|
-
},
|
|
1363
|
-
config: {
|
|
1364
|
-
description: 'Show deployment configuration summary (system admins only)',
|
|
1365
|
-
usage: 'eve system config',
|
|
1366
|
-
examples: ['eve system config'],
|
|
1367
|
-
},
|
|
1368
|
-
settings: {
|
|
1369
|
-
description: 'Get or set system settings (admin only)',
|
|
1370
|
-
usage: 'eve system settings [get <key>] [set <key> <value>]',
|
|
1371
|
-
options: [
|
|
1372
|
-
'get <key> Get specific setting',
|
|
1373
|
-
'set <key> <value> Update setting value',
|
|
1374
|
-
],
|
|
1375
|
-
examples: [
|
|
1376
|
-
'eve system settings',
|
|
1377
|
-
'eve system settings get some-key',
|
|
1378
|
-
'eve system settings set some-key some-value',
|
|
1379
|
-
],
|
|
1380
|
-
},
|
|
1381
|
-
orchestrator: {
|
|
1382
|
-
description: 'Manage orchestrator concurrency settings',
|
|
1383
|
-
usage: 'eve system orchestrator <status|set-concurrency>',
|
|
1384
|
-
options: [
|
|
1385
|
-
'status Show concurrency status',
|
|
1386
|
-
'set-concurrency <n> Set concurrency limit',
|
|
1387
|
-
],
|
|
1388
|
-
examples: [
|
|
1389
|
-
'eve system orchestrator status',
|
|
1390
|
-
'eve system orchestrator set-concurrency 8',
|
|
1391
|
-
],
|
|
1392
|
-
},
|
|
1393
|
-
},
|
|
1394
|
-
examples: [
|
|
1395
|
-
'eve system health',
|
|
1396
|
-
'eve system status',
|
|
1397
|
-
'eve system jobs',
|
|
1398
|
-
'eve system envs',
|
|
1399
|
-
'eve system logs api',
|
|
1400
|
-
'eve system orchestrator status',
|
|
1401
|
-
],
|
|
1402
|
-
},
|
|
1403
|
-
integrations: {
|
|
1404
|
-
description: 'Manage chat integrations (Slack) for an organization.',
|
|
1405
|
-
usage: 'eve integrations <subcommand> [options]',
|
|
1406
|
-
subcommands: {
|
|
1407
|
-
list: {
|
|
1408
|
-
description: 'List integrations for an org',
|
|
1409
|
-
usage: 'eve integrations list --org <org_id>',
|
|
1410
|
-
options: ['--org <id> Organization ID'],
|
|
1411
|
-
},
|
|
1412
|
-
slack: {
|
|
1413
|
-
description: 'Connect a Slack workspace (stub OAuth)',
|
|
1414
|
-
usage: 'eve integrations slack connect --org <org_id> --team-id <team_id> [--token <token>]',
|
|
1415
|
-
options: [
|
|
1416
|
-
'--org <id> Organization ID',
|
|
1417
|
-
'--team-id <id> Slack team ID',
|
|
1418
|
-
'--token <token> Slack access token (stored in tokens_json)',
|
|
1419
|
-
'--tokens-json <json> Raw tokens_json payload',
|
|
1420
|
-
'--status <status> Integration status (default: active)',
|
|
1421
|
-
],
|
|
1422
|
-
},
|
|
1423
|
-
test: {
|
|
1424
|
-
description: 'Test an integration',
|
|
1425
|
-
usage: 'eve integrations test <integration_id>',
|
|
1426
|
-
},
|
|
1427
|
-
},
|
|
1428
|
-
examples: [
|
|
1429
|
-
'eve integrations list --org org_xxx',
|
|
1430
|
-
'eve integrations slack connect --org org_xxx --team-id T123 --token xoxb-...',
|
|
1431
|
-
],
|
|
1432
|
-
},
|
|
1433
|
-
chat: {
|
|
1434
|
-
description: 'Chat tooling for gateway testing.',
|
|
1435
|
-
usage: 'eve chat <subcommand> [options]',
|
|
1436
|
-
subcommands: {
|
|
1437
|
-
simulate: {
|
|
1438
|
-
description: 'Simulate an inbound chat message',
|
|
1439
|
-
usage: 'eve chat simulate --project <id> --team-id <team> --text <message>',
|
|
1440
|
-
options: [
|
|
1441
|
-
'--project <id> Project ID (uses profile default)',
|
|
1442
|
-
'--provider <name> Provider name (default: slack)',
|
|
1443
|
-
'--team-id <id> Slack team ID',
|
|
1444
|
-
'--channel-id <id> Channel ID',
|
|
1445
|
-
'--user-id <id> User ID',
|
|
1446
|
-
'--thread-key <key> Thread key override',
|
|
1447
|
-
'--metadata <json> Extra metadata JSON',
|
|
1448
|
-
],
|
|
1449
|
-
},
|
|
1450
|
-
},
|
|
1451
|
-
examples: [
|
|
1452
|
-
'eve chat simulate --project proj_xxx --team-id T123 --text "hello"',
|
|
1453
|
-
],
|
|
1454
|
-
},
|
|
1455
|
-
};
|
|
1456
|
-
function showMainHelp() {
|
|
1457
|
-
console.log('Eve Horizon CLI');
|
|
1458
|
-
console.log('');
|
|
1459
|
-
console.log('Usage: eve <command> [subcommand] [options]');
|
|
1460
|
-
console.log('');
|
|
1461
|
-
console.log('Getting Started:');
|
|
1462
|
-
console.log(' init Initialize a new project from template');
|
|
1463
|
-
console.log('');
|
|
1464
|
-
console.log('Commands:');
|
|
1465
|
-
console.log(' org Manage organizations');
|
|
1466
|
-
console.log(' project Manage projects');
|
|
1467
|
-
console.log(' manifest Validate manifests (schema, secrets)');
|
|
1468
|
-
console.log(' job Manage jobs (create, list, show, update, claim, etc.)');
|
|
1469
|
-
console.log(' env Manage environments (list, show, deploy)');
|
|
1470
|
-
console.log(' build Manage builds (create, run, logs, artifacts)');
|
|
1471
|
-
console.log(' release Manage and inspect releases');
|
|
1472
|
-
console.log(' api Explore API sources and call endpoints');
|
|
1473
|
-
console.log(' db Inspect env DB schema, RLS, and SQL');
|
|
1474
|
-
console.log(' pipeline Inspect manifest pipelines (list, show)');
|
|
1475
|
-
console.log(' workflow Inspect manifest workflows (list, show)');
|
|
1476
|
-
console.log(' event Emit and inspect events (app integration)');
|
|
1477
|
-
console.log(' secrets Manage secrets (project/org/user scope)');
|
|
1478
|
-
console.log(' harness Inspect harnesses and auth status');
|
|
1479
|
-
console.log(' agents Inspect agent policy and harness capabilities');
|
|
1480
|
-
console.log(' integrations Manage chat integrations (Slack)');
|
|
1481
|
-
console.log(' chat Simulate chat messages (gateway testing)');
|
|
1482
|
-
console.log(' profile Manage CLI profiles (API URL, defaults)');
|
|
1483
|
-
console.log(' auth Authentication (login, logout, status)');
|
|
1484
|
-
console.log(' admin User and identity management (invite)');
|
|
1485
|
-
console.log(' skills Install skills from skills.txt (openskills --universal)');
|
|
1486
|
-
console.log(' system System health and status checks');
|
|
1487
|
-
console.log('');
|
|
1488
|
-
console.log('Global options:');
|
|
1489
|
-
console.log(' --help Show help for command');
|
|
1490
|
-
console.log(' --api-url <url> Override API URL');
|
|
1491
|
-
console.log(' --profile <name> Use named repo profile');
|
|
1492
|
-
console.log(' --org <id> Override default org');
|
|
1493
|
-
console.log(' --project <id> Override default project');
|
|
1494
|
-
console.log(' --json Output as JSON');
|
|
1495
|
-
console.log('');
|
|
1496
|
-
console.log('Examples:');
|
|
1497
|
-
console.log(' eve org ensure "My Company"');
|
|
1498
|
-
console.log(' eve project ensure --name my-app --slug MyApp --repo-url https://github.com/org/repo');
|
|
1499
|
-
console.log(' eve job create --description "Fix the bug in auth.ts"');
|
|
1500
|
-
console.log(' eve job list --phase ready');
|
|
1501
|
-
console.log(' eve job show MyProj-abc123');
|
|
1502
|
-
console.log('');
|
|
1503
|
-
console.log('Run "eve <command> --help" for more information on a command.');
|
|
1504
|
-
}
|
|
1505
|
-
function showCommandHelp(command) {
|
|
1506
|
-
const help = exports.HELP[command];
|
|
1507
|
-
if (!help) {
|
|
1508
|
-
console.log(`Unknown command: ${command}`);
|
|
1509
|
-
console.log('Run "eve --help" for available commands.');
|
|
1510
|
-
return;
|
|
1511
|
-
}
|
|
1512
|
-
console.log(`eve ${command} - ${help.description.split('\n')[0]}`);
|
|
1513
|
-
console.log('');
|
|
1514
|
-
if (help.description.includes('\n')) {
|
|
1515
|
-
console.log(help.description);
|
|
1516
|
-
console.log('');
|
|
1517
|
-
}
|
|
1518
|
-
console.log(`Usage: ${help.usage}`);
|
|
1519
|
-
console.log('');
|
|
1520
|
-
if (help.subcommands) {
|
|
1521
|
-
console.log('Subcommands:');
|
|
1522
|
-
const maxLen = Math.max(...Object.keys(help.subcommands).map(k => k.length));
|
|
1523
|
-
for (const [name, sub] of Object.entries(help.subcommands)) {
|
|
1524
|
-
console.log(` ${name.padEnd(maxLen + 2)} ${sub.description}`);
|
|
1525
|
-
}
|
|
1526
|
-
console.log('');
|
|
1527
|
-
}
|
|
1528
|
-
if (help.examples && help.examples.length > 0) {
|
|
1529
|
-
console.log('Examples:');
|
|
1530
|
-
help.examples.forEach(ex => console.log(` ${ex}`));
|
|
1531
|
-
console.log('');
|
|
1532
|
-
}
|
|
1533
|
-
console.log(`Run "eve ${command} <subcommand> --help" for subcommand details.`);
|
|
1534
|
-
}
|
|
1535
|
-
function showSubcommandHelp(command, subcommand) {
|
|
1536
|
-
const cmdHelp = exports.HELP[command];
|
|
1537
|
-
if (!cmdHelp) {
|
|
1538
|
-
console.log(`Unknown command: ${command}`);
|
|
1539
|
-
return;
|
|
1540
|
-
}
|
|
1541
|
-
const subHelp = cmdHelp.subcommands?.[subcommand];
|
|
1542
|
-
if (!subHelp) {
|
|
1543
|
-
console.log(`Unknown subcommand: ${command} ${subcommand}`);
|
|
1544
|
-
console.log(`Run "eve ${command} --help" for available subcommands.`);
|
|
1545
|
-
return;
|
|
1546
|
-
}
|
|
1547
|
-
console.log(`eve ${command} ${subcommand} - ${subHelp.description}`);
|
|
1548
|
-
console.log('');
|
|
1549
|
-
console.log(`Usage: ${subHelp.usage}`);
|
|
1550
|
-
if (subHelp.options && subHelp.options.length > 0) {
|
|
1551
|
-
console.log('');
|
|
1552
|
-
console.log('Options:');
|
|
1553
|
-
subHelp.options.forEach(opt => console.log(` ${opt}`));
|
|
1554
|
-
}
|
|
1555
|
-
if (subHelp.examples && subHelp.examples.length > 0) {
|
|
1556
|
-
console.log('');
|
|
1557
|
-
console.log('Examples:');
|
|
1558
|
-
subHelp.examples.forEach(ex => console.log(` ${ex}`));
|
|
1559
|
-
}
|
|
1560
|
-
}
|
|
1561
|
-
function shouldShowHelp(subcommand, flags) {
|
|
1562
|
-
if (flags.help || flags.h) {
|
|
1563
|
-
return subcommand ? 'subcommand' : 'command';
|
|
1564
|
-
}
|
|
1565
|
-
if (subcommand === '--help' || subcommand === '-h') {
|
|
1566
|
-
return 'command';
|
|
1567
|
-
}
|
|
1568
|
-
if (!subcommand) {
|
|
1569
|
-
return 'command';
|
|
1570
|
-
}
|
|
1571
|
-
return false;
|
|
1572
|
-
}
|