@elevasis/sdk 1.25.0 → 1.26.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.
Files changed (60) hide show
  1. package/dist/cli.cjs +18 -116
  2. package/dist/index.d.ts +165 -48
  3. package/dist/index.js +4 -435
  4. package/dist/node/index.d.ts +36 -36
  5. package/dist/test-utils/index.d.ts +99 -38
  6. package/dist/test-utils/index.js +27 -355
  7. package/dist/types/worker/adapters/clickup.d.ts +22 -0
  8. package/dist/types/worker/adapters/index.d.ts +1 -0
  9. package/dist/worker/index.js +32 -354
  10. package/package.json +2 -2
  11. package/reference/_navigation.md +11 -1
  12. package/reference/_reference-manifest.json +70 -0
  13. package/reference/claude-config/rules/organization-model.md +12 -1
  14. package/reference/claude-config/rules/organization-os.md +12 -1
  15. package/reference/claude-config/skills/om/SKILL.md +13 -5
  16. package/reference/claude-config/skills/om/operations/codify-level-a.md +109 -100
  17. package/reference/claude-config/skills/om/operations/customers.md +10 -6
  18. package/reference/claude-config/skills/om/operations/features.md +7 -3
  19. package/reference/claude-config/skills/om/operations/goals.md +10 -6
  20. package/reference/claude-config/skills/om/operations/identity.md +8 -5
  21. package/reference/claude-config/skills/om/operations/labels.md +17 -1
  22. package/reference/claude-config/skills/om/operations/offerings.md +11 -7
  23. package/reference/claude-config/skills/om/operations/roles.md +11 -7
  24. package/reference/claude-config/skills/om/operations/techStack.md +10 -2
  25. package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +32 -0
  26. package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +43 -0
  27. package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +40 -0
  28. package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +61 -0
  29. package/reference/cli-management.mdx +539 -0
  30. package/reference/cli.mdx +4 -532
  31. package/reference/concepts.mdx +134 -146
  32. package/reference/deployment/api.mdx +296 -297
  33. package/reference/deployment/command-center.mdx +208 -209
  34. package/reference/deployment/index.mdx +194 -195
  35. package/reference/deployment/provided-features.mdx +110 -107
  36. package/reference/deployment/ui-execution.mdx +249 -250
  37. package/reference/framework/index.mdx +111 -195
  38. package/reference/framework/resource-documentation.mdx +90 -0
  39. package/reference/framework/tutorial-system.mdx +135 -135
  40. package/reference/getting-started.mdx +141 -142
  41. package/reference/index.mdx +95 -106
  42. package/reference/packages/ui/src/auth/README.md +6 -6
  43. package/reference/platform-tools/adapters-integration.mdx +300 -301
  44. package/reference/platform-tools/adapters-platform.mdx +552 -553
  45. package/reference/platform-tools/index.mdx +216 -217
  46. package/reference/platform-tools/type-safety.mdx +82 -82
  47. package/reference/resources/index.mdx +348 -349
  48. package/reference/resources/patterns.mdx +446 -449
  49. package/reference/resources/types.mdx +115 -116
  50. package/reference/roadmap.mdx +164 -165
  51. package/reference/rules/organization-model.md +14 -0
  52. package/reference/runtime.mdx +172 -173
  53. package/reference/scaffold/operations/propagation-pipeline.md +1 -1
  54. package/reference/scaffold/recipes/extend-lead-gen.md +130 -77
  55. package/reference/scaffold/reference/contracts.md +376 -446
  56. package/reference/scaffold/reference/glossary.md +8 -6
  57. package/reference/scaffold/ui/feature-flags-and-gating.md +59 -46
  58. package/reference/scaffold/ui/feature-shell.mdx +11 -11
  59. package/reference/scaffold/ui/recipes.md +24 -24
  60. package/reference/troubleshooting.mdx +222 -223
