@elevasis/sdk 1.44.2 → 1.45.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 (245) hide show
  1. package/dist/cli.cjs +1001 -652
  2. package/dist/index.d.ts +1045 -509
  3. package/dist/index.js +748 -690
  4. package/dist/node/index.d.ts +105 -97
  5. package/dist/test-utils/index.d.ts +42 -28
  6. package/dist/test-utils/index.js +549 -732
  7. package/dist/worker/index.d.ts +12112 -0
  8. package/dist/worker/index.js +211 -186
  9. package/package.json +6 -9
  10. package/reference/_navigation.md +151 -21
  11. package/reference/_reference-manifest.json +186 -4
  12. package/reference/claude-config.md +8 -0
  13. package/reference/core/index.mdx +3 -3
  14. package/reference/examples/organization-model.ts +117 -111
  15. package/reference/index.mdx +4 -4
  16. package/reference/rules/active-change-index.md +40 -54
  17. package/reference/rules/agent-runtime.md +81 -0
  18. package/reference/rules/agent-start-here.md +71 -163
  19. package/reference/rules/deployment.md +33 -10
  20. package/reference/rules/error-handling.md +26 -0
  21. package/reference/rules/execution.md +13 -0
  22. package/reference/rules/frontend.md +10 -3
  23. package/reference/rules/observability.md +9 -1
  24. package/reference/rules/operations.md +26 -17
  25. package/reference/rules/organization-model.md +74 -88
  26. package/reference/rules/organization-os.md +71 -88
  27. package/reference/rules/package-taxonomy.md +11 -2
  28. package/reference/rules/platform.md +13 -7
  29. package/reference/rules/shared-types.md +15 -0
  30. package/reference/rules/task-tracking.md +30 -5
  31. package/reference/rules/ui.md +145 -3
  32. package/reference/rules/vibe-intents.md +271 -0
  33. package/reference/rules/vibe.md +17 -243
  34. package/reference/scaffold/core/organization-graph.mdx +111 -97
  35. package/reference/scaffold/core/organization-model.mdx +234 -214
  36. package/reference/scaffold/operations/propagation-pipeline.md +1 -1
  37. package/reference/scaffold/operations/scaffold-maintenance.md +19 -18
  38. package/reference/scaffold/operations/workflow-recipes.md +71 -19
  39. package/reference/scaffold/recipes/add-a-feature.md +156 -146
  40. package/reference/scaffold/recipes/add-a-resource.md +123 -117
  41. package/reference/scaffold/recipes/customize-crm-actions.md +25 -10
  42. package/reference/scaffold/recipes/customize-knowledge-browser.md +52 -117
  43. package/reference/scaffold/recipes/customize-organization-model.md +161 -149
  44. package/reference/scaffold/recipes/extend-a-base-entity.md +156 -140
  45. package/reference/scaffold/recipes/extend-crm.md +16 -11
  46. package/reference/scaffold/recipes/extend-lead-gen.md +25 -7
  47. package/reference/scaffold/recipes/gate-by-feature-or-admin.md +160 -118
  48. package/reference/scaffold/recipes/index.md +2 -2
  49. package/reference/scaffold/recipes/query-the-knowledge-graph.md +23 -23
  50. package/reference/scaffold/reference/contracts.md +12 -1
  51. package/reference/scaffold/reference/glossary.md +3 -3
  52. package/reference/scaffold/reference/system-interface-capabilities.md +5 -4
  53. package/reference/scaffold/ui/composition-extensibility.mdx +271 -232
  54. package/reference/scaffold/ui/feature-flags-and-gating.md +14 -6
  55. package/reference/scaffold/ui/feature-shell.mdx +279 -62
  56. package/reference/scaffold/ui/recipes.md +229 -197
  57. package/reference/sdk/cli-management.mdx +77 -29
  58. package/reference/sdk/concepts.mdx +2 -0
  59. package/reference/sdk/define-builders.mdx +76 -0
  60. package/reference/sdk/deployment/command-center.mdx +6 -2
  61. package/reference/sdk/deployment/execution-reference.mdx +64 -186
  62. package/reference/sdk/deployment/index.mdx +2 -0
  63. package/reference/sdk/exports.mdx +4 -4
  64. package/reference/sdk/framework/agent.mdx +49 -119
  65. package/reference/sdk/framework/index.mdx +46 -65
  66. package/reference/sdk/framework/project-structure.mdx +150 -205
  67. package/reference/sdk/framework/tutorial-system.mdx +2 -2
  68. package/reference/sdk/human-in-the-loop.mdx +152 -0
  69. package/reference/sdk/index.mdx +6 -7
  70. package/reference/sdk/platform-tools/index.mdx +12 -0
  71. package/reference/sdk/platform-tools/type-safety.mdx +4 -0
  72. package/reference/sdk/project-deployment-spec.mdx +131 -0
  73. package/reference/sdk/resources/index.mdx +23 -7
  74. package/reference/sdk/resources/patterns.mdx +54 -24
  75. package/reference/sdk/resources/types.mdx +7 -4
  76. package/reference/sdk/templates/data-enrichment.mdx +7 -3
  77. package/reference/sdk/templates/email-sender.mdx +139 -135
  78. package/reference/sdk/templates/lead-scorer.mdx +5 -1
  79. package/reference/sdk/templates/pdf-generator.mdx +155 -151
  80. package/reference/sdk/templates/recurring-job.mdx +195 -189
  81. package/reference/sdk/templates/text-classifier.mdx +4 -0
  82. package/reference/sdk/templates/web-scraper.mdx +139 -135
  83. package/reference/spine/spine-primer.md +135 -96
  84. package/reference/ui/index.mdx +14 -7
  85. package/dist/types/worker/adapters/anymailfinder.d.ts +0 -14
  86. package/dist/types/worker/adapters/apify.d.ts +0 -14
  87. package/dist/types/worker/adapters/approval.d.ts +0 -23
  88. package/dist/types/worker/adapters/attio.d.ts +0 -22
  89. package/dist/types/worker/adapters/clickup.d.ts +0 -22
  90. package/dist/types/worker/adapters/create-adapter.d.ts +0 -41
  91. package/dist/types/worker/adapters/crm.d.ts +0 -20
  92. package/dist/types/worker/adapters/dropbox.d.ts +0 -14
  93. package/dist/types/worker/adapters/email.d.ts +0 -25
  94. package/dist/types/worker/adapters/execution.d.ts +0 -22
  95. package/dist/types/worker/adapters/gmail.d.ts +0 -14
  96. package/dist/types/worker/adapters/google-sheets.d.ts +0 -14
  97. package/dist/types/worker/adapters/index.d.ts +0 -33
  98. package/dist/types/worker/adapters/instantly.d.ts +0 -14
  99. package/dist/types/worker/adapters/lead.d.ts +0 -28
  100. package/dist/types/worker/adapters/list.d.ts +0 -9
  101. package/dist/types/worker/adapters/llm.d.ts +0 -45
  102. package/dist/types/worker/adapters/millionverifier.d.ts +0 -14
  103. package/dist/types/worker/adapters/notification.d.ts +0 -28
  104. package/dist/types/worker/adapters/pdf.d.ts +0 -22
  105. package/dist/types/worker/adapters/projects.d.ts +0 -20
  106. package/dist/types/worker/adapters/resend.d.ts +0 -14
  107. package/dist/types/worker/adapters/scheduler.d.ts +0 -25
  108. package/dist/types/worker/adapters/signature-api.d.ts +0 -14
  109. package/dist/types/worker/adapters/storage.d.ts +0 -33
  110. package/dist/types/worker/adapters/stripe.d.ts +0 -14
  111. package/dist/types/worker/adapters/tomba.d.ts +0 -14
  112. package/dist/types/worker/index.d.ts +0 -60
  113. package/dist/types/worker/platform.d.ts +0 -90
  114. package/dist/types/worker/utils.d.ts +0 -9
  115. package/reference/claude-config/Overview.md +0 -230
  116. package/reference/claude-config/hooks/post-edit-validate.mjs +0 -98
  117. package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +0 -187
  118. package/reference/claude-config/hooks/tool-failure-recovery.mjs +0 -73
  119. package/reference/claude-config/registries/graph-skills.json +0 -4
  120. package/reference/claude-config/registries/knowledge-flags.json +0 -154
  121. package/reference/claude-config/registries/skill-coverage.json +0 -20
  122. package/reference/claude-config/rules/active-change-index.md +0 -22
  123. package/reference/claude-config/rules/agent-start-here.md +0 -22
  124. package/reference/claude-config/rules/deployment.md +0 -22
  125. package/reference/claude-config/rules/error-handling.md +0 -22
  126. package/reference/claude-config/rules/execution.md +0 -22
  127. package/reference/claude-config/rules/frontend.md +0 -22
  128. package/reference/claude-config/rules/observability.md +0 -22
  129. package/reference/claude-config/rules/operations.md +0 -22
  130. package/reference/claude-config/rules/organization-model.md +0 -22
  131. package/reference/claude-config/rules/organization-os.md +0 -22
  132. package/reference/claude-config/rules/package-taxonomy.md +0 -22
  133. package/reference/claude-config/rules/platform.md +0 -22
  134. package/reference/claude-config/rules/shared-types.md +0 -22
  135. package/reference/claude-config/rules/task-tracking.md +0 -22
  136. package/reference/claude-config/rules/topbar-actions.md +0 -70
  137. package/reference/claude-config/rules/ui.md +0 -22
  138. package/reference/claude-config/rules/vibe.md +0 -22
  139. package/reference/claude-config/scripts/statusline-command.js +0 -18
  140. package/reference/claude-config/settings.json +0 -30
  141. package/reference/claude-config/skills/client/SKILL.md +0 -201
  142. package/reference/claude-config/skills/deploy/SKILL.md +0 -159
  143. package/reference/claude-config/skills/dsp/SKILL.md +0 -66
  144. package/reference/claude-config/skills/elevasis/SKILL.md +0 -251
  145. package/reference/claude-config/skills/explore/SKILL.md +0 -78
  146. package/reference/claude-config/skills/git-sync/SKILL.md +0 -166
  147. package/reference/claude-config/skills/om/SKILL.md +0 -475
  148. package/reference/claude-config/skills/om/operations/build.md +0 -237
  149. package/reference/claude-config/skills/om/operations/codify-level-a.md +0 -109
  150. package/reference/claude-config/skills/om/operations/codify-level-b.md +0 -159
  151. package/reference/claude-config/skills/om/operations/customers.md +0 -114
  152. package/reference/claude-config/skills/om/operations/features.md +0 -88
  153. package/reference/claude-config/skills/om/operations/goals.md +0 -123
  154. package/reference/claude-config/skills/om/operations/identity.md +0 -97
  155. package/reference/claude-config/skills/om/operations/labels.md +0 -110
  156. package/reference/claude-config/skills/om/operations/offerings.md +0 -114
  157. package/reference/claude-config/skills/om/operations/roles.md +0 -104
  158. package/reference/claude-config/skills/om/operations/scaffold.md +0 -163
  159. package/reference/claude-config/skills/om/operations/techStack.md +0 -38
  160. package/reference/claude-config/skills/project/SKILL.md +0 -1114
  161. package/reference/claude-config/skills/run-ui/SKILL.md +0 -73
  162. package/reference/claude-config/skills/save/SKILL.md +0 -183
  163. package/reference/claude-config/skills/setup/SKILL.md +0 -290
  164. package/reference/claude-config/skills/status/SKILL.md +0 -59
  165. package/reference/claude-config/skills/submit-request/SKILL.md +0 -180
  166. package/reference/claude-config/skills/sync/SKILL.md +0 -47
  167. package/reference/claude-config/skills/tutorial/SKILL.md +0 -259
  168. package/reference/claude-config/skills/tutorial/progress-template.md +0 -74
  169. package/reference/claude-config/skills/tutorial/technical.md +0 -1303
  170. package/reference/claude-config/skills/tutorial/vibe-coder.md +0 -890
  171. package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +0 -27
  172. package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +0 -30
  173. package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +0 -73
  174. package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +0 -86
  175. package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +0 -55
  176. package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +0 -97
  177. package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +0 -112
  178. package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +0 -93
  179. package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +0 -58
  180. package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +0 -56
  181. package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +0 -71
  182. package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +0 -83
  183. package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +0 -59
  184. package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +0 -42
  185. package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +0 -60
  186. package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +0 -37
  187. package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +0 -34
  188. package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +0 -38
  189. package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +0 -32
  190. package/reference/claude-config/sync-notes/2026-05-09-command-system.md +0 -33
  191. package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +0 -69
  192. package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +0 -30
  193. package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +0 -45
  194. package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +0 -52
  195. package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +0 -33
  196. package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +0 -32
  197. package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +0 -43
  198. package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +0 -40
  199. package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +0 -61
  200. package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +0 -49
  201. package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +0 -31
  202. package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +0 -42
  203. package/reference/claude-config/sync-notes/2026-05-23-om-full-model-deploy-contract.md +0 -33
  204. package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +0 -37
  205. package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +0 -28
  206. package/reference/claude-config/sync-notes/2026-05-24-system-interface-readiness.md +0 -43
  207. package/reference/claude-config/sync-notes/2026-05-25-invitation-login-loader.md +0 -26
  208. package/reference/claude-config/sync-notes/2026-05-25-om-topbar-requests.md +0 -33
  209. package/reference/claude-config/sync-notes/2026-05-25-system-interface-profile-registry-and-substrate.md +0 -35
  210. package/reference/claude-config/sync-notes/2026-05-25-tenant-om-scaffold-cli.md +0 -49
  211. package/reference/claude-config/sync-notes/2026-05-25-vibe-operate-intent.md +0 -47
  212. package/reference/claude-config/sync-notes/2026-05-28-om-snapshot-sdk-workflow-config.md +0 -33
  213. package/reference/claude-config/sync-notes/2026-05-30-client-source-and-om-profiles.md +0 -39
  214. package/reference/claude-config/sync-notes/2026-06-02-knowledge-nested-group-routing.md +0 -27
  215. package/reference/claude-config/sync-notes/2026-06-02-nest-projects-under-platform.md +0 -45
  216. package/reference/claude-config/sync-notes/2026-06-03-skill-autogen-and-client-skill.md +0 -34
  217. package/reference/claude-config/sync-notes/2026-06-04-scaffold-registry-lane-severity.md +0 -34
  218. package/reference/claude-config/sync-notes/2026-06-05-appearance-app-mode-decouple.md +0 -29
  219. package/reference/claude-config/sync-notes/2026-06-05-ontology-endpoint-rename-and-knowledge-browser-ui.md +0 -86
  220. package/reference/claude-config/sync-notes/2026-06-06-om-build-systems-scaffold.md +0 -47
  221. package/reference/claude-config/sync-notes/2026-06-06-om-item-copy-references.md +0 -50
  222. package/reference/claude-config/sync-notes/2026-06-08-knowledge-base-page-not-found-fix.md +0 -76
  223. package/reference/claude-config/sync-notes/2026-06-09-agent-sessions-public-agent-chat-route.md +0 -75
  224. package/reference/claude-config/sync-notes/2026-06-09-sdk-cli-load-org-model-resolution.md +0 -42
  225. package/reference/claude-config/sync-notes/2026-06-12-agent-grants-visualizer-operations.md +0 -30
  226. package/reference/claude-config/sync-notes/2026-06-14-session-ux-and-project-cli-json.md +0 -33
  227. package/reference/claude-config/sync-notes/2026-06-14-shared-session-conversation-view.md +0 -26
  228. package/reference/claude-config/sync-notes/2026-06-15-session-chat-zero-wiring.md +0 -46
  229. package/reference/claude-config/sync-notes/2026-06-17-agent-session-ux-features.md +0 -34
  230. package/reference/claude-config/sync-notes/2026-06-25-shared-page-scroll-contract-guard.md +0 -52
  231. package/reference/claude-config/sync-notes/2026-06-26-leadgen-overview-om-telemetry.md +0 -47
  232. package/reference/claude-config/sync-notes/2026-07-21-agent-scaffold-hardening.md +0 -75
  233. package/reference/claude-config/sync-notes/2026-07-23-agent-session-memory.md +0 -49
  234. package/reference/claude-config/sync-notes/2026-07-23-workos-org-marker.md +0 -50
  235. package/reference/claude-config/sync-notes/2026-07-24-claude-5-models-and-session-surface-fixes.md +0 -116
  236. package/reference/claude-config/sync-notes/2026-07-27-agent-strict-output-and-turn-drift.md +0 -73
  237. package/reference/claude-config/sync-notes/2026-07-28-agent-reply-is-its-own-field.md +0 -84
  238. package/reference/claude-config/sync-notes/2026-07-30-login-screen-and-member-provisioning-state.md +0 -114
  239. package/reference/claude-config/sync-notes/2026-08-02-auth-guard-defaults-and-truncation-fix.md +0 -122
  240. package/reference/claude-config/sync-notes/2026-08-03-cli-gateway-errors-and-request-timeout.md +0 -120
  241. package/reference/claude-config/sync-notes/README.md +0 -43
  242. package/reference/sdk/framework/interaction-guidance.mdx +0 -182
  243. package/reference/sdk/framework/memory.mdx +0 -326
  244. package/reference/sdk/framework/resource-documentation.mdx +0 -90
  245. package/reference/sdk/roadmap.mdx +0 -164
