@elevasis/sdk 1.48.0 → 1.50.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/chunk-MGZZ4HL4.js +4399 -0
- package/dist/chunk-VYWGWJRW.js +130 -0
- package/dist/chunk-YJDXRHNP.js +7901 -0
- package/dist/cli.cjs +949 -281
- package/dist/index.d.ts +1031 -48
- package/dist/index.js +2 -7597
- package/dist/node/index.d.ts +3 -3675
- package/dist/node/index.js +2 -124
- package/dist/test-utils/index.d.ts +2 -12051
- package/dist/test-utils/index.js +113 -27891
- package/dist/worker/index.d.ts +548 -12264
- package/dist/worker/index.js +3 -7400
- package/package.json +12 -4
- package/reference/_navigation.md +4 -4
- package/reference/_reference-manifest.json +1 -1
- package/reference/core/index.mdx +6 -4
- package/reference/index.mdx +11 -5
- package/reference/packages/core/src/README.md +46 -44
- package/reference/packages/core/src/content/README.md +16 -12
- package/reference/rules/agent-start-here.md +1 -1
- package/reference/rules/frontend.md +3 -1
- package/reference/rules/package-taxonomy.md +7 -5
- package/reference/rules/ui.md +31 -5
- package/reference/rules/vibe-intents.md +2 -2
- package/reference/rules/vibe.md +30 -10
- package/reference/scaffold/recipes/extend-content.md +82 -3
- package/reference/scaffold/recipes/gate-by-feature-or-admin.md +8 -6
- package/reference/scaffold/ui/feature-flags-and-gating.md +11 -1
- package/reference/sdk/cli-management.mdx +284 -139
- package/reference/sdk/cli.mdx +136 -88
- package/reference/sdk/define-builders.mdx +1 -1
- package/reference/sdk/deployment/command-center.mdx +2 -2
- package/reference/sdk/deployment/index.mdx +24 -7
- package/reference/sdk/exports.mdx +4 -4
- package/reference/sdk/framework/agent.mdx +4 -3
- package/reference/sdk/framework/index.mdx +1 -1
- package/reference/sdk/framework/project-structure.mdx +34 -23
- package/reference/sdk/framework/tutorial-system.mdx +1 -1
- package/reference/sdk/getting-started.mdx +25 -52
- package/reference/sdk/index.mdx +3 -3
- package/reference/sdk/platform-tools/adapters-integration.mdx +1 -1
- package/reference/sdk/platform-tools/adapters-platform.mdx +1 -1
- package/reference/sdk/platform-tools/type-safety.mdx +1 -1
- package/reference/sdk/resources/patterns.mdx +10 -11
- package/reference/sdk/resources/types.mdx +15 -9
- package/reference/sdk/templates/data-enrichment.mdx +1 -1
- package/reference/sdk/templates/email-sender.mdx +1 -1
- package/reference/sdk/templates/index.mdx +47 -47
- package/reference/sdk/templates/lead-scorer.mdx +1 -1
- package/reference/sdk/templates/pdf-generator.mdx +42 -24
- package/reference/sdk/templates/recurring-job.mdx +20 -15
- package/reference/sdk/templates/text-classifier.mdx +1 -1
- package/reference/sdk/templates/web-scraper.mdx +9 -5
- package/reference/sdk/troubleshooting.mdx +72 -1
- package/reference/ui/exports.mdx +1 -1
- package/reference/ui/index.mdx +2 -2
package/reference/sdk/cli.mdx
CHANGED
|
@@ -13,7 +13,7 @@ pnpm add @elevasis/sdk
|
|
|
13
13
|
|
|
14
14
|
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.
|
|
15
15
|
|
|
16
|
-
For management commands (project:\*, note:\*, acquisition:\*, client:\*, agent:\*, session:\*, queue:\*, schedule:\*, om:\*, ui:\*, skill:\*), see [CLI Management](cli-management.mdx).
|
|
16
|
+
For management commands (project:\*, note:\*, error:\*, acquisition:\*, client:\*, agent:\*, session:\*, queue:\*, schedule:\*, om:\*, ui:\*, skill:\*, content:\*, request:\*, grant:\*), see [CLI Management](cli-management.mdx).
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -41,6 +41,13 @@ elevasis-sdk check
|
|
|
41
41
|
|
|
42
42
|
`check` declares no `--api-url` flag -- it validates project source locally and never calls the API, so there is no base URL to override.
|
|
43
43
|
|
|
44
|
+
**Flags:**
|
|
45
|
+
|
|
46
|
+
| Flag | Description |
|
|
47
|
+
| ----------------- | -------------------------------------------------- |
|
|
48
|
+
| `--entry <path>` | Path to the entry file (default: `./src/index.ts`) |
|
|
49
|
+
| `--skip-coverage` | Skip the skill coverage gate |
|
|
50
|
+
|
|
44
51
|
**Example output (success):**
|
|
45
52
|
|
|
46
53
|
```
|
|
@@ -84,10 +91,14 @@ elevasis-sdk deploy
|
|
|
84
91
|
|
|
85
92
|
**Flags:**
|
|
86
93
|
|
|
87
|
-
| Flag
|
|
88
|
-
|
|
|
89
|
-
| `--api-url <url>` | Override the API base URL (default: production)
|
|
90
|
-
| `--
|
|
94
|
+
| Flag | Description |
|
|
95
|
+
| ----------------- | ------------------------------------------------------------ |
|
|
96
|
+
| `--api-url <url>` | Override the API base URL (default: production) |
|
|
97
|
+
| `--entry <path>` | Path to the entry file (default: `./src/index.ts`) |
|
|
98
|
+
| `--prod` | Force production target, overriding `NODE_ENV=development` |
|
|
99
|
+
| `--major` | Bump the major version before deploying (`1.0.0` -> `2.0.0`) |
|
|
100
|
+
| `--minor` | Bump the minor version before deploying (`1.0.0` -> `1.1.0`) |
|
|
101
|
+
| `--patch` | Bump the patch version before deploying (`1.0.0` -> `1.0.1`) |
|
|
91
102
|
|
|
92
103
|
**Environment variables:**
|
|
93
104
|
|
|
@@ -141,15 +152,20 @@ elevasis-sdk exec <resource> --input '{...}'
|
|
|
141
152
|
- Use `--async` to return an `executionId` immediately and poll for completion
|
|
142
153
|
- `--input` accepts a JSON string matching the resource's `inputSchema`
|
|
143
154
|
- Organization is derived from your API key -- no org prefix needed
|
|
155
|
+
- On a lost connection during a synchronous run, the CLI looks up the most recent running execution for the resource and resumes polling rather than failing outright
|
|
144
156
|
|
|
145
157
|
**Flags:**
|
|
146
158
|
|
|
147
|
-
| Flag
|
|
148
|
-
|
|
|
149
|
-
|
|
|
150
|
-
| `--
|
|
151
|
-
| `--
|
|
152
|
-
| `--
|
|
159
|
+
| Flag | Description |
|
|
160
|
+
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
161
|
+
| `-i, --input <json>` | JSON input matching the resource's input schema |
|
|
162
|
+
| `-f, --input-file <path>` | Read input from a JSON file instead of `--input` (avoids shell escaping). Relative paths resolve against the project root |
|
|
163
|
+
| `--async` | Execute asynchronously, return execution ID immediately |
|
|
164
|
+
| `--cleanup-input` | Delete the input file after a successful execution (only files under `<projectRoot>/tmp/` are eligible) |
|
|
165
|
+
| `--prod` | Target production (overrides `NODE_ENV=development`) |
|
|
166
|
+
| `--api-url <url>` | Override the API base URL |
|
|
167
|
+
|
|
168
|
+
`exec` does not declare a `--json` flag -- output is always the formatted display shown below.
|
|
153
169
|
|
|
154
170
|
**Example:**
|
|
155
171
|
|
|
@@ -202,9 +218,9 @@ elevasis-sdk resources
|
|
|
202
218
|
|
|
203
219
|
**Flags:**
|
|
204
220
|
|
|
205
|
-
| Flag
|
|
206
|
-
|
|
|
207
|
-
| `--json`
|
|
221
|
+
| Flag | Description |
|
|
222
|
+
| ----------------- | ------------------------- |
|
|
223
|
+
| `--json` | Output raw JSON |
|
|
208
224
|
| `--api-url <url>` | Override the API base URL |
|
|
209
225
|
|
|
210
226
|
**Example output:**
|
|
@@ -238,11 +254,11 @@ elevasis-sdk executions [resource]
|
|
|
238
254
|
|
|
239
255
|
**Flags:**
|
|
240
256
|
|
|
241
|
-
| Flag
|
|
242
|
-
|
|
|
243
|
-
| `--limit <n>` | Maximum number of executions to return (default:
|
|
257
|
+
| Flag | Description |
|
|
258
|
+
| ------------------- | --------------------------------------------------------------- |
|
|
259
|
+
| `--limit <n>` | Maximum number of executions to return (default: 50) |
|
|
244
260
|
| `--status <status>` | Filter by status: `running`, `completed`, `failed`, `cancelled` |
|
|
245
|
-
| `--json`
|
|
261
|
+
| `--json` | Output raw JSON |
|
|
246
262
|
| `--api-url <url>` | Override the API base URL |
|
|
247
263
|
|
|
248
264
|
**Example:**
|
|
@@ -273,15 +289,21 @@ elevasis-sdk execution <resource> <id>
|
|
|
273
289
|
|
|
274
290
|
**Behavior:**
|
|
275
291
|
|
|
276
|
-
- Shows the complete execution record: input,
|
|
292
|
+
- Shows the complete execution record: input, result, logs, duration, and error (if any)
|
|
293
|
+
- `--input` and `--result` force those sections to print even when the CLI would otherwise omit them; both print automatically when the execution carries input data, or is `completed` with a result
|
|
294
|
+
- `--logs-only` prints only the execution logs and skips the rest of the record
|
|
277
295
|
- Use `--json` to get the raw JSON response for programmatic use
|
|
278
296
|
|
|
279
297
|
**Flags:**
|
|
280
298
|
|
|
281
|
-
| Flag
|
|
282
|
-
|
|
|
283
|
-
| `--
|
|
284
|
-
| `--
|
|
299
|
+
| Flag | Description |
|
|
300
|
+
| ----------------- | ---------------------------------------------------- |
|
|
301
|
+
| `--logs-only` | Show only execution logs |
|
|
302
|
+
| `--input` | Force the Input section to print |
|
|
303
|
+
| `--result` | Force the Result section to print |
|
|
304
|
+
| `--prod` | Target production (overrides `NODE_ENV=development`) |
|
|
305
|
+
| `--json` | Output raw JSON response |
|
|
306
|
+
| `--api-url <url>` | Override the API base URL |
|
|
285
307
|
|
|
286
308
|
**Example:**
|
|
287
309
|
|
|
@@ -290,10 +312,12 @@ elevasis-sdk execution onboard-client exec_abc001
|
|
|
290
312
|
```
|
|
291
313
|
|
|
292
314
|
```
|
|
293
|
-
Resource:
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
315
|
+
Resource: onboard-client
|
|
316
|
+
Execution ID: exec_abc001
|
|
317
|
+
Status: COMPLETED
|
|
318
|
+
Started: 2026-02-25 14:32:01
|
|
319
|
+
Ended: 2026-02-25 14:32:02
|
|
320
|
+
Duration: 1.2s
|
|
297
321
|
|
|
298
322
|
Input:
|
|
299
323
|
{
|
|
@@ -301,17 +325,20 @@ elevasis-sdk execution onboard-client exec_abc001
|
|
|
301
325
|
"email": "jane@example.com"
|
|
302
326
|
}
|
|
303
327
|
|
|
304
|
-
|
|
328
|
+
Result:
|
|
305
329
|
{
|
|
306
330
|
"success": true,
|
|
307
331
|
"clientId": "client_1708521600000",
|
|
308
332
|
"welcomeEmailSent": true
|
|
309
333
|
}
|
|
310
334
|
|
|
311
|
-
Logs:
|
|
335
|
+
Execution Logs:
|
|
336
|
+
|
|
312
337
|
[14:32:01.123] Starting onboard-client workflow
|
|
313
338
|
[14:32:01.456] Created client record
|
|
314
339
|
[14:32:01.891] Welcome email sent to jane@example.com
|
|
340
|
+
|
|
341
|
+
Total logs: 3
|
|
315
342
|
```
|
|
316
343
|
|
|
317
344
|
---
|
|
@@ -334,11 +361,11 @@ elevasis-sdk execution:cancel <resourceId> <executionId>
|
|
|
334
361
|
|
|
335
362
|
**Flags:**
|
|
336
363
|
|
|
337
|
-
| Flag
|
|
338
|
-
|
|
|
339
|
-
| `--prod`
|
|
364
|
+
| Flag | Description |
|
|
365
|
+
| ----------------- | ---------------------------------------------------- |
|
|
366
|
+
| `--prod` | Target production (overrides `NODE_ENV=development`) |
|
|
340
367
|
| `--api-url <url>` | Override the API base URL |
|
|
341
|
-
| `--json`
|
|
368
|
+
| `--json` | Output raw JSON response |
|
|
342
369
|
|
|
343
370
|
**Example:**
|
|
344
371
|
|
|
@@ -376,13 +403,13 @@ elevasis-sdk executions:delete <resourceId> [--force]
|
|
|
376
403
|
|
|
377
404
|
**Flags:**
|
|
378
405
|
|
|
379
|
-
| Flag
|
|
380
|
-
|
|
|
381
|
-
| `--prod`
|
|
406
|
+
| Flag | Description |
|
|
407
|
+
| ---------------------------- | ------------------------------------------------------------ |
|
|
408
|
+
| `--prod` | Target production (overrides `NODE_ENV=development`) |
|
|
382
409
|
| `--api-url <url>` | Override the API base URL |
|
|
383
410
|
| `--resource-status <status>` | Only delete runs from this deployment lane (`dev` | `prod`) |
|
|
384
|
-
| `--force`
|
|
385
|
-
| `--json`
|
|
411
|
+
| `--force` | Skip the typed confirmation prompt |
|
|
412
|
+
| `--json` | Output raw JSON response |
|
|
386
413
|
|
|
387
414
|
**Example:**
|
|
388
415
|
|
|
@@ -406,24 +433,31 @@ elevasis-sdk deployments
|
|
|
406
433
|
|
|
407
434
|
**Behavior:**
|
|
408
435
|
|
|
409
|
-
- Shows deployment history with status,
|
|
410
|
-
-
|
|
436
|
+
- Shows deployment history with status, SDK version, and creation timestamp
|
|
437
|
+
- Status is one of `deploying`, `active`, `failed`, `rolled_back`, or `stopped`
|
|
411
438
|
|
|
412
439
|
**Flags:**
|
|
413
440
|
|
|
414
|
-
| Flag
|
|
415
|
-
|
|
|
416
|
-
| `--
|
|
417
|
-
| `--
|
|
441
|
+
| Flag | Description |
|
|
442
|
+
| ----------------- | ---------------------------------------------------- |
|
|
443
|
+
| `--prod` | Target production (overrides `NODE_ENV=development`) |
|
|
444
|
+
| `--json` | Output raw JSON |
|
|
445
|
+
| `--api-url <url>` | Override the API base URL |
|
|
418
446
|
|
|
419
447
|
**Example output:**
|
|
420
448
|
|
|
421
449
|
```
|
|
422
450
|
$ elevasis-sdk deployments
|
|
423
451
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
452
|
+
1. [ACTIVE] deploy_abc123
|
|
453
|
+
SDK Version: 1.45.0
|
|
454
|
+
Created: 2/25/2026, 2:00:00 PM
|
|
455
|
+
|
|
456
|
+
2. [STOPPED] deploy_abc122
|
|
457
|
+
SDK Version: 1.44.2
|
|
458
|
+
Created: 2/24/2026, 9:30:00 AM
|
|
459
|
+
|
|
460
|
+
2 deployment(s)
|
|
427
461
|
```
|
|
428
462
|
|
|
429
463
|
---
|
|
@@ -446,9 +480,9 @@ elevasis-sdk describe <resource>
|
|
|
446
480
|
|
|
447
481
|
**Flags:**
|
|
448
482
|
|
|
449
|
-
| Flag
|
|
450
|
-
|
|
|
451
|
-
| `--json`
|
|
483
|
+
| Flag | Description |
|
|
484
|
+
| ----------------- | ------------------------- |
|
|
485
|
+
| `--json` | Output raw JSON response |
|
|
452
486
|
| `--api-url <url>` | Override the API base URL |
|
|
453
487
|
|
|
454
488
|
**Example:**
|
|
@@ -495,21 +529,24 @@ elevasis-sdk creds delete <name> [--force]
|
|
|
495
529
|
**Subcommands:**
|
|
496
530
|
|
|
497
531
|
- `list` -- display all credentials (metadata only, no secret values)
|
|
498
|
-
- `create` -- create a new credential; `--name
|
|
532
|
+
- `create` -- create a new credential; `--name`, `--type`, and `--value` are all required
|
|
499
533
|
- `update <name>` -- replace the value of an existing credential; `--value` (JSON) is required
|
|
500
534
|
- `rename <name>` -- rename a credential; `--to <newName>` is required
|
|
501
535
|
- `delete <name>` -- delete a credential; pass `--force` to skip the confirmation prompt
|
|
502
536
|
|
|
503
537
|
**Flags:**
|
|
504
538
|
|
|
505
|
-
| Flag
|
|
506
|
-
|
|
|
507
|
-
| `--name <name>` | Credential name (create: required)
|
|
508
|
-
| `--type <type>` | Credential type
|
|
509
|
-
| `--value <json>` | Credential value as a JSON string
|
|
510
|
-
| `--to <newName>` | New name (rename: required)
|
|
511
|
-
| `--force`
|
|
512
|
-
| `--
|
|
539
|
+
| Flag | Description |
|
|
540
|
+
| ----------------- | ------------------------------------------------------------------------------- |
|
|
541
|
+
| `--name <name>` | Credential name: lowercase letters, digits, and hyphens only (create: required) |
|
|
542
|
+
| `--type <type>` | Credential type: `api-key` or `webhook-secret` (create: required) |
|
|
543
|
+
| `--value <json>` | Credential value as a JSON string (create and update: required) |
|
|
544
|
+
| `--to <newName>` | New name (rename: required) |
|
|
545
|
+
| `--force` | Skip confirmation prompt (delete) |
|
|
546
|
+
| `--prod` | Target production (overrides `NODE_ENV=development`) |
|
|
547
|
+
| `--api-url <url>` | Override the API base URL |
|
|
548
|
+
|
|
549
|
+
OAuth credentials cannot be created through the CLI -- they require the Command Center's browser OAuth flow. See [Command Center](deployment/command-center.mdx#credentials).
|
|
513
550
|
|
|
514
551
|
**Examples:**
|
|
515
552
|
|
|
@@ -540,24 +577,24 @@ elevasis-sdk rename <old-id> --to <new-id> [--execute] [--prod]
|
|
|
540
577
|
- Dry-run by default -- shows all affected rows per table without modifying any data
|
|
541
578
|
- Pass `--execute` to perform the rename
|
|
542
579
|
- Org-scoped: only updates rows belonging to your organization
|
|
543
|
-
-
|
|
580
|
+
- Refuses to run if the new resource ID already has execution history in your organization, to prevent a data collision
|
|
581
|
+
- Updates resource references across 5 tables:
|
|
544
582
|
|
|
545
|
-
| Table
|
|
546
|
-
|
|
|
547
|
-
| `
|
|
548
|
-
| `
|
|
549
|
-
| `
|
|
550
|
-
| `
|
|
551
|
-
| `
|
|
552
|
-
| `session_events` | `resource_id` |
|
|
583
|
+
| Table | Column(s) updated |
|
|
584
|
+
| ------------------- | ------------------------------------------ |
|
|
585
|
+
| `execution_logs` | `resource_id` |
|
|
586
|
+
| `execution_metrics` | `resource_id` |
|
|
587
|
+
| `sessions` | `resource_id` |
|
|
588
|
+
| `command_queue` | `origin_resource_id` |
|
|
589
|
+
| `task_schedules` | `origin_resource_id`, `target_resource_id` |
|
|
553
590
|
|
|
554
591
|
**Flags:**
|
|
555
592
|
|
|
556
|
-
| Flag
|
|
557
|
-
|
|
|
593
|
+
| Flag | Description |
|
|
594
|
+
| ----------------- | --------------------------------------- |
|
|
558
595
|
| `--to <new-id>` | Required. The new resource ID |
|
|
559
|
-
| `--execute`
|
|
560
|
-
| `--prod`
|
|
596
|
+
| `--execute` | Perform the rename (default is dry-run) |
|
|
597
|
+
| `--prod` | Target the production environment |
|
|
561
598
|
| `--api-url <url>` | Override the API base URL |
|
|
562
599
|
|
|
563
600
|
**Example (dry-run):**
|
|
@@ -570,14 +607,13 @@ elevasis-sdk rename ist-upload-workflow --to ist-upload-contacts-workflow
|
|
|
570
607
|
Dry run — no changes made.
|
|
571
608
|
|
|
572
609
|
Rows that would be updated:
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
session_events 0
|
|
610
|
+
execution_logs 6
|
|
611
|
+
execution_metrics 6
|
|
612
|
+
sessions 0
|
|
613
|
+
command_queue 0
|
|
614
|
+
task_schedules 0
|
|
579
615
|
|
|
580
|
-
Total:
|
|
616
|
+
Total: 12 rows
|
|
581
617
|
|
|
582
618
|
Re-run with --execute to apply changes.
|
|
583
619
|
```
|
|
@@ -608,11 +644,12 @@ elevasis-sdk cli [domain] [--format markdown|json]
|
|
|
608
644
|
- When `domain` is omitted, all domains are listed
|
|
609
645
|
- `--format json` returns a structured array suitable for programmatic use; `--format markdown` (default) renders a human-readable table
|
|
610
646
|
- The runtime catalog is always up to date with what is actually registered -- it does not parse TypeScript source
|
|
647
|
+
- This is the only catalog. `elevasis-sdk --help` no longer carries a hand-maintained `Commands:` list in `program.description()`; it prints a short pointer to `elevasis-sdk cli` plus Commander's own list of registered commands, so there is nothing left to drift
|
|
611
648
|
|
|
612
649
|
**Flags:**
|
|
613
650
|
|
|
614
|
-
| Flag
|
|
615
|
-
|
|
|
651
|
+
| Flag | Description |
|
|
652
|
+
| ------------------- | ----------------------------------------------------------- |
|
|
616
653
|
| `--domain <domain>` | Filter output to one domain (alternative to positional arg) |
|
|
617
654
|
| `--format <format>` | Output format: `markdown` (default) or `json` |
|
|
618
655
|
|
|
@@ -659,12 +696,15 @@ elevasis-sdk doctor [--verbose] [--prod]
|
|
|
659
696
|
|
|
660
697
|
**Behavior:**
|
|
661
698
|
|
|
662
|
-
Runs
|
|
699
|
+
Runs five sequential checks and reports `[OK]` / `[FAIL]` / `[WARN]` for each. Exits with code 1 if any check fails. Later checks are skipped when a prerequisite fails.
|
|
663
700
|
|
|
664
701
|
1. Project root resolved -- locates the `.elevasis` marker file from the current working directory
|
|
665
702
|
2. `.env` found at project root
|
|
666
703
|
3. `ELEVASIS_PLATFORM_KEY` present and non-empty
|
|
667
704
|
4. API reachable and key valid -- calls `GET /api/external/health`
|
|
705
|
+
5. Systems roster -- every platform-cataloged System Interface, checked against the deployed readiness snapshot. Reuses the key and connectivity Check 4 already proved. A System the project has not adopted renders `[WARN]`, never `[FAIL]` -- partial adoption is the designed opt-out. `[FAIL]` is reserved for adopted-but-broken Systems: a stale deployed snapshot, an unsatisfied `readinessContract`, or a malformed declaration.
|
|
706
|
+
|
|
707
|
+
The roster is built from the platform catalog, not from your own declarations, so a System you have **not** adopted still gets a row. A System you declared locally that is missing from the deployed snapshot is treated as drift and renders `[FAIL]`, not `[WARN]`. If the API cannot be reached, the roster renders a single `[WARN]` line and leaves Checks 1-4 with their own results. `--verbose` prints each row's issue codes and messages.
|
|
668
708
|
|
|
669
709
|
**Flags:**
|
|
670
710
|
|
|
@@ -683,23 +723,31 @@ Running Elevasis SDK doctor checks...
|
|
|
683
723
|
[OK] API key: Set (length: 56)
|
|
684
724
|
[OK] API: Reachable. Workspace: Acme Corp (ws_abc123)
|
|
685
725
|
[WARN] SDK compat: server minSdkVersion is 1.25.0; check is advisory in v1.
|
|
726
|
+
[OK] Systems: sales.lead-gen/api: ready
|
|
727
|
+
[OK] Systems: sales.crm/api: ready
|
|
728
|
+
[OK] Systems: sales.lead-gen/crm-handoff: ready
|
|
729
|
+
[WARN] Systems: content/api: not adopted
|
|
686
730
|
|
|
687
731
|
All checks passed. Your Elevasis project is correctly configured.
|
|
688
732
|
```
|
|
689
733
|
|
|
734
|
+
A `[WARN]` roster row never changes the exit code. `doctor` still exits `0` with an unadopted System in the list.
|
|
735
|
+
|
|
690
736
|
**Implementation:** `packages/sdk/src/cli/commands/doctor.ts`
|
|
691
737
|
|
|
738
|
+
**Related:** [Common Errors -- System Readiness Errors](troubleshooting.mdx#system-readiness-errors-503) for what a `503` refusal from one of these Systems looks like at the terminal and how to clear it.
|
|
739
|
+
|
|
692
740
|
---
|
|
693
741
|
|
|
694
742
|
## Global Flags
|
|
695
743
|
|
|
696
744
|
These flags are accepted by all commands:
|
|
697
745
|
|
|
698
|
-
| Flag
|
|
699
|
-
|
|
|
700
|
-
| `--api-url <url>` | Override the API base URL. Priority: flag > `ELEVASIS_API_URL` env var > `NODE_ENV`-based default |
|
|
701
|
-
| `--json`
|
|
702
|
-
| `--prod`
|
|
746
|
+
| Flag | Description |
|
|
747
|
+
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
748
|
+
| `--api-url <url>` | Override the API base URL. Priority: `--api-url` flag > `--prod` flag > `ELEVASIS_API_URL` env var > `NODE_ENV`-based default |
|
|
749
|
+
| `--json` | Output raw JSON (available on most commands) |
|
|
750
|
+
| `--prod` | Target production, overriding `NODE_ENV=development` |
|
|
703
751
|
|
|
704
752
|
**API base URL resolution:**
|
|
705
753
|
|
|
@@ -710,4 +758,4 @@ These flags are accepted by all commands:
|
|
|
710
758
|
|
|
711
759
|
---
|
|
712
760
|
|
|
713
|
-
**Last Updated:** 2026-08-
|
|
761
|
+
**Last Updated:** 2026-08-17
|
|
@@ -23,7 +23,7 @@ export function defineWorkflow<TWorkflow extends WorkflowDefinition>(workflow: T
|
|
|
23
23
|
|
|
24
24
|
What it buys you is narrower inference. Annotate a literal `const echo: WorkflowDefinition = { ... }` and TypeScript widens every field to the interface's declared type -- `config.resourceId` becomes `string`, not `'echo'`. Pass the same object to `defineWorkflow({ ... })` with no annotation and `TWorkflow` is inferred from the literal you wrote, so `defineWorkflow(...).config.resourceId` keeps the literal type `'echo'`. That distinction only matters if something downstream reads the value back and wants the narrower type -- a test asserting on `resourceId`, a lookup table keyed by it, a second resource that imports the first and needs its literal id. A workflow file that is only ever consumed by the deploy pipeline, which just needs it to satisfy `WorkflowDefinition`, gets nothing extra from the wrapper.
|
|
25
25
|
|
|
26
|
-
That is a real, but narrow, upside -- and it is honestly reflected in what ships. The scaffolded template's own workflow files (`echo.ts`, `email-notification.ts`) use the plain annotated-literal form, not `defineWorkflow`. The builder is real, exported, and demonstrated in the SDK's own test fixtures with exactly the calling convention above -- it is simply not the house style the template ships with. Use the annotated literal by default, matching what a scaffolded project already contains; reach for `defineWorkflow` / `defineStep` / `defineContract` specifically when you want the object's literal types preserved past its own definition.
|
|
26
|
+
That is a real, but narrow, upside -- and it is honestly reflected in what ships. The scaffolded template's own workflow files (`example/echo.ts`, `email-notification/index.ts`) use the plain annotated-literal form, not `defineWorkflow`. The builder is real, exported, and demonstrated in the SDK's own test fixtures with exactly the calling convention above -- it is simply not the house style the template ships with. Use the annotated literal by default, matching what a scaffolded project already contains; reach for `defineWorkflow` / `defineStep` / `defineContract` specifically when you want the object's literal types preserved past its own definition.
|
|
27
27
|
|
|
28
28
|
`defineWorkflowConfig` is a different kind of helper in this same group -- it derives `config` fields from an Organization Model resource descriptor instead of preserving literal types. It has its own page: see [The Deployment Spec Pattern](project-deployment-spec.mdx#defineworkflowconfig-deriving-config-from-one-om-descriptor).
|
|
29
29
|
|
|
@@ -105,8 +105,8 @@ Keep relationships in sync with your handler code. When you add an `execution.tr
|
|
|
105
105
|
**Validation error examples:**
|
|
106
106
|
|
|
107
107
|
```
|
|
108
|
-
ERROR
|
|
109
|
-
ERROR Duplicate resource ID 'score-lead' in deployment
|
|
108
|
+
ERROR [acme-corp] Resource 'score-lead' triggers non-existent workflow: send-proposal
|
|
109
|
+
ERROR Duplicate resource ID 'score-lead' in deployment. Each resource must have a unique ID.
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
### Graph Serialization
|
|
@@ -82,13 +82,14 @@ Each deploy creates a new deployment record. The previous active deployment is a
|
|
|
82
82
|
|
|
83
83
|
The CLI validates your resources before bundling. Validation uses the same `ResourceRegistry` as the platform, so errors caught locally are the same errors that would be caught at deploy time.
|
|
84
84
|
|
|
85
|
-
**Validation checks:**
|
|
85
|
+
**Validation checks that abort the deploy:**
|
|
86
86
|
|
|
87
87
|
- Duplicate `resourceId` within your organization
|
|
88
88
|
- Invalid model configuration (temperature and token bounds out of range)
|
|
89
89
|
- `ExecutionInterface` form fields not matching `inputSchema`
|
|
90
|
-
- Broken workflow step chains (`next` referencing a step that does not exist)
|
|
91
90
|
- Relationship declarations referencing resources that do not exist
|
|
91
|
+
- Structural failures in your `organizationModel`
|
|
92
|
+
- A System with API-backed resources but no `apiInterface` declaration
|
|
92
93
|
|
|
93
94
|
**Validation failure output:**
|
|
94
95
|
|
|
@@ -100,6 +101,18 @@ The CLI validates your resources before bundling. Validation uses the same `Reso
|
|
|
100
101
|
Deploy aborted.
|
|
101
102
|
```
|
|
102
103
|
|
|
104
|
+
Every issue is reported in one run. Governance and System Interface readiness failures no longer stop at the first problem, so thirty issues cost one deploy round trip rather than thirty.
|
|
105
|
+
|
|
106
|
+
**Checks that warn without aborting:**
|
|
107
|
+
|
|
108
|
+
Workflow-graph problems -- a `next` target that does not exist, an `entryPoint` that names no step, a cycle, or a step unreachable from the entry point -- are reported as warnings so an existing project carrying a latent invalid graph is not blocked on its next deploy. **They still throw at execution**, when the workflow is constructed. Treat a graph warning as a defect with a deadline, not as advisory.
|
|
109
|
+
|
|
110
|
+
The platform runs its own checks on the server after upload and reports these as warnings too: the `apiInterface` conformance check, agent grammar and token-floor validation, and a cross-check of every declared `IntegrationDefinition.credentialName` against the credentials your organization actually holds. A missing credential is a warning at deploy and a `credentials_missing` failure at execution, so create it before the resource runs. Only credential names are checked; values never leave the command center.
|
|
111
|
+
|
|
112
|
+
**Downgrading checks temporarily:**
|
|
113
|
+
|
|
114
|
+
`ELEVASIS_RESOURCE_VALIDATOR=warn-only` downgrades resource governance, contract-ref resolution, System Interface readiness, and the agent grammar and cheap-assertion checks to warnings. Every downgraded check still runs and still prints its issue; it never bypasses the structural schema parse or the conformance gate.
|
|
115
|
+
|
|
103
116
|
Run `elevasis-sdk check` at any time to validate without deploying.
|
|
104
117
|
|
|
105
118
|
---
|
|
@@ -121,13 +134,16 @@ The `ElevasConfig` type is exported from `@elevasis/sdk`. You can leave the conf
|
|
|
121
134
|
|
|
122
135
|
## Environment Variables
|
|
123
136
|
|
|
124
|
-
| Variable
|
|
125
|
-
|
|
|
126
|
-
| `ELEVASIS_PLATFORM_KEY`
|
|
127
|
-
| `ELEVASIS_API_URL`
|
|
137
|
+
| Variable | Required | Description |
|
|
138
|
+
| --------------------------- | -------- | ----------------------------------------------------------------------------------- |
|
|
139
|
+
| `ELEVASIS_PLATFORM_KEY` | Yes | Your `sk_...` API key. Used for authentication and organization resolution. |
|
|
140
|
+
| `ELEVASIS_API_URL` | No | Override the API base URL. Useful for pointing at a staging environment. |
|
|
141
|
+
| `ELEVASIS_PLATFORM_KEY_DEV` | No | Key used instead when the request targets a local API. Falls back to the key above. |
|
|
128
142
|
|
|
129
143
|
The CLI also accepts a `--api-url` flag on every command, which takes priority over `ELEVASIS_API_URL`.
|
|
130
144
|
|
|
145
|
+
**Which key a request uses is derived from the URL it is sent to**, not from `--prod` or `NODE_ENV` read separately. Both the authentication step and the bundle upload go through the same resolver, so pointing `--api-url` at production while `NODE_ENV=development` is set can no longer authenticate with one key and upload with the other.
|
|
146
|
+
|
|
131
147
|
**API URL resolution order:**
|
|
132
148
|
|
|
133
149
|
1. `--api-url` flag (highest priority)
|
|
@@ -288,4 +304,5 @@ Dashboard appears before Business in the primary sidebar. Business is a navigati
|
|
|
288
304
|
|
|
289
305
|
- [Command Center](command-center.mdx) - Resource graph, relationships, node types, and post-deployment UI reference
|
|
290
306
|
- [Execution Reference](execution-reference.mdx) - REST endpoints for executing resources, managing deployments, and React UI components for custom Run dialogs
|
|
291
|
-
- [Platform Adapters](../platform-tools/adapters-platform.mdx) - `approval.create()` and
|
|
307
|
+
- [Platform Adapters](../platform-tools/adapters-platform.mdx) - `approval.create()` and the full platform service adapter catalog
|
|
308
|
+
- [Common Errors](../troubleshooting.mdx#deploy-errors-elevasis-sdk-deploy) - Deploy failure catalog, warning meanings, and System readiness refusals
|
|
@@ -8,7 +8,7 @@ description: "Auto-generated catalog of all published @elevasis/sdk subpath expo
|
|
|
8
8
|
|
|
9
9
|
| Import | Title | Group | Description |
|
|
10
10
|
| --- | --- | --- | --- |
|
|
11
|
-
| `@elevasis/sdk` | SDK | Getting Started |
|
|
12
|
-
| `@elevasis/sdk/worker` | Worker Runtime | Runtime |
|
|
13
|
-
| `@elevasis/sdk/test-utils` | Test Utils | Testing |
|
|
14
|
-
| `@elevasis/sdk/node` | Node Build Tooling | Tooling |
|
|
11
|
+
| `@elevasis/sdk` | SDK | Getting Started | Default entry: defineWorkflow, defineStep, defineContract, contract-ref resolution, shared types, and workflow utilities. |
|
|
12
|
+
| `@elevasis/sdk/worker` | Worker Runtime | Runtime | worker_threads runtime plus the typed platform and integration adapters a step handler calls at execution time. |
|
|
13
|
+
| `@elevasis/sdk/test-utils` | Test Utils | Testing | Workflow test harness, resource registry helpers, and mock adapters for unit-testing definitions without the platform. |
|
|
14
|
+
| `@elevasis/sdk/node` | Node Build Tooling | Tooling | Node-only build-time codegen for knowledge nodes and bodies. Requires fs/path/process -- not browser-safe. |
|
|
@@ -36,6 +36,7 @@ The template ships these skills, all committed to version control:
|
|
|
36
36
|
| Skill | Purpose |
|
|
37
37
|
| ----------------- | ------------------------------------------------------------------------------------------------ |
|
|
38
38
|
| `/client` | Client portfolio management -- list, resolve, inspect, and maintain client records |
|
|
39
|
+
| `/content` | Content pipeline operations -- list items, inspect, board view, review queue, distributions |
|
|
39
40
|
| `/deploy` | Test, build, fix issues, then commit and push |
|
|
40
41
|
| `/dsp` | Dispatch subagents in parallel for implementation tasks |
|
|
41
42
|
| `/elevasis` | SDK operations -- check, deploy, execute, inspect, and debug resources |
|
|
@@ -77,11 +78,11 @@ The gate is **outgoing commits**, checked with `git rev-list --count @{u}..HEAD`
|
|
|
77
78
|
|
|
78
79
|
## The Ambient Vibe Layer
|
|
79
80
|
|
|
80
|
-
External projects run an always-on natural-language intent classifier -- there is no `/vibe` command and no activation phrase. Every message is silently classified into one of
|
|
81
|
+
External projects run an always-on natural-language intent classifier -- there is no `/vibe` command and no activation phrase. Every message is silently classified into one of eight intents (Capture, Query, Describe, Transition, Navigate, Codify, Toggle, Operate) before the agent responds. Codify and Toggle detect intent and delegate immediately to `/om`; Operate delegates to `/elevasis` (`elevasis-sdk describe` then a confirmed `exec`); the classifier never runs the organization-model ceremony or executes a deployed resource itself. The full classifier definition and fixture tables ship with the SDK at `operations/node_modules/@elevasis/sdk/reference/rules/vibe.md` and the per-intent detail at `operations/node_modules/@elevasis/sdk/reference/rules/vibe-intents.md`. Vibe is explicitly off inside the monorepo, which uses the task-class routing in `agent-start-here.md` instead.
|
|
81
82
|
|
|
82
83
|
## The Rules Layer
|
|
83
84
|
|
|
84
|
-
`.claude/rules/` in the git-tracked template holds short pointer files with `paths:` frontmatter that Claude Code auto-loads for matching files. The authoritative rule bodies ship with the installed `@elevasis/sdk` package at `operations/node_modules/@elevasis/sdk/reference/rules/` and update whenever the SDK dependency is bumped.
|
|
85
|
+
`.claude/rules/` in the git-tracked template holds short pointer files with `paths:` frontmatter that Claude Code auto-loads for matching files. The authoritative rule bodies ship with the installed `@elevasis/sdk` package at `operations/node_modules/@elevasis/sdk/reference/rules/` and update whenever the SDK dependency is bumped. The bundle carries 19 rules: `agent-start-here.md` (always-loaded), `vibe.md` (always-loaded), `vibe-intents.md`, `agent-runtime.md`, `content.md`, `organization-os.md`, `deployment.md`, `error-handling.md`, `execution.md`, `frontend.md`, `observability.md`, `operations.md`, `organization-model.md`, `package-taxonomy.md`, `platform.md`, `shared-types.md`, `task-tracking.md`, `ui.md`, and `active-change-index.md` (which flags areas under active platform change). The template also ships a small number of project-authored, System-specific rules directly under `.claude/rules/` -- for example `crm.md` and `lead-gen.md` -- that are not part of the bundled set.
|
|
85
86
|
|
|
86
87
|
## Template Version Tracking
|
|
87
88
|
|
|
@@ -89,4 +90,4 @@ The scaffold's version marker is `templateVersion` in the project-root `.elevasi
|
|
|
89
90
|
|
|
90
91
|
---
|
|
91
92
|
|
|
92
|
-
**Last Updated:** 2026-08-
|
|
93
|
+
**Last Updated:** 2026-08-17
|
|
@@ -83,7 +83,7 @@ See [Tutorial System](tutorial-system.mdx) for the full lesson breakdown, track
|
|
|
83
83
|
|
|
84
84
|
## Documentation
|
|
85
85
|
|
|
86
|
-
- [Project Structure](project-structure.mdx) - Directory-by-directory walkthrough of the scaffolded project
|
|
86
|
+
- [Project Structure](project-structure.mdx) - Directory-by-directory walkthrough of the scaffolded project's structure and layout
|
|
87
87
|
- [Agent System](agent.mdx) - Skill inventory, rules layer, ambient vibe classifier, and session bootstrap
|
|
88
88
|
- [Tutorial System](tutorial-system.mdx) - Two-track onboarding (8 vibe-coder + 19 technical lessons), track persistence, and progress tracking
|
|
89
89
|
|