@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.
@@ -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 ui subcommand families
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 |
@@ -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)