@@ -4,7 +4,13 @@
4
4
  // Pure reference file -- NOT imported anywhere.
5
5
  // Copy individual examples into core/config/organization-model.ts or resource definitions as needed.
6
6
 
7
- import { defineOrganizationModel, defineResources } from '@elevasis/core/organization-model'
7
+ import {
8
+ defineOrganizationModel,
9
+ defineResources,
10
+ defineTopology,
11
+ topologyRef,
12
+ topologyRelationship
13
+ } from '@elevasis/core/organization-model'
8
14
 
9
15
  // ---------------------------------------------------------------------------
10
16
  // Identity and branding override
@@ -206,36 +212,36 @@ export const identityExample = defineOrganizationModel({
206
212
  // Customers and offerings
207
213
  // ---------------------------------------------------------------------------
208
214
  export const customersAndOfferingsExample = defineOrganizationModel({
215
+ // Both domains are id-keyed records, not arrays. The map key must equal the entry's `id`,
216
+ // and `order` is required on every entry.
209
217
  customers: {
210
- segments: [
211
- {
212
- id: 'segment-smb-agencies',
213
- name: 'SMB Marketing Agencies',
214
- description: 'Growth-oriented digital agencies with 5-50 staff.',
215
- jobsToBeDone: 'Run more client campaigns without growing headcount.',
216
- pains: ['Manual data entry', 'Slow lead qualification'],
217
- gains: ['Automated pipelines', 'Structured human review'],
218
- firmographics: {
219
- industry: 'Marketing / Digital Agency',
220
- companySize: '5-50',
221
- region: 'North America'
222
- },
223
- valueProp: 'Automate agency operations so the team focuses on strategy and clients.'
224
- }
225
- ]
218
+ 'segment-smb-agencies': {
219
+ id: 'segment-smb-agencies',
220
+ order: 10,
221
+ name: 'SMB Marketing Agencies',
222
+ description: 'Growth-oriented digital agencies with 5-50 staff.',
223
+ jobsToBeDone: 'Run more client campaigns without growing headcount.',
224
+ pains: ['Manual data entry', 'Slow lead qualification'],
225
+ gains: ['Automated pipelines', 'Structured human review'],
226
+ firmographics: {
227
+ industry: 'Marketing / Digital Agency',
228
+ companySize: '5-50',
229
+ region: 'North America'
230
+ },
231
+ valueProp: 'Automate agency operations so the team focuses on strategy and clients.'
232
+ }
226
233
  },
227
234
  offerings: {
228
- products: [
229
- {
230
- id: 'product-starter',
231
- name: 'Starter Automation Pack',
232
- description: 'Workflow bundle for lead enrichment, CRM follow-up, and project delivery automation.',
233
- pricingModel: 'subscription',
234
- price: 299,
235
- currency: 'USD',
236
- targetSegmentIds: ['segment-smb-agencies']
237
- }
238
- ]
235
+ 'product-starter': {
236
+ id: 'product-starter',
237
+ order: 10,
238
+ name: 'Starter Automation Pack',
239
+ description: 'Workflow bundle for lead enrichment, CRM follow-up, and project delivery automation.',
240
+ pricingModel: 'subscription',
241
+ price: 299,
242
+ currency: 'USD',
243
+ targetSegmentIds: ['segment-smb-agencies']
244
+ }
239
245
  }
240
246
  })
241
247
 
@@ -245,6 +251,7 @@ export const customersAndOfferingsExample = defineOrganizationModel({
245
251
  export const workflowResourceDescriptorsExample = defineResources({
246
252
  leadEnrichment: {
247
253
  id: 'lead-enrichment-workflow',
254
+ order: 10,
248
255
  title: 'Lead Enrichment',
249
256
  description: 'Enriches lead records and writes qualified opportunities into CRM.',
250
257
  kind: 'workflow',
@@ -286,67 +293,66 @@ export const compatibilityGraphLinksExample = {
286
293
  ]
287
294
  }
288
295
 
296
+ // `topology.relationships` is an id-keyed record, and each relationship uses `from`/`to`.
297
+ // Author it through `defineTopology` so the refs are compiled and validated for you.
289
298
  export const topologyRelationshipsExample = defineOrganizationModel({
290
- topology: {
291
- relationships: [
292
- {
293
- source: { kind: 'trigger', id: 'daily-lead-enrichment' },
294
- target: { kind: 'resource', id: workflowResourceDescriptorsExample.leadEnrichment.id },
295
- kind: 'triggers'
296
- },
297
- {
298
- source: { kind: 'resource', id: workflowResourceDescriptorsExample.leadEnrichment.id },
299
- target: { kind: 'externalResource', id: 'apollo' },
300
- kind: 'uses'
301
- },
302
- {
303
- source: { kind: 'resource', id: workflowResourceDescriptorsExample.leadEnrichment.id },
304
- target: { kind: 'role', id: 'role-ops-lead' },
305
- kind: 'approval'
306
- }
307
- ]
308
- }
299
+ topology: defineTopology({
300
+ dailyEnrichmentTrigger: topologyRelationship.triggers(
301
+ topologyRef.trigger('daily-lead-enrichment'),
302
+ topologyRef.resource(workflowResourceDescriptorsExample.leadEnrichment.id)
303
+ ),
304
+ enrichmentUsesApollo: topologyRelationship.uses(
305
+ topologyRef.resource(workflowResourceDescriptorsExample.leadEnrichment.id),
306
+ topologyRef.externalResource('apollo')
307
+ ),
308
+ enrichmentApprovedByOpsLead: topologyRelationship.approval(
309
+ topologyRef.resource(workflowResourceDescriptorsExample.leadEnrichment.id),
310
+ topologyRef.role('role-ops-lead')
311
+ )
312
+ })
309
313
  })
310
314
 
311
315
  // ---------------------------------------------------------------------------
312
316
  // Roles and goals
313
317
  // ---------------------------------------------------------------------------
314
318
  export const rolesAndGoalsExample = defineOrganizationModel({
319
+ // Both domains are id-keyed records with a required `order`.
320
+ // `heldBy` is a discriminated union on `kind`, not a display name.
315
321
  roles: {
316
- roles: [
317
- {
318
- id: 'role-ceo',
319
- title: 'CEO',
320
- responsibilities: ['Set company direction', 'Approve strategic initiatives'],
321
- heldBy: 'Alex Johnson'
322
- },
323
- {
324
- id: 'role-head-of-ops',
325
- title: 'Head of Operations',
326
- responsibilities: ['Manage workflow deployments', 'Review human-in-the-loop queue'],
327
- reportsToId: 'role-ceo',
328
- heldBy: 'Jordan Lee'
329
- }
330
- ]
322
+ 'role-ceo': {
323
+ id: 'role-ceo',
324
+ order: 10,
325
+ title: 'CEO',
326
+ responsibilities: ['Set company direction', 'Approve strategic initiatives'],
327
+ heldBy: { kind: 'human', userId: 'user-alex-johnson' }
328
+ },
329
+ 'role-head-of-ops': {
330
+ id: 'role-head-of-ops',
331
+ order: 20,
332
+ title: 'Head of Operations',
333
+ responsibilities: ['Manage workflow deployments', 'Review human-in-the-loop queue'],
334
+ reportsToId: 'role-ceo',
335
+ heldBy: { kind: 'human', userId: 'user-jordan-lee' }
336
+ }
331
337
  },
332
338
  goals: {
333
- objectives: [
334
- {
335
- id: 'goal-grow-arr-q2-2026',
336
- description: 'Grow monthly recurring revenue by end of Q2 2026.',
337
- periodStart: '2026-04-01',
338
- periodEnd: '2026-06-30',
339
- keyResults: [
340
- {
341
- id: 'kr-mrr-10k',
342
- description: 'Reach $10K MRR',
343
- targetMetric: 'Monthly recurring revenue',
344
- currentValue: 2800,
345
- targetValue: 10000
346
- }
347
- ]
348
- }
349
- ]
339
+ 'goal-grow-arr-q2-2026': {
340
+ id: 'goal-grow-arr-q2-2026',
341
+ order: 10,
342
+ description: 'Grow monthly recurring revenue by end of Q2 2026.',
343
+ periodStart: '2026-04-01',
344
+ periodEnd: '2026-06-30',
345
+ // `keyResults` genuinely is an array — it is nested inside the entry, not a domain map.
346
+ keyResults: [
347
+ {
348
+ id: 'kr-mrr-10k',
349
+ description: 'Reach $10K MRR',
350
+ targetMetric: 'Monthly recurring revenue',
351
+ currentValue: 2800,
352
+ targetValue: 10000
353
+ }
354
+ ]
355
+ }
350
356
  }
351
357
  })
352
358
 
@@ -354,38 +360,38 @@ export const rolesAndGoalsExample = defineOrganizationModel({
354
360
  // Knowledge nodes
355
361
  // ---------------------------------------------------------------------------
356
362
  export const knowledgeExample = defineOrganizationModel({
363
+ // `knowledge` is a flat id-keyed record. The old `{ version, lastModified, nodes[] }`
364
+ // wrapper was removed in the Phase 4 cut.
357
365
  knowledge: {
358
- nodes: [
359
- {
360
- id: 'knowledge.example-outreach-playbook',
361
- kind: 'playbook',
362
- title: 'Example Outreach Playbook',
363
- summary: 'Step-by-step runbook for launching a cold outreach campaign.',
364
- body: '## Overview\n\nThis playbook walks through prospect sourcing, message templates, scheduling, and reply triage.\n\n## Steps\n\n1. Source prospects from the lead-gen list.\n2. Personalize the cold email template.\n3. Schedule the sending campaign.\n4. Triage replies in the CRM.',
365
- links: [{ nodeId: 'system:sales.crm' }, { nodeId: 'system:sales.lead-gen' }],
366
- ownerIds: [],
367
- updatedAt: '2026-05-01'
368
- },
369
- {
370
- id: 'knowledge.example-icp-strategy',
371
- kind: 'strategy',
372
- title: 'Example ICP Strategy',
373
- summary: 'Describes the ideal customer profile and qualification thresholds.',
374
- body: '## ICP Profile\n\n- **Industry:** SMB marketing agencies\n- **Size:** 5-50 employees\n- **Region:** North America\n\nProspects scoring \\<60 are excluded from outreach.',
375
- links: [{ nodeId: 'system:sales' }],
376
- ownerIds: [],
377
- updatedAt: '2026-05-01'
378
- },
379
- {
380
- id: 'knowledge.example-org-model-reference',
381
- kind: 'reference',
382
- title: 'Example Organization Model Reference',
383
- summary: 'Glossary of OM domains and how they relate to systems and resources.',
384
- body: '## Domains\n\nThe organization model separates semantic contracts in ontology, system-local settings in config, executable governance in resources, and explanatory material in knowledge. Secrets and runtime state stay outside the Organization Model.',
385
- links: [],
386
- ownerIds: [],
387
- updatedAt: '2026-05-01'
388
- }
389
- ]
366
+ 'knowledge.example-outreach-playbook': {
367
+ id: 'knowledge.example-outreach-playbook',
368
+ kind: 'playbook',
369
+ title: 'Example Outreach Playbook',
370
+ summary: 'Step-by-step runbook for launching a cold outreach campaign.',
371
+ body: '## Overview\n\nThis playbook walks through prospect sourcing, message templates, scheduling, and reply triage.\n\n## Steps\n\n1. Source prospects from the lead-gen list.\n2. Personalize the cold email template.\n3. Schedule the sending campaign.\n4. Triage replies in the CRM.',
372
+ links: [{ nodeId: 'system:sales.crm' }, { nodeId: 'system:sales.lead-gen' }],
373
+ ownerIds: [],
374
+ updatedAt: '2026-05-01'
375
+ },
376
+ 'knowledge.example-icp-strategy': {
377
+ id: 'knowledge.example-icp-strategy',
378
+ kind: 'strategy',
379
+ title: 'Example ICP Strategy',
380
+ summary: 'Describes the ideal customer profile and qualification thresholds.',
381
+ body: '## ICP Profile\n\n- **Industry:** SMB marketing agencies\n- **Size:** 5-50 employees\n- **Region:** North America\n\nProspects scoring \\<60 are excluded from outreach.',
382
+ links: [{ nodeId: 'system:sales' }],
383
+ ownerIds: [],
384
+ updatedAt: '2026-05-01'
385
+ },
386
+ 'knowledge.example-org-model-reference': {
387
+ id: 'knowledge.example-org-model-reference',
388
+ kind: 'reference',
389
+ title: 'Example Organization Model Reference',
390
+ summary: 'Glossary of OM domains and how they relate to systems and resources.',
391
+ body: '## Domains\n\nThe organization model separates semantic contracts in ontology, system-local settings in config, executable governance in resources, and explanatory material in knowledge. Secrets and runtime state stay outside the Organization Model.',
392
+ links: [],
393
+ ownerIds: [],
394
+ updatedAt: '2026-05-01'
395
+ }
390
396
  }
391
397
  })
@@ -31,7 +31,7 @@ You do not need all three packages. A pure automation project needs only `@eleva
31
31
 
32
32
  ## Packages
33
33
 
34
- ### @elevasis/sdk (v1.30.2)
34
+ ### @elevasis/sdk (v1.45.0)
35
35
 
36
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.
37
37
 
@@ -41,7 +41,7 @@ The primary developer package. Provides the TypeScript API for defining workflow
41
41
 
42
42
  See [@elevasis/sdk](sdk/index.mdx) for the full group overview, getting started guide, CLI reference, adapter catalog, and more.
43
43
 
44
- ### @elevasis/core (v0.39.0)
44
+ ### @elevasis/core (v0.60.0)
45
45
 
46
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.
47
47
 
@@ -51,9 +51,9 @@ The shared contract layer. Exports Zod schemas and TypeScript types that are sha
51
51
 
52
52
  See [@elevasis/core](core/index.mdx) for subpath details, browser/server split, and when to use it.
53
53
 
54
- ### @elevasis/ui (v2.42.0)
54
+ ### @elevasis/ui (v2.68.0)
55
55
 
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.
56
+ The shared React feature-shell. Provides `ElevasisCoreProvider` / `ElevasisSystemsProvider` and manifest-backed feature modules that a host UI embeds. Many peer dependencies are optional -- pull only what the features you use require.
57
57
 
58
58
  **Install:** `pnpm add @elevasis/ui`
59
59
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Bridge between stable scaffold docs and higher-volatility in-progress architecture work that may override assumptions for agents working in the template
2
+ description: Which bundled references to load for platform areas under active change, and how to resolve drift between the bundled snapshot and live platform behavior
3
3
  ---
4
4
  <!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
5
5
  <!-- Regenerate: pnpm scaffold:sync -->
@@ -7,77 +7,63 @@ description: Bridge between stable scaffold docs and higher-volatility in-progre
7
7
 
8
8
  # Active Change Index
9
9
 
10
- Use this rule to decide whether stable scaffold docs are enough, or whether you also need to load in-progress platform architecture docs from the monorepo.
10
+ The reference bundle at `operations/node_modules/@elevasis/sdk/reference/` is a snapshot pinned to your installed `@elevasis/sdk` version. It does not move when the platform does. For the areas below -- the ones under active change -- read the bundled doc as the best written source, but let observed platform behavior and project source win when they disagree, and flag the drift instead of silently trusting prose.
11
11
 
12
- > **Note:** Paths prefixed with `apps/` or `packages/` are monorepo-internal and unavailable in standalone projects. For those areas, use the stable scaffold docs under `operations/node_modules/@elevasis/sdk/reference/scaffold/` as the primary reference. The monorepo paths are retained for contributors working within the monorepo.
12
+ Only two locations are readable from this project: your own tree (`ui/`, `core/`, `operations/`) and the installed bundle above. Paths quoted in older docs that begin with a monorepo-internal prefix (`packages`, `apps`, `scripts`) will not resolve here.
13
13
 
14
- ## Current Watch Areas
14
+ ## Watch Areas
15
15
 
16
- ### Organization OS
16
+ ### Organization Model, Systems, and UI Composition
17
17
 
18
- Use when the task touches:
18
+ Load when the task touches org-model semantics, System readiness, feature or provider runtime, feature manifests, shell composition, or graph and command-view concepts:
19
19
 
20
- - organization model semantics
21
- - feature/provider runtime
22
- - feature manifests or shell composition
23
- - graph or command-view concepts
24
- - downstream propagation of scaffold contract changes
20
+ - `operations/node_modules/@elevasis/sdk/reference/scaffold/core/organization-model.mdx` -- org-model semantics
21
+ - `operations/node_modules/@elevasis/sdk/reference/scaffold/core/organization-graph.mdx` -- graph and command-view concepts
22
+ - `operations/node_modules/@elevasis/sdk/reference/scaffold/ui/feature-shell.mdx` -- shell composition
23
+ - `operations/node_modules/@elevasis/sdk/reference/scaffold/ui/composition-extensibility.mdx` -- extension points
24
+ - `operations/node_modules/@elevasis/sdk/reference/scaffold/reference/system-interface-capabilities.md` -- System API surface and derived readiness
25
25
 
26
- Load:
26
+ Do not assume right now:
27
27
 
28
- - `apps/docs/content/docs/technical/architecture/core/organization-model/index.mdx`
29
- - `apps/docs/content/docs/technical/architecture/core/organization-model/graph.mdx`
30
- - `apps/docs/content/docs/technical/architecture/ui/feature-shell.mdx`
31
- - `apps/docs/content/docs/technical/architecture/ui/composition-extensibility.mdx`
28
+ - That a System declares its API surface through a contract object. The marker is the flat `system.apiInterface`, and readiness is derived from it. `SystemContract`, `BridgeContract`, `System.contracts`, `bridgeContracts`, versioned `*@v1` IDs, and a generic `system.interfaces` map are retired -- never reintroduce them, and never add aliases or compatibility shims for them.
29
+ - That a System without `apiInterface` is broken. Omitting it is the designed opt-out for a System this project does not expose.
32
30
 
33
- Stable scaffold docs affected:
31
+ ### Published Package Surfaces
34
32
 
35
- - `operations/node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md`
36
- - `.claude/rules/ui.md`
37
- - `operations/node_modules/@elevasis/sdk/reference/scaffold/ui/customization.md`
38
- - `operations/node_modules/@elevasis/sdk/reference/scaffold/ui/feature-flags-and-gating.md`
33
+ Load when the task touches the published `@elevasis/core`, `@elevasis/ui`, or `@elevasis/sdk` surfaces, or when scaffold prose disagrees with what your installed packages export:
39
34
 
40
- ### Package Surface / Reference System
35
+ - `operations/node_modules/@elevasis/sdk/reference/packages/core/src/organization-model/README.md` -- core org-model source notes
36
+ - `operations/node_modules/@elevasis/sdk/reference/packages/ui/src/provider/README.md` -- provider runtime
37
+ - `operations/node_modules/@elevasis/sdk/reference/packages/ui/src/features/README.md` -- feature manifests
38
+ - `operations/node_modules/@elevasis/sdk/reference/_navigation.md` -- index of everything in the bundle
41
39
 
42
- Use when the task touches:
40
+ Do not assume right now that a symbol named in prose still exports. Check `operations/node_modules/@elevasis/sdk/reference/core/exports.mdx` and `operations/node_modules/@elevasis/sdk/reference/ui/exports.mdx`, or the installed type declarations, before writing against a name you only read in a doc.
43
41
 
44
- - published `@elevasis/core`, `@elevasis/ui`, or `@elevasis/sdk` surfaces
45
- - generated package maps
46
- - contract drift between source and scaffold docs
42
+ ### Resource Registration and Topology
47
43
 
48
- Load:
44
+ Load when the task touches resource registration, triggers, integrations, relationships, or human checkpoints:
49
45
 
50
- - `packages/core/src/organization-model/README.md`
51
- - `packages/ui/src/provider/README.md`
52
- - `packages/ui/src/features/README.md`
53
- - `packages/sdk/reference/_navigation.md`
46
+ - `operations/src/index.ts` -- the registry itself; authoritative over any doc
47
+ - `operations/src/README.md` -- what this project registers
48
+ - `operations/node_modules/@elevasis/sdk/reference/rules/operations.md` -- stable authoring conventions
54
49
 
55
- Stable scaffold docs affected:
50
+ Do not assume right now that a resource ID quoted in a doc matches the deployed one. Confirm against `operations/src/index.ts`.
56
51
 
57
- - `operations/node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md`
58
-
59
- ### Resource / Topology Mapping
60
-
61
- Use when the task touches:
62
-
63
- - resource registration
64
- - triggers, integrations, relationships, human checkpoints
65
- - topology-aware navigation or impact analysis
66
-
67
- Load:
68
-
69
- - `operations/src/README.md`
70
- - `operations/src/index.ts`
52
+ ## Working Rule
71
53
 
72
- Stable scaffold docs affected:
54
+ 1. Read the stable rule or scaffold doc first.
55
+ 2. Read the project-owned source in `operations/src/` or `core/config/` -- source beats prose.
56
+ 3. On disagreement, follow the source and report the drift rather than editing around it.
73
57
 
74
- - `.claude/rules/operations.md`
58
+ ## Related Rules
75
59
 
76
- ## Working Rule
60
+ - `operations/node_modules/@elevasis/sdk/reference/rules/organization-model.md` -- org-model authoring and System declarations
61
+ - `operations/node_modules/@elevasis/sdk/reference/rules/ui.md` -- access model, guards, shared UI surfaces
62
+ - `operations/node_modules/@elevasis/sdk/reference/rules/operations.md` -- resource registration conventions
63
+ - `operations/node_modules/@elevasis/sdk/reference/rules/package-taxonomy.md` -- which package families are importable here
77
64
 
78
- When a task touches one of the watch areas above:
65
+ ## References
79
66
 
80
- 1. Read the stable scaffold doc.
81
- 2. Read the listed in-progress or package-local source-of-truth docs.
82
- 3. Prefer source and in-progress architecture docs if they disagree with scaffold prose.
83
- 4. Flag drift instead of silently trusting the scaffold doc.
67
+ - `operations/node_modules/@elevasis/sdk/reference/scaffold/index.mdx` -- stable scaffold reference root
68
+ - `operations/node_modules/@elevasis/sdk/reference/scaffold/reference/contracts.md` -- contract surface between project and platform
69
+ - `operations/node_modules/@elevasis/sdk/reference/_navigation.md` -- full bundle index
@@ -0,0 +1,81 @@
1
+ ---
2
+ description: Agent runtime behavior -- iteration response shape, session memory and replay, prose normalization, and why a redeploy is what makes a platform fix live
3
+ paths:
4
+ - operations/**
5
+ ---
6
+ <!-- @generated by packages/sdk/scripts/copy-reference-docs.mjs -- DO NOT EDIT -->
7
+ <!-- Regenerate: pnpm scaffold:sync -->
8
+
9
+
10
+ # Agent Runtime
11
+
12
+ What the platform does to an agent's input and output at run time. None of it is configured in an agent definition -- it lives in the runtime your deployed bundle carries, which is why **a redeploy is what makes any of it change**.
13
+
14
+ ## The Redeploy Rule (read this first)
15
+
16
+ The agent loop is inlined into the bundle `elevasis-sdk deploy` produces. A platform-side fix does not reach a deployed agent, and neither does a `pnpm install` in `operations/` on its own. The sequence is always: take the `@elevasis/sdk` baseline bump, reinstall, then redeploy. Until the redeploy, your agents keep running the loop they were built with.
17
+
18
+ Verify against the installed bundle, never the version number -- a bumped pin in `package.json` is a claim, `operations/node_modules/@elevasis/sdk/` is ground truth.
19
+
20
+ ## Iteration Response Shape
21
+
22
+ An agent iteration returns three top-level fields, **in this declaration order**:
23
+
24
+ | Field | Purpose |
25
+ | ------------- | -------------------------------------------------------------- |
26
+ | `nextActions` | what the agent does next |
27
+ | `message` | the reply the user sees -- the only field rendered to the user |
28
+ | `reasoning` | the agent's own account of the turn |
29
+
30
+ The order is load-bearing, not cosmetic. Under grammar-constrained sampling the model fills keys in declaration order, so the actions and the reply are committed to the wire before any mid-response drift can begin. `reasoning` stays last for that reason, which also means it reads as a summary of the answer rather than a lead-up to it -- if you parse or display it, expect that shape.
31
+
32
+ **`message` is required for session-capable agents.** When it shipped as optional the model skipped it entirely and those turns produced no user-facing reply at all: `nextActions` is chosen before the model has reasoned about the answer, `complete` is the cheapest legal action, and a skippable field then gets skipped. Requiring it costs nothing -- an empty or whitespace-only value is suppressed and renders no message bubble.
33
+
34
+ **`message` is a flat top-level field, not an entry in the actions array.** It used to be one variant of an `anyOf` union nested inside `nextActions`, and text in that position was silently corrupted: the model would emit a JSON escape for an em-dash and complete it with the next letter of the sentence, so `Hold on — red-line for me` arrived as `Hold on \red-line for me`. That parses, satisfies the schema, and passes validation -- there is no error state to catch it. Flattening the field fixed it. Do not reintroduce a nested reply.
35
+
36
+ ## Structured Output Is Enforced
37
+
38
+ Iteration calls go out with `strict: true`, which compiles the response schema into a sampling grammar. Without it the schema is guidance and required fields are best-effort.
39
+
40
+ Strict mode accepts only a subset of JSON Schema, and a schema outside that subset makes the platform fall back to the unenforced path **silently**. The observable signal is `strictRefusalReasons` on the call's `ai_calls` observability row: **absence of that field is the healthy state.** If you see a value there -- `["freeFormObject"]`, say -- that agent is running a bundle whose schema the grammar could not compile.
41
+
42
+ Memory writes are declared as a list of `{ key, value }` pairs for exactly this reason; a free-form map (`additionalProperties: true`) has no strict equivalent.
43
+
44
+ ## Sessions and Replay
45
+
46
+ For an agent with `sessionCapable: true`, turn N is handed the agent's restored memory plus the earlier user and assistant messages, token-budgeted. Both are on by default and need no agent definition change.
47
+
48
+ Two consequences worth holding when you write `memoryPreferences`:
49
+
50
+ - **The conversation genuinely is available to the model.** Guidance of the form _"do not store the transcript in memory -- the transcript is the source of truth"_ is now correct. It was not always: the messages were stored for display but never read by the execution path, so an agent following that instruction remembered nothing.
51
+ - **Stored memory is re-sent on every iteration of every later turn and never ages out.** One bad value there is one the model re-reads for the life of the session. Memory is the highest-leverage surface in a long conversation, and the one least visible in a smoke test.
52
+
53
+ Session defects scale with accumulated context. A single turn is not a test -- run a long enough conversation for the failure class to appear, and probe recall with an unguessable token planted in turn 1 and asked for verbatim in turn 2.
54
+
55
+ ## Prose Normalization
56
+
57
+ Model output is repaired deterministically at the single point where it is validated -- upstream of persist, stream, render, and replay. `\n`, `\r\n`, `\t`, and `\"` are converted to the characters they denote, in `message`, in `reasoning`, and in session-memory values, on **every** agent rather than only session-capable ones.
58
+
59
+ This exists because the model chooses the wrong characters, not the wrong encoding: a single reply has been observed carrying one paragraph break as real newlines and another as the two characters `\n`, inside the same string. No serialization layer produces that, so there was nothing to wait for upstream.
60
+
61
+ Two behaviors to know:
62
+
63
+ 1. **The normalizer is not markdown-aware.** A literal `\n` inside a fenced code block or an inline span **is** converted. This was a deliberate trade -- a reply whose line breaks are all literal has no line structure for a fence to start on, so the replies most in need of repair are exactly the ones a fence scan cannot parse. If your agent discusses escape sequences or regexes in its user-facing prose, this is the case to check.
64
+ 2. **A doubled backslash is left alone, and JSON-shaped memory values are skipped entirely**, so a stored JSON blob keeps its internal escaping and still parses.
65
+
66
+ No backfill is performed. Replies and memory snapshots written before your redeploy keep whatever literal escapes they already have -- do not treat old transcripts as clean.
67
+
68
+ ## Related Rules
69
+
70
+ Sibling rule bodies live at `operations/node_modules/@elevasis/sdk/reference/rules/`.
71
+
72
+ - **platform.md** -- authoring the agent definition this runtime executes
73
+ - **execution.md** -- worker lifecycle, timeouts, and the constraints an agent turn runs inside
74
+ - **observability.md** -- reading the execution and `ai_calls` rows the signals above appear on
75
+ - **deployment.md** -- the deploy that makes a runtime change live, and which environment it targets
76
+
77
+ ## References
78
+
79
+ - `operations/node_modules/@elevasis/sdk/reference/sdk/runtime.mdx` -- worker runtime model in full
80
+ - `operations/node_modules/@elevasis/sdk/reference/sdk/resources/index.mdx` -- agent resource shape, `sessionCapable`, and `memoryPreferences`
81
+ - `operations/node_modules/@elevasis/sdk/reference/sdk/deployment/execution-reference.mdx` -- execution, step, and iteration record shapes