@@ -0,0 +1,61 @@
1
+ # Organization Model Multi-File Split
2
+
3
+ ## Why this note exists
4
+
5
+ `core/config/organization-model.ts` has grown large enough that authoring, review, and `/om`
6
+ codify writes are easier against focused files. This change splits the single file into an
7
+ entry file plus a sibling directory, WITHOUT changing the entry filename, the public export
8
+ contract, or any consumer import. The SDK loader, the Tier-2 merge rule, and every downstream
9
+ consumer continue to resolve `core/config/organization-model.ts` exactly as before.
10
+
11
+ This note is the Tier-1 → Tier-2 handoff interface: the source split lands now (Tier 1); the
12
+ `/external sync` propagation to derived tenants is deferred to a `/sdk ship` cycle (Tier 2).
13
+
14
+ ## What changed
15
+
16
+ The model is now authored across four files:
17
+
18
+ - `core/config/organization-model.ts` -- ENTRY: assembles `canonicalOrganizationModel` /
19
+ `organizationModel` and re-exports every public symbol. No consumer import changes.
20
+ - `core/config/organization-model/profile.ts` -- the `defineOrganizationModel(...)` body
21
+ (identity, customers, offerings, roles, goals). Primary `/om` codify write target.
22
+ - `core/config/organization-model/systems.ts` -- systems, resources, topology, entities,
23
+ actions, resource governance, feature/system-ID constants.
24
+ - `core/config/organization-model/navigation.ts` -- sidebar navigation tree and surface
25
+ projection; imports `systems.ts` directly (never via the entry) to keep the graph acyclic.
26
+
27
+ ## Applies to
28
+
29
+ - `external/_template/core/config/organization-model.ts` and the new `organization-model/`
30
+ sibling directory
31
+ - Any downstream tenant project derived from `_template` that opts in to the split (the
32
+ Tier-2 merge does NOT force adoption — single-file projects remain valid)
33
+
34
+ ## Sync tiers for the new siblings
35
+
36
+ - `organization-model.ts` (entry) -- `merge` / `merge-regions` / `@elevasis/core` (unchanged)
37
+ - `organization-model/systems.ts` -- `merge` / `merge-regions` / `@elevasis/core`
38
+ - `organization-model/navigation.ts` -- `merge` / `merge-regions` / `@elevasis/core`
39
+ - `organization-model/profile.ts` -- `never-touch` / `verify-only` / project-owned (the
40
+ `/om` codify write target; sync never overwrites it)
41
+
42
+ ## Required actions
43
+
44
+ - For an unsplit project that wants the split: mirror the four-file layout from `_template`,
45
+ preserving the `defineOrganizationModel(...)` body verbatim into `profile.ts`. Keep the
46
+ entry filename and the full public export barrel.
47
+ - No action is required to stay on the single-file layout — it remains supported.
48
+
49
+ ## Verification
50
+
51
+ - `pnpm -C core test` (snapshot equality — the resolved model must be byte-identical to the
52
+ pre-split fixture)
53
+ - `pnpm -C operations check-types`
54
+ - `pnpm sync:verify` from the monorepo root after `/external sync` propagates (the
55
+ export-presence checks now tolerate the re-export form across the sibling files)
56
+
57
+ ## Not handled by /git-sync
58
+
59
+ `/git-sync` does not split your `core/config/organization-model.ts` for you. The split is an
60
+ intentional one-time structural migration — author it directly (or via `/om`), preserving the
61
+ `defineOrganizationModel(...)` body verbatim, and review it in a normal PR.
@@ -0,0 +1,539 @@
1
+ ---
2
+ title: CLI Management Commands
3
+ description: elevasis-sdk management commands -- project, note, acquisition, client, agent, session, queue, schedule, om, and ui subcommand families
4
+ ---
5
+
6
+ This page covers the domain management commands for `elevasis-sdk`. For core SDK commands (check, deploy, exec, resources, executions, describe, creds, rename), see [CLI Reference](cli.mdx).
7
+
8
+ ---
9
+
10
+ ## elevasis-sdk project:\*
11
+
12
+ `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`.
13
+
14
+ 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:
15
+
16
+ - UI manifest key: `delivery`
17
+ - Organization model feature ID: `projects`
18
+ - Default surface: `projects.index`
19
+ - Semantic domain fields: `organizationModel.delivery`
20
+ - Core entity/capability IDs: `delivery.project`, `delivery.milestone`, `delivery.task`, `delivery.projects.view`
21
+
22
+ ### Projects
23
+
24
+ ```bash
25
+ elevasis-sdk project:list
26
+ elevasis-sdk project:get <id>
27
+ elevasis-sdk project:create --name "Website Refresh" --kind client_engagement
28
+ elevasis-sdk project:update <id> --status completed
29
+ elevasis-sdk project:delete <id>
30
+ ```
31
+
32
+ **Behavior:**
33
+
34
+ - `project:list` filters by `--kind` and `--status`
35
+ - `project:get` returns a single project
36
+ - `project:create` and `project:update` operate on `/api/external/projects`
37
+
38
+ ### Milestones
39
+
40
+ ```bash
41
+ elevasis-sdk project:milestone:list --project <id>
42
+ elevasis-sdk project:milestone:create --project <id> --name "Phase 1"
43
+ elevasis-sdk project:milestone:update <id> --status completed
44
+ elevasis-sdk project:milestone:update <id> --description "Updated scope description"
45
+ elevasis-sdk project:milestone:delete <id>
46
+ ```
47
+
48
+ `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.
49
+
50
+ ### Tasks
51
+
52
+ ```bash
53
+ elevasis-sdk project:task:list --project <id>
54
+ elevasis-sdk project:task:get <id>
55
+ elevasis-sdk project:task:create --project <id> --title "Implement API"
56
+ elevasis-sdk project:task:update <id> --status in_progress
57
+ elevasis-sdk project:task:delete <id>
58
+ ```
59
+
60
+ Task commands also expose agent-oriented resume state:
61
+
62
+ ```bash
63
+ elevasis-sdk project:task:resume <id> --pretty
64
+ elevasis-sdk project:task:save <id> --current-state "Implemented the route layer"
65
+ ```
66
+
67
+ - `project:task:resume` reads the task's `resume_context`
68
+ - `project:task:save` merges fields into `resume_context`
69
+ - these commands are the CLI counterpart to `/work resume` and `/work save` style flows
70
+
71
+ ### Notes
72
+
73
+ ```bash
74
+ elevasis-sdk project:note:list --project <id>
75
+ elevasis-sdk project:note:create --project <id> --content "Client approved scope"
76
+ elevasis-sdk project:note:create --project <id> --type agent_learning --content "Learned X"
77
+ elevasis-sdk project:note:update <id> --content "Updated status"
78
+ elevasis-sdk project:note:delete <id>
79
+ ```
80
+
81
+ 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.
82
+
83
+ ### Requests
84
+
85
+ ```bash
86
+ elevasis-sdk request:submit --input-file ./tmp/request-report.json
87
+ elevasis-sdk request:submit --input '{"type":"bug","category":"sdk","severity":"high","title":"..."}'
88
+ ```
89
+
90
+ Submits a structured request report to `POST /api/external/requests`. The payload is validated against `CreateRequestInputSchema` before the network call.
91
+
92
+ **Payload enum values** (inline in `--help` output; sourced from `packages/core/src/requests/api-schemas.ts`):
93
+
94
+ | Field | Accepted values |
95
+ | ---------- | ------------------------------------------------------------------------------------- |
96
+ | `type` | Values from `RequestTypeEnum` -- see `request:submit --help` for the current list |
97
+ | `category` | Values from `RequestCategoryEnum` -- see `request:submit --help` for the current list |
98
+ | `severity` | Values from `RequestSeverityEnum` -- see `request:submit --help` for the current list |
99
+
100
+ **Flags:**
101
+
102
+ | Flag | Description |
103
+ | --------------------------- | ----------------------------------------------------------------------------- |
104
+ | `-i, --input <json>` | Request body as JSON string |
105
+ | `-f, --input-file <path>` | Read body from a JSON file; relative paths resolve against the project root |
106
+ | `--pretty` | Human-readable output instead of raw JSON |
107
+ | `--cleanup-input` | Delete the input file after success (only files under `<projectRoot>/tmp/`) |
108
+ | `--api-url <url>` | Override the API base URL |
109
+
110
+ **Read commands** (added once `request` cleared the 4-point promotion bar):
111
+
112
+ ```bash
113
+ elevasis-sdk request:list --status open --severity critical
114
+ elevasis-sdk request:get <id>
115
+ ```
116
+
117
+ `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).
118
+
119
+ | Flag | Description |
120
+ | --------------------- | ----------------------------------------------- |
121
+ | `--status <status>` | Filter list by status (`RequestStatusEnum`) |
122
+ | `--severity <sev>` | Filter list by severity (`RequestSeverityEnum`) |
123
+ | `--project-id <id>` | Filter list by project id |
124
+ | `--limit <n>` | Max rows (1-200, default 50) |
125
+ | `--pretty` | Human-readable output instead of raw JSON |
126
+ | `--api-url <url>` | Override the API base URL |
127
+
128
+ ---
129
+
130
+ ### Shared Flags
131
+
132
+ Most `project:*` commands support:
133
+
134
+ | Flag | Description |
135
+ | ----------------- | -------------------------------------------------- |
136
+ | `--pretty` | Human-readable terminal output instead of raw JSON |
137
+ | `--api-url <url>` | Override the API base URL |
138
+
139
+ For exact required flags and accepted enum values, see the command source under `packages/sdk/src/cli/commands/project/`.
140
+
141
+ ### Command Boundary
142
+
143
+ - `/project` is a convenience router to these `elevasis-sdk project:*` commands. It is not a separate project system.
144
+ - `/work` is for docs-backed in-progress task tracking and session resume, not project CRUD.
145
+ - `/external` is for managing standalone apps in `external/`, not project records inside a deployed system.
146
+ - `/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.
147
+
148
+ ---
149
+
150
+ ## elevasis-sdk note:\*
151
+
152
+ `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.
153
+
154
+ 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.
155
+
156
+ ### note:create
157
+
158
+ Create a personal note for a user.
159
+
160
+ **Synopsis:**
161
+
162
+ ```
163
+ elevasis-sdk note:create --content <text>
164
+ [--user <email>]
165
+ [--title <text>]
166
+ [--priority low|normal|high|urgent]
167
+ [--pinned]
168
+ [--source <id>]
169
+ [--api-url <url>] [--pretty]
170
+ ```
171
+
172
+ **Flags:**
173
+
174
+ | Flag | Description |
175
+ | ------------------------- | ----------------------------------------------------------------------------------------- |
176
+ | `--content <text>` | Required. The note body text |
177
+ | `--user <email>` | Target user email. Defaults to the API key owner when omitted |
178
+ | `--title <text>` | Optional note title |
179
+ | `--priority <priority>` | Priority level: `low`, `normal` (default), `high`, or `urgent` |
180
+ | `--pinned` | Pin the note to the top of the panel |
181
+ | `--source <id>` | Source identifier -- set this to the workflow or agent ID when calling from agent runtime |
182
+ | `--api-url <url>` | Override the API base URL |
183
+ | `--pretty` | Human-readable terminal output instead of raw JSON |
184
+
185
+ **Behavior:**
186
+
187
+ - Posts to `POST /api/external/user-notes`
188
+ - When `--user` is omitted the note is created for the identity bound to the API key (the caller)
189
+ - 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
190
+ - 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
191
+ - Priority `normal` produces no badge in the UI; `high` renders orange, `urgent` renders red, `low` renders dimmed gray
192
+
193
+ **Examples:**
194
+
195
+ ```bash
196
+ # Create a note for the API key owner
197
+ elevasis-sdk note:create --content "Deal X has stalled -- follow up needed"
198
+
199
+ # Create a high-priority pinned note for a specific user
200
+ elevasis-sdk note:create \
201
+ --content "Review run completed for batch_abc123" \
202
+ --user ops@acme.com \
203
+ --priority high \
204
+ --pinned \
205
+ --source "report-review-workflow" \
206
+ --pretty
207
+ ```
208
+
209
+ ```
210
+ Note created
211
+ ID: note_550e8400-...
212
+ Priority: high
213
+ ```
214
+
215
+ ---
216
+
217
+ ### note:list
218
+
219
+ List notes for a user.
220
+
221
+ **Synopsis:**
222
+
223
+ ```
224
+ elevasis-sdk note:list --user <email>
225
+ [--priority <p>] [--pinned]
226
+ [--limit <n>] [--offset <n>]
227
+ [--api-url <url>] [--pretty]
228
+ ```
229
+
230
+ **Flags:**
231
+
232
+ | Flag | Description |
233
+ | ------------------------- | -------------------------------------------------------- |
234
+ | `--user <email>` | Required. The user whose notes to retrieve |
235
+ | `--priority <priority>` | Filter by priority: `low`, `normal`, `high`, or `urgent` |
236
+ | `--pinned` | Return only pinned notes |
237
+ | `--limit <n>` | Maximum number of results to return |
238
+ | `--offset <n>` | Pagination offset |
239
+ | `--api-url <url>` | Override the API base URL |
240
+ | `--pretty` | Human-readable terminal output instead of raw JSON |
241
+
242
+ **Behavior:**
243
+
244
+ - Queries `GET /api/external/user-notes?user_email=<email>`
245
+ - `--user` is required -- the external GET endpoint requires an explicit user target
246
+ - Results are sorted by the platform: pinned first, then by priority (`urgent` > `high` > `normal` > `low`), then by most recently updated
247
+ - Organization scope is derived from the API key -- only notes belonging to users in the calling organization are returned
248
+
249
+ **Examples:**
250
+
251
+ ```bash
252
+ # List all notes for a user
253
+ elevasis-sdk note:list --user ops@acme.com
254
+
255
+ # List only high-priority pinned notes, human-readable
256
+ elevasis-sdk note:list --user ops@acme.com --priority high --pinned --pretty
257
+ ```
258
+
259
+ ```
260
+ Notes (2):
261
+
262
+ (no title) [pinned] [high]
263
+ ID: note_abc001
264
+ Review run completed for batch_abc123
265
+
266
+ Deal X stalled [pinned] [high]
267
+ ID: note_abc002
268
+ Deal X has stalled -- follow up needed
269
+ ```
270
+
271
+ ---
272
+
273
+ ### Shared Flags
274
+
275
+ | Flag | Description |
276
+ | ------------------- | -------------------------------------------------- |
277
+ | `--pretty` | Human-readable terminal output instead of raw JSON |
278
+ | `--api-url <url>` | Override the API base URL |
279
+
280
+ ### Command Boundary
281
+
282
+ - `note:create` and `note:list` operate on the **personal notes** surface -- not project notes. For project-scoped notes use `project:note:*`.
283
+ - `note:update` and `note:delete` are not yet available via SDK CLI. Edit and delete notes using the Notes panel in the Command Center.
284
+ - The Notes panel view (`NotesPanelView`) is registered in the right-panel registry alongside Overview, Recent Executions, and Notifications.
285
+
286
+ **Implementation:** `packages/sdk/src/cli/commands/notes.ts` -- delegates to `POST /api/external/user-notes` and `GET /api/external/user-notes`
287
+
288
+ ### Notes Design Contract
289
+
290
+ The following invariants govern the Notes feature and are relevant when building agents or workflows that write notes:
291
+
292
+ - **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.
293
+ - **Sort order:** Pinned first, then by priority (`urgent` > `high` > `normal` > `low`), then by most recently updated.
294
+ - **Broadcast:** Out of scope. Agents create notes for one resolved user at a time. Broadcast is a notifications concern, not a notes concern.
295
+ - **Retention:** Notes persist until the user explicitly deletes them. There is no TTL and no dismissed state.
296
+ - **Agent creation:** One-to-one only. Pass `--source` with the agent or workflow resource ID so users can trace which resource created the note.
297
+
298
+ ---
299
+
300
+ ## elevasis-sdk acquisition:\*
301
+
302
+ Read-only access to acquisition lists and CRM deals. The acquisition CLI scope is intentionally read-only; mutating commands are deferred.
303
+
304
+ ### acquisition:list:\*
305
+
306
+ ```bash
307
+ elevasis-sdk acquisition:list:list
308
+ elevasis-sdk acquisition:list:get <id>
309
+ elevasis-sdk acquisition:list:status
310
+ ```
311
+
312
+ - `acquisition:list:list` -- list all acquisition lists for the organization
313
+ - `acquisition:list:get <id>` -- get full detail for a single acquisition list by UUID
314
+ - `acquisition:list:status` -- summarize counts and progress across all lists
315
+
316
+ ### acquisition:deal:\*
317
+
318
+ ```bash
319
+ elevasis-sdk acquisition:deal:list
320
+ elevasis-sdk acquisition:deal:get <id>
321
+ elevasis-sdk acquisition:deal:status
322
+ ```
323
+
324
+ - `acquisition:deal:list` -- list all CRM deals visible to the organization
325
+ - `acquisition:deal:get <id>` -- get a single deal record
326
+ - `acquisition:deal:status` -- summarize deal pipeline counts
327
+
328
+ **API routes:**
329
+
330
+ - Acquisition lists: `GET /api/external/acquisition/lists`, `/api/external/acquisition/lists/:listId`, `/api/external/acquisition/lists/status`
331
+ - Deals: `GET /api/external/deals`, `/api/external/deals/:dealId`, `/api/external/deals/summary`
332
+
333
+ JWT-gated routes at the original unprefixed paths remain for the Command Center. All SDK CLI calls use `/api/external/*` gated by `requireApiKey`.
334
+
335
+ **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>`.
336
+
337
+ **Flags (all acquisition commands):**
338
+
339
+ | Flag | Description |
340
+ | ------------------- | -------------------------------------------------- |
341
+ | `--pretty` | Human-readable terminal output instead of raw JSON |
342
+ | `--api-url <url>` | Override the API base URL |
343
+
344
+ **Implementation:** `packages/sdk/src/cli/commands/acquisition/`
345
+
346
+ ---
347
+
348
+ ## elevasis-sdk client:\*
349
+
350
+ Full CRUD management for client records. The `client:*` family covers create, read, update, and delete operations at `/api/external/clients`.
351
+
352
+ For complete field definitions, filter options, and relationship semantics, see the [Clients feature documentation](/technical/features/clients).
353
+
354
+ **Quick reference:**
355
+
356
+ ```bash
357
+ elevasis-sdk client:list
358
+ elevasis-sdk client:get <id>
359
+ elevasis-sdk client:create --name "Acme Corp"
360
+ elevasis-sdk client:update <id> --name "Acme Corp Updated"
361
+ elevasis-sdk client:delete <id>
362
+ ```
363
+
364
+ **Flags:**
365
+
366
+ | Flag | Description |
367
+ | ------------------- | -------------------------------------------------- |
368
+ | `--pretty` | Human-readable terminal output instead of raw JSON |
369
+ | `--api-url <url>` | Override the API base URL |
370
+
371
+ **Implementation:** `packages/sdk/src/cli/commands/` (client family)
372
+
373
+ ---
374
+
375
+ ## elevasis-sdk agent:\*
376
+
377
+ Read-only inspection of deployed agents.
378
+
379
+ ```bash
380
+ elevasis-sdk agent:list
381
+ elevasis-sdk agent:get <id>
382
+ ```
383
+
384
+ - `agent:list` -- list all agents registered for the organization
385
+ - `agent:get <id>` -- get metadata and schema for a specific agent
386
+
387
+ **API routes:** `GET /api/external/agents`, `/api/external/agents/:id`
388
+
389
+ **Flags:**
390
+
391
+ | Flag | Description |
392
+ | ------------------- | -------------------------------------------------- |
393
+ | `--pretty` | Human-readable terminal output instead of raw JSON |
394
+ | `--api-url <url>` | Override the API base URL |
395
+
396
+ **Implementation:** `packages/sdk/src/cli/commands/` (agent family)
397
+
398
+ ---
399
+
400
+ ## elevasis-sdk session:\*
401
+
402
+ Inspect and manage agent sessions.
403
+
404
+ ```bash
405
+ elevasis-sdk session:list
406
+ elevasis-sdk session:get <id>
407
+ elevasis-sdk session:end <id>
408
+ ```
409
+
410
+ - `session:list` -- list sessions for the organization; supports filtering by resource, status, and time range
411
+ - `session:get <id>` -- get full session detail including messages and events
412
+ - `session:end <id>` -- gracefully end an active session
413
+
414
+ **API routes:** `GET /api/external/sessions`, `/api/external/sessions/:id`, `POST /api/external/sessions/:id/end`
415
+
416
+ **Flags:**
417
+
418
+ | Flag | Description |
419
+ | ------------------- | -------------------------------------------------- |
420
+ | `--pretty` | Human-readable terminal output instead of raw JSON |
421
+ | `--api-url <url>` | Override the API base URL |
422
+
423
+ **Implementation:** `packages/sdk/src/cli/commands/` (session family)
424
+
425
+ ---
426
+
427
+ ## elevasis-sdk queue:\*
428
+
429
+ Manage HITL command queue tasks. See the [Command Queue CLI Guide](/technical/development/agent-driven-development/command-cli-guide) for the full command reference.
430
+
431
+ **Quick reference:**
432
+
433
+ ```bash
434
+ elevasis-sdk queue:list --status pending --pretty
435
+ elevasis-sdk queue:get <id> --pretty
436
+ elevasis-sdk queue:select <id> --action-id <action-id> --pretty
437
+ elevasis-sdk queue:expire <id> --pretty
438
+ elevasis-sdk queue:status --pretty
439
+ ```
440
+
441
+ **Auth:** Calls `/api/external/command-queue/*` with API-key auth.
442
+
443
+ ---
444
+
445
+ ## elevasis-sdk schedule:\*
446
+
447
+ 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.
448
+
449
+ **Quick reference:**
450
+
451
+ ```bash
452
+ elevasis-sdk schedule:list --status active --pretty
453
+ elevasis-sdk schedule:get <id> --pretty
454
+ elevasis-sdk schedule:create --name <name> --target-resource-type workflow --target-resource-id <id> --schedule-config '{...}' --pretty
455
+ elevasis-sdk schedule:update <id> --name "Updated name" --pretty
456
+ elevasis-sdk schedule:pause <id> --pretty
457
+ elevasis-sdk schedule:resume <id> --pretty
458
+ elevasis-sdk schedule:cancel <id> --pretty
459
+ ```
460
+
461
+ **Auth:** Calls `/api/external/task-scheduler/schedules*` with API-key auth.
462
+
463
+ ---
464
+
465
+ ## elevasis-sdk om:\*
466
+
467
+ Knowledge map inspection. The `om:*` (Organization Model) commands expose knowledge graph traversal via the CLI.
468
+
469
+ For the full command reference, flag details, and graph architecture, see the [knowledge:\* CLI documentation](/technical/features/knowledge/knowledge-cli).
470
+
471
+ **Quick reference:**
472
+
473
+ ```bash
474
+ elevasis-sdk knowledge:ls /by-system/sales.crm
475
+ elevasis-sdk knowledge:cat <node-id>
476
+ elevasis-sdk knowledge:graph
477
+ ```
478
+
479
+ 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`.
480
+
481
+ ---
482
+
483
+ ## elevasis-sdk ui:use-local / ui:use-published
484
+
485
+ Switch the `@elevasis/ui` dependency in an external project between a local tarball build and the published npm package.
486
+
487
+ **Synopsis:**
488
+
489
+ ```bash
490
+ elevasis-sdk ui:use-local
491
+ elevasis-sdk ui:use-published
492
+ ```
493
+
494
+ **Behavior:**
495
+
496
+ - `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.
497
+ - `ui:use-published` -- reverts `package.json` to the published `@elevasis/ui` version string and removes any local tarball reference.
498
+
499
+ 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.
500
+
501
+ **Implementation:** `packages/sdk/src/cli/commands/ui/ui-switcher.ts`
502
+
503
+ ---
504
+
505
+ ## Appendix: Domain Status
506
+
507
+ Current status of all SDK CLI domains. Domains marked `deferred` have no CLI commands yet.
508
+
509
+ | Domain | CLI surface | API surface | Status |
510
+ | ----------- | ------------------------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------- |
511
+ | platform | top-level SDK commands | mixed platform APIs | implemented |
512
+ | project | `project:*` | `apps/api/src/projects/` | implemented |
513
+ | knowledge | `knowledge:*` | file/generated knowledge data | implemented |
514
+ | creds | `creds *` nested Commander group | credentials API | implemented |
515
+ | ui | `ui:*` | local project file edits | implemented |
516
+ | request | `request:submit`, `request:list`, `request:get` | requests API | implemented read/write scope |
517
+ | error | `error resolve`, `error resolve-execution` | execution error APIs | partial |
518
+ | acquisition | `acquisition:list:*`, `acquisition:deal:*` | `/api/external/acquisition/lists*`, `/api/external/deals*` | implemented read-only scope |
519
+ | client | `client:*` | `/api/external/clients` | implemented read/write scope |
520
+ | agent | `agent:list`, `agent:get` | `/api/external/agents*` | implemented read-only scope |
521
+ | session | `session:list`, `session:get`, `session:end` | `/api/external/sessions*` | implemented management scope |
522
+ | queue | `queue:list`, `queue:get`, `queue:select`, `queue:expire`, `queue:status` | `/api/external/command-queue*` | implemented |
523
+ | schedule | `schedule:list`, `schedule:get`, `schedule:create`, `schedule:update` | `/api/external/task-scheduler/schedules*` | implemented |
524
+ | content | none | not scoped here | deferred |
525
+ | seo | none | not scoped here | deferred |
526
+ | monitoring | none | not scoped here | deferred |
527
+
528
+ ### Promotion Criteria
529
+
530
+ A domain should meet all four criteria before gaining a `*:list` / `*:get` surface in the SDK CLI:
531
+
532
+ 1. The domain has DB-backed state with tenant scoping.
533
+ 2. External SDK tenants have a plausible read or operation need.
534
+ 3. Operators repeat the same query pattern often enough that ad-hoc DB reads are becoming workflow surface.
535
+ 4. There are at least three concrete use cases.
536
+
537
+ ---
538
+
539
+ **Last Updated:** 2026-05-19