@elevasis/sdk 1.44.3 → 1.46.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 (259) hide show
  1. package/dist/cli.cjs +35026 -30226
  2. package/dist/index.d.ts +1786 -808
  3. package/dist/index.js +789 -739
  4. package/dist/node/index.d.ts +105 -181
  5. package/dist/node/index.js +2 -2
  6. package/dist/test-utils/index.d.ts +901 -359
  7. package/dist/test-utils/index.js +587 -824
  8. package/dist/worker/index.d.ts +12685 -0
  9. package/dist/worker/index.js +188 -216
  10. package/package.json +4 -7
  11. package/reference/_navigation.md +161 -22
  12. package/reference/_reference-manifest.json +228 -4
  13. package/reference/claude-config.md +8 -0
  14. package/reference/core/exports.mdx +2 -0
  15. package/reference/core/index.mdx +3 -3
  16. package/reference/examples/organization-model.ts +117 -111
  17. package/reference/index.mdx +4 -4
  18. package/reference/packages/core/src/business/README.md +4 -1
  19. package/reference/packages/core/src/content/README.md +19 -0
  20. package/reference/packages/core/src/organization-model/README.md +148 -149
  21. package/reference/packages/core/src/organization-model/readiness/README.md +42 -0
  22. package/reference/packages/ui/src/features/README.md +28 -28
  23. package/reference/rules/active-change-index.md +40 -54
  24. package/reference/rules/agent-runtime.md +81 -0
  25. package/reference/rules/agent-start-here.md +71 -163
  26. package/reference/rules/deployment.md +33 -10
  27. package/reference/rules/error-handling.md +26 -0
  28. package/reference/rules/execution.md +13 -0
  29. package/reference/rules/frontend.md +10 -3
  30. package/reference/rules/observability.md +9 -1
  31. package/reference/rules/operations.md +26 -17
  32. package/reference/rules/organization-model.md +74 -88
  33. package/reference/rules/organization-os.md +71 -88
  34. package/reference/rules/package-taxonomy.md +11 -2
  35. package/reference/rules/platform.md +13 -7
  36. package/reference/rules/shared-types.md +36 -0
  37. package/reference/rules/task-tracking.md +30 -5
  38. package/reference/rules/ui.md +145 -3
  39. package/reference/rules/vibe-intents.md +271 -0
  40. package/reference/rules/vibe.md +17 -243
  41. package/reference/scaffold/core/organization-graph.mdx +112 -99
  42. package/reference/scaffold/core/organization-model.mdx +231 -215
  43. package/reference/scaffold/operations/propagation-pipeline.md +16 -17
  44. package/reference/scaffold/operations/scaffold-maintenance.md +22 -20
  45. package/reference/scaffold/operations/workflow-recipes.md +72 -20
  46. package/reference/scaffold/recipes/add-a-feature.md +156 -146
  47. package/reference/scaffold/recipes/add-a-resource.md +123 -117
  48. package/reference/scaffold/recipes/customize-crm-actions.md +28 -13
  49. package/reference/scaffold/recipes/customize-knowledge-browser.md +52 -117
  50. package/reference/scaffold/recipes/customize-organization-model.md +161 -149
  51. package/reference/scaffold/recipes/extend-a-base-entity.md +156 -140
  52. package/reference/scaffold/recipes/extend-content.md +265 -0
  53. package/reference/scaffold/recipes/extend-crm.md +16 -11
  54. package/reference/scaffold/recipes/extend-lead-gen.md +37 -21
  55. package/reference/scaffold/recipes/gate-by-feature-or-admin.md +160 -118
  56. package/reference/scaffold/recipes/index.md +6 -3
  57. package/reference/scaffold/recipes/query-the-knowledge-graph.md +23 -23
  58. package/reference/scaffold/reference/contracts.md +30 -56
  59. package/reference/scaffold/reference/feature-registry.md +3 -0
  60. package/reference/scaffold/reference/glossary.md +4 -4
  61. package/reference/scaffold/reference/system-interface-capabilities.md +5 -4
  62. package/reference/scaffold/ui/composition-extensibility.mdx +271 -232
  63. package/reference/scaffold/ui/customization.md +2 -2
  64. package/reference/scaffold/ui/feature-flags-and-gating.md +14 -6
  65. package/reference/scaffold/ui/feature-shell.mdx +277 -62
  66. package/reference/scaffold/ui/recipes.md +229 -197
  67. package/reference/sdk/cli-management.mdx +166 -33
  68. package/reference/sdk/cli.mdx +90 -13
  69. package/reference/sdk/concepts.mdx +2 -0
  70. package/reference/sdk/define-builders.mdx +76 -0
  71. package/reference/sdk/deployment/command-center.mdx +6 -2
  72. package/reference/sdk/deployment/execution-reference.mdx +64 -186
  73. package/reference/sdk/deployment/index.mdx +2 -0
  74. package/reference/sdk/exports.mdx +4 -4
  75. package/reference/sdk/framework/agent.mdx +52 -116
  76. package/reference/sdk/framework/index.mdx +46 -65
  77. package/reference/sdk/framework/project-structure.mdx +150 -205
  78. package/reference/sdk/framework/tutorial-system.mdx +2 -2
  79. package/reference/sdk/human-in-the-loop.mdx +152 -0
  80. package/reference/sdk/index.mdx +6 -7
  81. package/reference/sdk/platform-tools/adapters-platform.mdx +3 -1
  82. package/reference/sdk/platform-tools/index.mdx +12 -0
  83. package/reference/sdk/platform-tools/type-safety.mdx +4 -0
  84. package/reference/sdk/project-deployment-spec.mdx +131 -0
  85. package/reference/sdk/resources/index.mdx +21 -7
  86. package/reference/sdk/resources/patterns.mdx +54 -24
  87. package/reference/sdk/resources/types.mdx +7 -4
  88. package/reference/sdk/templates/data-enrichment.mdx +7 -3
  89. package/reference/sdk/templates/email-sender.mdx +139 -135
  90. package/reference/sdk/templates/lead-scorer.mdx +5 -1
  91. package/reference/sdk/templates/pdf-generator.mdx +155 -151
  92. package/reference/sdk/templates/recurring-job.mdx +195 -189
  93. package/reference/sdk/templates/text-classifier.mdx +4 -0
  94. package/reference/sdk/templates/web-scraper.mdx +139 -135
  95. package/reference/spine/spine-primer.md +135 -96
  96. package/reference/ui/exports.mdx +1 -0
  97. package/reference/ui/index.mdx +14 -7
  98. package/dist/types/worker/adapters/anymailfinder.d.ts +0 -14
  99. package/dist/types/worker/adapters/apify.d.ts +0 -14
  100. package/dist/types/worker/adapters/approval.d.ts +0 -23
  101. package/dist/types/worker/adapters/attio.d.ts +0 -22
  102. package/dist/types/worker/adapters/clickup.d.ts +0 -22
  103. package/dist/types/worker/adapters/create-adapter.d.ts +0 -41
  104. package/dist/types/worker/adapters/crm.d.ts +0 -20
  105. package/dist/types/worker/adapters/dropbox.d.ts +0 -14
  106. package/dist/types/worker/adapters/email.d.ts +0 -25
  107. package/dist/types/worker/adapters/execution.d.ts +0 -22
  108. package/dist/types/worker/adapters/gmail.d.ts +0 -14
  109. package/dist/types/worker/adapters/google-sheets.d.ts +0 -14
  110. package/dist/types/worker/adapters/index.d.ts +0 -33
  111. package/dist/types/worker/adapters/instantly.d.ts +0 -14
  112. package/dist/types/worker/adapters/lead.d.ts +0 -28
  113. package/dist/types/worker/adapters/list.d.ts +0 -9
  114. package/dist/types/worker/adapters/llm.d.ts +0 -45
  115. package/dist/types/worker/adapters/millionverifier.d.ts +0 -14
  116. package/dist/types/worker/adapters/notification.d.ts +0 -28
  117. package/dist/types/worker/adapters/pdf.d.ts +0 -22
  118. package/dist/types/worker/adapters/projects.d.ts +0 -20
  119. package/dist/types/worker/adapters/resend.d.ts +0 -14
  120. package/dist/types/worker/adapters/scheduler.d.ts +0 -25
  121. package/dist/types/worker/adapters/signature-api.d.ts +0 -14
  122. package/dist/types/worker/adapters/storage.d.ts +0 -33
  123. package/dist/types/worker/adapters/stripe.d.ts +0 -14
  124. package/dist/types/worker/adapters/tomba.d.ts +0 -14
  125. package/dist/types/worker/index.d.ts +0 -60
  126. package/dist/types/worker/platform.d.ts +0 -90
  127. package/dist/types/worker/utils.d.ts +0 -9
  128. package/reference/claude-config/Overview.md +0 -230
  129. package/reference/claude-config/hooks/post-edit-validate.mjs +0 -98
  130. package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +0 -187
  131. package/reference/claude-config/hooks/tool-failure-recovery.mjs +0 -73
  132. package/reference/claude-config/registries/graph-skills.json +0 -4
  133. package/reference/claude-config/registries/knowledge-flags.json +0 -154
  134. package/reference/claude-config/registries/skill-coverage.json +0 -20
  135. package/reference/claude-config/rules/active-change-index.md +0 -22
  136. package/reference/claude-config/rules/agent-start-here.md +0 -22
  137. package/reference/claude-config/rules/deployment.md +0 -22
  138. package/reference/claude-config/rules/error-handling.md +0 -22
  139. package/reference/claude-config/rules/execution.md +0 -22
  140. package/reference/claude-config/rules/frontend.md +0 -22
  141. package/reference/claude-config/rules/observability.md +0 -22
  142. package/reference/claude-config/rules/operations.md +0 -22
  143. package/reference/claude-config/rules/organization-model.md +0 -22
  144. package/reference/claude-config/rules/organization-os.md +0 -22
  145. package/reference/claude-config/rules/package-taxonomy.md +0 -22
  146. package/reference/claude-config/rules/platform.md +0 -22
  147. package/reference/claude-config/rules/shared-types.md +0 -22
  148. package/reference/claude-config/rules/task-tracking.md +0 -22
  149. package/reference/claude-config/rules/topbar-actions.md +0 -70
  150. package/reference/claude-config/rules/ui.md +0 -22
  151. package/reference/claude-config/rules/vibe.md +0 -22
  152. package/reference/claude-config/scripts/statusline-command.js +0 -18
  153. package/reference/claude-config/settings.json +0 -30
  154. package/reference/claude-config/skills/client/SKILL.md +0 -201
  155. package/reference/claude-config/skills/deploy/SKILL.md +0 -159
  156. package/reference/claude-config/skills/dsp/SKILL.md +0 -66
  157. package/reference/claude-config/skills/elevasis/SKILL.md +0 -251
  158. package/reference/claude-config/skills/explore/SKILL.md +0 -78
  159. package/reference/claude-config/skills/git-sync/SKILL.md +0 -166
  160. package/reference/claude-config/skills/om/SKILL.md +0 -475
  161. package/reference/claude-config/skills/om/operations/build.md +0 -237
  162. package/reference/claude-config/skills/om/operations/codify-level-a.md +0 -109
  163. package/reference/claude-config/skills/om/operations/codify-level-b.md +0 -159
  164. package/reference/claude-config/skills/om/operations/customers.md +0 -114
  165. package/reference/claude-config/skills/om/operations/features.md +0 -88
  166. package/reference/claude-config/skills/om/operations/goals.md +0 -123
  167. package/reference/claude-config/skills/om/operations/identity.md +0 -97
  168. package/reference/claude-config/skills/om/operations/labels.md +0 -110
  169. package/reference/claude-config/skills/om/operations/offerings.md +0 -114
  170. package/reference/claude-config/skills/om/operations/roles.md +0 -104
  171. package/reference/claude-config/skills/om/operations/scaffold.md +0 -163
  172. package/reference/claude-config/skills/om/operations/techStack.md +0 -38
  173. package/reference/claude-config/skills/project/SKILL.md +0 -1114
  174. package/reference/claude-config/skills/run-ui/SKILL.md +0 -73
  175. package/reference/claude-config/skills/save/SKILL.md +0 -183
  176. package/reference/claude-config/skills/setup/SKILL.md +0 -290
  177. package/reference/claude-config/skills/status/SKILL.md +0 -59
  178. package/reference/claude-config/skills/submit-request/SKILL.md +0 -180
  179. package/reference/claude-config/skills/sync/SKILL.md +0 -47
  180. package/reference/claude-config/skills/tutorial/SKILL.md +0 -259
  181. package/reference/claude-config/skills/tutorial/progress-template.md +0 -74
  182. package/reference/claude-config/skills/tutorial/technical.md +0 -1303
  183. package/reference/claude-config/skills/tutorial/vibe-coder.md +0 -890
  184. package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +0 -27
  185. package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +0 -30
  186. package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +0 -73
  187. package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +0 -86
  188. package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +0 -55
  189. package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +0 -97
  190. package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +0 -112
  191. package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +0 -93
  192. package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +0 -58
  193. package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +0 -56
  194. package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +0 -71
  195. package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +0 -83
  196. package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +0 -59
  197. package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +0 -42
  198. package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +0 -60
  199. package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +0 -37
  200. package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +0 -34
  201. package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +0 -38
  202. package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +0 -32
  203. package/reference/claude-config/sync-notes/2026-05-09-command-system.md +0 -33
  204. package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +0 -69
  205. package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +0 -30
  206. package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +0 -45
  207. package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +0 -52
  208. package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +0 -33
  209. package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +0 -32
  210. package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +0 -43
  211. package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +0 -40
  212. package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +0 -61
  213. package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +0 -49
  214. package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +0 -31
  215. package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +0 -42
  216. package/reference/claude-config/sync-notes/2026-05-23-om-full-model-deploy-contract.md +0 -33
  217. package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +0 -37
  218. package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +0 -28
  219. package/reference/claude-config/sync-notes/2026-05-24-system-interface-readiness.md +0 -43
  220. package/reference/claude-config/sync-notes/2026-05-25-invitation-login-loader.md +0 -26
  221. package/reference/claude-config/sync-notes/2026-05-25-om-topbar-requests.md +0 -33
  222. package/reference/claude-config/sync-notes/2026-05-25-system-interface-profile-registry-and-substrate.md +0 -35
  223. package/reference/claude-config/sync-notes/2026-05-25-tenant-om-scaffold-cli.md +0 -49
  224. package/reference/claude-config/sync-notes/2026-05-25-vibe-operate-intent.md +0 -47
  225. package/reference/claude-config/sync-notes/2026-05-28-om-snapshot-sdk-workflow-config.md +0 -33
  226. package/reference/claude-config/sync-notes/2026-05-30-client-source-and-om-profiles.md +0 -39
  227. package/reference/claude-config/sync-notes/2026-06-02-knowledge-nested-group-routing.md +0 -27
  228. package/reference/claude-config/sync-notes/2026-06-02-nest-projects-under-platform.md +0 -45
  229. package/reference/claude-config/sync-notes/2026-06-03-skill-autogen-and-client-skill.md +0 -34
  230. package/reference/claude-config/sync-notes/2026-06-04-scaffold-registry-lane-severity.md +0 -34
  231. package/reference/claude-config/sync-notes/2026-06-05-appearance-app-mode-decouple.md +0 -29
  232. package/reference/claude-config/sync-notes/2026-06-05-ontology-endpoint-rename-and-knowledge-browser-ui.md +0 -86
  233. package/reference/claude-config/sync-notes/2026-06-06-om-build-systems-scaffold.md +0 -47
  234. package/reference/claude-config/sync-notes/2026-06-06-om-item-copy-references.md +0 -50
  235. package/reference/claude-config/sync-notes/2026-06-08-knowledge-base-page-not-found-fix.md +0 -76
  236. package/reference/claude-config/sync-notes/2026-06-09-agent-sessions-public-agent-chat-route.md +0 -75
  237. package/reference/claude-config/sync-notes/2026-06-09-sdk-cli-load-org-model-resolution.md +0 -42
  238. package/reference/claude-config/sync-notes/2026-06-12-agent-grants-visualizer-operations.md +0 -30
  239. package/reference/claude-config/sync-notes/2026-06-14-session-ux-and-project-cli-json.md +0 -33
  240. package/reference/claude-config/sync-notes/2026-06-14-shared-session-conversation-view.md +0 -26
  241. package/reference/claude-config/sync-notes/2026-06-15-session-chat-zero-wiring.md +0 -46
  242. package/reference/claude-config/sync-notes/2026-06-17-agent-session-ux-features.md +0 -34
  243. package/reference/claude-config/sync-notes/2026-06-25-shared-page-scroll-contract-guard.md +0 -52
  244. package/reference/claude-config/sync-notes/2026-06-26-leadgen-overview-om-telemetry.md +0 -47
  245. package/reference/claude-config/sync-notes/2026-07-21-agent-scaffold-hardening.md +0 -75
  246. package/reference/claude-config/sync-notes/2026-07-23-agent-session-memory.md +0 -49
  247. package/reference/claude-config/sync-notes/2026-07-23-workos-org-marker.md +0 -50
  248. package/reference/claude-config/sync-notes/2026-07-24-claude-5-models-and-session-surface-fixes.md +0 -116
  249. package/reference/claude-config/sync-notes/2026-07-27-agent-strict-output-and-turn-drift.md +0 -73
  250. package/reference/claude-config/sync-notes/2026-07-28-agent-reply-is-its-own-field.md +0 -84
  251. package/reference/claude-config/sync-notes/2026-07-30-login-screen-and-member-provisioning-state.md +0 -114
  252. package/reference/claude-config/sync-notes/2026-08-02-auth-guard-defaults-and-truncation-fix.md +0 -122
  253. package/reference/claude-config/sync-notes/2026-08-03-agent-prose-escape-normalization.md +0 -88
  254. package/reference/claude-config/sync-notes/2026-08-03-cli-gateway-errors-and-request-timeout.md +0 -120
  255. package/reference/claude-config/sync-notes/README.md +0 -43
  256. package/reference/sdk/framework/interaction-guidance.mdx +0 -182
  257. package/reference/sdk/framework/memory.mdx +0 -326
  258. package/reference/sdk/framework/resource-documentation.mdx +0 -90
  259. package/reference/sdk/roadmap.mdx +0 -164
