@elevasis/sdk 1.24.0 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/cli.cjs +875 -834
  2. package/dist/index.d.ts +4857 -4547
  3. package/dist/index.js +564 -2338
  4. package/dist/node/index.d.ts +693 -1356
  5. package/dist/node/index.js +1 -1
  6. package/dist/test-utils/index.d.ts +4186 -4139
  7. package/dist/test-utils/index.js +694 -2769
  8. package/dist/types/worker/adapters/clickup.d.ts +22 -0
  9. package/dist/types/worker/adapters/index.d.ts +1 -0
  10. package/dist/types/worker/index.d.ts +3 -2
  11. package/dist/types/worker/platform.d.ts +2 -2
  12. package/dist/worker/index.js +427 -2803
  13. package/package.json +2 -2
  14. package/reference/_navigation.md +11 -1
  15. package/reference/_reference-manifest.json +70 -0
  16. package/reference/claude-config/rules/organization-model.md +12 -1
  17. package/reference/claude-config/rules/organization-os.md +12 -1
  18. package/reference/claude-config/skills/om/SKILL.md +13 -5
  19. package/reference/claude-config/skills/om/operations/codify-level-a.md +109 -100
  20. package/reference/claude-config/skills/om/operations/customers.md +10 -6
  21. package/reference/claude-config/skills/om/operations/features.md +7 -3
  22. package/reference/claude-config/skills/om/operations/goals.md +10 -6
  23. package/reference/claude-config/skills/om/operations/identity.md +8 -5
  24. package/reference/claude-config/skills/om/operations/labels.md +17 -1
  25. package/reference/claude-config/skills/om/operations/offerings.md +11 -7
  26. package/reference/claude-config/skills/om/operations/roles.md +11 -7
  27. package/reference/claude-config/skills/om/operations/techStack.md +10 -2
  28. package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +32 -0
  29. package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +43 -0
  30. package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +40 -0
  31. package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +61 -0
  32. package/reference/cli-management.mdx +539 -0
  33. package/reference/cli.mdx +579 -808
  34. package/reference/concepts.mdx +134 -146
  35. package/reference/deployment/api.mdx +296 -297
  36. package/reference/deployment/command-center.mdx +208 -209
  37. package/reference/deployment/index.mdx +194 -195
  38. package/reference/deployment/provided-features.mdx +110 -107
  39. package/reference/deployment/ui-execution.mdx +249 -250
  40. package/reference/framework/index.mdx +111 -195
  41. package/reference/framework/resource-documentation.mdx +90 -0
  42. package/reference/framework/tutorial-system.mdx +135 -135
  43. package/reference/getting-started.mdx +141 -142
  44. package/reference/index.mdx +95 -106
  45. package/reference/packages/ui/src/auth/README.md +6 -6
  46. package/reference/platform-tools/adapters-integration.mdx +300 -301
  47. package/reference/platform-tools/adapters-platform.mdx +552 -553
  48. package/reference/platform-tools/index.mdx +216 -217
  49. package/reference/platform-tools/type-safety.mdx +82 -82
  50. package/reference/resources/index.mdx +348 -349
  51. package/reference/resources/patterns.mdx +446 -449
  52. package/reference/resources/types.mdx +115 -116
  53. package/reference/roadmap.mdx +164 -165
  54. package/reference/rules/organization-model.md +14 -0
  55. package/reference/runtime.mdx +172 -173
  56. package/reference/scaffold/operations/propagation-pipeline.md +1 -1
  57. package/reference/scaffold/recipes/customize-crm-actions.md +45 -46
  58. package/reference/scaffold/recipes/extend-crm.md +253 -255
  59. package/reference/scaffold/recipes/extend-lead-gen.md +130 -77
  60. package/reference/scaffold/recipes/index.md +43 -44
  61. package/reference/scaffold/reference/contracts.md +1275 -1432
  62. package/reference/scaffold/reference/glossary.md +8 -6
  63. package/reference/scaffold/ui/feature-flags-and-gating.md +59 -46
  64. package/reference/scaffold/ui/feature-shell.mdx +11 -11
  65. package/reference/scaffold/ui/recipes.md +24 -24
  66. package/reference/troubleshooting.mdx +222 -223
