@elevasis/sdk 1.33.1 → 1.34.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 +405 -138
- package/dist/index.d.ts +5 -5
- package/dist/index.js +8 -11
- package/dist/node/index.d.ts +2 -2
- package/dist/test-utils/index.d.ts +2 -2
- package/dist/test-utils/index.js +8 -11
- package/package.json +4 -4
- package/reference/claude-config/Overview.md +2 -2
- package/reference/claude-config/skills/om/SKILL.md +85 -47
- package/reference/claude-config/skills/project/SKILL.md +16 -14
- package/reference/claude-config/sync-notes/2026-06-05-appearance-app-mode-decouple.md +29 -0
- package/reference/claude-config/sync-notes/2026-06-05-ontology-endpoint-rename-and-knowledge-browser-ui.md +86 -0
- package/reference/claude-config/sync-notes/2026-06-06-om-item-copy-references.md +50 -0
- package/reference/sdk/cli-management.mdx +44 -2
- package/reference/sdk/cli.mdx +2 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Ontology `surface` → `endpoint` rename + Knowledge Browser UI upgrades
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This release bumps **both** `@elevasis/core` and `@elevasis/ui`. Two distinct changes ride it:
|
|
6
|
+
|
|
7
|
+
1. **Breaking OM contract rename (`@elevasis/core`).** The ontology kind `surface` was renamed to
|
|
8
|
+
`endpoint` to stop colliding with **navigation surfaces** (shell sidebar routes). The published
|
|
9
|
+
contract changed: the `OntologyKind` enum member `'surface'` is now `'endpoint'`, the ontology ID
|
|
10
|
+
namespace `…:surface/…` is now `…:endpoint/…`, `ontology.surfaces` is now `ontology.endpoints`,
|
|
11
|
+
and the exported `OntologySurfaceType` / `OntologySurfaceTypeSchema` are now
|
|
12
|
+
`OntologyEndpointType` / `OntologyEndpointTypeSchema`. **There is no back-compat alias** (hard
|
|
13
|
+
rename — the kind was near-dormant). Any tenant OM that still declares a `:surface/` **ontology**
|
|
14
|
+
ID will fail validation once it installs the new `@elevasis/core`.
|
|
15
|
+
|
|
16
|
+
2. **Knowledge Browser UI upgrades (`@elevasis/ui`).** Three additive, platform-substrate
|
|
17
|
+
enhancements that tenants get purely on the `@elevasis/ui` bump — no authoring change required:
|
|
18
|
+
full `ClientProfile` detail rendering in the Clients panel, clickable group child cards
|
|
19
|
+
(Profile → Identity/Branding navigate like the tree), and explanatory hover tooltips on
|
|
20
|
+
platform-vocabulary badges/edge labels. The ontology tree row + its tooltip now read
|
|
21
|
+
**"Endpoints"** instead of "Surfaces", consistent with change #1.
|
|
22
|
+
|
|
23
|
+
## Applies to
|
|
24
|
+
|
|
25
|
+
- **Change #1 (ontology rename):** every tenant whose `core/config/organization-model/` declares any
|
|
26
|
+
ontology ID with a `:surface/` segment (i.e. an entry under a System's `ontology.surfaces`).
|
|
27
|
+
**Confirmed in this train: ZERO live tenants carry any `:surface/` ontology ID** (verified by a
|
|
28
|
+
repo-wide grep across all of `external/` — only `_template` carried one, migrated in this train).
|
|
29
|
+
The 3 live derived projects (ZentaraHQ, nirvana-marketing, contemplative-records) inherit
|
|
30
|
+
`endpoint/` cleanly. Run the verification below anyway before installing the new `@elevasis/core`.
|
|
31
|
+
- **Change #2 (UI upgrades):** every template-derived project — they render on the `@elevasis/ui`
|
|
32
|
+
bump with no further action.
|
|
33
|
+
|
|
34
|
+
## Required actions
|
|
35
|
+
|
|
36
|
+
`/git-sync` / `/external sync` delivers the new `@elevasis/core` + `@elevasis/ui` dependency
|
|
37
|
+
baselines and this note. The dependency bumps install automatically; the ontology-ID rewrite (only if
|
|
38
|
+
your project authored any) is project-owned OM content and is **not** auto-applied.
|
|
39
|
+
|
|
40
|
+
1. **Install the baselines together.** Bump `@elevasis/core` and `@elevasis/ui` in the same change
|
|
41
|
+
(the baseline write from sync covers `core/package.json`, `operations/package.json`, and
|
|
42
|
+
`ui/package.json`). Do not install the new `@elevasis/core` while your OM still has any `:surface/`
|
|
43
|
+
**ontology** ID.
|
|
44
|
+
2. **Rename any ontology `surface/` IDs (only if present).** In `core/config/organization-model/`,
|
|
45
|
+
change every ontology ID `…:surface/<name>` to `…:endpoint/<name>`, and the containing
|
|
46
|
+
`ontology: { surfaces: { … } }` key to `ontology: { endpoints: { … } }`. Update every
|
|
47
|
+
cross-reference (`ownerSystemId`, `route`, links, etc.). Most tenants have nothing to change here.
|
|
48
|
+
3. **Do NOT touch navigation surfaces.** This is the critical disambiguation. The rename is
|
|
49
|
+
ontology-only. Leave `system.surfaces`, `ui.surfaces`, sidebar `SidebarSurfaceNode`s, the
|
|
50
|
+
`surfaceType` route field, the graph node kind `surface`, and `SurfaceDescribeView` **unchanged** —
|
|
51
|
+
those legitimately own the word "surface" for shell routing and are orthogonal to the ontology kind.
|
|
52
|
+
4. **Update tests.** If your `core/config/organization-model.test.ts` or contract tests assert
|
|
53
|
+
`compiled.ontology.surfaces` or a `:surface/` ontology ID, rename them to `.endpoints` /
|
|
54
|
+
`:endpoint/`. Leave any `ui.surfaces` / navigation-surface assertions alone.
|
|
55
|
+
5. **Verify, then boot.** Run the verification block, then `pnpm -C core test` and
|
|
56
|
+
`pnpm -C ui check-types` before booting the app.
|
|
57
|
+
|
|
58
|
+
## Verification
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# 1. Find any remaining ontology surface/ IDs (navigation surfaces are fine — see discriminator)
|
|
62
|
+
grep -rn ":surface/\|ontology.surfaces\|OntologySurfaceType" core/config/organization-model
|
|
63
|
+
|
|
64
|
+
# Discriminator while reading hits:
|
|
65
|
+
# ontology (RENAME) -> a ":surface/" ID segment, "ontology: { surfaces: ... }", OntologySurface*
|
|
66
|
+
# navigation (KEEP) -> bare system.surfaces / ui.surfaces, SidebarSurface*, surfaceType
|
|
67
|
+
|
|
68
|
+
# 2. Template-family coherence
|
|
69
|
+
pnpm -C core test
|
|
70
|
+
pnpm -C ui check-types
|
|
71
|
+
pnpm -C ui test:contracts
|
|
72
|
+
|
|
73
|
+
# 3. Boot must not throw OM validation (no unknown OntologyKind)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
`OntologyKindSchema` must accept `endpoint` and reject `surface`; no `:surface/` ontology ID may
|
|
77
|
+
remain. Navigation surfaces must still resolve and render in the sidebar.
|
|
78
|
+
|
|
79
|
+
## Not handled by /git-sync
|
|
80
|
+
|
|
81
|
+
- `/git-sync` and `/external sync` deliver the `@elevasis/core` + `@elevasis/ui` dependency baselines
|
|
82
|
+
and this note, but they do **not** edit your `core/config/organization-model/` — tenant OM content
|
|
83
|
+
is project-owned (`sync-preservation`). The `surface/` → `endpoint/` ontology-ID rewrite in steps
|
|
84
|
+
2–4 is manual per tenant (a no-op for every current live tenant, which carries none).
|
|
85
|
+
- The Knowledge Browser UI upgrades (change #2) require **no** action — they are entirely inside
|
|
86
|
+
`@elevasis/ui` and appear on the bump.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Knowledge Browser item copy-references now resolve via `om:describe item:<domain>:<id>`
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The Knowledge Browser used to copy an unresolvable `graph:<kind>:<uuid>` shorthand for
|
|
6
|
+
domain items (clients, roles, policies, customers, offerings, goals). Pasting that to an
|
|
7
|
+
agent led to dead ends — the OM resolver had no mount for it and `om:describe` rejected the
|
|
8
|
+
id. This train (published `@elevasis/core`, `@elevasis/sdk`, `@elevasis/ui` + the bundled
|
|
9
|
+
`om` skill) standardizes domain-item copy references on `item:<domain>:<id>`, which resolves
|
|
10
|
+
to the rich profile plus its location and governing knowledge. The `om` skill's read-folder
|
|
11
|
+
table and CLI invocation guidance changed, so derived projects must pick up the new skill
|
|
12
|
+
text and package baselines.
|
|
13
|
+
|
|
14
|
+
## Applies to
|
|
15
|
+
|
|
16
|
+
- All template-derived projects that ship the `om` skill (`.claude/skills/om/SKILL.md`).
|
|
17
|
+
- Any project whose Knowledge Browser surfaces domain items (clients, roles, policies,
|
|
18
|
+
customers, offerings, goals).
|
|
19
|
+
- Agents that consume copied Knowledge Browser references.
|
|
20
|
+
|
|
21
|
+
## Required actions
|
|
22
|
+
|
|
23
|
+
1. Pull template changes and bump the published package baselines to the versions shipped by
|
|
24
|
+
this train: `@elevasis/core`, `@elevasis/sdk`, `@elevasis/ui` (run `pnpm install` after the
|
|
25
|
+
baseline bump so the new SDK CLI and UI copy behavior are present).
|
|
26
|
+
2. Adopt the refreshed `.claude/skills/om/SKILL.md` read-folder table. It now documents
|
|
27
|
+
`item:<domain>:<id>` (resolves via `om:describe item:<domain>:<id>`), the `/by-domain/<domain>`
|
|
28
|
+
and `/by-item/<domain>/<id>` `om:ls` mounts, `group:` / `domain:` / `folder:` as
|
|
29
|
+
browser-overview references, and a legacy `graph:client:<uuid>` bridge note pointing to
|
|
30
|
+
`om:describe item:clients:<uuid>`.
|
|
31
|
+
3. Use the corrected SDK CLI invocation at a project root: `pnpm elevasis-sdk om:describe …`
|
|
32
|
+
(root script alias) or `pnpm -C operations exec elevasis-sdk om:describe …`. The old
|
|
33
|
+
`pnpm exec elevasis-sdk …` at the project root fails in a multi-package tenant — replace it.
|
|
34
|
+
|
|
35
|
+
## Verification
|
|
36
|
+
|
|
37
|
+
- `pnpm elevasis-sdk om:describe item:clients:<id>` returns the client profile, its location
|
|
38
|
+
(domain + graph id + `contains` parentage), and any governing knowledge — no dead ends.
|
|
39
|
+
- A bare/legacy `om:describe client:<uuid>` still resolves (back-compat for already-copied
|
|
40
|
+
references).
|
|
41
|
+
- `pnpm sync:verify -- <project>` shows the `.claude/skills/om/SKILL.md` write applied and no
|
|
42
|
+
remaining `om`-skill drift.
|
|
43
|
+
|
|
44
|
+
## Not handled by /git-sync
|
|
45
|
+
|
|
46
|
+
- The published-package baseline bumps (`@elevasis/core` / `@elevasis/sdk` / `@elevasis/ui`)
|
|
47
|
+
and the subsequent `pnpm install` are manual — `/git-sync` does not bump dependencies.
|
|
48
|
+
- Any project-local documentation that hand-copied the old `pnpm exec elevasis-sdk` root
|
|
49
|
+
invocation or the old `graph:<kind>:<uuid>` copy vocabulary must be corrected by the
|
|
50
|
+
maintainer; `/git-sync` stops before touching project-owned surfaces.
|
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: CLI Management Commands
|
|
3
|
-
description: elevasis-sdk management commands -- project, note, acquisition, client, agent, session, queue, schedule, om, and
|
|
3
|
+
description: elevasis-sdk management commands -- project, note, acquisition, client, agent, session, queue, schedule, om, ui, and skill subcommand families
|
|
4
4
|
---
|
|
5
5
|
|
|
6
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
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## JSON-valued options
|
|
11
|
+
|
|
12
|
+
Any option that expects JSON can take inline JSON or a file reference:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
elevasis-sdk queue:select <id> --action-id approve --payload @json:tmp/queue-payload.json
|
|
16
|
+
elevasis-sdk schedule:create --name "Weekly report" --target-resource-type workflow --target-resource-id weekly-report --schedule-config @json:tmp/schedule-config.json
|
|
17
|
+
elevasis-sdk project:task:save <id> --current-state "Updated" --files-modified @json:tmp/files-modified.json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`@json:<path>` is expanded before command parsing, so existing command handlers receive the same JSON string they would receive from an inline argument. Relative paths resolve against the Elevasis project root when the current directory is inside a project; otherwise they resolve against the current working directory. The referenced file must contain valid JSON.
|
|
21
|
+
|
|
22
|
+
Use `@json:<path>` for generated payloads, nested objects, arrays, or Windows shells. Inline JSON remains supported for small values.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
10
26
|
## elevasis-sdk project:\*
|
|
11
27
|
|
|
12
28
|
`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`.
|
|
@@ -42,18 +58,23 @@ elevasis-sdk project:milestone:list --project <id>
|
|
|
42
58
|
elevasis-sdk project:milestone:create --project <id> --name "Phase 1"
|
|
43
59
|
elevasis-sdk project:milestone:update <id> --status completed
|
|
44
60
|
elevasis-sdk project:milestone:update <id> --description "Updated scope description"
|
|
61
|
+
elevasis-sdk project:milestone:update <id> --checklist @json:tmp/milestone-checklist.json
|
|
45
62
|
elevasis-sdk project:milestone:delete <id>
|
|
46
63
|
```
|
|
47
64
|
|
|
48
65
|
`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
66
|
|
|
67
|
+
Checklist updates are full replacements. Use `--checklist <json>` for small inline arrays, or `--checklist @json:<path>` for generated JSON. `--checklist-file <path>` is also supported for checklist-specific file input.
|
|
68
|
+
|
|
50
69
|
### Tasks
|
|
51
70
|
|
|
52
71
|
```bash
|
|
53
72
|
elevasis-sdk project:task:list --project <id>
|
|
54
73
|
elevasis-sdk project:task:get <id>
|
|
55
74
|
elevasis-sdk project:task:create --project <id> --title "Implement API"
|
|
75
|
+
elevasis-sdk project:task:create --project <id> --title "Implement API" --checklist @json:tmp/task-checklist.json
|
|
56
76
|
elevasis-sdk project:task:update <id> --status in_progress
|
|
77
|
+
elevasis-sdk project:task:update <id> --checklist @json:tmp/task-checklist.json
|
|
57
78
|
elevasis-sdk project:task:delete <id>
|
|
58
79
|
```
|
|
59
80
|
|
|
@@ -68,6 +89,8 @@ elevasis-sdk project:task:save <id> --current-state <text> [--files-modified <js
|
|
|
68
89
|
- `project:task:save <id>` -- merges fields into `resume_context`; `--current-state` is required; all other flags are optional JSON arrays or plain text
|
|
69
90
|
- these commands are the CLI counterpart to `/work resume` and `/work save` style flows
|
|
70
91
|
|
|
92
|
+
Task checklist flags are also full replacements. `project:task:create`, `project:task:update`, and `project:milestone:update` support `--checklist <json>`, `--checklist @json:<path>`, and `--checklist-file <path>`. Prefer `@json:<path>` for non-trivial JSON and Windows shells because it works across JSON-valued options, not only checklist commands.
|
|
93
|
+
|
|
71
94
|
**`project:task:save` flags:**
|
|
72
95
|
|
|
73
96
|
| Flag | Description |
|
|
@@ -373,7 +396,7 @@ JWT-gated routes at the original unprefixed paths remain for the Command Center.
|
|
|
373
396
|
|
|
374
397
|
Full CRUD management for client records. The `client:*` family covers create, read, update, and delete operations at `/api/external/clients`.
|
|
375
398
|
|
|
376
|
-
For complete field definitions, filter options, and relationship semantics, see the [Clients feature documentation](/technical/features/clients).
|
|
399
|
+
For complete field definitions, filter options, and relationship semantics, see the [Clients feature documentation](/technical/features/operations/clients).
|
|
377
400
|
|
|
378
401
|
**Quick reference:**
|
|
379
402
|
|
|
@@ -650,6 +673,24 @@ Both commands install after rewriting `package.json`. The `external/_template` r
|
|
|
650
673
|
|
|
651
674
|
---
|
|
652
675
|
|
|
676
|
+
## elevasis-sdk skill:\*
|
|
677
|
+
|
|
678
|
+
Developer-facing skill tooling keeps the template `.claude/skills/` surface aligned with the live CLI catalog.
|
|
679
|
+
|
|
680
|
+
```bash
|
|
681
|
+
elevasis-sdk skill:scaffold <domain>
|
|
682
|
+
elevasis-sdk skill:check-coverage
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
- `skill:scaffold <domain>` prints a `SKILL.md` stub built from `elevasis-sdk cli --format json` for that domain. Author the curated skill at `external/_template/.claude/skills/<domain>/SKILL.md`; do not edit generated SDK reference copies directly.
|
|
686
|
+
- `skill:check-coverage` compares live CLI domains against `.claude/registries/skill-coverage.json`. Domains must be owned by a skill or explicitly waived.
|
|
687
|
+
|
|
688
|
+
The same coverage gate runs inside `elevasis-sdk check` when the coverage registry exists in the project root.
|
|
689
|
+
|
|
690
|
+
**Implementation:** `packages/sdk/src/cli/commands/skill/`
|
|
691
|
+
|
|
692
|
+
---
|
|
693
|
+
|
|
653
694
|
## Appendix: Domain Status
|
|
654
695
|
|
|
655
696
|
Current status of all SDK CLI domains. Domains marked `deferred` have no CLI commands yet.
|
|
@@ -669,6 +710,7 @@ Current status of all SDK CLI domains. Domains marked `deferred` have no CLI com
|
|
|
669
710
|
| session | `session:list`, `session:get`, `session:end` | `/api/external/sessions*` | implemented management scope |
|
|
670
711
|
| queue | `queue:list`, `queue:get`, `queue:select`, `queue:expire`, `queue:status` | `/api/external/command-queue*` | implemented |
|
|
671
712
|
| schedule | `schedule:list`, `schedule:get`, `schedule:create`, `schedule:update` | `/api/external/task-scheduler/schedules*` | implemented |
|
|
713
|
+
| skill | `skill:scaffold`, `skill:check-coverage` | local CLI catalog and `.claude/registries/skill-coverage.json` | implemented developer tooling |
|
|
672
714
|
| content | none | not scoped here | deferred |
|
|
673
715
|
| seo | none | not scoped here | deferred |
|
|
674
716
|
| monitoring | none | not scoped here | deferred |
|
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:\*), see [CLI Management](cli-management.mdx).
|
|
16
|
+
For management commands (project:\*, note:\*, acquisition:\*, client:\*, agent:\*, session:\*, queue:\*, schedule:\*, om:\*, ui:\*, skill:\*), see [CLI Management](cli-management.mdx).
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -30,6 +30,7 @@ elevasis-sdk check
|
|
|
30
30
|
**Behavior:**
|
|
31
31
|
|
|
32
32
|
- Imports your `src/index.ts` and runs it through `ResourceRegistry` validation
|
|
33
|
+
- Runs the skill coverage gate when `.claude/registries/skill-coverage.json` is present, ensuring every live CLI domain is covered by a template skill or explicitly waived
|
|
33
34
|
- Catches the same errors that the platform catches at deploy time:
|
|
34
35
|
- Duplicate `resourceId` within the organization
|
|
35
36
|
- Invalid model configuration (temperature and token bounds)
|