@@ -1,61 +1,62 @@
1
- ---
2
- title: UI Recipes
3
- description: Current recipes for adding pages, system-gated routes, system components, theme tokens, Organization Model sidebar entries, and executable resources.
4
- ---
1
+ ---
2
+ title: UI Recipes
3
+ description: Current recipes for adding pages, system-gated routes, system components, theme tokens, Organization Model sidebar entries, and executable resources.
4
+ ---
5
5
  <!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
6
6
  <!-- Regenerate: pnpm scaffold:sync -->
7
7
 
8
-
9
- # UI Recipes
10
-
11
- ## 1. Add a Top-Level Page
12
-
13
- Create `ui/src/routes/my-system.index.tsx`:
14
-
15
- ```tsx
16
- import { createFileRoute } from '@tanstack/react-router'
17
- import { ProtectedRoute } from '@/features/auth'
18
- import { AppShellContentContainer, AppTopbarAdjusterWrapper, PageContainer } from '@elevasis/ui/layout'
19
- import { MySystemPage } from '@/features/my-system/components/MySystemPage'
20
-
21
- export const Route = createFileRoute('/my-system/')({
22
- component: MySystemRouteComponent
23
- })
24
-
25
- function MySystemRouteComponent() {
26
- return (
27
- <ProtectedRoute>
28
- <AppTopbarAdjusterWrapper>
29
- <AppShellContentContainer>
30
- <PageContainer>
31
- <MySystemPage />
32
- </PageContainer>
33
- </AppShellContentContainer>
34
- </AppTopbarAdjusterWrapper>
35
- </ProtectedRoute>
36
- )
37
- }
38
- ```
39
-
40
- Add the sidebar entry as a system node in `core/config/organization-model.ts`:
41
-
42
- ```ts
43
- systems: {
44
- systems: [
45
- {
46
- id: 'my-system',
47
- label: 'My System',
48
- enabled: true,
49
- path: '/my-system',
50
- icon: 'star',
51
- uiPosition: 'sidebar-primary'
52
- }
53
- ]
54
- }
55
- ```
56
-
57
- TanStack Router derives the path from the filename. The sidebar is derived from `OrganizationModel.systems`.
58
-
8
+
9
+ # UI Recipes
10
+
11
+ ## 1. Add a Top-Level Page
12
+
13
+ Create `ui/src/routes/my-system.index.tsx`:
14
+
15
+ ```tsx
16
+ import { createFileRoute } from '@tanstack/react-router'
17
+ import { ProtectedRoute } from '@/features/auth'
18
+ import { AppShellContentContainer, AppTopbarAdjusterWrapper, PageContainer } from '@elevasis/ui/layout'
19
+ import { MySystemPage } from '@/features/my-system/components/MySystemPage'
20
+
21
+ export const Route = createFileRoute('/my-system/')({
22
+ component: MySystemRouteComponent
23
+ })
24
+
25
+ function MySystemRouteComponent() {
26
+ return (
27
+ <ProtectedRoute>
28
+ <AppTopbarAdjusterWrapper>
29
+ <AppShellContentContainer>
30
+ <PageContainer>
31
+ <MySystemPage />
32
+ </PageContainer>
33
+ </AppShellContentContainer>
34
+ </AppTopbarAdjusterWrapper>
35
+ </ProtectedRoute>
36
+ )
37
+ }
38
+ ```
39
+
40
+ Add the sidebar entry as a system node in `core/config/organization-model.ts`:
41
+
42
+ `systems` is an id-keyed record, not an array, and `order` is required on every entry:
43
+
44
+ <!-- doc-snippet:skip: illustrative excerpt, not a standalone compilable file -->
45
+
46
+ ```ts
47
+ systems: {
48
+ mySystem: {
49
+ id: 'my-system',
50
+ order: 50,
51
+ label: 'My System',
52
+ lifecycle: 'active',
53
+ ui: { path: '/my-system', icon: 'star' }
54
+ }
55
+ }
56
+ ```
57
+
58
+ TanStack Router derives the path from the filename. Sidebar placement is authored in `navigation.sidebar`, not on the System entry — `enabled`, `path`, `icon`, and `uiPosition` survive as top-level compatibility fields but are not the authoring surface. Use `lifecycle` for enablement and `ui.path` for route matching.
59
+
59
60
  ## 2. Add an Access-Gated Page
