@elevasis/sdk 1.24.0 → 1.25.0
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/cli.cjs +1178 -1039
- package/dist/index.d.ts +4760 -4567
- package/dist/index.js +989 -2332
- package/dist/node/index.d.ts +660 -1323
- package/dist/node/index.js +1 -1
- package/dist/test-utils/index.d.ts +4101 -4115
- package/dist/test-utils/index.js +1724 -3471
- package/dist/types/worker/index.d.ts +3 -2
- package/dist/types/worker/platform.d.ts +2 -2
- package/dist/worker/index.js +394 -2448
- package/package.json +2 -2
- package/reference/cli.mdx +1107 -808
- package/reference/scaffold/recipes/customize-crm-actions.md +45 -46
- package/reference/scaffold/recipes/extend-crm.md +253 -255
- package/reference/scaffold/recipes/index.md +43 -44
- package/reference/scaffold/reference/contracts.md +976 -1063
package/reference/cli.mdx
CHANGED
|
@@ -1,808 +1,1107 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: CLI Reference
|
|
3
|
-
description: Full reference for every elevasis-sdk CLI command -- validate, deploy, execute, inspect resources, and manage Projects through the canonical SDK CLI surface
|
|
4
|
-
loadWhen: "Running CLI operations"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
The `elevasis-sdk` CLI is the primary interface for working with your Elevasis SDK project. Install it as part of `@elevasis/sdk` and use it to validate resource definitions, deploy to the platform, inspect execution history, and manage Projects through `project:*`.
|
|
8
|
-
|
|
9
|
-
**Installation:**
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
pnpm add @elevasis/sdk
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
After installation, the `elevasis-sdk` binary is available in your project's `node_modules/.bin/`. Most commands require `ELEVASIS_PLATFORM_KEY` to be set in your environment or a `.env` file.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## elevasis-sdk check
|
|
20
|
-
|
|
21
|
-
Validate all resource definitions in your project without deploying.
|
|
22
|
-
|
|
23
|
-
**Synopsis:**
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
elevasis-sdk check
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Behavior:**
|
|
30
|
-
|
|
31
|
-
- Imports your `src/index.ts` and runs it through `ResourceRegistry` validation
|
|
32
|
-
- Catches the same errors that the platform catches at deploy time:
|
|
33
|
-
- Duplicate `resourceId` within the organization
|
|
34
|
-
- Invalid model configuration (temperature and token bounds)
|
|
35
|
-
- `ExecutionInterface` form fields not matching `inputSchema`
|
|
36
|
-
- Broken workflow step chains (`next` referencing non-existent steps)
|
|
37
|
-
- Relationship declarations referencing non-existent resources
|
|
38
|
-
- Exits with code 0 on success, code 1 on validation failure
|
|
39
|
-
|
|
40
|
-
**Flags:**
|
|
41
|
-
|
|
42
|
-
| Flag | Description |
|
|
43
|
-
| ------------------- | ------------------------- |
|
|
44
|
-
| `--api-url <url>` | Override the API base URL |
|
|
45
|
-
|
|
46
|
-
**Example output (success):**
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
$ elevasis-sdk check
|
|
50
|
-
|
|
51
|
-
Validating... done (4 resources, 0 errors)
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
**Example output (failure):**
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
$ elevasis-sdk check
|
|
58
|
-
|
|
59
|
-
Validating...
|
|
60
|
-
ERROR Duplicate resource ID 'onboard-client' in organization 'Acme Corp'
|
|
61
|
-
ERROR Workflow step 'send-email' references non-existent next step 'notify'
|
|
62
|
-
|
|
63
|
-
2 errors.
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## elevasis-sdk deploy
|
|
69
|
-
|
|
70
|
-
Bundle your project with esbuild and deploy it to the Elevasis platform.
|
|
71
|
-
|
|
72
|
-
**Synopsis:**
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
elevasis-sdk deploy
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Behavior:**
|
|
79
|
-
|
|
80
|
-
- Authenticates with `ELEVASIS_PLATFORM_KEY` and resolves your organization name
|
|
81
|
-
- Runs the same `ResourceRegistry` validation as `elevasis-sdk check`
|
|
82
|
-
- Bundles your `src/index.ts` and all dependencies into a single self-contained JS file (`dist/bundle.js`, approximately 50-200 KB)
|
|
83
|
-
- Uploads the bundle plus resource metadata to `POST /api/external/deploy`
|
|
84
|
-
- Streams deploy status and prints the result
|
|
85
|
-
- Resources are live immediately after a successful deploy
|
|
86
|
-
|
|
87
|
-
**Flags:**
|
|
88
|
-
|
|
89
|
-
| Flag | Description |
|
|
90
|
-
| ------------------- | ------------------------------------------------------------------------- |
|
|
91
|
-
| `--api-url <url>` | Override the API base URL (default: production) |
|
|
92
|
-
| `--prod` | Force production target, overriding `NODE_ENV=development` (internal use) |
|
|
93
|
-
|
|
94
|
-
**Environment variables:**
|
|
95
|
-
|
|
96
|
-
| Variable | Description |
|
|
97
|
-
| ----------------------- | ----------------------------------- |
|
|
98
|
-
| `ELEVASIS_PLATFORM_KEY` | Required. Your `sk_...` API key |
|
|
99
|
-
| `ELEVASIS_API_URL` | Optional. Override the API base URL |
|
|
100
|
-
|
|
101
|
-
**Example output (success):**
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
$ elevasis-sdk deploy
|
|
105
|
-
|
|
106
|
-
Authenticating... done (acme-corp)
|
|
107
|
-
Validating... done (4 resources, 0 errors)
|
|
108
|
-
Bundling... done (142 KB)
|
|
109
|
-
Uploading... done
|
|
110
|
-
|
|
111
|
-
Deployed! 4 resources live.
|
|
112
|
-
Deployment: deploy_abc123
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**Example output (validation failure):**
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
$ elevasis-sdk deploy
|
|
119
|
-
|
|
120
|
-
Authenticating... done (acme-corp)
|
|
121
|
-
Validating...
|
|
122
|
-
ERROR Duplicate resource ID 'onboard-client' in organization 'Acme Corp'
|
|
123
|
-
ERROR Workflow step 'send-email' references non-existent next step 'notify'
|
|
124
|
-
|
|
125
|
-
2 errors. Deploy aborted.
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## elevasis-sdk exec
|
|
131
|
-
|
|
132
|
-
Execute a deployed resource by ID.
|
|
133
|
-
|
|
134
|
-
**Synopsis:**
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
elevasis-sdk exec <resource> --input '{...}'
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**Behavior:**
|
|
141
|
-
|
|
142
|
-
- Executes the named resource synchronously by default and streams the result
|
|
143
|
-
- Use `--async` to return an `executionId` immediately and poll for completion
|
|
144
|
-
- `--input` accepts a JSON string matching the resource's `inputSchema`
|
|
145
|
-
- Organization is derived from your API key -- no org prefix needed
|
|
146
|
-
|
|
147
|
-
**Flags:**
|
|
148
|
-
|
|
149
|
-
| Flag | Description |
|
|
150
|
-
| ------------------- | ------------------------------------------------------- |
|
|
151
|
-
| `--input <json>` | JSON input matching the resource's input schema |
|
|
152
|
-
| `--async` | Execute asynchronously, return execution ID immediately |
|
|
153
|
-
| `--json` | Output raw JSON instead of formatted display |
|
|
154
|
-
| `--api-url <url>` | Override the API base URL |
|
|
155
|
-
|
|
156
|
-
**Example:**
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
elevasis-sdk exec onboard-client --input '{"clientName": "Jane", "email": "jane@example.com"}'
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
```
|
|
163
|
-
Executing onboard-client...
|
|
164
|
-
|
|
165
|
-
Status: completed
|
|
166
|
-
Duration: 1.4s
|
|
167
|
-
|
|
168
|
-
Output:
|
|
169
|
-
{
|
|
170
|
-
"success": true,
|
|
171
|
-
"clientId": "client_1708521600000",
|
|
172
|
-
"welcomeEmailSent": true
|
|
173
|
-
}
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
**Async example:**
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
elevasis-sdk exec onboard-client --input '{"clientName": "Jane"}' --async
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
```
|
|
183
|
-
Execution started: exec_550e8400
|
|
184
|
-
Poll with: elevasis-sdk execution onboard-client exec_550e8400
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## elevasis-sdk resources
|
|
190
|
-
|
|
191
|
-
List all deployed resources for your organization.
|
|
192
|
-
|
|
193
|
-
**Synopsis:**
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
elevasis-sdk resources
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
**Behavior:**
|
|
200
|
-
|
|
201
|
-
- Lists all resources registered to your organization on the platform
|
|
202
|
-
- In production, only `status: 'prod'` resources are shown
|
|
203
|
-
- Displays resource ID, type, name, and status
|
|
204
|
-
|
|
205
|
-
**Flags:**
|
|
206
|
-
|
|
207
|
-
| Flag | Description |
|
|
208
|
-
| ------------------- | ------------------------- |
|
|
209
|
-
| `--json` | Output raw JSON |
|
|
210
|
-
| `--api-url <url>` | Override the API base URL |
|
|
211
|
-
|
|
212
|
-
**Example output:**
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
$ elevasis-sdk resources
|
|
216
|
-
|
|
217
|
-
onboard-client workflow Onboard Client prod
|
|
218
|
-
send-report workflow Send Weekly Report prod
|
|
219
|
-
email-assistant agent Email Assistant prod
|
|
220
|
-
support-bot agent Support Bot dev
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## elevasis-sdk executions
|
|
226
|
-
|
|
227
|
-
View execution history for a resource.
|
|
228
|
-
|
|
229
|
-
**Synopsis:**
|
|
230
|
-
|
|
231
|
-
```
|
|
232
|
-
elevasis-sdk executions [resource]
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
**Behavior:**
|
|
236
|
-
|
|
237
|
-
- Lists recent executions for the specified resource
|
|
238
|
-
- If `resource` is omitted, lists executions across all resources
|
|
239
|
-
- Supports filtering by status and limiting result count
|
|
240
|
-
|
|
241
|
-
**Flags:**
|
|
242
|
-
|
|
243
|
-
| Flag | Description |
|
|
244
|
-
| --------------------- | --------------------------------------------------------------- |
|
|
245
|
-
| `--limit <n>` | Maximum number of executions to return (default: 20) |
|
|
246
|
-
| `--status <status>` | Filter by status: `running`, `completed`, `failed`, `cancelled` |
|
|
247
|
-
| `--json` | Output raw JSON |
|
|
248
|
-
| `--api-url <url>` | Override the API base URL |
|
|
249
|
-
|
|
250
|
-
**Example:**
|
|
251
|
-
|
|
252
|
-
```bash
|
|
253
|
-
elevasis-sdk executions onboard-client --limit 5
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
```
|
|
257
|
-
exec_abc001 completed 2026-02-25 14:32:01 1.2s
|
|
258
|
-
exec_abc002 completed 2026-02-25 13:18:44 0.9s
|
|
259
|
-
exec_abc003 failed 2026-02-25 12:05:22 0.3s
|
|
260
|
-
exec_abc004 completed 2026-02-24 17:51:09 1.8s
|
|
261
|
-
exec_abc005 completed 2026-02-24 16:30:55 1.1s
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
## elevasis-sdk execution
|
|
267
|
-
|
|
268
|
-
View full detail for a single execution.
|
|
269
|
-
|
|
270
|
-
**Synopsis:**
|
|
271
|
-
|
|
272
|
-
```
|
|
273
|
-
elevasis-sdk execution <resource> <id>
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
**Behavior:**
|
|
277
|
-
|
|
278
|
-
- Shows the complete execution record: input, output, logs, duration, and error (if any)
|
|
279
|
-
- Use `--json` to get the raw JSON response for programmatic use
|
|
280
|
-
|
|
281
|
-
**Flags:**
|
|
282
|
-
|
|
283
|
-
| Flag | Description |
|
|
284
|
-
| ------------------- | ------------------------- |
|
|
285
|
-
| `--json` | Output raw JSON |
|
|
286
|
-
| `--api-url <url>` | Override the API base URL |
|
|
287
|
-
|
|
288
|
-
**Example:**
|
|
289
|
-
|
|
290
|
-
```bash
|
|
291
|
-
elevasis-sdk execution onboard-client exec_abc001
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
```
|
|
295
|
-
Resource: onboard-client
|
|
296
|
-
Status: completed
|
|
297
|
-
Started: 2026-02-25 14:32:01
|
|
298
|
-
Duration: 1.2s
|
|
299
|
-
|
|
300
|
-
Input:
|
|
301
|
-
{
|
|
302
|
-
"clientName": "Jane",
|
|
303
|
-
"email": "jane@example.com"
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
Output:
|
|
307
|
-
{
|
|
308
|
-
"success": true,
|
|
309
|
-
"clientId": "client_1708521600000",
|
|
310
|
-
"welcomeEmailSent": true
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
Logs:
|
|
314
|
-
[14:32:01.123] Starting onboard-client workflow
|
|
315
|
-
[14:32:01.456] Created client record
|
|
316
|
-
[14:32:01.891] Welcome email sent to jane@example.com
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
---
|
|
320
|
-
|
|
321
|
-
## elevasis-sdk deployments
|
|
322
|
-
|
|
323
|
-
List all deployments for your organization.
|
|
324
|
-
|
|
325
|
-
**Synopsis:**
|
|
326
|
-
|
|
327
|
-
```
|
|
328
|
-
elevasis-sdk deployments
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
**Behavior:**
|
|
332
|
-
|
|
333
|
-
- Shows deployment history with status, timestamp, and resource count
|
|
334
|
-
- Active deployment is marked; previous deployments show as `stopped`
|
|
335
|
-
|
|
336
|
-
**Flags:**
|
|
337
|
-
|
|
338
|
-
| Flag | Description |
|
|
339
|
-
| ------------------- | ------------------------- |
|
|
340
|
-
| `--json` | Output raw JSON |
|
|
341
|
-
| `--api-url <url>` | Override the API base URL |
|
|
342
|
-
|
|
343
|
-
**Example output:**
|
|
344
|
-
|
|
345
|
-
```
|
|
346
|
-
$ elevasis-sdk deployments
|
|
347
|
-
|
|
348
|
-
deploy_abc123 active 2026-02-25 14:00:00 4 resources
|
|
349
|
-
deploy_abc122 stopped 2026-02-24 09:30:00 3 resources
|
|
350
|
-
deploy_abc121 stopped 2026-02-23 11:15:00 3 resources
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
---
|
|
354
|
-
|
|
355
|
-
## elevasis-sdk describe
|
|
356
|
-
|
|
357
|
-
Show the definition of a deployed resource.
|
|
358
|
-
|
|
359
|
-
**Synopsis:**
|
|
360
|
-
|
|
361
|
-
```
|
|
362
|
-
elevasis-sdk describe <resource>
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
**Behavior:**
|
|
366
|
-
|
|
367
|
-
- Displays resource metadata: name, type, description, status, and domains
|
|
368
|
-
- Shows the full `inputSchema` and `outputSchema` as JSON
|
|
369
|
-
- Type is color-coded: yellow for workflows, magenta for agents
|
|
370
|
-
|
|
371
|
-
**Flags:**
|
|
372
|
-
|
|
373
|
-
| Flag | Description |
|
|
374
|
-
| ------------------- | ------------------------- |
|
|
375
|
-
| `--json` | Output raw JSON response |
|
|
376
|
-
| `--api-url <url>` | Override the API base URL |
|
|
377
|
-
|
|
378
|
-
**Example:**
|
|
379
|
-
|
|
380
|
-
```bash
|
|
381
|
-
elevasis-sdk describe onboard-client
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
```
|
|
385
|
-
onboard-client [workflow]
|
|
386
|
-
|
|
387
|
-
Name: Onboard Client
|
|
388
|
-
Description: Creates a client record and sends a welcome email
|
|
389
|
-
Status: prod
|
|
390
|
-
Domains: crm, email
|
|
391
|
-
|
|
392
|
-
Input Schema:
|
|
393
|
-
{
|
|
394
|
-
"type": "object",
|
|
395
|
-
"properties": {
|
|
396
|
-
"clientName": { "type": "string" },
|
|
397
|
-
"email": { "type": "string", "format": "email" }
|
|
398
|
-
},
|
|
399
|
-
"required": ["clientName", "email"]
|
|
400
|
-
}
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
---
|
|
404
|
-
|
|
405
|
-
## elevasis-sdk creds
|
|
406
|
-
|
|
407
|
-
Manage credentials for your project.
|
|
408
|
-
|
|
409
|
-
**Synopsis:**
|
|
410
|
-
|
|
411
|
-
```
|
|
412
|
-
elevasis-sdk creds list
|
|
413
|
-
elevasis-sdk creds set <key> <value>
|
|
414
|
-
elevasis-sdk creds remove <key>
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
**Behavior:**
|
|
418
|
-
|
|
419
|
-
- `list` -- display all credentials configured for the project
|
|
420
|
-
- `set` -- add or update a credential
|
|
421
|
-
- `remove` -- delete a credential
|
|
422
|
-
|
|
423
|
-
**Flags:**
|
|
424
|
-
|
|
425
|
-
| Flag | Description |
|
|
426
|
-
| ------------------- | ------------------------- |
|
|
427
|
-
| `--api-url <url>` | Override the API base URL |
|
|
428
|
-
|
|
429
|
-
**Examples:**
|
|
430
|
-
|
|
431
|
-
```bash
|
|
432
|
-
elevasis-sdk creds list
|
|
433
|
-
elevasis-sdk creds set OPENAI_API_KEY sk-proj-***
|
|
434
|
-
elevasis-sdk creds remove OPENAI_API_KEY
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
---
|
|
438
|
-
|
|
439
|
-
## elevasis-sdk rename
|
|
440
|
-
|
|
441
|
-
Rename a resource ID across all reference tables in the platform database.
|
|
442
|
-
|
|
443
|
-
**Synopsis:**
|
|
444
|
-
|
|
445
|
-
```
|
|
446
|
-
elevasis-sdk rename <old-id> --to <new-id> [--execute] [--prod]
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
**Behavior:**
|
|
450
|
-
|
|
451
|
-
- Dry-run by default -- shows all affected rows per table without modifying any data
|
|
452
|
-
- Pass `--execute` to perform the rename
|
|
453
|
-
- Org-scoped: only updates rows belonging to your organization
|
|
454
|
-
- Updates resource references across 6 tables:
|
|
455
|
-
|
|
456
|
-
| Table | Column(s) updated |
|
|
457
|
-
| -------------------- | ----------------- |
|
|
458
|
-
| `executions` | `resource_id` |
|
|
459
|
-
| `sessions` | `resource_id` |
|
|
460
|
-
| `workflow_configs` | `resource_id` |
|
|
461
|
-
| `workflow_schedules` | `resource_id` |
|
|
462
|
-
| `execution_events` | `resource_id` |
|
|
463
|
-
| `session_events` | `resource_id` |
|
|
464
|
-
|
|
465
|
-
**Flags:**
|
|
466
|
-
|
|
467
|
-
| Flag | Description |
|
|
468
|
-
| ------------------- | --------------------------------------- |
|
|
469
|
-
| `--to <new-id>` | Required. The new resource ID |
|
|
470
|
-
| `--execute` | Perform the rename (default is dry-run) |
|
|
471
|
-
| `--prod` | Target the production environment |
|
|
472
|
-
| `--api-url <url>` | Override the API base URL |
|
|
473
|
-
|
|
474
|
-
**Example (dry-run):**
|
|
475
|
-
|
|
476
|
-
```bash
|
|
477
|
-
elevasis-sdk rename ist-upload-workflow --to ist-upload-contacts-workflow
|
|
478
|
-
```
|
|
479
|
-
|
|
480
|
-
```
|
|
481
|
-
Dry run — no changes made.
|
|
482
|
-
|
|
483
|
-
Rows that would be updated:
|
|
484
|
-
executions 6
|
|
485
|
-
sessions 0
|
|
486
|
-
workflow_configs 0
|
|
487
|
-
workflow_schedules 0
|
|
488
|
-
execution_events 0
|
|
489
|
-
session_events 0
|
|
490
|
-
|
|
491
|
-
Total: 6 rows
|
|
492
|
-
|
|
493
|
-
Re-run with --execute to apply changes.
|
|
494
|
-
```
|
|
495
|
-
|
|
496
|
-
**Example (execute):**
|
|
497
|
-
|
|
498
|
-
```bash
|
|
499
|
-
elevasis-sdk rename ist-upload-workflow --to ist-upload-contacts-workflow --execute
|
|
500
|
-
```
|
|
501
|
-
|
|
502
|
-
**Implementation:** `packages/sdk/src/cli/commands/rename.ts` -- delegates to `POST /api/external/resources/rename`
|
|
503
|
-
|
|
504
|
-
---
|
|
505
|
-
|
|
506
|
-
## elevasis-sdk project:\*
|
|
507
|
-
|
|
508
|
-
`elevasis-sdk project:*` is the canonical project-management surface. Use it for project, milestone, task, and note operations whether the caller is a human, a scripted workflow, or a slash-command router like `/project`.
|
|
509
|
-
|
|
510
|
-
This CLI family is SDK-first, but it is not semantically standalone. It operates on the same Organization OS contract that the shared delivery UI uses:
|
|
511
|
-
|
|
512
|
-
- UI manifest key: `delivery`
|
|
513
|
-
- Organization model feature ID: `projects`
|
|
514
|
-
- Default surface: `projects.index`
|
|
515
|
-
- Semantic domain fields: `organizationModel.delivery`
|
|
516
|
-
- Core entity/capability IDs: `delivery.project`, `delivery.milestone`, `delivery.task`, `delivery.projects.view`
|
|
517
|
-
|
|
518
|
-
### Projects
|
|
519
|
-
|
|
520
|
-
```bash
|
|
521
|
-
elevasis-sdk project:list
|
|
522
|
-
elevasis-sdk project:get <id>
|
|
523
|
-
elevasis-sdk project:create --name "Website Refresh" --kind client_engagement
|
|
524
|
-
elevasis-sdk project:update <id> --status completed
|
|
525
|
-
elevasis-sdk project:delete <id>
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
**Behavior:**
|
|
529
|
-
|
|
530
|
-
- `project:list` filters by `--kind` and `--status`
|
|
531
|
-
- `project:get` returns a single project
|
|
532
|
-
- `project:create` and `project:update` operate on `/api/external/projects`
|
|
533
|
-
|
|
534
|
-
### Milestones
|
|
535
|
-
|
|
536
|
-
```bash
|
|
537
|
-
elevasis-sdk project:milestone:list --project <id>
|
|
538
|
-
elevasis-sdk project:milestone:create --project <id> --name "Phase 1"
|
|
539
|
-
elevasis-sdk project:milestone:update <id> --status completed
|
|
540
|
-
elevasis-sdk project:milestone:update <id> --description "Updated scope description"
|
|
541
|
-
elevasis-sdk project:milestone:delete <id>
|
|
542
|
-
```
|
|
543
|
-
|
|
544
|
-
`project:milestone:update` accepts `--description` to set or clear the milestone description. Passing an empty string clears the field, matching `project:task:update --description` semantics.
|
|
545
|
-
|
|
546
|
-
### Tasks
|
|
547
|
-
|
|
548
|
-
```bash
|
|
549
|
-
elevasis-sdk project:task:list --project <id>
|
|
550
|
-
elevasis-sdk project:task:get <id>
|
|
551
|
-
elevasis-sdk project:task:create --project <id> --title "Implement API"
|
|
552
|
-
elevasis-sdk project:task:update <id> --status in_progress
|
|
553
|
-
elevasis-sdk project:task:delete <id>
|
|
554
|
-
```
|
|
555
|
-
|
|
556
|
-
Task commands also expose agent-oriented resume state:
|
|
557
|
-
|
|
558
|
-
```bash
|
|
559
|
-
elevasis-sdk project:task:resume <id> --pretty
|
|
560
|
-
elevasis-sdk project:task:save <id> --current-state "Implemented the route layer"
|
|
561
|
-
```
|
|
562
|
-
|
|
563
|
-
- `project:task:resume` reads the task's `resume_context`
|
|
564
|
-
- `project:task:save` merges fields into `resume_context`
|
|
565
|
-
- these commands are the CLI counterpart to `/work resume` and `/work save` style flows
|
|
566
|
-
|
|
567
|
-
### Notes
|
|
568
|
-
|
|
569
|
-
```bash
|
|
570
|
-
elevasis-sdk project:note:list --project <id>
|
|
571
|
-
elevasis-sdk project:note:create --project <id> --content "Client approved scope"
|
|
572
|
-
elevasis-sdk project:note:create --project <id> --type agent_learning --content "Learned X"
|
|
573
|
-
elevasis-sdk project:note:update <id> --content "Updated status"
|
|
574
|
-
elevasis-sdk project:note:delete <id>
|
|
575
|
-
```
|
|
576
|
-
|
|
577
|
-
The `--type` flag accepts: `call_note`, `status_update`, `issue`, `blocker`, `agent_learning`. The `agent_learning` type is the canonical way for agents to record durable skill observations. Accepted values are derived from `NoteTypeSchema` in `packages/core/src/projects/api-schemas.ts` -- that schema is the source of truth; the CLI help text is generated from it to prevent drift.
|
|
578
|
-
|
|
579
|
-
### Requests
|
|
580
|
-
|
|
581
|
-
```bash
|
|
582
|
-
elevasis-sdk request:submit --input-file ./tmp/request-report.json
|
|
583
|
-
elevasis-sdk request:submit --input '{"type":"bug","category":"sdk","severity":"high","title":"..."}'
|
|
584
|
-
```
|
|
585
|
-
|
|
586
|
-
Submits a structured request report to `POST /api/external/requests`. The payload is validated against `CreateRequestInputSchema` before the network call.
|
|
587
|
-
|
|
588
|
-
**Payload enum values** (inline in `--help` output; sourced from `packages/core/src/requests/api-schemas.ts`):
|
|
589
|
-
|
|
590
|
-
| Field | Accepted values |
|
|
591
|
-
| ---------- | ------------------------------------------------------------------------------------- |
|
|
592
|
-
| `type` | Values from `RequestTypeEnum` -- see `request:submit --help` for the current list |
|
|
593
|
-
| `category` | Values from `RequestCategoryEnum` -- see `request:submit --help` for the current list |
|
|
594
|
-
| `severity` | Values from `RequestSeverityEnum` -- see `request:submit --help` for the current list |
|
|
595
|
-
|
|
596
|
-
**Flags:**
|
|
597
|
-
|
|
598
|
-
| Flag | Description |
|
|
599
|
-
| --------------------------- | ----------------------------------------------------------------------------- |
|
|
600
|
-
| `-i, --input <json>` | Request body as JSON string |
|
|
601
|
-
| `-f, --input-file <path>` | Read body from a JSON file; relative paths resolve against the project root |
|
|
602
|
-
| `--pretty` | Human-readable output instead of raw JSON |
|
|
603
|
-
| `--cleanup-input` | Delete the input file after success (only files under `<projectRoot>/tmp/`) |
|
|
604
|
-
| `--api-url <url>` | Override the API base URL |
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
```
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
```
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
1
|
+
---
|
|
2
|
+
title: CLI Reference
|
|
3
|
+
description: Full reference for every elevasis-sdk CLI command -- validate, deploy, execute, inspect resources, and manage Projects, Notes, Acquisition, Clients, Agents, Sessions, Queues, and Schedules through the canonical SDK CLI surface
|
|
4
|
+
loadWhen: "Running CLI operations"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The `elevasis-sdk` CLI is the primary interface for working with your Elevasis SDK project. Install it as part of `@elevasis/sdk` and use it to validate resource definitions, deploy to the platform, inspect execution history, and manage Projects through `project:*`.
|
|
8
|
+
|
|
9
|
+
**Installation:**
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm add @elevasis/sdk
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
After installation, the `elevasis-sdk` binary is available in your project's `node_modules/.bin/`. Most commands require `ELEVASIS_PLATFORM_KEY` to be set in your environment or a `.env` file.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## elevasis-sdk check
|
|
20
|
+
|
|
21
|
+
Validate all resource definitions in your project without deploying.
|
|
22
|
+
|
|
23
|
+
**Synopsis:**
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
elevasis-sdk check
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Behavior:**
|
|
30
|
+
|
|
31
|
+
- Imports your `src/index.ts` and runs it through `ResourceRegistry` validation
|
|
32
|
+
- Catches the same errors that the platform catches at deploy time:
|
|
33
|
+
- Duplicate `resourceId` within the organization
|
|
34
|
+
- Invalid model configuration (temperature and token bounds)
|
|
35
|
+
- `ExecutionInterface` form fields not matching `inputSchema`
|
|
36
|
+
- Broken workflow step chains (`next` referencing non-existent steps)
|
|
37
|
+
- Relationship declarations referencing non-existent resources
|
|
38
|
+
- Exits with code 0 on success, code 1 on validation failure
|
|
39
|
+
|
|
40
|
+
**Flags:**
|
|
41
|
+
|
|
42
|
+
| Flag | Description |
|
|
43
|
+
| ------------------- | ------------------------- |
|
|
44
|
+
| `--api-url <url>` | Override the API base URL |
|
|
45
|
+
|
|
46
|
+
**Example output (success):**
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
$ elevasis-sdk check
|
|
50
|
+
|
|
51
|
+
Validating... done (4 resources, 0 errors)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Example output (failure):**
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
$ elevasis-sdk check
|
|
58
|
+
|
|
59
|
+
Validating...
|
|
60
|
+
ERROR Duplicate resource ID 'onboard-client' in organization 'Acme Corp'
|
|
61
|
+
ERROR Workflow step 'send-email' references non-existent next step 'notify'
|
|
62
|
+
|
|
63
|
+
2 errors.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## elevasis-sdk deploy
|
|
69
|
+
|
|
70
|
+
Bundle your project with esbuild and deploy it to the Elevasis platform.
|
|
71
|
+
|
|
72
|
+
**Synopsis:**
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
elevasis-sdk deploy
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Behavior:**
|
|
79
|
+
|
|
80
|
+
- Authenticates with `ELEVASIS_PLATFORM_KEY` and resolves your organization name
|
|
81
|
+
- Runs the same `ResourceRegistry` validation as `elevasis-sdk check`
|
|
82
|
+
- Bundles your `src/index.ts` and all dependencies into a single self-contained JS file (`dist/bundle.js`, approximately 50-200 KB)
|
|
83
|
+
- Uploads the bundle plus resource metadata to `POST /api/external/deploy`
|
|
84
|
+
- Streams deploy status and prints the result
|
|
85
|
+
- Resources are live immediately after a successful deploy
|
|
86
|
+
|
|
87
|
+
**Flags:**
|
|
88
|
+
|
|
89
|
+
| Flag | Description |
|
|
90
|
+
| ------------------- | ------------------------------------------------------------------------- |
|
|
91
|
+
| `--api-url <url>` | Override the API base URL (default: production) |
|
|
92
|
+
| `--prod` | Force production target, overriding `NODE_ENV=development` (internal use) |
|
|
93
|
+
|
|
94
|
+
**Environment variables:**
|
|
95
|
+
|
|
96
|
+
| Variable | Description |
|
|
97
|
+
| ----------------------- | ----------------------------------- |
|
|
98
|
+
| `ELEVASIS_PLATFORM_KEY` | Required. Your `sk_...` API key |
|
|
99
|
+
| `ELEVASIS_API_URL` | Optional. Override the API base URL |
|
|
100
|
+
|
|
101
|
+
**Example output (success):**
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
$ elevasis-sdk deploy
|
|
105
|
+
|
|
106
|
+
Authenticating... done (acme-corp)
|
|
107
|
+
Validating... done (4 resources, 0 errors)
|
|
108
|
+
Bundling... done (142 KB)
|
|
109
|
+
Uploading... done
|
|
110
|
+
|
|
111
|
+
Deployed! 4 resources live.
|
|
112
|
+
Deployment: deploy_abc123
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Example output (validation failure):**
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
$ elevasis-sdk deploy
|
|
119
|
+
|
|
120
|
+
Authenticating... done (acme-corp)
|
|
121
|
+
Validating...
|
|
122
|
+
ERROR Duplicate resource ID 'onboard-client' in organization 'Acme Corp'
|
|
123
|
+
ERROR Workflow step 'send-email' references non-existent next step 'notify'
|
|
124
|
+
|
|
125
|
+
2 errors. Deploy aborted.
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## elevasis-sdk exec
|
|
131
|
+
|
|
132
|
+
Execute a deployed resource by ID.
|
|
133
|
+
|
|
134
|
+
**Synopsis:**
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
elevasis-sdk exec <resource> --input '{...}'
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Behavior:**
|
|
141
|
+
|
|
142
|
+
- Executes the named resource synchronously by default and streams the result
|
|
143
|
+
- Use `--async` to return an `executionId` immediately and poll for completion
|
|
144
|
+
- `--input` accepts a JSON string matching the resource's `inputSchema`
|
|
145
|
+
- Organization is derived from your API key -- no org prefix needed
|
|
146
|
+
|
|
147
|
+
**Flags:**
|
|
148
|
+
|
|
149
|
+
| Flag | Description |
|
|
150
|
+
| ------------------- | ------------------------------------------------------- |
|
|
151
|
+
| `--input <json>` | JSON input matching the resource's input schema |
|
|
152
|
+
| `--async` | Execute asynchronously, return execution ID immediately |
|
|
153
|
+
| `--json` | Output raw JSON instead of formatted display |
|
|
154
|
+
| `--api-url <url>` | Override the API base URL |
|
|
155
|
+
|
|
156
|
+
**Example:**
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
elevasis-sdk exec onboard-client --input '{"clientName": "Jane", "email": "jane@example.com"}'
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
Executing onboard-client...
|
|
164
|
+
|
|
165
|
+
Status: completed
|
|
166
|
+
Duration: 1.4s
|
|
167
|
+
|
|
168
|
+
Output:
|
|
169
|
+
{
|
|
170
|
+
"success": true,
|
|
171
|
+
"clientId": "client_1708521600000",
|
|
172
|
+
"welcomeEmailSent": true
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Async example:**
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
elevasis-sdk exec onboard-client --input '{"clientName": "Jane"}' --async
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
Execution started: exec_550e8400
|
|
184
|
+
Poll with: elevasis-sdk execution onboard-client exec_550e8400
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## elevasis-sdk resources
|
|
190
|
+
|
|
191
|
+
List all deployed resources for your organization.
|
|
192
|
+
|
|
193
|
+
**Synopsis:**
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
elevasis-sdk resources
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Behavior:**
|
|
200
|
+
|
|
201
|
+
- Lists all resources registered to your organization on the platform
|
|
202
|
+
- In production, only `status: 'prod'` resources are shown
|
|
203
|
+
- Displays resource ID, type, name, and status
|
|
204
|
+
|
|
205
|
+
**Flags:**
|
|
206
|
+
|
|
207
|
+
| Flag | Description |
|
|
208
|
+
| ------------------- | ------------------------- |
|
|
209
|
+
| `--json` | Output raw JSON |
|
|
210
|
+
| `--api-url <url>` | Override the API base URL |
|
|
211
|
+
|
|
212
|
+
**Example output:**
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
$ elevasis-sdk resources
|
|
216
|
+
|
|
217
|
+
onboard-client workflow Onboard Client prod
|
|
218
|
+
send-report workflow Send Weekly Report prod
|
|
219
|
+
email-assistant agent Email Assistant prod
|
|
220
|
+
support-bot agent Support Bot dev
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## elevasis-sdk executions
|
|
226
|
+
|
|
227
|
+
View execution history for a resource.
|
|
228
|
+
|
|
229
|
+
**Synopsis:**
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
elevasis-sdk executions [resource]
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Behavior:**
|
|
236
|
+
|
|
237
|
+
- Lists recent executions for the specified resource
|
|
238
|
+
- If `resource` is omitted, lists executions across all resources
|
|
239
|
+
- Supports filtering by status and limiting result count
|
|
240
|
+
|
|
241
|
+
**Flags:**
|
|
242
|
+
|
|
243
|
+
| Flag | Description |
|
|
244
|
+
| --------------------- | --------------------------------------------------------------- |
|
|
245
|
+
| `--limit <n>` | Maximum number of executions to return (default: 20) |
|
|
246
|
+
| `--status <status>` | Filter by status: `running`, `completed`, `failed`, `cancelled` |
|
|
247
|
+
| `--json` | Output raw JSON |
|
|
248
|
+
| `--api-url <url>` | Override the API base URL |
|
|
249
|
+
|
|
250
|
+
**Example:**
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
elevasis-sdk executions onboard-client --limit 5
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
exec_abc001 completed 2026-02-25 14:32:01 1.2s
|
|
258
|
+
exec_abc002 completed 2026-02-25 13:18:44 0.9s
|
|
259
|
+
exec_abc003 failed 2026-02-25 12:05:22 0.3s
|
|
260
|
+
exec_abc004 completed 2026-02-24 17:51:09 1.8s
|
|
261
|
+
exec_abc005 completed 2026-02-24 16:30:55 1.1s
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## elevasis-sdk execution
|
|
267
|
+
|
|
268
|
+
View full detail for a single execution.
|
|
269
|
+
|
|
270
|
+
**Synopsis:**
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
elevasis-sdk execution <resource> <id>
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
**Behavior:**
|
|
277
|
+
|
|
278
|
+
- Shows the complete execution record: input, output, logs, duration, and error (if any)
|
|
279
|
+
- Use `--json` to get the raw JSON response for programmatic use
|
|
280
|
+
|
|
281
|
+
**Flags:**
|
|
282
|
+
|
|
283
|
+
| Flag | Description |
|
|
284
|
+
| ------------------- | ------------------------- |
|
|
285
|
+
| `--json` | Output raw JSON |
|
|
286
|
+
| `--api-url <url>` | Override the API base URL |
|
|
287
|
+
|
|
288
|
+
**Example:**
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
elevasis-sdk execution onboard-client exec_abc001
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
Resource: onboard-client
|
|
296
|
+
Status: completed
|
|
297
|
+
Started: 2026-02-25 14:32:01
|
|
298
|
+
Duration: 1.2s
|
|
299
|
+
|
|
300
|
+
Input:
|
|
301
|
+
{
|
|
302
|
+
"clientName": "Jane",
|
|
303
|
+
"email": "jane@example.com"
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
Output:
|
|
307
|
+
{
|
|
308
|
+
"success": true,
|
|
309
|
+
"clientId": "client_1708521600000",
|
|
310
|
+
"welcomeEmailSent": true
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
Logs:
|
|
314
|
+
[14:32:01.123] Starting onboard-client workflow
|
|
315
|
+
[14:32:01.456] Created client record
|
|
316
|
+
[14:32:01.891] Welcome email sent to jane@example.com
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## elevasis-sdk deployments
|
|
322
|
+
|
|
323
|
+
List all deployments for your organization.
|
|
324
|
+
|
|
325
|
+
**Synopsis:**
|
|
326
|
+
|
|
327
|
+
```
|
|
328
|
+
elevasis-sdk deployments
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Behavior:**
|
|
332
|
+
|
|
333
|
+
- Shows deployment history with status, timestamp, and resource count
|
|
334
|
+
- Active deployment is marked; previous deployments show as `stopped`
|
|
335
|
+
|
|
336
|
+
**Flags:**
|
|
337
|
+
|
|
338
|
+
| Flag | Description |
|
|
339
|
+
| ------------------- | ------------------------- |
|
|
340
|
+
| `--json` | Output raw JSON |
|
|
341
|
+
| `--api-url <url>` | Override the API base URL |
|
|
342
|
+
|
|
343
|
+
**Example output:**
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
$ elevasis-sdk deployments
|
|
347
|
+
|
|
348
|
+
deploy_abc123 active 2026-02-25 14:00:00 4 resources
|
|
349
|
+
deploy_abc122 stopped 2026-02-24 09:30:00 3 resources
|
|
350
|
+
deploy_abc121 stopped 2026-02-23 11:15:00 3 resources
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## elevasis-sdk describe
|
|
356
|
+
|
|
357
|
+
Show the definition of a deployed resource.
|
|
358
|
+
|
|
359
|
+
**Synopsis:**
|
|
360
|
+
|
|
361
|
+
```
|
|
362
|
+
elevasis-sdk describe <resource>
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Behavior:**
|
|
366
|
+
|
|
367
|
+
- Displays resource metadata: name, type, description, status, and domains
|
|
368
|
+
- Shows the full `inputSchema` and `outputSchema` as JSON
|
|
369
|
+
- Type is color-coded: yellow for workflows, magenta for agents
|
|
370
|
+
|
|
371
|
+
**Flags:**
|
|
372
|
+
|
|
373
|
+
| Flag | Description |
|
|
374
|
+
| ------------------- | ------------------------- |
|
|
375
|
+
| `--json` | Output raw JSON response |
|
|
376
|
+
| `--api-url <url>` | Override the API base URL |
|
|
377
|
+
|
|
378
|
+
**Example:**
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
elevasis-sdk describe onboard-client
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
```
|
|
385
|
+
onboard-client [workflow]
|
|
386
|
+
|
|
387
|
+
Name: Onboard Client
|
|
388
|
+
Description: Creates a client record and sends a welcome email
|
|
389
|
+
Status: prod
|
|
390
|
+
Domains: crm, email
|
|
391
|
+
|
|
392
|
+
Input Schema:
|
|
393
|
+
{
|
|
394
|
+
"type": "object",
|
|
395
|
+
"properties": {
|
|
396
|
+
"clientName": { "type": "string" },
|
|
397
|
+
"email": { "type": "string", "format": "email" }
|
|
398
|
+
},
|
|
399
|
+
"required": ["clientName", "email"]
|
|
400
|
+
}
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## elevasis-sdk creds
|
|
406
|
+
|
|
407
|
+
Manage credentials for your project.
|
|
408
|
+
|
|
409
|
+
**Synopsis:**
|
|
410
|
+
|
|
411
|
+
```
|
|
412
|
+
elevasis-sdk creds list
|
|
413
|
+
elevasis-sdk creds set <key> <value>
|
|
414
|
+
elevasis-sdk creds remove <key>
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
**Behavior:**
|
|
418
|
+
|
|
419
|
+
- `list` -- display all credentials configured for the project
|
|
420
|
+
- `set` -- add or update a credential
|
|
421
|
+
- `remove` -- delete a credential
|
|
422
|
+
|
|
423
|
+
**Flags:**
|
|
424
|
+
|
|
425
|
+
| Flag | Description |
|
|
426
|
+
| ------------------- | ------------------------- |
|
|
427
|
+
| `--api-url <url>` | Override the API base URL |
|
|
428
|
+
|
|
429
|
+
**Examples:**
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
elevasis-sdk creds list
|
|
433
|
+
elevasis-sdk creds set OPENAI_API_KEY sk-proj-***
|
|
434
|
+
elevasis-sdk creds remove OPENAI_API_KEY
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## elevasis-sdk rename
|
|
440
|
+
|
|
441
|
+
Rename a resource ID across all reference tables in the platform database.
|
|
442
|
+
|
|
443
|
+
**Synopsis:**
|
|
444
|
+
|
|
445
|
+
```
|
|
446
|
+
elevasis-sdk rename <old-id> --to <new-id> [--execute] [--prod]
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
**Behavior:**
|
|
450
|
+
|
|
451
|
+
- Dry-run by default -- shows all affected rows per table without modifying any data
|
|
452
|
+
- Pass `--execute` to perform the rename
|
|
453
|
+
- Org-scoped: only updates rows belonging to your organization
|
|
454
|
+
- Updates resource references across 6 tables:
|
|
455
|
+
|
|
456
|
+
| Table | Column(s) updated |
|
|
457
|
+
| -------------------- | ----------------- |
|
|
458
|
+
| `executions` | `resource_id` |
|
|
459
|
+
| `sessions` | `resource_id` |
|
|
460
|
+
| `workflow_configs` | `resource_id` |
|
|
461
|
+
| `workflow_schedules` | `resource_id` |
|
|
462
|
+
| `execution_events` | `resource_id` |
|
|
463
|
+
| `session_events` | `resource_id` |
|
|
464
|
+
|
|
465
|
+
**Flags:**
|
|
466
|
+
|
|
467
|
+
| Flag | Description |
|
|
468
|
+
| ------------------- | --------------------------------------- |
|
|
469
|
+
| `--to <new-id>` | Required. The new resource ID |
|
|
470
|
+
| `--execute` | Perform the rename (default is dry-run) |
|
|
471
|
+
| `--prod` | Target the production environment |
|
|
472
|
+
| `--api-url <url>` | Override the API base URL |
|
|
473
|
+
|
|
474
|
+
**Example (dry-run):**
|
|
475
|
+
|
|
476
|
+
```bash
|
|
477
|
+
elevasis-sdk rename ist-upload-workflow --to ist-upload-contacts-workflow
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
```
|
|
481
|
+
Dry run — no changes made.
|
|
482
|
+
|
|
483
|
+
Rows that would be updated:
|
|
484
|
+
executions 6
|
|
485
|
+
sessions 0
|
|
486
|
+
workflow_configs 0
|
|
487
|
+
workflow_schedules 0
|
|
488
|
+
execution_events 0
|
|
489
|
+
session_events 0
|
|
490
|
+
|
|
491
|
+
Total: 6 rows
|
|
492
|
+
|
|
493
|
+
Re-run with --execute to apply changes.
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
**Example (execute):**
|
|
497
|
+
|
|
498
|
+
```bash
|
|
499
|
+
elevasis-sdk rename ist-upload-workflow --to ist-upload-contacts-workflow --execute
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
**Implementation:** `packages/sdk/src/cli/commands/rename.ts` -- delegates to `POST /api/external/resources/rename`
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## elevasis-sdk project:\*
|
|
507
|
+
|
|
508
|
+
`elevasis-sdk project:*` is the canonical project-management surface. Use it for project, milestone, task, and note operations whether the caller is a human, a scripted workflow, or a slash-command router like `/project`.
|
|
509
|
+
|
|
510
|
+
This CLI family is SDK-first, but it is not semantically standalone. It operates on the same Organization OS contract that the shared delivery UI uses:
|
|
511
|
+
|
|
512
|
+
- UI manifest key: `delivery`
|
|
513
|
+
- Organization model feature ID: `projects`
|
|
514
|
+
- Default surface: `projects.index`
|
|
515
|
+
- Semantic domain fields: `organizationModel.delivery`
|
|
516
|
+
- Core entity/capability IDs: `delivery.project`, `delivery.milestone`, `delivery.task`, `delivery.projects.view`
|
|
517
|
+
|
|
518
|
+
### Projects
|
|
519
|
+
|
|
520
|
+
```bash
|
|
521
|
+
elevasis-sdk project:list
|
|
522
|
+
elevasis-sdk project:get <id>
|
|
523
|
+
elevasis-sdk project:create --name "Website Refresh" --kind client_engagement
|
|
524
|
+
elevasis-sdk project:update <id> --status completed
|
|
525
|
+
elevasis-sdk project:delete <id>
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
**Behavior:**
|
|
529
|
+
|
|
530
|
+
- `project:list` filters by `--kind` and `--status`
|
|
531
|
+
- `project:get` returns a single project
|
|
532
|
+
- `project:create` and `project:update` operate on `/api/external/projects`
|
|
533
|
+
|
|
534
|
+
### Milestones
|
|
535
|
+
|
|
536
|
+
```bash
|
|
537
|
+
elevasis-sdk project:milestone:list --project <id>
|
|
538
|
+
elevasis-sdk project:milestone:create --project <id> --name "Phase 1"
|
|
539
|
+
elevasis-sdk project:milestone:update <id> --status completed
|
|
540
|
+
elevasis-sdk project:milestone:update <id> --description "Updated scope description"
|
|
541
|
+
elevasis-sdk project:milestone:delete <id>
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
`project:milestone:update` accepts `--description` to set or clear the milestone description. Passing an empty string clears the field, matching `project:task:update --description` semantics.
|
|
545
|
+
|
|
546
|
+
### Tasks
|
|
547
|
+
|
|
548
|
+
```bash
|
|
549
|
+
elevasis-sdk project:task:list --project <id>
|
|
550
|
+
elevasis-sdk project:task:get <id>
|
|
551
|
+
elevasis-sdk project:task:create --project <id> --title "Implement API"
|
|
552
|
+
elevasis-sdk project:task:update <id> --status in_progress
|
|
553
|
+
elevasis-sdk project:task:delete <id>
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
Task commands also expose agent-oriented resume state:
|
|
557
|
+
|
|
558
|
+
```bash
|
|
559
|
+
elevasis-sdk project:task:resume <id> --pretty
|
|
560
|
+
elevasis-sdk project:task:save <id> --current-state "Implemented the route layer"
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
- `project:task:resume` reads the task's `resume_context`
|
|
564
|
+
- `project:task:save` merges fields into `resume_context`
|
|
565
|
+
- these commands are the CLI counterpart to `/work resume` and `/work save` style flows
|
|
566
|
+
|
|
567
|
+
### Notes
|
|
568
|
+
|
|
569
|
+
```bash
|
|
570
|
+
elevasis-sdk project:note:list --project <id>
|
|
571
|
+
elevasis-sdk project:note:create --project <id> --content "Client approved scope"
|
|
572
|
+
elevasis-sdk project:note:create --project <id> --type agent_learning --content "Learned X"
|
|
573
|
+
elevasis-sdk project:note:update <id> --content "Updated status"
|
|
574
|
+
elevasis-sdk project:note:delete <id>
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
The `--type` flag accepts: `call_note`, `status_update`, `issue`, `blocker`, `agent_learning`. The `agent_learning` type is the canonical way for agents to record durable skill observations. Accepted values are derived from `NoteTypeSchema` in `packages/core/src/projects/api-schemas.ts` -- that schema is the source of truth; the CLI help text is generated from it to prevent drift.
|
|
578
|
+
|
|
579
|
+
### Requests
|
|
580
|
+
|
|
581
|
+
```bash
|
|
582
|
+
elevasis-sdk request:submit --input-file ./tmp/request-report.json
|
|
583
|
+
elevasis-sdk request:submit --input '{"type":"bug","category":"sdk","severity":"high","title":"..."}'
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
Submits a structured request report to `POST /api/external/requests`. The payload is validated against `CreateRequestInputSchema` before the network call.
|
|
587
|
+
|
|
588
|
+
**Payload enum values** (inline in `--help` output; sourced from `packages/core/src/requests/api-schemas.ts`):
|
|
589
|
+
|
|
590
|
+
| Field | Accepted values |
|
|
591
|
+
| ---------- | ------------------------------------------------------------------------------------- |
|
|
592
|
+
| `type` | Values from `RequestTypeEnum` -- see `request:submit --help` for the current list |
|
|
593
|
+
| `category` | Values from `RequestCategoryEnum` -- see `request:submit --help` for the current list |
|
|
594
|
+
| `severity` | Values from `RequestSeverityEnum` -- see `request:submit --help` for the current list |
|
|
595
|
+
|
|
596
|
+
**Flags:**
|
|
597
|
+
|
|
598
|
+
| Flag | Description |
|
|
599
|
+
| --------------------------- | ----------------------------------------------------------------------------- |
|
|
600
|
+
| `-i, --input <json>` | Request body as JSON string |
|
|
601
|
+
| `-f, --input-file <path>` | Read body from a JSON file; relative paths resolve against the project root |
|
|
602
|
+
| `--pretty` | Human-readable output instead of raw JSON |
|
|
603
|
+
| `--cleanup-input` | Delete the input file after success (only files under `<projectRoot>/tmp/`) |
|
|
604
|
+
| `--api-url <url>` | Override the API base URL |
|
|
605
|
+
|
|
606
|
+
**Read commands** (added once `request` cleared the 4-point promotion bar):
|
|
607
|
+
|
|
608
|
+
```bash
|
|
609
|
+
elevasis-sdk request:list --status open --severity critical
|
|
610
|
+
elevasis-sdk request:get <id>
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
`request:list` calls `GET /api/external/requests` and `request:get` calls `GET /api/external/requests/:id`. Both default to raw JSON; pass `--pretty` for human-readable output (mirrors `request:submit`). Organization scope is derived from the API key, so `request:get` returns 404 for an id belonging to another tenant -- a cross-tenant id is indistinguishable from a missing one (no existence oracle).
|
|
614
|
+
|
|
615
|
+
| Flag | Description |
|
|
616
|
+
| --------------------- | ----------------------------------------------- |
|
|
617
|
+
| `--status <status>` | Filter list by status (`RequestStatusEnum`) |
|
|
618
|
+
| `--severity <sev>` | Filter list by severity (`RequestSeverityEnum`) |
|
|
619
|
+
| `--project-id <id>` | Filter list by project id |
|
|
620
|
+
| `--limit <n>` | Max rows (1-200, default 50) |
|
|
621
|
+
| `--pretty` | Human-readable output instead of raw JSON |
|
|
622
|
+
| `--api-url <url>` | Override the API base URL |
|
|
623
|
+
|
|
624
|
+
---
|
|
625
|
+
|
|
626
|
+
### Shared Flags
|
|
627
|
+
|
|
628
|
+
Most `project:*` commands support:
|
|
629
|
+
|
|
630
|
+
| Flag | Description |
|
|
631
|
+
| ----------------- | -------------------------------------------------- |
|
|
632
|
+
| `--pretty` | Human-readable terminal output instead of raw JSON |
|
|
633
|
+
| `--api-url <url>` | Override the API base URL |
|
|
634
|
+
|
|
635
|
+
For exact required flags and accepted enum values, see the command source under `packages/sdk/src/cli/commands/project/`.
|
|
636
|
+
|
|
637
|
+
### Command Boundary
|
|
638
|
+
|
|
639
|
+
- `/project` is a convenience router to these `elevasis-sdk project:*` commands. It is not a separate project system.
|
|
640
|
+
- `/work` is for docs-backed in-progress task tracking and session resume, not project CRUD.
|
|
641
|
+
- `/external` is for managing standalone apps in `external/`, not project records inside a deployed system.
|
|
642
|
+
- `/adev` is for implementation, debugging, testing, and platform execution flows. Use it when you need to build or run agent/workflow code rather than update project data.
|
|
643
|
+
|
|
644
|
+
---
|
|
645
|
+
|
|
646
|
+
## elevasis-sdk note:\*
|
|
647
|
+
|
|
648
|
+
`elevasis-sdk note:*` is the agent-facing surface for pushing and reading personal user notes. Workflows and agents use it to surface information -- such as "deal X stalled" or "review run completed" -- directly into a user's Notes panel in the Command Center, without sending an email or notification.
|
|
649
|
+
|
|
650
|
+
Notes are personal to the target user and scoped to the calling organization. The external API surface exposes `GET + POST` only; `note:update` and `note:delete` are not yet available via SDK CLI. Users edit and delete notes through the right-panel view in the Command Center.
|
|
651
|
+
|
|
652
|
+
### note:create
|
|
653
|
+
|
|
654
|
+
Create a personal note for a user.
|
|
655
|
+
|
|
656
|
+
**Synopsis:**
|
|
657
|
+
|
|
658
|
+
```
|
|
659
|
+
elevasis-sdk note:create --content <text>
|
|
660
|
+
[--user <email>]
|
|
661
|
+
[--title <text>]
|
|
662
|
+
[--priority low|normal|high|urgent]
|
|
663
|
+
[--pinned]
|
|
664
|
+
[--source <id>]
|
|
665
|
+
[--api-url <url>] [--pretty]
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
**Flags:**
|
|
669
|
+
|
|
670
|
+
| Flag | Description |
|
|
671
|
+
| ------------------------- | ----------------------------------------------------------------------------------------- |
|
|
672
|
+
| `--content <text>` | Required. The note body text |
|
|
673
|
+
| `--user <email>` | Target user email. Defaults to the API key owner when omitted |
|
|
674
|
+
| `--title <text>` | Optional note title |
|
|
675
|
+
| `--priority <priority>` | Priority level: `low`, `normal` (default), `high`, or `urgent` |
|
|
676
|
+
| `--pinned` | Pin the note to the top of the panel |
|
|
677
|
+
| `--source <id>` | Source identifier -- set this to the workflow or agent ID when calling from agent runtime |
|
|
678
|
+
| `--api-url <url>` | Override the API base URL |
|
|
679
|
+
| `--pretty` | Human-readable terminal output instead of raw JSON |
|
|
680
|
+
|
|
681
|
+
**Behavior:**
|
|
682
|
+
|
|
683
|
+
- Posts to `POST /api/external/user-notes`
|
|
684
|
+
- When `--user` is omitted the note is created for the identity bound to the API key (the caller)
|
|
685
|
+
- When `--user` is provided the platform resolves the email to a Supabase user UUID and verifies the resolved user is an active member of the calling organization before writing
|
|
686
|
+
- The `--source` flag is recorded as the `source` column in `user_notes`; agent runtimes should pass their resource ID here so users can see which workflow created the note
|
|
687
|
+
- Priority `normal` produces no badge in the UI; `high` renders orange, `urgent` renders red, `low` renders dimmed gray
|
|
688
|
+
|
|
689
|
+
**Examples:**
|
|
690
|
+
|
|
691
|
+
```bash
|
|
692
|
+
# Create a note for the API key owner
|
|
693
|
+
elevasis-sdk note:create --content "Deal X has stalled -- follow up needed"
|
|
694
|
+
|
|
695
|
+
# Create a high-priority pinned note for a specific user
|
|
696
|
+
elevasis-sdk note:create \
|
|
697
|
+
--content "Review run completed for batch_abc123" \
|
|
698
|
+
--user ops@acme.com \
|
|
699
|
+
--priority high \
|
|
700
|
+
--pinned \
|
|
701
|
+
--source "report-review-workflow" \
|
|
702
|
+
--pretty
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
```
|
|
706
|
+
Note created
|
|
707
|
+
ID: note_550e8400-...
|
|
708
|
+
Priority: high
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
---
|
|
712
|
+
|
|
713
|
+
### note:list
|
|
714
|
+
|
|
715
|
+
List notes for a user.
|
|
716
|
+
|
|
717
|
+
**Synopsis:**
|
|
718
|
+
|
|
719
|
+
```
|
|
720
|
+
elevasis-sdk note:list --user <email>
|
|
721
|
+
[--priority <p>] [--pinned]
|
|
722
|
+
[--limit <n>] [--offset <n>]
|
|
723
|
+
[--api-url <url>] [--pretty]
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
**Flags:**
|
|
727
|
+
|
|
728
|
+
| Flag | Description |
|
|
729
|
+
| ------------------------- | -------------------------------------------------------- |
|
|
730
|
+
| `--user <email>` | Required. The user whose notes to retrieve |
|
|
731
|
+
| `--priority <priority>` | Filter by priority: `low`, `normal`, `high`, or `urgent` |
|
|
732
|
+
| `--pinned` | Return only pinned notes |
|
|
733
|
+
| `--limit <n>` | Maximum number of results to return |
|
|
734
|
+
| `--offset <n>` | Pagination offset |
|
|
735
|
+
| `--api-url <url>` | Override the API base URL |
|
|
736
|
+
| `--pretty` | Human-readable terminal output instead of raw JSON |
|
|
737
|
+
|
|
738
|
+
**Behavior:**
|
|
739
|
+
|
|
740
|
+
- Queries `GET /api/external/user-notes?user_email=<email>`
|
|
741
|
+
- `--user` is required -- the external GET endpoint requires an explicit user target
|
|
742
|
+
- Results are sorted by the platform: pinned first, then by priority (`urgent` > `high` > `normal` > `low`), then by most recently updated
|
|
743
|
+
- Organization scope is derived from the API key -- only notes belonging to users in the calling organization are returned
|
|
744
|
+
|
|
745
|
+
**Examples:**
|
|
746
|
+
|
|
747
|
+
```bash
|
|
748
|
+
# List all notes for a user
|
|
749
|
+
elevasis-sdk note:list --user ops@acme.com
|
|
750
|
+
|
|
751
|
+
# List only high-priority pinned notes, human-readable
|
|
752
|
+
elevasis-sdk note:list --user ops@acme.com --priority high --pinned --pretty
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
```
|
|
756
|
+
Notes (2):
|
|
757
|
+
|
|
758
|
+
(no title) [pinned] [high]
|
|
759
|
+
ID: note_abc001
|
|
760
|
+
Review run completed for batch_abc123
|
|
761
|
+
|
|
762
|
+
Deal X stalled [pinned] [high]
|
|
763
|
+
ID: note_abc002
|
|
764
|
+
Deal X has stalled -- follow up needed
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
---
|
|
768
|
+
|
|
769
|
+
### Shared Flags
|
|
770
|
+
|
|
771
|
+
| Flag | Description |
|
|
772
|
+
| ------------------- | -------------------------------------------------- |
|
|
773
|
+
| `--pretty` | Human-readable terminal output instead of raw JSON |
|
|
774
|
+
| `--api-url <url>` | Override the API base URL |
|
|
775
|
+
|
|
776
|
+
### Command Boundary
|
|
777
|
+
|
|
778
|
+
- `note:create` and `note:list` operate on the **personal notes** surface -- not project notes. For project-scoped notes use `project:note:*`.
|
|
779
|
+
- `note:update` and `note:delete` are not yet available via SDK CLI. Edit and delete notes using the Notes panel in the Command Center.
|
|
780
|
+
- The Notes panel view (`NotesPanelView`) is registered in the right-panel registry alongside Overview, Recent Executions, and Notifications.
|
|
781
|
+
|
|
782
|
+
**Implementation:** `packages/sdk/src/cli/commands/notes.ts` -- delegates to `POST /api/external/user-notes` and `GET /api/external/user-notes`
|
|
783
|
+
|
|
784
|
+
### Notes Design Contract
|
|
785
|
+
|
|
786
|
+
The following invariants govern the Notes feature and are relevant when building agents or workflows that write notes:
|
|
787
|
+
|
|
788
|
+
- **Scope:** Notes are user-scoped and organization-scoped by default. A user can optionally make a note global, but the default scope is the current org.
|
|
789
|
+
- **Sort order:** Pinned first, then by priority (`urgent` > `high` > `normal` > `low`), then by most recently updated.
|
|
790
|
+
- **Broadcast:** Out of scope. Agents create notes for one resolved user at a time. Broadcast is a notifications concern, not a notes concern.
|
|
791
|
+
- **Retention:** Notes persist until the user explicitly deletes them. There is no TTL and no dismissed state.
|
|
792
|
+
- **Agent creation:** One-to-one only. Pass `--source` with the agent or workflow resource ID so users can trace which resource created the note.
|
|
793
|
+
|
|
794
|
+
---
|
|
795
|
+
|
|
796
|
+
## elevasis-sdk cli
|
|
797
|
+
|
|
798
|
+
Enumerate the full command catalog registered in the CLI at runtime.
|
|
799
|
+
|
|
800
|
+
**Synopsis:**
|
|
801
|
+
|
|
802
|
+
```
|
|
803
|
+
elevasis-sdk cli [domain] [--format markdown|json]
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
**Behavior:**
|
|
807
|
+
|
|
808
|
+
- Walks the registered Commander command graph and prints every command, its flags, and a one-line description
|
|
809
|
+
- When `domain` is omitted, all domains are listed
|
|
810
|
+
- `--format json` returns a structured array suitable for programmatic use; `--format markdown` (default) renders a human-readable table
|
|
811
|
+
- The runtime catalog is always up to date with what is actually registered -- it does not parse TypeScript source
|
|
812
|
+
|
|
813
|
+
**Flags:**
|
|
814
|
+
|
|
815
|
+
| Flag | Description |
|
|
816
|
+
| --------------------- | ----------------------------------------------------------- |
|
|
817
|
+
| `--domain <domain>` | Filter output to one domain (alternative to positional arg) |
|
|
818
|
+
| `--format <format>` | Output format: `markdown` (default) or `json` |
|
|
819
|
+
| `--api-url <url>` | Override the API base URL |
|
|
820
|
+
|
|
821
|
+
**Examples:**
|
|
822
|
+
|
|
823
|
+
```bash
|
|
824
|
+
# Print the full catalog
|
|
825
|
+
elevasis-sdk cli
|
|
826
|
+
|
|
827
|
+
# Print only acquisition commands
|
|
828
|
+
elevasis-sdk cli acquisition
|
|
829
|
+
|
|
830
|
+
# Print the project domain as JSON
|
|
831
|
+
elevasis-sdk cli --domain project --format json
|
|
832
|
+
```
|
|
833
|
+
|
|
834
|
+
From the workspace (repo package):
|
|
835
|
+
|
|
836
|
+
```bash
|
|
837
|
+
pnpm --filter @elevasis/sdk exec elevasis-sdk cli
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
From an external tenant project:
|
|
841
|
+
|
|
842
|
+
```bash
|
|
843
|
+
pnpm -C external/<project>/operations exec elevasis-sdk cli
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
**Implementation:** `packages/sdk/src/cli/commands/cli/cli.ts` -- catalog built by `packages/sdk/src/cli/commands/cli/catalog.ts`
|
|
847
|
+
|
|
848
|
+
---
|
|
849
|
+
|
|
850
|
+
## elevasis-sdk acquisition:\*
|
|
851
|
+
|
|
852
|
+
Read-only access to acquisition lists and CRM deals. The acquisition CLI scope is intentionally read-only; mutating commands are deferred.
|
|
853
|
+
|
|
854
|
+
### acquisition:list:\*
|
|
855
|
+
|
|
856
|
+
```bash
|
|
857
|
+
elevasis-sdk acquisition:list:list
|
|
858
|
+
elevasis-sdk acquisition:list:get <id>
|
|
859
|
+
elevasis-sdk acquisition:list:status
|
|
860
|
+
```
|
|
861
|
+
|
|
862
|
+
- `acquisition:list:list` -- list all acquisition lists for the organization
|
|
863
|
+
- `acquisition:list:get <id>` -- get full detail for a single acquisition list by UUID
|
|
864
|
+
- `acquisition:list:status` -- summarize counts and progress across all lists
|
|
865
|
+
|
|
866
|
+
### acquisition:deal:\*
|
|
867
|
+
|
|
868
|
+
```bash
|
|
869
|
+
elevasis-sdk acquisition:deal:list
|
|
870
|
+
elevasis-sdk acquisition:deal:get <id>
|
|
871
|
+
elevasis-sdk acquisition:deal:status
|
|
872
|
+
```
|
|
873
|
+
|
|
874
|
+
- `acquisition:deal:list` -- list all CRM deals visible to the organization
|
|
875
|
+
- `acquisition:deal:get <id>` -- get a single deal record
|
|
876
|
+
- `acquisition:deal:status` -- summarize deal pipeline counts
|
|
877
|
+
|
|
878
|
+
**API routes:**
|
|
879
|
+
|
|
880
|
+
- Acquisition lists: `GET /api/external/acquisition/lists`, `/api/external/acquisition/lists/:listId`, `/api/external/acquisition/lists/status`
|
|
881
|
+
- Deals: `GET /api/external/deals`, `/api/external/deals/:dealId`, `/api/external/deals/summary`
|
|
882
|
+
|
|
883
|
+
JWT-gated routes at the original unprefixed paths remain for the Command Center. All SDK CLI calls use `/api/external/*` gated by `requireApiKey`.
|
|
884
|
+
|
|
885
|
+
**Note:** List-inspection routing lives in `/om` (Acquisition Operations dispatch). The `/acquisition` skill was folded into `/om`; all list reads still route to `elevasis-sdk acquisition:list:get <uuid>`.
|
|
886
|
+
|
|
887
|
+
**Flags (all acquisition commands):**
|
|
888
|
+
|
|
889
|
+
| Flag | Description |
|
|
890
|
+
| ------------------- | -------------------------------------------------- |
|
|
891
|
+
| `--pretty` | Human-readable terminal output instead of raw JSON |
|
|
892
|
+
| `--api-url <url>` | Override the API base URL |
|
|
893
|
+
|
|
894
|
+
**Implementation:** `packages/sdk/src/cli/commands/acquisition/`
|
|
895
|
+
|
|
896
|
+
---
|
|
897
|
+
|
|
898
|
+
## elevasis-sdk client:\*
|
|
899
|
+
|
|
900
|
+
Full CRUD management for client records. The `client:*` family covers create, read, update, and delete operations at `/api/external/clients`.
|
|
901
|
+
|
|
902
|
+
For complete field definitions, filter options, and relationship semantics, see the [Clients feature documentation](/technical/features/clients).
|
|
903
|
+
|
|
904
|
+
**Quick reference:**
|
|
905
|
+
|
|
906
|
+
```bash
|
|
907
|
+
elevasis-sdk client:list
|
|
908
|
+
elevasis-sdk client:get <id>
|
|
909
|
+
elevasis-sdk client:create --name "Acme Corp"
|
|
910
|
+
elevasis-sdk client:update <id> --name "Acme Corp Updated"
|
|
911
|
+
elevasis-sdk client:delete <id>
|
|
912
|
+
```
|
|
913
|
+
|
|
914
|
+
**Flags:**
|
|
915
|
+
|
|
916
|
+
| Flag | Description |
|
|
917
|
+
| ------------------- | -------------------------------------------------- |
|
|
918
|
+
| `--pretty` | Human-readable terminal output instead of raw JSON |
|
|
919
|
+
| `--api-url <url>` | Override the API base URL |
|
|
920
|
+
|
|
921
|
+
**Implementation:** `packages/sdk/src/cli/commands/` (client family)
|
|
922
|
+
|
|
923
|
+
---
|
|
924
|
+
|
|
925
|
+
## elevasis-sdk agent:\*
|
|
926
|
+
|
|
927
|
+
Read-only inspection of deployed agents.
|
|
928
|
+
|
|
929
|
+
```bash
|
|
930
|
+
elevasis-sdk agent:list
|
|
931
|
+
elevasis-sdk agent:get <id>
|
|
932
|
+
```
|
|
933
|
+
|
|
934
|
+
- `agent:list` -- list all agents registered for the organization
|
|
935
|
+
- `agent:get <id>` -- get metadata and schema for a specific agent
|
|
936
|
+
|
|
937
|
+
**API routes:** `GET /api/external/agents`, `/api/external/agents/:id`
|
|
938
|
+
|
|
939
|
+
**Flags:**
|
|
940
|
+
|
|
941
|
+
| Flag | Description |
|
|
942
|
+
| ------------------- | -------------------------------------------------- |
|
|
943
|
+
| `--pretty` | Human-readable terminal output instead of raw JSON |
|
|
944
|
+
| `--api-url <url>` | Override the API base URL |
|
|
945
|
+
|
|
946
|
+
**Implementation:** `packages/sdk/src/cli/commands/` (agent family)
|
|
947
|
+
|
|
948
|
+
---
|
|
949
|
+
|
|
950
|
+
## elevasis-sdk session:\*
|
|
951
|
+
|
|
952
|
+
Inspect and manage agent sessions.
|
|
953
|
+
|
|
954
|
+
```bash
|
|
955
|
+
elevasis-sdk session:list
|
|
956
|
+
elevasis-sdk session:get <id>
|
|
957
|
+
elevasis-sdk session:end <id>
|
|
958
|
+
```
|
|
959
|
+
|
|
960
|
+
- `session:list` -- list sessions for the organization; supports filtering by resource, status, and time range
|
|
961
|
+
- `session:get <id>` -- get full session detail including messages and events
|
|
962
|
+
- `session:end <id>` -- gracefully end an active session
|
|
963
|
+
|
|
964
|
+
**API routes:** `GET /api/external/sessions`, `/api/external/sessions/:id`, `POST /api/external/sessions/:id/end`
|
|
965
|
+
|
|
966
|
+
**Flags:**
|
|
967
|
+
|
|
968
|
+
| Flag | Description |
|
|
969
|
+
| ------------------- | -------------------------------------------------- |
|
|
970
|
+
| `--pretty` | Human-readable terminal output instead of raw JSON |
|
|
971
|
+
| `--api-url <url>` | Override the API base URL |
|
|
972
|
+
|
|
973
|
+
**Implementation:** `packages/sdk/src/cli/commands/` (session family)
|
|
974
|
+
|
|
975
|
+
---
|
|
976
|
+
|
|
977
|
+
## elevasis-sdk queue:\*
|
|
978
|
+
|
|
979
|
+
Manage HITL command queue tasks. See the [Command Queue CLI Guide](/technical/development/agent-driven-development/command-cli-guide) for the full command reference.
|
|
980
|
+
|
|
981
|
+
**Quick reference:**
|
|
982
|
+
|
|
983
|
+
```bash
|
|
984
|
+
elevasis-sdk queue:list --status pending --pretty
|
|
985
|
+
elevasis-sdk queue:get <id> --pretty
|
|
986
|
+
elevasis-sdk queue:select <id> --action-id <action-id> --pretty
|
|
987
|
+
elevasis-sdk queue:expire <id> --pretty
|
|
988
|
+
elevasis-sdk queue:status --pretty
|
|
989
|
+
```
|
|
990
|
+
|
|
991
|
+
**Auth:** Calls `/api/external/command-queue/*` with API-key auth.
|
|
992
|
+
|
|
993
|
+
---
|
|
994
|
+
|
|
995
|
+
## elevasis-sdk schedule:\*
|
|
996
|
+
|
|
997
|
+
Manage recurring, relative, and absolute task schedules. See the [Schedule CLI Guide](/technical/development/agent-driven-development/schedule-cli-guide) for the full command reference including schedule config JSON shapes.
|
|
998
|
+
|
|
999
|
+
**Quick reference:**
|
|
1000
|
+
|
|
1001
|
+
```bash
|
|
1002
|
+
elevasis-sdk schedule:list --status active --pretty
|
|
1003
|
+
elevasis-sdk schedule:get <id> --pretty
|
|
1004
|
+
elevasis-sdk schedule:create --name <name> --target-resource-type workflow --target-resource-id <id> --schedule-config '{...}' --pretty
|
|
1005
|
+
elevasis-sdk schedule:update <id> --name "Updated name" --pretty
|
|
1006
|
+
elevasis-sdk schedule:pause <id> --pretty
|
|
1007
|
+
elevasis-sdk schedule:resume <id> --pretty
|
|
1008
|
+
elevasis-sdk schedule:cancel <id> --pretty
|
|
1009
|
+
```
|
|
1010
|
+
|
|
1011
|
+
**Auth:** Calls `/api/external/task-scheduler/schedules*` with API-key auth.
|
|
1012
|
+
|
|
1013
|
+
---
|
|
1014
|
+
|
|
1015
|
+
## elevasis-sdk om:\*
|
|
1016
|
+
|
|
1017
|
+
Knowledge map inspection. The `om:*` (Organization Model) commands expose knowledge graph traversal via the CLI.
|
|
1018
|
+
|
|
1019
|
+
For the full command reference, flag details, and graph architecture, see the [knowledge:\* CLI documentation](/technical/features/knowledge/knowledge-cli).
|
|
1020
|
+
|
|
1021
|
+
**Quick reference:**
|
|
1022
|
+
|
|
1023
|
+
```bash
|
|
1024
|
+
elevasis-sdk knowledge:ls /by-system/sales.crm
|
|
1025
|
+
elevasis-sdk knowledge:cat <node-id>
|
|
1026
|
+
elevasis-sdk knowledge:graph
|
|
1027
|
+
```
|
|
1028
|
+
|
|
1029
|
+
These are registered as `knowledge:*` subcommands on `elevasis-sdk`. Both the SDK CLI (`elevasis-sdk knowledge:*`) and the platform CLI (`elevasis knowledge:*`) call the same query functions in `@repo/core/knowledge/queries`.
|
|
1030
|
+
|
|
1031
|
+
---
|
|
1032
|
+
|
|
1033
|
+
## elevasis-sdk ui:use-local / ui:use-published
|
|
1034
|
+
|
|
1035
|
+
Switch the `@elevasis/ui` dependency in an external project between a local tarball build and the published npm package.
|
|
1036
|
+
|
|
1037
|
+
**Synopsis:**
|
|
1038
|
+
|
|
1039
|
+
```bash
|
|
1040
|
+
elevasis-sdk ui:use-local
|
|
1041
|
+
elevasis-sdk ui:use-published
|
|
1042
|
+
```
|
|
1043
|
+
|
|
1044
|
+
**Behavior:**
|
|
1045
|
+
|
|
1046
|
+
- `ui:use-local` -- builds a tarball from the local `packages/ui/` source and rewrites the project's `package.json` to point at the tarball path. Use this during active `@elevasis/ui` development to test changes without publishing.
|
|
1047
|
+
- `ui:use-published` -- reverts `package.json` to the published `@elevasis/ui` version string and removes any local tarball reference.
|
|
1048
|
+
|
|
1049
|
+
Both commands install after rewriting `package.json`. The `external/_template` root scripts `ui:use-local` and `ui:use-published` are compatibility wrappers that delegate to these CLI commands.
|
|
1050
|
+
|
|
1051
|
+
**Implementation:** `packages/sdk/src/cli/commands/ui/ui-switcher.ts`
|
|
1052
|
+
|
|
1053
|
+
---
|
|
1054
|
+
|
|
1055
|
+
## Global Flags
|
|
1056
|
+
|
|
1057
|
+
These flags are accepted by all commands:
|
|
1058
|
+
|
|
1059
|
+
| Flag | Description |
|
|
1060
|
+
| ------------------- | --------------------------------------------------------------------------------------------------- |
|
|
1061
|
+
| `--api-url <url>` | Override the API base URL. Priority: flag > `ELEVASIS_API_URL` env var > `NODE_ENV`-based default |
|
|
1062
|
+
| `--json` | Output raw JSON (available on most commands) |
|
|
1063
|
+
|
|
1064
|
+
**API base URL resolution:**
|
|
1065
|
+
|
|
1066
|
+
- Production (default): `https://api.elevasis.io`
|
|
1067
|
+
- Development (`NODE_ENV=development`): `http://localhost:<port>`
|
|
1068
|
+
- Override: set `ELEVASIS_API_URL` or pass `--api-url`
|
|
1069
|
+
- Force production: pass `--prod` on `deploy` (overrides `NODE_ENV=development`)
|
|
1070
|
+
|
|
1071
|
+
---
|
|
1072
|
+
|
|
1073
|
+
## Appendix: Domain Status
|
|
1074
|
+
|
|
1075
|
+
Current status of all SDK CLI domains. Domains marked `deferred` have no CLI commands yet.
|
|
1076
|
+
|
|
1077
|
+
| Domain | CLI surface | API surface | Status |
|
|
1078
|
+
| ----------- | ------------------------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------- |
|
|
1079
|
+
| platform | top-level SDK commands | mixed platform APIs | implemented |
|
|
1080
|
+
| project | `project:*` | `apps/api/src/projects/` | implemented |
|
|
1081
|
+
| knowledge | `knowledge:*` | file/generated knowledge data | implemented |
|
|
1082
|
+
| creds | `creds *` nested Commander group | credentials API | implemented |
|
|
1083
|
+
| ui | `ui:*` | local project file edits | implemented |
|
|
1084
|
+
| request | `request:submit`, `request:list`, `request:get` | requests API | implemented read/write scope |
|
|
1085
|
+
| error | `error resolve`, `error resolve-execution` | execution error APIs | partial |
|
|
1086
|
+
| acquisition | `acquisition:list:*`, `acquisition:deal:*` | `/api/external/acquisition/lists*`, `/api/external/deals*` | implemented read-only scope |
|
|
1087
|
+
| client | `client:*` | `/api/external/clients` | implemented read/write scope |
|
|
1088
|
+
| agent | `agent:list`, `agent:get` | `/api/external/agents*` | implemented read-only scope |
|
|
1089
|
+
| session | `session:list`, `session:get`, `session:end` | `/api/external/sessions*` | implemented management scope |
|
|
1090
|
+
| queue | `queue:list`, `queue:get`, `queue:select`, `queue:expire`, `queue:status` | `/api/external/command-queue*` | implemented |
|
|
1091
|
+
| schedule | `schedule:list`, `schedule:get`, `schedule:create`, `schedule:update` | `/api/external/task-scheduler/schedules*` | implemented |
|
|
1092
|
+
| content | none | not scoped here | deferred |
|
|
1093
|
+
| seo | none | not scoped here | deferred |
|
|
1094
|
+
| monitoring | none | not scoped here | deferred |
|
|
1095
|
+
|
|
1096
|
+
### Promotion Criteria
|
|
1097
|
+
|
|
1098
|
+
A domain should meet all four criteria before gaining a `*:list` / `*:get` surface in the SDK CLI:
|
|
1099
|
+
|
|
1100
|
+
1. The domain has DB-backed state with tenant scoping.
|
|
1101
|
+
2. External SDK tenants have a plausible read or operation need.
|
|
1102
|
+
3. Operators repeat the same query pattern often enough that ad-hoc DB reads are becoming workflow surface.
|
|
1103
|
+
4. There are at least three concrete use cases.
|
|
1104
|
+
|
|
1105
|
+
---
|
|
1106
|
+
|
|
1107
|
+
**Last Updated:** 2026-05-18
|