@@ -78,20 +78,24 @@ roles: {
78
78
 
79
79
  ## Where it lives in the adapter
80
80
 
81
- `core/config/organization-model.ts` under the `roles` key of
81
+ **Split projects:** `core/config/organization-model/profile.ts` under the `roles` key of
82
82
  `defineOrganizationModel({...})`.
83
83
 
84
- To read the current role chart: open the adapter file and inspect the `roles.roles` array, or
85
- use `pnpm exec elevasis-sdk om:cat roles` (external project).
84
+ **Unsplit projects:** `core/config/organization-model.ts` under the same key.
85
+
86
+ To read the current role chart: open the appropriate file and inspect the `roles.roles` array,
87
+ or use `pnpm exec elevasis-sdk om:cat roles` (external project).
86
88
 
87
89
  ## Write path
88
90
 
89
91
  To add, edit, or remove a role, the `/om` skill runs the codify ceremony
90
92
  (`operations/codify-level-a.md`): snapshot → propose → confirm → write → typecheck → Zod parse →
91
- rollback on failure. Only the `roles` array is written; no other keys in the adapter are touched.
92
- Before writing, the skill verifies all `reportsToId` references resolve to IDs that will exist
93
- after the write. When removing a role, the skill surfaces any other roles that `reportsToId` to it
94
- and asks whether to clear those reporting lines before proceeding.
93
+ rollback on failure. Pass `targetFile` as `core/config/organization-model/profile.ts` for split
94
+ projects, or `core/config/organization-model.ts` for unsplit projects. Only the `roles` array is
95
+ written; no other keys in the target file are touched. Before writing, the skill verifies all
96
+ `reportsToId` references resolve to IDs that will exist after the write. When removing a role,
97
+ the skill surfaces any other roles that `reportsToId` to it and asks whether to clear those
98
+ reporting lines before proceeding.
95
99
 
96
100
  ---
97
101
 
@@ -11,10 +11,18 @@ Tech stack information is no longer modeled through `resourceMappings`. Resource
11
11
 
12
12
  ## Where To Look
13
13
 
14
- - `core/config/organization-model.ts` -- Systems and Resources descriptors.
14
+ - **Systems and Resources descriptors** -- `core/config/organization-model/systems.ts` (split
15
+ projects) or `core/config/organization-model.ts` (unsplit projects).
15
16
  - `operations/src/index.ts` -- deployment assembly that binds executable behavior to descriptors.
16
17
  - `pnpm elevasis-sdk project:list --pretty` -- live deployed resource surface.
17
- - Project knowledge nodes -- narrative details such as credential owner, setup notes, and system-of-record rationale when they do not fit the descriptor shape.
18
+ - Project knowledge nodes -- narrative details such as credential owner, setup notes, and
19
+ system-of-record rationale when they do not fit the descriptor shape.
20
+
21
+ **Note:** `techStack` is not currently authored as a top-level key in either the template or
22
+ reference tenant model. Integration context lives in Resource descriptors (`systems.ts`) and
23
+ project knowledge nodes rather than a dedicated `techStack` domain block. Do not invent a
24
+ `techStack` key in `profile.ts`; if the schema adds one in a future SDK release, this note will
25
+ be updated.
18
26
 
19
27
  ## Write Path
20
28
 
@@ -0,0 +1,32 @@
1
+ # Organization Model Define Helpers Release Train
2
+
3
+ ## Why this note exists
4
+
5
+ This train publishes `@elevasis/core` 0.28.0, which adds a generic `defineDomainRecord<TSchema>(schema, entries)` helper plus eleven domain-specific authoring wrappers (`defineAction`/`defineActions`, `defineEntity`/`defineEntities`, `defineSystem`/`defineSystems`, `defineCustomer`/`defineCustomers`, `defineOffering`/`defineOfferings`, `defineRole`/`defineRoles`, `defineGoal`/`defineGoals`, `defineStatus`/`defineStatuses`, `definePolicy`/`definePolicies`, `defineKnowledgeNode`/`defineKnowledgeNodes`). The audit that motivated this train (package vs. project boundary) found that projects were hand-rolling the "validate every entry against its schema, then return an id-keyed map" pattern in multiple places — the helpers eliminate that duplication and make validation uniform.
6
+
7
+ After this publish, the template's `external/_template/core/config/organization-model.ts` drops 6 local `TemplateX` type aliases and 2 local helper redefinitions in favor of the published equivalents.
8
+
9
+ ## Applies to
10
+
11
+ - `external/_template/core/config/organization-model.ts` (template authoring surface)
12
+ - Any downstream tenant project derived from `_template` that still carries local `TemplateActionRef` / `TemplateActionEntry` / `TemplateEntityEntry` / `TemplateSystemEntry` / `TemplateResourceOntologyBinding` / `TemplateWorkflowResourceEntry` aliases, or local `listAllSystems` / `toDomainRecord` helpers
13
+ - `external/_template/core/package.json` and `external/_template/operations/package.json` (baseline cascade — both pin `@elevasis/core`)
14
+
15
+ ## Required actions
16
+
17
+ - Refresh `@elevasis/core` to 0.28.0 in `core/package.json` and `operations/package.json` (caret range picks it up automatically; `pnpm install` to actualize).
18
+ - Drop the 6 `TemplateX` type aliases from `core/config/organization-model.ts` and import the canonical types from `@elevasis/core/organization-model` instead: `ActionRef`, `OrganizationAction`, `Entity`, `OrganizationModelSystemEntry`, `ResourceOntologyBinding`, `WorkflowResourceEntry`.
19
+ - Drop the local `listAllSystems` and `toDomainRecord` helpers; use `listAllSystems` and `defineDomainRecord` from `@elevasis/core/organization-model`.
20
+ - Keep `TemplateWorkflowResourceEntry` ONLY as an intersection that adds the `systemId` compat mirror plus required `title`/`description`: `WorkflowResourceEntry & { systemId: string; title: string; description: string }`. This compat mirror is the sole justified divergence.
21
+ - Author calls that build domain records should migrate from the hand-rolled `toDomainRecord(entries)` form to the validating `defineDomainRecord(Schema, entries)` form, or use the domain-specific `defineActions`, `defineEntities`, etc. wrappers where applicable.
22
+
23
+ ## Verification
24
+
25
+ - `pnpm -C core check-types`
26
+ - `pnpm -C operations check-types`
27
+ - `pnpm -C ui check-types`
28
+ - Run `pnpm sync:verify` from the monorepo root after `/external sync --all` propagates.
29
+
30
+ ## Not handled by /git-sync
31
+
32
+ `/git-sync` does not republish `@elevasis/core`, edit your `core/config/organization-model.ts` for you, or migrate hand-rolled `toDomainRecord` call sites to `defineDomainRecord`. Those edits are intentional authoring changes; review them in a normal PR. The `pnpm install` after the dependency bump IS handled.
@@ -0,0 +1,43 @@
1
+ # Access Model And Right Panel Host
2
+
3
+ ## Why this note exists
4
+
5
+ This release train replaces the retired feature-access route guards with the unified Access Model and adds the shared right-panel host plus shared Notes view to the template UI. Downstream projects need to accept the new package baselines and reconcile any project-owned routes or dashboard surfaces that still use the old `SystemGuard` / `createFeatureAccessHook` pattern.
6
+
7
+ ## Applies to
8
+
9
+ Template-derived projects that use `@elevasis/ui` route guards, dashboard feature availability, right-panel UI, Notes, or template-managed route files under `ui/src/routes/**` and `ui/src/features/**`.
10
+
11
+ Projects without custom route guards or right-panel customizations can accept the template updates normally, then run the verification gates below.
12
+
13
+ ## Required actions
14
+
15
+ 1. Pull the prepared template/package updates with `/git-sync` after the SDK ship train publishes `@elevasis/core` and `@elevasis/ui`.
16
+ 2. Replace project-owned `SystemGuard`, `SurfaceGuard`, `AdminGuard`, `createFeatureAccessHook`, `useOrganizationPermissions`, and `useHasPermission` usages with `AccessGuard`, `useAccess`, and `AccessKeys`.
17
+ 3. Keep app-local right-panel registries project-owned, but compose them with `RightPanelProvider`, `RightPanelLayer`, and shared views from `@elevasis/ui/features/right-panel-host` and `@elevasis/ui/features/notes`.
18
+ 4. Preserve tenant-specific route content, Organization Model Systems, and custom dashboard cards while updating their access checks to the new Access Model.
19
+ 5. Do not import workspace packages such as `@repo/core` or `@repo/ui` from external projects. Use the published `@elevasis/*` packages.
20
+
21
+ ## Verification
22
+
23
+ Run the project baseline gates after syncing:
24
+
25
+ ```powershell
26
+ pnpm -C ui check-types
27
+ pnpm -C ui build
28
+ pnpm -C ui test
29
+ pnpm -C core test
30
+ pnpm test
31
+ ```
32
+
33
+ For projects with custom route guards, also grep for retired access APIs:
34
+
35
+ ```powershell
36
+ rg "SystemGuard|SurfaceGuard|AdminGuard|createFeatureAccessHook|useOrganizationPermissions|useHasPermission" ui/src
37
+ ```
38
+
39
+ For projects adopting the right-panel host, open the app shell and confirm the panel trigger opens Notes, closes cleanly, preserves width on desktop, and does not hide project-owned navigation controls.
40
+
41
+ ## Not handled by /git-sync
42
+
43
+ `/git-sync` updates template-propagated files and package baselines. It does not rewrite project-owned custom routes, custom dashboard widgets, custom right-panel views, tenant Organization Model entries, or tenant-specific access semantics. Those remain project-authored decisions that must be migrated to the Access Model by the downstream maintainer.
@@ -0,0 +1,40 @@
1
+ # Lead Gen Tenant Config Boundary
2
+
3
+ ## Why this note exists
4
+
5
+ The lead-gen list-builder package boundary changed so shared packages own reusable mechanics and tenant projects own lead-gen values. `@elevasis/core` no longer carries Elevasis tenant build-template defaults, and `@elevasis/ui` derives lead-gen configuration from the provider-injected Organization Model through `useLeadGenConfig()` instead of importing Elevasis-owned defaults.
6
+
7
+ ## Applies to
8
+
9
+ Template-derived projects that use the shared lead-gen pages, list-builder runner, build templates, workflow actions, or `@elevasis/ui/features/lead-gen`.
10
+
11
+ Projects with no lead-gen surface and no list-builder workflows can ignore the lead-gen authoring steps, but should still accept package baseline updates from the release train.
12
+
13
+ ## Required actions
14
+
15
+ 1. Pull the template/package updates with `/git-sync` after the SDK ship train lands.
16
+ 2. Keep lead-gen stage catalogs, build templates, workflow actions, resources, topology, and credential names in the project Organization Model (`core/config/organization-model.ts`).
17
+ 3. Provide project-owned list-builder action wiring in the UI, typically through `ui/src/config/listActions.ts` and the local app shell.
18
+ 4. Keep tenant workflow implementations in the project operations package and use `listBuilderWorkflow` from `@elevasis/sdk/worker` for stage handlers.
19
+ 5. Do not import Elevasis workspace packages such as `@repo/elevasis-core`, `@repo/core`, or `@repo/ui` from an external project. Use the published `@elevasis/*` packages.
20
+ 6. If the project previously relied on shared UI fallback defaults for lead-gen templates or export workflow IDs, add those values to the project Organization Model before expecting list creation or the build runner to behave usefully.
21
+
22
+ ## Verification
23
+
24
+ Run the project baseline gates after syncing:
25
+
26
+ ```powershell
27
+ pnpm -C core test
28
+ pnpm -C operations check-types
29
+ pnpm -C operations check
30
+ pnpm -C operations test
31
+ pnpm -C ui check-types
32
+ pnpm -C ui build
33
+ pnpm test
34
+ ```
35
+
36
+ For projects with lead-gen enabled, also open the lead-gen list creation and list detail routes and confirm the shared UI sees the project-authored build templates, stage labels, and export workflow.
37
+
38
+ ## Not handled by /git-sync
39
+
40
+ `/git-sync` updates template-propagated files and package baselines. It does not invent project-specific lead-gen catalogs, workflow contracts, credentials, or `listActions` for an existing tenant. Those remain project-authored decisions.
@@ -0,0 +1,61 @@
1
+ # Organization Model Multi-File Split
2
+
3
+ ## Why this note exists
4
+
5
+ `core/config/organization-model.ts` has grown large enough that authoring, review, and `/om`
6
+ codify writes are easier against focused files. This change splits the single file into an
7
+ entry file plus a sibling directory, WITHOUT changing the entry filename, the public export
8
+ contract, or any consumer import. The SDK loader, the Tier-2 merge rule, and every downstream
9
+ consumer continue to resolve `core/config/organization-model.ts` exactly as before.
10
+
11
+ This note is the Tier-1 → Tier-2 handoff interface: the source split lands now (Tier 1); the
12
+ `/external sync` propagation to derived tenants is deferred to a `/sdk ship` cycle (Tier 2).
13
+
14
+ ## What changed
15
+
16
+ The model is now authored across four files:
17
+
18
+ - `core/config/organization-model.ts` -- ENTRY: assembles `canonicalOrganizationModel` /
19
+ `organizationModel` and re-exports every public symbol. No consumer import changes.
20
+ - `core/config/organization-model/profile.ts` -- the `defineOrganizationModel(...)` body
21
+ (identity, customers, offerings, roles, goals). Primary `/om` codify write target.
22
+ - `core/config/organization-model/systems.ts` -- systems, resources, topology, entities,
23
+ actions, resource governance, feature/system-ID constants.
24
+ - `core/config/organization-model/navigation.ts` -- sidebar navigation tree and surface
25
+ projection; imports `systems.ts` directly (never via the entry) to keep the graph acyclic.
26
+
27
+ ## Applies to
28
+
29
+ - `external/_template/core/config/organization-model.ts` and the new `organization-model/`
30
+ sibling directory
31
+ - Any downstream tenant project derived from `_template` that opts in to the split (the
32
+ Tier-2 merge does NOT force adoption — single-file projects remain valid)
33
+
34
+ ## Sync tiers for the new siblings
35
+
36
+ - `organization-model.ts` (entry) -- `merge` / `merge-regions` / `@elevasis/core` (unchanged)
37
+ - `organization-model/systems.ts` -- `merge` / `merge-regions` / `@elevasis/core`
38
+ - `organization-model/navigation.ts` -- `merge` / `merge-regions` / `@elevasis/core`
39
+ - `organization-model/profile.ts` -- `never-touch` / `verify-only` / project-owned (the
40
+ `/om` codify write target; sync never overwrites it)
41
+
42
+ ## Required actions
43
+
44
+ - For an unsplit project that wants the split: mirror the four-file layout from `_template`,
45
+ preserving the `defineOrganizationModel(...)` body verbatim into `profile.ts`. Keep the
46
+ entry filename and the full public export barrel.
47
+ - No action is required to stay on the single-file layout — it remains supported.
48
+
49
+ ## Verification
50
+
51
+ - `pnpm -C core test` (snapshot equality — the resolved model must be byte-identical to the
52
+ pre-split fixture)
53
+ - `pnpm -C operations check-types`
54
+ - `pnpm sync:verify` from the monorepo root after `/external sync` propagates (the
55
+ export-presence checks now tolerate the re-export form across the sibling files)
56
+
57
+ ## Not handled by /git-sync
58
+
59
+ `/git-sync` does not split your `core/config/organization-model.ts` for you. The split is an
60
+ intentional one-time structural migration — author it directly (or via `/om`), preserving the
61
+ `defineOrganizationModel(...)` body verbatim, and review it in a normal PR.