60
61
 
61
62
  Wrap the route with `AccessGuard` and use the same system path as the org model node.
@@ -70,7 +71,7 @@ function MySystemRouteComponent() {
70
71
  <AppTopbarAdjusterWrapper>
71
72
  <AppShellContentContainer>
72
73
  <PageContainer>
73
- <MySystemPage />
74
+ <MySystemPage />
74
75
  </PageContainer>
75
76
  </AppShellContentContainer>
76
77
  </AppTopbarAdjusterWrapper>
@@ -81,144 +82,175 @@ function MySystemRouteComponent() {
81
82
  ```
82
83
 
83
84
  Set `lifecycle` to an inactive state in the system node to hide or deny access by default. Use `AccessKeys.platformAdmin` with `AccessGuard` for platform-admin-only pages.
84
-
85
- ## 3. Add a Nested Page
86
-
87
- Create a layout file for the section and child route files under the same directory.
88
-
89
- ```tsx
90
- import { createFileRoute, Outlet } from '@tanstack/react-router'
91
- import { ProtectedRoute } from '@/features/auth'
92
-
93
- export const Route = createFileRoute('/reporting')({
94
- component: ReportingLayoutComponent
95
- })
96
-
97
- function ReportingLayoutComponent() {
98
- return (
99
- <ProtectedRoute>
100
- <Outlet />
101
- </ProtectedRoute>
102
- )
103
- }
104
- ```
105
-
106
- Add dotted system nodes for the sidebar hierarchy:
107
-
108
- ```ts
109
- { id: 'reporting', label: 'Reporting', enabled: true, uiPosition: 'sidebar-primary' },
110
- { id: 'reporting.overview', label: 'Overview', enabled: true, path: '/reporting/overview' },
111
- { id: 'reporting.reports', label: 'Reports', enabled: true, path: '/reporting/reports' }
112
- ```
113
-
114
- Containers omit `path`; leaves provide `path`.
115
-
116
- ## 4. Add a System-Scoped Component
117
-
118
- Use `ui/src/features/<name>/` when logic is shared across routes or owns local state.
119
-
120
- ```text
121
- ui/src/features/reporting/
122
- components/
123
- ReportingOverviewPage.tsx
124
- ReportCard.tsx
125
- hooks/
126
- useReports.ts
127
- utils/
128
- formatReportDate.ts
129
- types.ts
130
- ```
131
-
132
- Use `@/*` imports for app-local cross-system imports and keep route layout concerns in route files.
133
-
134
- ## 5. Change Theme Tokens
135
-
136
- Edit `ui/src/config/theme.ts`.
137
-
138
- ```ts
139
- default: {
140
- label: 'Default',
141
- description: 'Project brand theme',
142
- colors: ['#2563eb', '#080808', '#f2f2f5'],
143
- dark: {
144
- primary: '#2563eb',
145
- primaryContrast: '#ffffff',
146
- background: '#050507',
147
- surface: '#0f0f14',
148
- surfaceHover: '#1a1a22',
149
- text: '#ffffff',
150
- textDimmed: '#b0b0c0',
151
- textSubtle: '#888898',
152
- border: 'rgba(255, 255, 255, 0.07)'
153
- }
154
- }
155
- ```
156
-
157
- All tokens flow into CSS variables. Change `defaultPreset` to alter the initial preset for new users.
158
-
159
- ## 6. Execute a Resource from a Surface
160
-
161
- Declare the resource descriptor in the Organization Model, then derive runtime metadata from that descriptor:
162
-
163
- ```ts
164
- // core/config/organization-model.ts
165
- import { defineResources } from '@elevasis/core/organization-model'
166
-
167
- export const resourceDescriptors = defineResources({
168
- writeNote: {
169
- id: 'write-note',
170
- kind: 'workflow',
171
- systemPath: 'sys.sales',
172
- ownerRoleId: 'role-sales-ops',
173
- status: 'active',
174
- codeRefs: [
175
- {
176
- path: 'operations/src/write-note/index.ts',
177
- role: 'entrypoint',
178
- symbol: 'writeNoteWorkflow'
179
- }
180
- ]
181
- }
182
- })
183
-
184
- // operations/src/write-note/index.ts
185
- config: {
186
- resource: resourceDescriptors.writeNote,
187
- resourceId: resourceDescriptors.writeNote.id,
188
- name: 'Write Note',
189
- type: resourceDescriptors.writeNote.kind,
190
- version: '1.0.0',
191
- status: 'prod',
192
- category: 'production'
193
- }
194
- ```
195
-
196
- Render the deployed workflow with `RunResourceButton`:
197
-
198
- ```tsx
199
- import { RunResourceButton } from '@elevasis/ui/components'
200
- import { writeNoteInputSchema } from '@core/types'
201
-
202
- export function DealPanel({ dealId }: { dealId: string }) {
203
- return (
204
- <RunResourceButton
205
- resourceId="write-note"
206
- resourceType="workflow"
207
- label="Write Note"
208
- getInput={() => ({
209
- schema: writeNoteInputSchema,
210
- defaults: { dealId }
211
- })}
212
- />
213
- )
214
- }
215
- ```
216
-
217
- `resourceDescriptors.writeNote.id` is the single authored ID. `RunResourceButton` still receives the deployed runtime ID. `codeRefs` point agents and operators at implementation files, while `links[].nodeId` binds the resource into the Organization Model graph. `category` drives operational filtering for production, diagnostic, internal, and testing resources.
218
-
219
- ## Cross-References
220
-
221
- - `./feature-flags-and-gating.md` -- system and admin access model
222
- - `./feature-shell.mdx` -- provider and sidebar derivation
223
- - `./customization.md` -- system sidebar customization
224
- - `ui/src/config/README.md` -- theme, background, and loader config
85
+
86
+ ## 3. Add a Nested Page
87
+
88
+ Create a layout file for the section and child route files under the same directory.
89
+
90
+ ```tsx
91
+ import { createFileRoute, Outlet } from '@tanstack/react-router'
92
+ import { ProtectedRoute } from '@/features/auth'
93
+
94
+ export const Route = createFileRoute('/reporting')({
95
+ component: ReportingLayoutComponent
96
+ })
97
+
98
+ function ReportingLayoutComponent() {
99
+ return (
100
+ <ProtectedRoute>
101
+ <Outlet />
102
+ </ProtectedRoute>
103
+ )
104
+ }
105
+ ```
106
+
107
+ Add dotted system nodes for the sidebar hierarchy:
108
+
109
+ Nest child Systems under the parent's own `systems` record rather than flattening dotted ids into one map:
110
+
111
+ <!-- doc-snippet:skip: illustrative excerpt, not a standalone compilable file -->
112
+
113
+ ```ts
114
+ systems: {
115
+ reporting: {
116
+ id: 'reporting',
117
+ order: 60,
118
+ label: 'Reporting',
119
+ lifecycle: 'active',
120
+ systems: {
121
+ overview: {
122
+ id: 'reporting.overview',
123
+ order: 10,
124
+ label: 'Overview',
125
+ lifecycle: 'active',
126
+ parentSystemId: 'reporting',
127
+ ui: { path: '/reporting/overview' }
128
+ },
129
+ reports: {
130
+ id: 'reporting.reports',
131
+ order: 20,
132
+ label: 'Reports',
133
+ lifecycle: 'active',
134
+ parentSystemId: 'reporting',
135
+ ui: { path: '/reporting/reports' }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ ```
141
+
142
+ Containers omit `ui.path`; leaves provide it.
143
+
144
+ ## 4. Add a System-Scoped Component
145
+
146
+ Use `ui/src/features/<name>/` when logic is shared across routes or owns local state.
147
+
148
+ ```text
149
+ ui/src/features/reporting/
150
+ components/
151
+ ReportingOverviewPage.tsx
152
+ ReportCard.tsx
153
+ hooks/
154
+ useReports.ts
155
+ utils/
156
+ formatReportDate.ts
157
+ types.ts
158
+ ```
159
+
160
+ Use `@/*` imports for app-local cross-system imports and keep route layout concerns in route files.
161
+
162
+ ## 5. Change Theme Tokens
163
+
164
+ Edit `ui/src/config/theme.ts`.
165
+
166
+ <!-- doc-snippet:skip: illustrative excerpt, not a standalone compilable file -->
167
+
168
+ ```ts
169
+ default: {
170
+ label: 'Default',
171
+ description: 'Project brand theme',
172
+ colors: ['#2563eb', '#080808', '#f2f2f5'],
173
+ dark: {
174
+ primary: '#2563eb',
175
+ primaryContrast: '#ffffff',
176
+ background: '#050507',
177
+ surface: '#0f0f14',
178
+ surfaceHover: '#1a1a22',
179
+ text: '#ffffff',
180
+ textDimmed: '#b0b0c0',
181
+ textSubtle: '#888898',
182
+ border: 'rgba(255, 255, 255, 0.07)'
183
+ }
184
+ }
185
+ ```
186
+
187
+ All tokens flow into CSS variables. Change `defaultPreset` to alter the initial preset for new users.
188
+
189
+ ## 6. Execute a Resource from a Surface
190
+
191
+ Declare the resource descriptor in the Organization Model, then derive runtime metadata from that descriptor:
192
+
193
+ <!-- doc-snippet:skip: illustrative excerpt, not a standalone compilable file -->
194
+
195
+ ```ts
196
+ // core/config/organization-model.ts
197
+ import { defineResources } from '@elevasis/core/organization-model'
198
+
199
+ export const resourceDescriptors = defineResources({
200
+ writeNote: {
201
+ id: 'write-note',
202
+ kind: 'workflow',
203
+ systemPath: 'sales',
204
+ ownerRoleId: 'role-sales-ops',
205
+ status: 'active',
206
+ codeRefs: [
207
+ {
208
+ path: 'operations/src/write-note/index.ts',
209
+ role: 'entrypoint',
210
+ symbol: 'writeNoteWorkflow'
211
+ }
212
+ ]
213
+ }
214
+ })
215
+
216
+ // operations/src/write-note/index.ts
217
+ config: {
218
+ resource: resourceDescriptors.writeNote,
219
+ resourceId: resourceDescriptors.writeNote.id,
220
+ name: 'Write Note',
221
+ type: resourceDescriptors.writeNote.kind,
222
+ version: '1.0.0',
223
+ status: 'prod',
224
+ category: 'production'
225
+ }
226
+ ```
227
+
228
+ Render the deployed workflow with `RunResourceButton`:
229
+
230
+ ```tsx
231
+ import { RunResourceButton } from '@elevasis/ui/components'
232
+ import { writeNoteInputSchema } from '@core/types'
233
+
234
+ export function DealPanel({ dealId }: { dealId: string }) {
235
+ return (
236
+ <RunResourceButton
237
+ resourceId="write-note"
238
+ resourceType="workflow"
239
+ label="Write Note"
240
+ getInput={() => ({
241
+ schema: writeNoteInputSchema,
242
+ defaults: { dealId }
243
+ })}
244
+ />
245
+ )
246
+ }
247
+ ```
248
+
249
+ `resourceDescriptors.writeNote.id` is the single authored ID. `RunResourceButton` still receives the deployed runtime ID. `codeRefs` on the OM `ResourceEntry` point agents and operators at implementation files. `config.resourceId` / `type` / `category` above are runtime deployment-registry fields, not part of the OM `ResourceEntry` schema -- `links[].nodeId` and `category` are runtime filter overlays for Command Center faceted filtering, not OM resource identity. The canonical OM attachment is `resource.systemPath`.
250
+
251
+ ## Cross-References
252
+
253
+ - `./feature-flags-and-gating.md` -- system and admin access model
254
+ - `./feature-shell.mdx` -- provider and sidebar derivation
255
+ - `./customization.md` -- system sidebar customization
256
+ - `ui/src/config/README.md` -- theme, background, and loader config