@elevasis/sdk 1.28.1 → 1.30.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 +1611 -595
- package/dist/index.d.ts +105 -1
- package/dist/index.js +30 -25
- package/dist/node/index.d.ts +84 -1
- package/dist/test-utils/index.d.ts +102 -1
- package/dist/test-utils/index.js +242 -23
- package/dist/worker/index.js +1 -0
- package/package.json +4 -4
- package/reference/_navigation.md +4 -4
- package/reference/_reference-manifest.json +8 -8
- package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +3 -3
- package/reference/claude-config/rules/topbar-actions.md +70 -0
- package/reference/claude-config/skills/om/SKILL.md +18 -1
- package/reference/claude-config/skills/tutorial/technical.md +5 -5
- package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +83 -83
- package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +45 -45
- package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +52 -52
- package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +33 -33
- package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +32 -32
- package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +43 -43
- package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +40 -40
- package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +61 -61
- package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +49 -49
- package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +31 -31
- package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +42 -42
- package/reference/claude-config/sync-notes/2026-05-23-om-full-model-deploy-contract.md +33 -33
- package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +37 -37
- package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +28 -0
- package/reference/claude-config/sync-notes/2026-05-24-system-interface-readiness.md +43 -43
- package/reference/claude-config/sync-notes/2026-05-25-invitation-login-loader.md +26 -0
- package/reference/claude-config/sync-notes/2026-05-25-om-topbar-requests.md +33 -0
- package/reference/claude-config/sync-notes/2026-05-25-system-interface-profile-registry-and-substrate.md +35 -0
- package/reference/claude-config/sync-notes/2026-05-25-tenant-om-scaffold-cli.md +49 -0
- package/reference/claude-config/sync-notes/2026-05-25-vibe-operate-intent.md +47 -0
- package/reference/core/exports.mdx +16 -0
- package/reference/core/index.mdx +58 -0
- package/reference/examples/organization-model.ts +18 -0
- package/reference/index.mdx +36 -67
- package/reference/rules/organization-model.md +4 -1
- package/reference/rules/organization-os.md +7 -1
- package/reference/rules/ui.md +207 -207
- package/reference/rules/vibe.md +52 -18
- package/reference/scaffold/index.mdx +9 -7
- package/reference/scaffold/operations/propagation-pipeline.md +152 -152
- package/reference/scaffold/operations/scaffold-maintenance.md +14 -4
- package/reference/scaffold/reference/contracts.md +423 -338
- package/reference/scaffold/reference/glossary.md +14 -2
- package/reference/scaffold/reference/system-interface-capabilities.md +50 -0
- package/reference/{cli-management.mdx → sdk/cli-management.mdx} +159 -13
- package/reference/{cli.mdx → sdk/cli.mdx} +68 -12
- package/reference/sdk/exports.mdx +14 -0
- package/reference/sdk/index.mdx +93 -0
- package/reference/sdk/platform-tools/adapters-integration.mdx +25 -0
- package/reference/sdk/platform-tools/adapters-platform.mdx +24 -0
- package/reference/{platform-tools → sdk/platform-tools}/index.mdx +9 -30
- package/reference/{resources → sdk/resources}/patterns.mdx +29 -11
- package/reference/ui/exports.mdx +60 -0
- package/reference/ui/index.mdx +75 -0
- package/reference/platform-tools/adapters-integration.mdx +0 -300
- package/reference/platform-tools/adapters-platform.mdx +0 -552
- /package/reference/claude-config/skills/deploy/{skill.md → SKILL.md} +0 -0
- /package/reference/{concepts.mdx → sdk/concepts.mdx} +0 -0
- /package/reference/{deployment → sdk/deployment}/command-center.mdx +0 -0
- /package/reference/{deployment → sdk/deployment}/execution-reference.mdx +0 -0
- /package/reference/{deployment → sdk/deployment}/index.mdx +0 -0
- /package/reference/{framework → sdk/framework}/agent.mdx +0 -0
- /package/reference/{framework → sdk/framework}/index.mdx +0 -0
- /package/reference/{framework → sdk/framework}/interaction-guidance.mdx +0 -0
- /package/reference/{framework → sdk/framework}/memory.mdx +0 -0
- /package/reference/{framework → sdk/framework}/project-structure.mdx +0 -0
- /package/reference/{framework → sdk/framework}/resource-documentation.mdx +0 -0
- /package/reference/{framework → sdk/framework}/tutorial-system.mdx +0 -0
- /package/reference/{getting-started.mdx → sdk/getting-started.mdx} +0 -0
- /package/reference/{platform-tools → sdk/platform-tools}/type-safety.mdx +0 -0
- /package/reference/{resources → sdk/resources}/index.mdx +0 -0
- /package/reference/{resources → sdk/resources}/types.mdx +0 -0
- /package/reference/{roadmap.mdx → sdk/roadmap.mdx} +0 -0
- /package/reference/{runtime.mdx → sdk/runtime.mdx} +0 -0
- /package/reference/{templates → sdk/templates}/data-enrichment.mdx +0 -0
- /package/reference/{templates → sdk/templates}/email-sender.mdx +0 -0
- /package/reference/{templates → sdk/templates}/index.mdx +0 -0
- /package/reference/{templates → sdk/templates}/lead-scorer.mdx +0 -0
- /package/reference/{templates → sdk/templates}/pdf-generator.mdx +0 -0
- /package/reference/{templates → sdk/templates}/recurring-job.mdx +0 -0
- /package/reference/{templates → sdk/templates}/text-classifier.mdx +0 -0
- /package/reference/{templates → sdk/templates}/web-scraper.mdx +0 -0
- /package/reference/{troubleshooting.mdx → sdk/troubleshooting.mdx} +0 -0
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
# System Interface readiness, scoped topology grants, and org ID brands
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
The Organization Model API boundary now uses `system.apiInterface` plus derived readiness instead of authored `System.contracts` or top-level `bridgeContracts`. API-backed Systems are ready when their scoped Resources, ontology bindings, catalog contents, and scoped topology grants satisfy the published readiness profile.
|
|
6
|
-
|
|
7
|
-
This removes the old declaration-triggered contract layer before it became a tenant authoring requirement, and it gives API and UI consumers structured readiness diagnostics instead of incidental runtime failures.
|
|
8
|
-
|
|
9
|
-
The same release train also publishes branded WorkOS organization IDs and Supabase organization UUIDs through the shared core/UI package surface. The brands are a compile-time guard against mixing auth identity (`org_...`) with database identity (UUID) in package consumers.
|
|
10
|
-
|
|
11
|
-
## Applies to
|
|
12
|
-
|
|
13
|
-
Template-derived projects that opt into API-backed Systems such as lead-gen or CRM after updating to the released package baselines that include `system.apiInterface` support.
|
|
14
|
-
|
|
15
|
-
The bare `_template` remains API-interface-light by default. Disabled sales, lead-gen, and CRM shell Systems should not declare API interfaces until a compatible recipe pack or tenant-owned model intentionally opts in.
|
|
16
|
-
|
|
17
|
-
Projects that consume the updated `@elevasis/core` or `@elevasis/ui` types may see stricter TypeScript checks around organization IDs. This is expected: WorkOS org IDs and Supabase org UUIDs are intentionally no longer interchangeable at typed chokepoints.
|
|
18
|
-
|
|
19
|
-
## Required actions
|
|
20
|
-
|
|
21
|
-
1. Pull the new package baselines after the release train publishes:
|
|
22
|
-
- `@elevasis/core`
|
|
23
|
-
- `@elevasis/ui`
|
|
24
|
-
- `@elevasis/sdk`
|
|
25
|
-
2. Do not author `contracts`, `bridgeContracts`, versioned `*@v1` contract IDs, or a keyed `interfaces` map in tenant Organization Models.
|
|
26
|
-
3. For an API-backed System, author the flat `system.apiInterface` marker only after the System's scoped Resources and ontology bindings are ready.
|
|
27
|
-
4. Model cross-System API behavior with scoped topology grants rather than broad sibling-System references.
|
|
28
|
-
5. Keep disabled optional-pack shells contract/interface-free until the project deliberately installs an API-ready pack.
|
|
29
|
-
6. When TypeScript reports a branded org-ID mismatch, fix the source value rather than casting through `string`; use package-provided brand helpers only at trusted source boundaries.
|
|
30
|
-
|
|
31
|
-
## Verification
|
|
32
|
-
|
|
33
|
-
- `pnpm -C core test -- organization-model`
|
|
34
|
-
- `pnpm -C operations check`
|
|
35
|
-
- Verify API-backed routes return structured readiness errors when a required System Interface is absent or not ready.
|
|
36
|
-
- Verify API-backed UI actions are disabled until the relevant System Interface readiness passes.
|
|
37
|
-
- Verify org-scoped query keys and Supabase `organization_id` filters receive the intended org-ID flavor after package baselines update.
|
|
38
|
-
|
|
39
|
-
## Not handled by /git-sync
|
|
40
|
-
|
|
41
|
-
`/git-sync` can propagate template guidance, package baselines, and this note, but it does not decide when a tenant's business model is ready to declare `system.apiInterface`. Tenant-specific System Interface markers, scoped Resource bindings, and topology grants remain project-owned authoring decisions.
|
|
42
|
-
|
|
43
|
-
`/git-sync` also does not repair tenant-specific organization identity plumbing. If a project has local hooks or direct Supabase calls outside the template baseline, audit those call sites manually when adopting the branded org-ID package surface.
|
|
1
|
+
# System Interface readiness, scoped topology grants, and org ID brands
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The Organization Model API boundary now uses `system.apiInterface` plus derived readiness instead of authored `System.contracts` or top-level `bridgeContracts`. API-backed Systems are ready when their scoped Resources, ontology bindings, catalog contents, and scoped topology grants satisfy the published readiness profile.
|
|
6
|
+
|
|
7
|
+
This removes the old declaration-triggered contract layer before it became a tenant authoring requirement, and it gives API and UI consumers structured readiness diagnostics instead of incidental runtime failures.
|
|
8
|
+
|
|
9
|
+
The same release train also publishes branded WorkOS organization IDs and Supabase organization UUIDs through the shared core/UI package surface. The brands are a compile-time guard against mixing auth identity (`org_...`) with database identity (UUID) in package consumers.
|
|
10
|
+
|
|
11
|
+
## Applies to
|
|
12
|
+
|
|
13
|
+
Template-derived projects that opt into API-backed Systems such as lead-gen or CRM after updating to the released package baselines that include `system.apiInterface` support.
|
|
14
|
+
|
|
15
|
+
The bare `_template` remains API-interface-light by default. Disabled sales, lead-gen, and CRM shell Systems should not declare API interfaces until a compatible recipe pack or tenant-owned model intentionally opts in.
|
|
16
|
+
|
|
17
|
+
Projects that consume the updated `@elevasis/core` or `@elevasis/ui` types may see stricter TypeScript checks around organization IDs. This is expected: WorkOS org IDs and Supabase org UUIDs are intentionally no longer interchangeable at typed chokepoints.
|
|
18
|
+
|
|
19
|
+
## Required actions
|
|
20
|
+
|
|
21
|
+
1. Pull the new package baselines after the release train publishes:
|
|
22
|
+
- `@elevasis/core`
|
|
23
|
+
- `@elevasis/ui`
|
|
24
|
+
- `@elevasis/sdk`
|
|
25
|
+
2. Do not author `contracts`, `bridgeContracts`, versioned `*@v1` contract IDs, or a keyed `interfaces` map in tenant Organization Models.
|
|
26
|
+
3. For an API-backed System, author the flat `system.apiInterface` marker only after the System's scoped Resources and ontology bindings are ready.
|
|
27
|
+
4. Model cross-System API behavior with scoped topology grants rather than broad sibling-System references.
|
|
28
|
+
5. Keep disabled optional-pack shells contract/interface-free until the project deliberately installs an API-ready pack.
|
|
29
|
+
6. When TypeScript reports a branded org-ID mismatch, fix the source value rather than casting through `string`; use package-provided brand helpers only at trusted source boundaries.
|
|
30
|
+
|
|
31
|
+
## Verification
|
|
32
|
+
|
|
33
|
+
- `pnpm -C core test -- organization-model`
|
|
34
|
+
- `pnpm -C operations check`
|
|
35
|
+
- Verify API-backed routes return structured readiness errors when a required System Interface is absent or not ready.
|
|
36
|
+
- Verify API-backed UI actions are disabled until the relevant System Interface readiness passes.
|
|
37
|
+
- Verify org-scoped query keys and Supabase `organization_id` filters receive the intended org-ID flavor after package baselines update.
|
|
38
|
+
|
|
39
|
+
## Not handled by /git-sync
|
|
40
|
+
|
|
41
|
+
`/git-sync` can propagate template guidance, package baselines, and this note, but it does not decide when a tenant's business model is ready to declare `system.apiInterface`. Tenant-specific System Interface markers, scoped Resource bindings, and topology grants remain project-owned authoring decisions.
|
|
42
|
+
|
|
43
|
+
`/git-sync` also does not repair tenant-specific organization identity plumbing. If a project has local hooks or direct Supabase calls outside the template baseline, audit those call sites manually when adopting the branded org-ID package surface.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Invitation Login Loader
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The template login route now handles WorkOS `invitation_token` links without flashing the normal tenant sign-in card before redirecting to hosted AuthKit.
|
|
6
|
+
|
|
7
|
+
## Applies to
|
|
8
|
+
|
|
9
|
+
- Template-derived apps that accept WorkOS organization invitations through `ui/src/routes/login.tsx`.
|
|
10
|
+
- Apps using `@elevasis/ui/features/auth` for shared auth UI helpers.
|
|
11
|
+
|
|
12
|
+
## Required actions
|
|
13
|
+
|
|
14
|
+
1. Pull the latest template sync changes.
|
|
15
|
+
2. Install dependencies so `@elevasis/ui` resolves to the released version that exports `AuthRedirectLoadingScreen`.
|
|
16
|
+
3. Keep any tenant-specific WorkOS env values, especially `VITE_WORKOS_ORG_ID`, in the app environment.
|
|
17
|
+
|
|
18
|
+
## Verification
|
|
19
|
+
|
|
20
|
+
- Open `/login?invitation_token=test-token` and confirm the app shows a neutral gray full-screen loader while redirecting.
|
|
21
|
+
- Run `pnpm -C ui check-types`.
|
|
22
|
+
- Run `pnpm -C ui test src/routes/__tests__/auth-routes.test.tsx` when the project carries the template auth route tests.
|
|
23
|
+
|
|
24
|
+
## Not handled by /git-sync
|
|
25
|
+
|
|
26
|
+
`/git-sync` transports commits only. It does not accept invitations, configure WorkOS invitation URLs, set tenant WorkOS org IDs, or smoke-test the hosted AuthKit redirect in production.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# OM-Declared Topbar Actions + Tenant Request Affordance + Requests→Platform Re-bucket
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
This release adds an OM-governed topbar region and a shared in-app request affordance, and moves the submitted-requests System under `platform`:
|
|
6
|
+
|
|
7
|
+
- `@elevasis/core` gains a `navigation.topbar` schema region (`TopbarActionNodeSchema`, `TopbarSectionSchema`) plus the `message-plus` icon token. The topbar is now declared by the Organization Model and toggled via `/org-os manage`, mirroring how the sidebar already works.
|
|
8
|
+
- `@elevasis/ui` gains the topbar substrate (`TopbarActionModule`, `ResolvedTopbarAction`, `TOPBAR_ACTION_MANIFESTS`, `<TopbarActions />`, topbar projection) and the request feature (`useSubmitRequest` hook, `RequestModal`, `RequestButton`, `RequestActionIcon`).
|
|
9
|
+
- The submitted-requests System moves from `monitoring` to a `platform` governance System. A headless `platform` System is introduced and `monitoring.submitted-requests` is re-parented to `platform.submitted-requests`. The route path stays `/monitoring/requests`; only System ownership and the surface's `targets.systems` change.
|
|
10
|
+
|
|
11
|
+
## Applies to
|
|
12
|
+
|
|
13
|
+
- Template-derived apps that render `AppTopbar` and want OM-governed topbar actions.
|
|
14
|
+
- Apps that want an end-user "Request a feature / report an issue" affordance (topbar icon, dashboard card, requests-page button) backed by the existing `reported_requests` API.
|
|
15
|
+
- Apps whose Organization Model declares `monitoring.submitted-requests`.
|
|
16
|
+
|
|
17
|
+
## Required actions
|
|
18
|
+
|
|
19
|
+
1. Pull the latest template sync changes, then `/git-sync` to surface this note.
|
|
20
|
+
2. Install dependencies so `@elevasis/core` and `@elevasis/ui` resolve to the released versions that export the `navigation.topbar` schema and the topbar/request surfaces.
|
|
21
|
+
3. Confirm your OrganizationModel declares `navigation.topbar` (the schema defaults to `{}`, so omitting it is valid). To adopt the request topbar action, add a `navigation.topbar.request` node and register `requestTopbarActionManifest` in your `TOPBAR_ACTION_MANIFESTS` array in `ui/src/routes/__root.tsx`, then render `<TopbarActions />` in `AppTopbar`.
|
|
22
|
+
4. If your OM still parents submitted-requests under `monitoring`, introduce a headless `platform` System and re-parent `monitoring.submitted-requests` to `platform.submitted-requests` in `core/config/organization-model/systems.ts`, and retarget the `monitoring-requests` surface in `navigation.ts`. This is an `/om` content change (direct edits discouraged) — the route path stays `/monitoring/requests`.
|
|
23
|
+
|
|
24
|
+
## Verification
|
|
25
|
+
|
|
26
|
+
- `pnpm -C ui check-types && pnpm -C ui build`.
|
|
27
|
+
- `pnpm -C ui test` — topbar projection, `<TopbarActions />`, and request component tests green.
|
|
28
|
+
- Toggle the `request` topbar action `enabled: false` in your OM and confirm the icon disappears from the topbar.
|
|
29
|
+
- Submit from the UI and confirm a row appears in the requests list with `source = user`.
|
|
30
|
+
|
|
31
|
+
## Not handled by /git-sync
|
|
32
|
+
|
|
33
|
+
`/git-sync` transports commits only. It does not re-bucket your Organization Model (the `platform` System introduction and `monitoring.submitted-requests` → `platform.submitted-requests` re-parent are `/om` content edits authored per project), register topbar manifests in your `__root.tsx`, or add the requests-page nav surface where your project does not already define one.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# System Interface: Closed Profile Registry, Capability Catalog & Substrate Guidance
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
`@elevasis/core@0.38` tightens the `system.apiInterface` adoption handshake from a free-string `readinessProfile` to a **closed, registry-derived literal union** with a generated capability catalog. The published-schema change is _effectively non-breaking_ because no tenant has authored an `apiInterface` profile to date, but the contract is now explicit: a tenant adopts a platform-provided System Interface (`sales.lead-gen.api`, `sales.crm.api`, `sales.lead-gen.crm-handoff`) by naming the System at its convention-locked path, marking `system.apiInterface` with one of the supported `readinessProfile` literals, and satisfying derived readiness via ontology bindings / scoped resources / scoped topology grants. Authoring an unrecognized profile is now a tenant **typecheck** error with autocomplete, not a deploy-time `RegistryValidationError`. The runtime backstop diagnostic (`SYSTEM_INTERFACE_INVALID: unknown-readiness-profile`) is retained for hand-edited / non-TypeScript OMs and now names the supported profiles and tells authors that custom Systems do not carry `apiInterface` — custom behavior belongs in workflows/operations, ontology, resources, catalogs, topology, and navigation.
|
|
6
|
+
|
|
7
|
+
Parallel substrate updates ride the same train: the SDK scaffold recipes (`extend-lead-gen.md`, `extend-crm.md`, `customize-crm-actions.md`), the SDK agent-rules (`organization-os.md`, `organization-model.md`), the SDK-bundled glossary, and the template `.claude/skills/om/SKILL.md` now teach the flat `system.apiInterface` model and the closed-handshake boundary explicitly. The retired authored `SystemContract` / `BridgeContract` / `@vN` ID vocabulary is gone from all teaching surfaces; agents that still remember it should consult the canonical recipes/agent-rules at `node_modules/@elevasis/sdk/reference/`.
|
|
8
|
+
|
|
9
|
+
## Applies to
|
|
10
|
+
|
|
11
|
+
- All tenants that consume `@elevasis/core` and `@elevasis/sdk` and adopt the platform-provided `sales.lead-gen` / `sales.crm` Systems.
|
|
12
|
+
- Tenants whose `core/config/organization-model.ts` (or `organization-model/systems.ts` under the split layout) currently declares `system.apiInterface` on a lead-gen or CRM System.
|
|
13
|
+
- Tenants whose `/om` skill agents reach for authored-contract vocabulary (`SystemContract`, `bridgeContracts`, `*@v1` IDs); those vocabulary mentions should be treated as retired/avoid language after this sync.
|
|
14
|
+
- `external/nirvana-marketing` is the canonical first downstream consumer.
|
|
15
|
+
|
|
16
|
+
## Required actions
|
|
17
|
+
|
|
18
|
+
1. After `/git-sync` runs `pnpm install` and pins `@elevasis/core ^0.38.0` and `@elevasis/sdk ^1.30.0` (run by template-baseline cascade), run `pnpm -C core check-types` and `pnpm -C operations check-types` from the tenant project root. If any pre-existing `system.apiInterface.readinessProfile` value is now a typecheck error, replace it with one of the supported literals from the capability catalog at `node_modules/@elevasis/sdk/reference/scaffold/reference/system-interface-capabilities.md`.
|
|
19
|
+
|
|
20
|
+
2. Browse the capability catalog and the updated glossary in `node_modules/@elevasis/core/reference/glossary.md` to refresh the team's mental model. The terms _System Interface_, _System Interface profile_, _derived readiness_, _scoped topology bridge_, and _boundary invariant_ now have authoritative definitions; old _System Contract_ / _Bridge Contract_ wording should be treated as historical.
|
|
21
|
+
|
|
22
|
+
3. If the tenant has authored a custom System that previously carried a free-string `readinessProfile` (none expected, but verify), drop the `apiInterface` field entirely. Custom Systems extend the platform through the layers the tenant fully owns — ontology, resources, catalogs, topology, navigation, and workflows/operations — never through `apiInterface`.
|
|
23
|
+
|
|
24
|
+
4. After applying baseline + any required `readinessProfile` migration, run `pnpm -C operations check` to confirm deploy preflight (`validateDeclaredSystemInterfaceReadiness` + `detectMissingApiInterfaceDeclarations`) accepts the model.
|
|
25
|
+
|
|
26
|
+
## Verification
|
|
27
|
+
|
|
28
|
+
- `pnpm -C core check-types` and `pnpm -C operations check-types` — must pass against the new narrowed `OrganizationModelSystemInterfaceReadinessProfile` literal union.
|
|
29
|
+
- `pnpm -C operations check` — must pass. The conformance gate now distinguishes API-backed Systems from purely UI-backed ones and only flags the former when `apiInterface` is missing.
|
|
30
|
+
- `pnpm -C operations exec elevasis-sdk om:verify --json` — surface-level model coherence; no new diagnostic shape, but updated wording for `SYSTEM_INTERFACE_*` diagnostics.
|
|
31
|
+
|
|
32
|
+
## Not handled by /git-sync
|
|
33
|
+
|
|
34
|
+
- **Tenant-authored OM that carried a literal `SystemContract` or `bridgeContracts` shape** would have failed schema validation before this sync (that field was already removed). If a tenant has private fixtures or out-of-tree examples using the old shape, migrate them by hand — `/git-sync` only ships template files, not project-private fixtures.
|
|
35
|
+
- **`/om` skill agents that quote the old authored-contract vocabulary** in tenant-local memory or notes will not be auto-corrected. Refresh those notes after reading the updated recipes; the canonical agent-rule guidance now lives at `node_modules/@elevasis/sdk/reference/rules/organization-os.md`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Tenant OM Scaffold CLI & Conformance Gate
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
`@elevasis/sdk@1.30` adds a guided, non-technical authoring surface for tenant OM under the new `elevasis-sdk om:scaffold:*` command family, plus a **hard conformance gate** in the deploy preflight that blocks deploys when an API-backed System lacks `system.apiInterface`. Five new interactive commands (`om:scaffold:system`, `om:scaffold:resource`, `om:scaffold:role`, `om:scaffold:knowledge`, `om:scaffold:fill`) walk an author through emitting valid TypeScript into the right file in the split OM layout (`core/config/organization-model/{systems,resources,roles,navigation,profile}.ts`). Every scaffold command refuses to run unless the project uses the split layout (`assertSplitLayout`) and writes through a snapshot-rollback wrapper so an aborted emit never leaves a half-edited file.
|
|
6
|
+
|
|
7
|
+
The deploy preflight now invokes `detectMissingApiInterfaceDeclarations` from `@repo/core/platform` before `validateDeclaredSystemInterfaceReadiness`. A system is flagged when it has resources with ontology bindings (`resource.ontology.actions` or `resource.ontology.writes`) but no `apiInterface` marker. When the gate trips, the diagnostic points the author at `om:scaffold:fill --gaps` for a non-interactive, snapshot-rollback-protected remediation that fills the missing marker(s) from the gap payload. The sync-engine adds a matching `conformance-blocked` lane to `assessSyncLane` and a Contract Conformance check group to `verify-sync.js`, so the same shape surfaces in both deploy and sync surfaces.
|
|
8
|
+
|
|
9
|
+
## Applies to
|
|
10
|
+
|
|
11
|
+
- All tenants whose `core/config/organization-model.ts` is in the split layout (the canonical layout for new tenants since the May 2026 multi-file split sync-note).
|
|
12
|
+
- Tenants with API-backed Systems (lead-gen, CRM, or future closed-registry profiles) that don't yet declare `system.apiInterface`.
|
|
13
|
+
- Tenants whose template `.claude/skills/om/SKILL.md` is expected to teach the scaffold surface.
|
|
14
|
+
- `external/nirvana-marketing` is the canonical first downstream consumer.
|
|
15
|
+
|
|
16
|
+
## Required actions
|
|
17
|
+
|
|
18
|
+
1. After `/git-sync` runs `pnpm install` and the new `@elevasis/sdk ^1.30.0` baseline lands, confirm the five new commands resolve:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
pnpm exec elevasis-sdk om:scaffold:system --help
|
|
22
|
+
pnpm exec elevasis-sdk om:scaffold:resource --help
|
|
23
|
+
pnpm exec elevasis-sdk om:scaffold:role --help
|
|
24
|
+
pnpm exec elevasis-sdk om:scaffold:knowledge --help
|
|
25
|
+
pnpm exec elevasis-sdk om:scaffold:fill --help
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
2. Smoke-test the dry-run path from inside the tenant project:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
pnpm exec elevasis-sdk om:scaffold:system --dry-run
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Expected: `assertSplitLayout` passes, interactive prompts fire, a dry-run TypeScript block prints, nothing is written.
|
|
35
|
+
|
|
36
|
+
3. Run `pnpm -C operations check` to exercise the new conformance gate locally. If the gate fails on an API-backed System, run `pnpm exec elevasis-sdk om:scaffold:fill --gaps <gap-json>` (or follow the diagnostic's exact instructions) to remediate. Tenants whose Systems are all UI-backed (no resources with ontology bindings) will not trip the gate.
|
|
37
|
+
|
|
38
|
+
4. Refresh the team on the updated `/om` skill guidance: `.claude/skills/om/SKILL.md` and its operations now reference the five scaffold commands as the canonical authoring path for non-technical contributors. Pure hand-edits to `organization-model/*.ts` still work but lose the snapshot-rollback safety net.
|
|
39
|
+
|
|
40
|
+
## Verification
|
|
41
|
+
|
|
42
|
+
- `pnpm exec elevasis-sdk om:scaffold:system --help` — should print the new command surface (id / title / kind / lifecycle prompts and flags).
|
|
43
|
+
- `pnpm -C operations check` — must pass. Conformance gate accepts every API-backed System or reports the gap with a remediation prompt.
|
|
44
|
+
- `pnpm sync:verify` (run from the monorepo) — should show the `Contract Conformance` check group passing for the tenant (no `apiInterface` gaps).
|
|
45
|
+
|
|
46
|
+
## Not handled by /git-sync
|
|
47
|
+
|
|
48
|
+
- **Projects still on the single-file OM layout** (`organization-model.ts` without a sibling `organization-model/` directory) will see `assertSplitLayout` abort every scaffold command with a remediation message pointing at the multi-file split migration. `/git-sync` does not perform that migration; follow the existing `2026-05-22-org-model-multi-file-split.md` sync-note instructions if the split is still pending.
|
|
49
|
+
- **The post-publish `external/_template/.claude/skills/om/operations/scaffold.md` operation file** that documents the new commands inside the `/om` skill is authored during the `/sdk ship` train (post-publish authoring, between `sdk` publish and `external-sync`). Until that file lands, the canonical reference for the new commands is this sync-note plus `--help` on each subcommand.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Vibe Layer: Operate Intent + Codify/Toggle Clarifications
|
|
2
|
+
|
|
3
|
+
## Why this note exists
|
|
4
|
+
|
|
5
|
+
The Ambient Vibe Layer gained an eighth intent — **Operate** — that delegates to `/elevasis` for running already-deployed workflows and agents. The canonical rule (`packages/sdk/docs/agent-rules/vibe.md` → published to tenants at `node_modules/@elevasis/sdk/reference/rules/vibe.md`) was updated alongside the template's hand-written intent table (`external/_template/CLAUDE.md` Ambient Vibe Layer section). Two prior drift corrections also landed in the same train: the Codify section now distinguishes asking-about (Describe) from asking-to-change (Codify) so the classifier stops over-proposing codification on plain questions, and the Toggle section clarifies that the intent is tenant-local only (it cannot toggle platform-level Systems).
|
|
6
|
+
|
|
7
|
+
A new repo gate (`scripts/monorepo/check-vibe-drift.mjs`, wired into `pnpm meta:verify`) now enforces intent-name parity and routing-token coverage between the two surfaces so this kind of drift cannot land silently again. The validator was also de-hardcoded from the seven-intent count so future expansions don't require a global rename.
|
|
8
|
+
|
|
9
|
+
## Applies to
|
|
10
|
+
|
|
11
|
+
- All tenants that consume `@elevasis/sdk` and inherit the template `CLAUDE.md` shell.
|
|
12
|
+
- Most directly: any project whose agents already route Capture / Query / Describe / Transition / Navigate / Codify / Toggle through vibe. They will start seeing Operate routed to `/elevasis` after this sync.
|
|
13
|
+
- `external/nirvana-marketing` is the canonical first downstream consumer.
|
|
14
|
+
|
|
15
|
+
## Required actions
|
|
16
|
+
|
|
17
|
+
1. After `/git-sync` runs `pnpm install` and lands the new template CLAUDE.md, confirm your project's `CLAUDE.md` "Ambient Vibe Layer" table contains an **Operate** row. If your tenant has a customized intent table, manually add the row using the form:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
| Operate | "run", "execute", "launch", "trigger", "kick off", "start" + deployed resource | Delegate to `/elevasis` -- `elevasis-sdk describe` + confirm + `elevasis-sdk exec` |
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
2. Verify the `elevasis` skill is present at `.claude/skills/elevasis/SKILL.md`. It ships from the template; if your project removed it intentionally, document that Operate intents will surface a missing-skill notice instead of being executed.
|
|
24
|
+
|
|
25
|
+
3. If your project carries a tenant-customized Toggle section, confirm it does not attempt platform-level System toggles. Tenant Toggle operates only on the project's own `core/config/organization-model.ts`.
|
|
26
|
+
|
|
27
|
+
## Verification
|
|
28
|
+
|
|
29
|
+
- `pnpm exec elevasis-sdk note:create "test"` — sanity-check the SDK CLI still resolves under the post-sync dependency baseline.
|
|
30
|
+
- In a fresh Claude session, type "run the X workflow" against any deployed resource. The agent should describe → confirm → exec via the `/elevasis` skill flow. Plain questions ("what does X do?") should stay in Describe and not propose codification.
|
|
31
|
+
|
|
32
|
+
## Not handled by /git-sync
|
|
33
|
+
|
|
34
|
+
- **`deploy` skill filename rename** (`.claude/skills/deploy/skill.md` → `SKILL.md`): the template includes the rename, but git is case-insensitive on macOS/Windows. After sync, manually verify the filename is uppercase `SKILL.md`:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
ls .claude/skills/deploy/
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
If the file is still lowercase `skill.md`, run a two-step rename to force the case change (or use `git mv` if the project's git config is case-sensitive):
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
mv .claude/skills/deploy/skill.md .claude/skills/deploy/SKILL.tmp.md
|
|
44
|
+
mv .claude/skills/deploy/SKILL.tmp.md .claude/skills/deploy/SKILL.md
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- **Tenant-customized Ambient Vibe Layer prose**: `/git-sync` cannot infer what bespoke intent table edits a project has made. The required action above is the human-review checkpoint.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "@elevasis/core Export Catalog"
|
|
3
|
+
description: "Auto-generated catalog of all published @elevasis/core subpath exports, derived from packages/core/reference-manifest.ts."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
{/* @generated by .claude/_gen/sync-sdk-catalog.ts — DO NOT EDIT */}
|
|
7
|
+
{/* Regenerate: pnpm gen:sdk-catalog */}
|
|
8
|
+
|
|
9
|
+
| Import | Title | Group | Description |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| `@elevasis/core` | Core | Core | Published core wrapper for the curated contract surface. |
|
|
12
|
+
| `@elevasis/core/auth` | Auth | Auth | Published browser-safe auth contracts, AccessKeys, and Access Model primitives. |
|
|
13
|
+
| `@elevasis/core/organization-model` | Organization Model | Organization Model | Published organization-model schema, defaults, resolver, and types. |
|
|
14
|
+
| `@elevasis/core/knowledge` | Knowledge | Knowledge | Published knowledge query layer: bySystem/byKind/byOwner/governs/governedBy queries, parsePath, and output formatters. |
|
|
15
|
+
| `@elevasis/core/entities` | Entities | Entities | Published base entity contracts (Project, Milestone, Task, Deal, Company, Contact) generic over a metadata extension slot. |
|
|
16
|
+
| `@elevasis/core/test-utils` | Test Utilities | Testing | Published test fixtures, mocks, and shared helpers for downstream automated tests. |
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "@elevasis/core"
|
|
3
|
+
description: The shared Zod contract layer for the Elevasis platform — organization model, entity schemas, knowledge graph, auth types, and test utilities. Used by both @elevasis/sdk and @elevasis/ui.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
`@elevasis/core` is the shared contract layer for the Elevasis platform. It exports Zod schemas and TypeScript types that are used by `@elevasis/sdk`, `@elevasis/ui`, and the platform API itself. Installing it gives you the typed contracts without pulling in the full SDK runtime or React dependencies.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pnpm add @elevasis/core
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The default export and most subpaths are browser-safe. No Node.js-specific runtime is required for the schema and type contracts.
|
|
15
|
+
|
|
16
|
+
## Published Subpaths
|
|
17
|
+
|
|
18
|
+
`@elevasis/core` ships six published subpaths:
|
|
19
|
+
|
|
20
|
+
- **`.`** (default) -- base schemas, shared utilities, and the root contract surface. Browser-safe.
|
|
21
|
+
- **`./auth`** -- auth contract types: session shapes, membership, role definitions, and WorkOS integration contracts.
|
|
22
|
+
- **`./organization-model`** -- the organization model (OM) schema: system definitions, resource metadata, and the org-model graph types used by the platform's AI routing layer.
|
|
23
|
+
- **`./entities`** -- entity schemas: typed definitions for leads, clients, deals, contacts, and other CRM-adjacent records.
|
|
24
|
+
- **`./knowledge`** -- knowledge graph schemas: document types, embedding metadata, and retrieval contract types.
|
|
25
|
+
- **`./test-utils`** -- Zod-based test fixtures and factory helpers. Not for production use.
|
|
26
|
+
|
|
27
|
+
Import a subpath directly:
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import { orgModelSchema } from "@elevasis/core/organization-model";
|
|
31
|
+
import { entitySchema } from "@elevasis/core/entities";
|
|
32
|
+
import { knowledgeDocSchema } from "@elevasis/core/knowledge";
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Browser / Server Split
|
|
36
|
+
|
|
37
|
+
The default export and all named subpaths above are browser-safe -- they contain only Zod schemas, TypeScript types, and pure utility functions. There are no Node.js-specific APIs, filesystem access, or server-side dependencies in the published surface.
|
|
38
|
+
|
|
39
|
+
The broader workspace `exports` (~40 paths in `packages/core`) are internal to the monorepo and not part of the published surface. Only the six subpaths listed above are available to tenant projects.
|
|
40
|
+
|
|
41
|
+
## When To Use @elevasis/core Directly
|
|
42
|
+
|
|
43
|
+
Most tenant projects install `@elevasis/sdk`, which includes `@elevasis/core` as a dependency. You need `@elevasis/core` directly when:
|
|
44
|
+
|
|
45
|
+
- You are building a shared library or utility layer that needs the Elevasis types but not the SDK runtime.
|
|
46
|
+
- You are writing a server-side API that validates Elevasis contracts (entity schemas, org model, auth types) without deploying workflows.
|
|
47
|
+
- You are building a custom UI that needs the typed contracts alongside `@elevasis/ui` without the CLI or worker adapter surface.
|
|
48
|
+
- You need `./test-utils` for fixture generation in tests outside an SDK project.
|
|
49
|
+
|
|
50
|
+
## How It Composes With @elevasis/sdk
|
|
51
|
+
|
|
52
|
+
`@elevasis/sdk` re-exports the core contracts you need for day-to-day workflow and agent development. When you import step types, entity schemas, or org-model references from `@elevasis/sdk`, those types are sourced from `@elevasis/core` internally.
|
|
53
|
+
|
|
54
|
+
For advanced use cases -- writing custom validators, extending the org model, or building a server that enforces the same contracts the platform uses -- import from `@elevasis/core` subpaths directly rather than going through the SDK layer.
|
|
55
|
+
|
|
56
|
+
## Export Catalog
|
|
57
|
+
|
|
58
|
+
See [Export Catalog](exports.mdx) for a generated table of all published subpath exports derived from the reference manifest.
|
|
@@ -27,6 +27,24 @@ export const brandingOverrideExample = defineOrganizationModel({
|
|
|
27
27
|
}
|
|
28
28
|
})
|
|
29
29
|
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Topbar actions
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
export const topbarActionsExample = defineOrganizationModel({
|
|
34
|
+
navigation: {
|
|
35
|
+
topbar: {
|
|
36
|
+
request: {
|
|
37
|
+
id: 'request',
|
|
38
|
+
label: 'Request a feature or report an issue',
|
|
39
|
+
tooltip: 'Request a feature or report an issue',
|
|
40
|
+
icon: 'message-plus',
|
|
41
|
+
order: 10,
|
|
42
|
+
enabled: true
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
|
|
30
48
|
// ---------------------------------------------------------------------------
|
|
31
49
|
// System hierarchy, system-local config, ontology scopes, and sidebar navigation
|
|
32
50
|
// ---------------------------------------------------------------------------
|
package/reference/index.mdx
CHANGED
|
@@ -1,93 +1,62 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Elevasis SDK
|
|
3
|
-
description:
|
|
3
|
+
description: The three published Elevasis packages — @elevasis/sdk, @elevasis/core, and @elevasis/ui — that tenant projects install and compose to build AI workflows and feature-rich applications on the platform.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
The Elevasis SDK is the published surface for building on the Elevasis platform. It ships as three independent npm packages that can be installed together or separately depending on what you are building.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
- **`@elevasis/sdk`** -- runtime + resource definitions + CLI + worker adapters. The entry point for any tenant project. Install this to write workflows, agents, and resources and deploy them to the platform.
|
|
9
|
+
- **`@elevasis/core`** -- shared Zod schemas, organization model, knowledge graph, entity contracts, and auth types. Install this when you need the typed contracts without the full SDK runtime.
|
|
10
|
+
- **`@elevasis/ui`** -- React 19 feature-shell and manifest-backed feature modules (Lead Gen, CRM, Projects, Operations, Monitoring, Settings, SEO, and more). Install this when you are building a host UI that embeds Elevasis features.
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
## How They Compose
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
A typical tenant project installs `@elevasis/sdk` first. The SDK peer-depends on `@elevasis/core` for its shared schemas, so the contracts are always in sync. A tenant UI project adds `@elevasis/ui` on top to embed the shared React feature modules into its own shell.
|
|
13
15
|
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
```
|
|
17
|
+
@elevasis/sdk -- workflows, agents, adapters, CLI, deploy
|
|
18
|
+
|
|
|
19
|
+
uses types from
|
|
20
|
+
|
|
|
21
|
+
@elevasis/core -- Zod schemas, org model, entities, knowledge, auth
|
|
22
|
+
|
|
23
|
+
@elevasis/ui -- React feature-shell (provider + manifest-backed modules)
|
|
24
|
+
|
|
|
25
|
+
uses types from
|
|
26
|
+
|
|
|
27
|
+
@elevasis/core
|
|
19
28
|
```
|
|
20
29
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
## What You Can Build
|
|
24
|
-
|
|
25
|
-
- **Workflows** -- Step-based automation with typed inputs and outputs. Steps can be linear, conditional, or branching. Each step is a plain async function. See [Resources](resources/index.mdx) for the complete definition API.
|
|
26
|
-
- **Agents** -- Autonomous AI resources with access to platform tools. Agents run in the worker runtime with full LLM access and platform tool support. Use `--async` when executing agents to avoid HTTP timeout limits on long-running runs.
|
|
27
|
-
- **Feature-driven apps** -- The published `@elevasis/ui` surface includes manifest-backed shared features for Lead Gen, CRM, Projects, Operations, Monitoring, Settings, and SEO, plus dashboard-oriented compatibility components for host-owned shells. See [Provided Features](deployment/index.mdx#provided-features).
|
|
28
|
-
|
|
29
|
-
## Platform Tools
|
|
30
|
-
|
|
31
|
-
The platform exposes 70+ tools across integration adapters and platform services -- Gmail, Stripe, Google Sheets, Attio, and more. Import typed adapters from `@elevasis/sdk/worker` inside any workflow step or agent. Credentials are managed server-side; API keys never cross the execution boundary.
|
|
32
|
-
|
|
33
|
-
See [Platform Tools](platform-tools/index.mdx) for the full catalog, adapter reference, and credential setup.
|
|
34
|
-
|
|
35
|
-
## Known Limitations
|
|
36
|
-
|
|
37
|
-
- **No streaming logs** -- Execution logs are returned in the response body after completion. Real-time log streaming is not available.
|
|
38
|
-
- **Agent HTTP timeouts** -- Use `elevasis-sdk exec --async` for agent executions. Agents can run for minutes; the synchronous endpoint will time out for long-running runs. The `--async` flag returns an execution ID immediately and polls for the result.
|
|
39
|
-
|
|
40
|
-
## Documentation
|
|
41
|
-
|
|
42
|
-
### Getting Started
|
|
43
|
-
|
|
44
|
-
- [Getting Started](getting-started.mdx) - Installation, authentication, first workflow, and project structure
|
|
30
|
+
You do not need all three packages. A pure automation project needs only `@elevasis/sdk`. A shared-types layer needs only `@elevasis/core`. A UI host without custom workflows can install `@elevasis/ui` alone.
|
|
45
31
|
|
|
46
|
-
|
|
32
|
+
## Packages
|
|
47
33
|
|
|
48
|
-
|
|
49
|
-
- [Platform Tools](platform-tools/index.mdx) - Full catalog of 70+ tools, integration adapters, and credential management
|
|
50
|
-
- [Credential Security](platform-tools/index.mdx#credential-security) - Three-layer credential model, HTTP tool patterns, and credential management
|
|
34
|
+
### @elevasis/sdk (v1.28.1)
|
|
51
35
|
|
|
52
|
-
|
|
36
|
+
The primary developer package. Provides the TypeScript API for defining workflows and agents, the `elevasis-sdk` CLI for validation and deployment, and typed worker adapters for 25 platform and integration tools.
|
|
53
37
|
|
|
54
|
-
|
|
55
|
-
- [Templates](templates/index.mdx) - 7 workflow templates: web-scraper, data-enrichment, email-sender, lead-scorer, and more
|
|
56
|
-
- [CLI Reference](cli.mdx) - Core commands: check, deploy, exec, resources, executions, deployments, describe, creds, and rename
|
|
57
|
-
- [CLI Management Commands](cli-management.mdx) - Management families: project:\*, note:\*, acquisition:\*, client:\*, agent:\*, session:\*, queue:\*, schedule:\*, om:\*, and ui:\*
|
|
58
|
-
- [Deployment](deployment/index.mdx) - Deploy pipeline, versioning, bundle upload, and registry registration
|
|
59
|
-
- [Runtime](runtime.mdx) - Worker execution model, concurrency, timeouts, cancellation, resource limits, and v1 limitations
|
|
38
|
+
**Install:** `pnpm add @elevasis/sdk`
|
|
60
39
|
|
|
61
|
-
|
|
40
|
+
**Published subpaths:** `.` (default), `./worker`, `./test-utils`, `./node`
|
|
62
41
|
|
|
63
|
-
|
|
64
|
-
- [Platform Adapters](platform-tools/adapters-platform.mdx) - All 9 platform service adapters: scheduler, storage, llm, pdf, approval, and more
|
|
42
|
+
See [@elevasis/sdk](sdk/index.mdx) for the full group overview, getting started guide, CLI reference, adapter catalog, and more.
|
|
65
43
|
|
|
66
|
-
###
|
|
44
|
+
### @elevasis/core (v0.35.1)
|
|
67
45
|
|
|
68
|
-
|
|
69
|
-
- [Project Structure](framework/project-structure.mdx) - Scaffolded file layout, domain barrels, src/index.ts entry point, and config files
|
|
70
|
-
- [Agent Configuration](framework/agent.mdx) - Agent capabilities, tool access, model config, and Claude Code integration patterns
|
|
71
|
-
- [Memory](framework/memory.mdx) - Agent memory system, session state, developer profiles, and workspace conventions
|
|
72
|
-
- [Interaction Guidance](framework/interaction-guidance.mdx) - Skill dimension adaptation rules for platform navigation, API integration, and automation concepts
|
|
73
|
-
- [Tutorial System](framework/tutorial-system.mdx) - 21-item tutorial menu, skill-adaptive lesson variants, progress tracking, and module contents
|
|
74
|
-
- [Resource Documentation](framework/resource-documentation.mdx) - Docs directory structure, frontmatter schema, size limits, deploy behavior, and /docs command reference
|
|
46
|
+
The shared contract layer. Exports Zod schemas and TypeScript types that are shared between the SDK, the UI, and the platform API. Useful when you need the typed contracts (organization model, entities, knowledge, auth) in a package that does not pull in the full SDK runtime.
|
|
75
47
|
|
|
76
|
-
|
|
48
|
+
**Install:** `pnpm add @elevasis/core`
|
|
77
49
|
|
|
78
|
-
|
|
79
|
-
- [Common Patterns](resources/patterns.mdx) - Sequential steps, conditional branching, error handling, and resource status patterns
|
|
50
|
+
**Published subpaths:** `.` (default), `./auth`, `./test-utils`, `./organization-model`, `./entities`, `./knowledge`
|
|
80
51
|
|
|
81
|
-
|
|
52
|
+
See [@elevasis/core](core/index.mdx) for subpath details, browser/server split, and when to use it.
|
|
82
53
|
|
|
83
|
-
|
|
84
|
-
- [Execution Reference](deployment/execution-reference.mdx) - REST endpoints for executing resources, managing deployments, and React UI components for custom Run dialogs
|
|
54
|
+
### @elevasis/ui (v2.39.1)
|
|
85
55
|
|
|
86
|
-
|
|
56
|
+
The shared React feature-shell. Provides an `ElevasisProvider` and manifest-backed feature modules that a host UI embeds. Many peer dependencies are optional -- pull only what the features you use require.
|
|
87
57
|
|
|
88
|
-
|
|
89
|
-
- [Roadmap](roadmap.mdx) - Planned features including error taxonomy, retry semantics, circuit breaker, and metrics
|
|
58
|
+
**Install:** `pnpm add @elevasis/ui`
|
|
90
59
|
|
|
91
|
-
|
|
60
|
+
**Peer deps:** React 19, Mantine 8.2.7, TanStack Query, TanStack Router, Zod 4.1, Zustand 5, cytoscape (many optional)
|
|
92
61
|
|
|
93
|
-
|
|
62
|
+
See [@elevasis/ui](ui/index.mdx) for the provider model, feature modules, peer dependency details, and when to use it.
|
|
@@ -51,6 +51,7 @@ governance metadata belong in the id-keyed `resources` map; operations code deri
|
|
|
51
51
|
Author system-local semantics by boundary:
|
|
52
52
|
|
|
53
53
|
- `System.ontology` owns durable object types, action types, catalog types, link types, event types, and surfaces.
|
|
54
|
+
- `System.apiInterface` is an adopt-only marker for platform-provided API capabilities. Use only cataloged profiles from `node_modules/@elevasis/sdk/reference/scaffold/reference/system-interface-capabilities.md`, on their convention-locked System paths, and satisfy readiness through ontology/resources/catalogs/topology. Custom Systems do not declare `apiInterface`; route custom behavior through workflows/operations and the OM layers tenants own.
|
|
54
55
|
- `System.config` owns system-local JSON settings and defaults.
|
|
55
56
|
- `resources` own executable workflow/agent descriptors, `systemPath`, owners, governance status, code references, and runtime implementation links.
|
|
56
57
|
- `resource.ontology.actions` describes the ontology actions a Resource performs; `resource.ontology.primaryAction` names the default/selectable action when a Resource has one.
|
|
@@ -61,6 +62,8 @@ Author system-local semantics by boundary:
|
|
|
61
62
|
|
|
62
63
|
Do not author Resource `actionKey` in the target contract. Runtime/UI routing that needs a single selectable action should read `resource.ontology.primaryAction`.
|
|
63
64
|
|
|
65
|
+
Do not confuse ontology `interface` records with `system.apiInterface`. Ontology interface ids such as `<system>:interface/<local-id>` are semantic records under `System.ontology`; `system.apiInterface` is a flat System-level adoption marker for closed platform API profiles.
|
|
66
|
+
|
|
64
67
|
## Runtime Validation
|
|
65
68
|
|
|
66
69
|
The model is validated at startup via `resolveOrganizationModel()` followed by
|
|
@@ -127,7 +130,7 @@ values, provider webhook mechanics, deployment environment settings, execution l
|
|
|
127
130
|
and per-run scheduler state outside the OM.
|
|
128
131
|
|
|
129
132
|
`System.ontology` owns durable semantic contracts: object types, action types, catalog
|
|
130
|
-
types, link types, event types, and surfaces. `System.config` owns local settings and
|
|
133
|
+
types, link types, event types, interfaces, and surfaces. `System.config` owns local settings and
|
|
131
134
|
defaults. If current UI or runtime code still needs legacy mirrors, keep `entities`
|
|
132
135
|
or `actions` aligned with the ontology record instead of inventing a separate
|
|
133
136
|
source of truth.
|
|
@@ -30,6 +30,10 @@ As of the 2026-05 resource-governance expansion, `OrganizationModel` includes pl
|
|
|
30
30
|
|
|
31
31
|
Resource identity is authored once in the id-keyed `resources` map. Each resource attaches to a System via `systemPath` and can declare ontology relationships through `resource.ontology`. Operations imports those descriptors and derives runtime `resourceId` / `type` while assembling the `DeploymentSpec`.
|
|
32
32
|
|
|
33
|
+
`System.apiInterface` is an adopt-only marker for platform-provided API capabilities. Tenants may use only the supported profiles listed in `node_modules/@elevasis/sdk/reference/scaffold/reference/system-interface-capabilities.md`, at their convention-locked System paths such as `sales.lead-gen` and `sales.crm`. Custom Systems should not declare `apiInterface`; extend behavior through ontology, resources, catalogs, topology, navigation, and workflows/operations.
|
|
34
|
+
|
|
35
|
+
Do not confuse `System.apiInterface` with ontology `interface` records. Ontology interface ids use the semantic record shape such as `<system>:interface/<local-id>`; `system.apiInterface` is a flat System field that declares intent to adopt a platform API capability and has derived readiness requirements.
|
|
36
|
+
|
|
33
37
|
### Domain Rename Note
|
|
34
38
|
|
|
35
39
|
Some legacy UI feature constants and consumer-facing route keys are intentionally unchanged for compatibility:
|
|
@@ -65,6 +69,7 @@ All paths under `node_modules/@elevasis/sdk/reference/scaffold/`:
|
|
|
65
69
|
- `node_modules/@elevasis/sdk/reference/scaffold/operations/scaffold-maintenance.md` -- content placement and auto-generation pipeline
|
|
66
70
|
- `node_modules/@elevasis/sdk/reference/scaffold/reference/glossary.md` -- Organization OS term definitions
|
|
67
71
|
- `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` -- auto-generated TypeScript contract shapes
|
|
72
|
+
- `node_modules/@elevasis/sdk/reference/scaffold/reference/system-interface-capabilities.md` -- generated catalog of platform-owned `system.apiInterface` readiness profiles and requirements
|
|
68
73
|
- `node_modules/@elevasis/sdk/reference/scaffold/reference/feature-registry.md` -- auto-generated feature manifest catalog
|
|
69
74
|
|
|
70
75
|
### Local Project Docs
|
|
@@ -92,7 +97,8 @@ All paths under `node_modules/@elevasis/sdk/reference/scaffold/`:
|
|
|
92
97
|
- **Extending entities:** Start with `core/types/entities.ts` for the demo extension pattern. Base shapes come from `@elevasis/core/entities`.
|
|
93
98
|
- **Authoring a workflow that takes a Project/Deal/etc.:** Reference entity types from `core/types/entities.ts` in the input schema -- do not redeclare them.
|
|
94
99
|
- **Adding system-local ontology/config:** Put durable business schema in `System.ontology`, local defaults/settings in `System.config`, executable implementations in `resources`, and explanatory or governing material in `knowledge`.
|
|
95
|
-
- **
|
|
100
|
+
- **API-interface readiness questions:** Check `node_modules/@elevasis/sdk/reference/scaffold/reference/system-interface-capabilities.md` first. `apiInterface` is a closed platform adoption handshake: use the cataloged profile on the required System path, satisfy derived readiness with ontology/resource/catalog/topology authoring, and do not invent readiness profiles for custom Systems.
|
|
101
|
+
- **Understanding generated type shapes:** Check `node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` for current TypeScript shapes.
|
|
96
102
|
- **Debugging sync issues:** Check `node_modules/@elevasis/sdk/reference/scaffold/operations/propagation-pipeline.md` for the verification pipeline.
|
|
97
103
|
|
|
98
104
|
## `/om` -- Org Model QA Entry Point
|