@elevasis/sdk 1.20.2 → 1.22.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 (164) hide show
  1. package/dist/cli.cjs +4220 -1583
  2. package/dist/index.d.ts +1035 -481
  3. package/dist/index.js +7381 -4187
  4. package/dist/node/index.d.ts +1 -3
  5. package/dist/node/index.js +40 -49
  6. package/dist/test-utils/index.d.ts +699 -123
  7. package/dist/test-utils/index.js +3826 -630
  8. package/dist/worker/index.js +3616 -442
  9. package/package.json +3 -3
  10. package/reference/_navigation.md +9 -7
  11. package/reference/_reference-manifest.json +1 -1
  12. package/reference/claude-config/hooks/post-edit-validate.mjs +98 -98
  13. package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +188 -188
  14. package/reference/claude-config/hooks/tool-failure-recovery.mjs +73 -73
  15. package/reference/claude-config/registries/graph-skills.json +4 -4
  16. package/reference/claude-config/registries/knowledge-flags.json +0 -2
  17. package/reference/claude-config/rules/active-change-index.md +80 -80
  18. package/reference/claude-config/rules/agent-start-here.md +277 -273
  19. package/reference/claude-config/rules/deployment.md +57 -57
  20. package/reference/claude-config/rules/error-handling.md +56 -56
  21. package/reference/claude-config/rules/execution.md +40 -40
  22. package/reference/claude-config/rules/frontend.md +4 -4
  23. package/reference/claude-config/rules/observability.md +31 -31
  24. package/reference/claude-config/rules/operations.md +29 -17
  25. package/reference/claude-config/rules/organization-model.md +108 -40
  26. package/reference/claude-config/rules/organization-os.md +115 -113
  27. package/reference/claude-config/rules/package-taxonomy.md +33 -33
  28. package/reference/claude-config/rules/platform.md +42 -42
  29. package/reference/claude-config/rules/shared-types.md +49 -46
  30. package/reference/claude-config/rules/task-tracking.md +47 -47
  31. package/reference/claude-config/rules/ui.md +200 -200
  32. package/reference/claude-config/rules/vibe.md +235 -231
  33. package/reference/claude-config/scripts/statusline-command.js +18 -18
  34. package/reference/claude-config/settings.json +34 -34
  35. package/reference/claude-config/skills/deploy/{SKILL.md → skill.md} +156 -156
  36. package/reference/claude-config/skills/dsp/SKILL.md +66 -66
  37. package/reference/claude-config/skills/elevasis/SKILL.md +235 -235
  38. package/reference/claude-config/skills/explore/SKILL.md +6 -6
  39. package/reference/claude-config/skills/git-sync/SKILL.md +126 -126
  40. package/reference/claude-config/skills/knowledge/SKILL.md +330 -271
  41. package/reference/claude-config/skills/knowledge/operations/codify-level-a.md +100 -100
  42. package/reference/claude-config/skills/knowledge/operations/codify-level-b.md +159 -158
  43. package/reference/claude-config/skills/knowledge/operations/customers.md +109 -109
  44. package/reference/claude-config/skills/knowledge/operations/features.md +76 -113
  45. package/reference/claude-config/skills/knowledge/operations/goals.md +118 -118
  46. package/reference/claude-config/skills/knowledge/operations/identity.md +93 -93
  47. package/reference/claude-config/skills/knowledge/operations/labels.md +94 -89
  48. package/reference/claude-config/skills/knowledge/operations/offerings.md +109 -109
  49. package/reference/claude-config/skills/knowledge/operations/roles.md +99 -99
  50. package/reference/claude-config/skills/knowledge/operations/techStack.md +30 -30
  51. package/reference/claude-config/skills/project/SKILL.md +1088 -1088
  52. package/reference/claude-config/skills/run-ui/SKILL.md +73 -73
  53. package/reference/claude-config/skills/save/SKILL.md +3 -3
  54. package/reference/claude-config/skills/setup/SKILL.md +275 -275
  55. package/reference/claude-config/skills/status/SKILL.md +59 -59
  56. package/reference/claude-config/skills/submit-request/SKILL.md +180 -180
  57. package/reference/claude-config/skills/sync/SKILL.md +47 -47
  58. package/reference/claude-config/skills/tutorial/SKILL.md +259 -259
  59. package/reference/claude-config/skills/tutorial/progress-template.md +74 -74
  60. package/reference/claude-config/skills/tutorial/technical.md +1303 -1306
  61. package/reference/claude-config/skills/tutorial/vibe-coder.md +890 -890
  62. package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +27 -27
  63. package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +30 -30
  64. package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +73 -73
  65. package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +86 -86
  66. package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +55 -55
  67. package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +97 -97
  68. package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +112 -112
  69. package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +93 -93
  70. package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +58 -58
  71. package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +56 -56
  72. package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +71 -71
  73. package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +83 -83
  74. package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +59 -59
  75. package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +42 -42
  76. package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +60 -60
  77. package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +37 -37
  78. package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +34 -34
  79. package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +38 -38
  80. package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +32 -32
  81. package/reference/claude-config/sync-notes/2026-05-09-command-system.md +33 -33
  82. package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +69 -69
  83. package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +30 -0
  84. package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +42 -0
  85. package/reference/claude-config/sync-notes/README.md +43 -43
  86. package/reference/cli.mdx +808 -668
  87. package/reference/concepts.mdx +146 -146
  88. package/reference/deployment/api.mdx +297 -297
  89. package/reference/deployment/command-center.mdx +209 -209
  90. package/reference/deployment/index.mdx +195 -195
  91. package/reference/deployment/provided-features.mdx +107 -93
  92. package/reference/deployment/ui-execution.mdx +250 -250
  93. package/reference/examples/organization-model.ts +147 -84
  94. package/reference/framework/agent.mdx +156 -156
  95. package/reference/framework/index.mdx +195 -195
  96. package/reference/framework/interaction-guidance.mdx +182 -182
  97. package/reference/framework/memory.mdx +326 -326
  98. package/reference/framework/project-structure.mdx +282 -282
  99. package/reference/framework/tutorial-system.mdx +135 -135
  100. package/reference/getting-started.mdx +142 -142
  101. package/reference/index.mdx +106 -106
  102. package/reference/packages/core/src/README.md +14 -14
  103. package/reference/packages/core/src/business/README.md +2 -2
  104. package/reference/packages/core/src/knowledge/README.md +33 -32
  105. package/reference/packages/core/src/organization-model/README.md +149 -109
  106. package/reference/packages/core/src/test-utils/README.md +37 -37
  107. package/reference/packages/ui/src/api/README.md +18 -18
  108. package/reference/packages/ui/src/app/README.md +24 -24
  109. package/reference/packages/ui/src/auth/README.md +18 -18
  110. package/reference/packages/ui/src/components/README.md +24 -24
  111. package/reference/packages/ui/src/execution/README.md +16 -16
  112. package/reference/packages/ui/src/features/README.md +28 -28
  113. package/reference/packages/ui/src/graph/README.md +16 -16
  114. package/reference/packages/ui/src/hooks/README.md +23 -23
  115. package/reference/packages/ui/src/initialization/README.md +19 -19
  116. package/reference/packages/ui/src/knowledge/README.md +31 -31
  117. package/reference/packages/ui/src/organization/README.md +18 -18
  118. package/reference/packages/ui/src/profile/README.md +19 -19
  119. package/reference/packages/ui/src/provider/README.md +32 -32
  120. package/reference/packages/ui/src/router/README.md +18 -18
  121. package/reference/packages/ui/src/sse/README.md +13 -13
  122. package/reference/packages/ui/src/test-utils/README.md +7 -7
  123. package/reference/packages/ui/src/theme/README.md +23 -23
  124. package/reference/packages/ui/src/theme/presets/README.md +19 -19
  125. package/reference/packages/ui/src/types/README.md +16 -16
  126. package/reference/packages/ui/src/utils/README.md +18 -18
  127. package/reference/packages/ui/src/zustand/README.md +18 -18
  128. package/reference/platform-tools/adapters-integration.mdx +301 -301
  129. package/reference/platform-tools/adapters-platform.mdx +553 -553
  130. package/reference/platform-tools/index.mdx +217 -217
  131. package/reference/platform-tools/type-safety.mdx +82 -82
  132. package/reference/resources/index.mdx +349 -349
  133. package/reference/resources/patterns.mdx +449 -449
  134. package/reference/resources/types.mdx +116 -116
  135. package/reference/roadmap.mdx +165 -165
  136. package/reference/runtime.mdx +173 -173
  137. package/reference/scaffold/core/organization-graph.mdx +110 -89
  138. package/reference/scaffold/core/organization-model.mdx +226 -171
  139. package/reference/scaffold/index.mdx +67 -67
  140. package/reference/scaffold/operations/propagation-pipeline.md +77 -77
  141. package/reference/scaffold/operations/scaffold-maintenance.md +10 -10
  142. package/reference/scaffold/operations/workflow-recipes.md +138 -138
  143. package/reference/scaffold/recipes/add-a-feature.md +310 -88
  144. package/reference/scaffold/recipes/add-a-resource.md +137 -117
  145. package/reference/scaffold/recipes/customize-crm-actions.md +439 -439
  146. package/reference/scaffold/recipes/customize-knowledge-browser.md +384 -0
  147. package/reference/scaffold/recipes/customize-organization-model.md +281 -118
  148. package/reference/scaffold/recipes/extend-a-base-entity.md +8 -8
  149. package/reference/scaffold/recipes/extend-crm.md +40 -39
  150. package/reference/scaffold/recipes/extend-lead-gen.md +400 -401
  151. package/reference/scaffold/recipes/gate-by-feature-or-admin.md +118 -114
  152. package/reference/scaffold/recipes/index.md +47 -46
  153. package/reference/scaffold/recipes/query-the-knowledge-graph.md +227 -0
  154. package/reference/scaffold/reference/contracts.md +2389 -2121
  155. package/reference/scaffold/reference/feature-registry.md +9 -20
  156. package/reference/scaffold/reference/glossary.md +76 -76
  157. package/reference/scaffold/ui/composition-extensibility.mdx +233 -233
  158. package/reference/scaffold/ui/customization.md +243 -243
  159. package/reference/scaffold/ui/feature-flags-and-gating.md +46 -46
  160. package/reference/scaffold/ui/feature-shell.mdx +72 -72
  161. package/reference/scaffold/ui/recipes.md +221 -213
  162. package/reference/spine/spine-primer.md +96 -96
  163. package/reference/templates/index.mdx +47 -47
  164. package/reference/troubleshooting.mdx +223 -223
@@ -1,209 +1,209 @@
1
- ---
2
- title: Command Center
3
- description: Post-deployment UI reference -- what each page does, the resource graph model, relationships, validation, and how SDK concepts map to Command Center actions
4
- loadWhen: "User asks about the Command Center UI, post-deployment workflow, monitoring, or the resource graph"
5
- ---
6
-
7
- The Command Center is the browser UI for interacting with deployed resources. After you run `elevasis-sdk deploy`, this is where you run workflows, monitor executions, manage approvals, schedule tasks, and review logs.
8
-
9
- ---
10
-
11
- ## Quick Reference
12
-
13
- | Task | Page | Path |
14
- | -------------------------------------------------- | -------------- | ----------------------- |
15
- | Browse deployed resources, view the resource graph | Command View | `/command-view` |
16
- | Approve or reject pending HITL requests | Command Queue | `/queue` |
17
- | Search execution history across all resources | Execution Logs | `/logs` |
18
- | Create API key and OAuth credentials | Credentials | `/settings/credentials` |
19
- | View deployment history and active version | Deployments | `/settings/deployments` |
20
-
21
- ---
22
-
23
- ## Command View
24
-
25
- The Command View is a visual graph of your deployed resources. Each node is a resource (workflow, agent, trigger, integration). Edges are the relationships you declared in `DeploymentSpec`.
26
-
27
- **What you can do here:**
28
-
29
- - See all deployed resources at a glance
30
- - Trace data flow between resources via declared relationships
31
- - Identify which resources depend on which integrations
32
- - Click a node to view resource details (ID, status, type)
33
-
34
- ### Node Types
35
-
36
- Every resource you deploy becomes a node in the graph. Some nodes are executable; others are visual-only.
37
-
38
- **Executable nodes:**
39
-
40
- | Type | What It Does | Deployed By |
41
- | -------- | ------------------------------------------------- | --------------------- |
42
- | Workflow | Runs step handlers in sequence or branching paths | `elevasis-sdk deploy` |
43
- | Agent | Autonomous LLM-powered resource with tools | `elevasis-sdk deploy` |
44
-
45
- **Visual-only nodes** (no runtime behavior -- exist for the graph):
46
-
47
- | Type | What It Represents | Why It Exists |
48
- | ----------------- | --------------------------------------------------- | --------------------------------------------- |
49
- | Trigger | A webhook or schedule that starts a workflow | Shows how executions begin |
50
- | Integration | A credential reference (provider + credential name) | Shows which external services a resource uses |
51
- | External Resource | A third-party automation (n8n, Make, Zapier) | Documents automations outside the platform |
52
- | Human Checkpoint | A point where a human makes a decision | Shows where HITL approval gates exist |
53
-
54
- ### Relationships
55
-
56
- Relationships are edges in the graph. Declare them in `DeploymentSpec`:
57
-
58
- ```typescript
59
- const org: DeploymentSpec = {
60
- workflows: [scoreLeadWorkflow, sendProposalWorkflow],
61
- relationships: {
62
- 'score-lead': {
63
- triggers: {
64
- workflows: ['send-proposal'],
65
- },
66
- uses: {
67
- integrations: ['attio-integration'],
68
- },
69
- },
70
- },
71
- };
72
- ```
73
-
74
- | Field | Type | Meaning |
75
- | -------------------- | ---------- | ------------------------------------- |
76
- | `triggers.workflows` | `string[]` | Workflows this resource starts |
77
- | `triggers.agents` | `string[]` | Agents this resource starts |
78
- | `uses.integrations` | `string[]` | Integrations this resource depends on |
79
-
80
- **Relationships are declarations, not routing.** Declaring that workflow A triggers workflow B does not route A's output to B -- your handler must explicitly invoke B via the `execution` adapter. The graph can drift from reality if declarations don't match code.
81
-
82
- ### What Is Enforced vs Decorative
83
-
84
- | Category | Validated at Deploy | Matches Runtime | Status |
85
- | ---------------------------------------- | ---------------------------- | --------------- | -------------- |
86
- | Resource IDs unique | Yes | Yes | **Enforced** |
87
- | Input schema matches execution interface | Yes | Yes | **Enforced** |
88
- | Relationship targets exist | Yes | No | **Decorative** |
89
- | Trigger routing | No | No | **Decorative** |
90
- | Tool availability per agent | No | No | **Decorative** |
91
- | Model config | Yes (provider + model valid) | No | **Decorative** |
92
-
93
- Keep relationships in sync with your handler code. When you add an `execution.trigger()` call, add the corresponding relationship declaration.
94
-
95
- ### Deploy-Time Validation
96
-
97
- `elevasis-sdk deploy` and `elevasis-sdk check` both validate:
98
-
99
- - Duplicate resource IDs
100
- - Relationship targets must exist in the same `DeploymentSpec`
101
- - Agent model params (provider, model name, temperature bounds)
102
- - Workflow step chains (`next.target` must point to existing step names)
103
-
104
- **Validation error examples:**
105
-
106
- ```
107
- ERROR Relationship target 'send-proposal' not found in organization resources
108
- ERROR Duplicate resource ID 'score-lead' in deployment
109
- ```
110
-
111
- ### Graph Serialization
112
-
113
- The platform converts your definitions into `CommandViewNode` (one per resource) and `CommandViewEdge` (one per relationship) structures. `buildEdges()` reads your `relationships` declarations and produces edges as a pure transformation -- no runtime behavior is inferred.
114
-
115
- > **SDK takeaway:** Declare relationships in `DeploymentSpec` to keep the Command View accurate as your system grows. Update declarations whenever you add or remove `execution.trigger()` calls.
116
-
117
- ---
118
-
119
- ## Command Queue
120
-
121
- The Command Queue surfaces all pending Human-in-the-Loop (HITL) approval requests from running workflows.
122
-
123
- **What you can do here:**
124
-
125
- - View pending approval requests with context provided by the workflow
126
- - Filter by resource, status, or date
127
- - Approve or reject with an optional comment
128
- - See the history of past decisions
129
-
130
- **How it connects to your code:** Approval requests appear when a workflow step calls `approval.create()`. The workflow pauses at that step and waits for a decision.
131
-
132
- ```typescript
133
- import { approval } from '@elevasis/sdk/worker'
134
-
135
- const task = await approval.create({
136
- actions: [
137
- { id: 'approve', label: 'Approve', type: 'primary' },
138
- { id: 'reject', label: 'Reject', type: 'danger' },
139
- ],
140
- context: { dealId, proposalUrl },
141
- description: 'Approve proposal before sending',
142
- })
143
- ```
144
-
145
- > **SDK takeaway:** Use `approval.create()` to create approval gates. Provide rich `context` so reviewers have what they need to decide.
146
-
147
- ---
148
-
149
- ## Execution Logs
150
-
151
- The Execution Logs page shows the history of all executions across every deployed resource.
152
-
153
- **What you can do here:**
154
-
155
- - Search and filter by resource, status (completed/failed/running), date range
156
- - Click any execution to view full detail: input, output, step-level trace, duration
157
- - Identify failed executions and see error messages with stack traces
158
- - Navigate from a log entry directly to the resource in Command View
159
-
160
- **Filtering tips:**
161
-
162
- - Filter by resource name to debug a specific workflow
163
- - Filter by `failed` status to triage production issues
164
- - Use date range to narrow down incidents
165
-
166
- > **SDK takeaway:** Every `elevasis-sdk exec` and every scheduled run appears here. Use this page to verify behavior after deploy and to diagnose failures before opening code.
167
-
168
- ---
169
-
170
- ## Credentials
171
-
172
- The Credentials page manages encrypted API keys and OAuth tokens used by your workflows at runtime.
173
-
174
- **What you can do here:**
175
-
176
- - Create API key and webhook-secret credentials via a form
177
- - Connect OAuth providers (Google Sheets, Dropbox) via browser flow
178
- - View existing credentials (values are never shown after creation)
179
- - Delete credentials that are no longer needed
180
-
181
- **Two credential types:**
182
-
183
- | Type | Created via | Notes |
184
- | ------------------------ | -------------------------------------------- | ------------------------------------------------------ |
185
- | API key / webhook secret | CLI (`elevasis-sdk creds create`) or UI form | Either method works |
186
- | OAuth | UI only | Requires browser redirect -- cannot be created via CLI |
187
-
188
- > **SDK takeaway:** Reference credentials in your code by name (`credential: 'my-cred-name'`). Create API keys via CLI or UI; OAuth credentials require this page.
189
-
190
- ---
191
-
192
- ## Deployments
193
-
194
- The Deployments page shows the history of all deployments for your organization.
195
-
196
- **What you can do here:**
197
-
198
- - View a chronological list of past deployments
199
- - See which resources changed in each deployment
200
- - Identify the currently active version
201
- - Compare resource counts across deployments
202
-
203
- **How it connects to your code:** Each `elevasis-sdk deploy` run creates a new deployment entry. The platform activates the new version atomically -- in-flight executions complete against the previous version while new executions start against the new one.
204
-
205
- > **SDK takeaway:** Check this page after `elevasis-sdk deploy` to confirm your resources are active.
206
-
207
- ---
208
-
209
- **Last Updated:** 2026-03-06
1
+ ---
2
+ title: Command Center
3
+ description: Post-deployment UI reference -- what each page does, the resource graph model, relationships, validation, and how SDK concepts map to Command Center actions
4
+ loadWhen: "User asks about the Command Center UI, post-deployment workflow, monitoring, or the resource graph"
5
+ ---
6
+
7
+ The Command Center is the browser UI for interacting with deployed resources. After you run `elevasis-sdk deploy`, this is where you run workflows, monitor executions, manage approvals, schedule tasks, and review logs.
8
+
9
+ ---
10
+
11
+ ## Quick Reference
12
+
13
+ | Task | Page | Path |
14
+ | -------------------------------------------------- | -------------- | ----------------------- |
15
+ | Browse deployed resources, view the resource graph | Command View | `/command-view` |
16
+ | Approve or reject pending HITL requests | Command Queue | `/queue` |
17
+ | Search execution history across all resources | Execution Logs | `/logs` |
18
+ | Create API key and OAuth credentials | Credentials | `/settings/credentials` |
19
+ | View deployment history and active version | Deployments | `/settings/deployments` |
20
+
21
+ ---
22
+
23
+ ## Command View
24
+
25
+ The Command View is a visual graph of your deployed resources. Each node is a resource (workflow, agent, trigger, integration). Edges are the relationships you declared in `DeploymentSpec`.
26
+
27
+ **What you can do here:**
28
+
29
+ - See all deployed resources at a glance
30
+ - Trace data flow between resources via declared relationships
31
+ - Identify which resources depend on which integrations
32
+ - Click a node to view resource details (ID, status, type)
33
+
34
+ ### Node Types
35
+
36
+ Every resource you deploy becomes a node in the graph. Some nodes are executable; others are visual-only.
37
+
38
+ **Executable nodes:**
39
+
40
+ | Type | What It Does | Deployed By |
41
+ | -------- | ------------------------------------------------- | --------------------- |
42
+ | Workflow | Runs step handlers in sequence or branching paths | `elevasis-sdk deploy` |
43
+ | Agent | Autonomous LLM-powered resource with tools | `elevasis-sdk deploy` |
44
+
45
+ **Visual-only nodes** (no runtime behavior -- exist for the graph):
46
+
47
+ | Type | What It Represents | Why It Exists |
48
+ | ----------------- | --------------------------------------------------- | --------------------------------------------- |
49
+ | Trigger | A webhook or schedule that starts a workflow | Shows how executions begin |
50
+ | Integration | A credential reference (provider + credential name) | Shows which external services a resource uses |
51
+ | External Resource | A third-party automation (n8n, Make, Zapier) | Documents automations outside the platform |
52
+ | Human Checkpoint | A point where a human makes a decision | Shows where HITL approval gates exist |
53
+
54
+ ### Relationships
55
+
56
+ Relationships are edges in the graph. Declare them in `DeploymentSpec`:
57
+
58
+ ```typescript
59
+ const org: DeploymentSpec = {
60
+ workflows: [scoreLeadWorkflow, sendProposalWorkflow],
61
+ relationships: {
62
+ 'score-lead': {
63
+ triggers: {
64
+ workflows: ['send-proposal'],
65
+ },
66
+ uses: {
67
+ integrations: ['attio-integration'],
68
+ },
69
+ },
70
+ },
71
+ };
72
+ ```
73
+
74
+ | Field | Type | Meaning |
75
+ | -------------------- | ---------- | ------------------------------------- |
76
+ | `triggers.workflows` | `string[]` | Workflows this resource starts |
77
+ | `triggers.agents` | `string[]` | Agents this resource starts |
78
+ | `uses.integrations` | `string[]` | Integrations this resource depends on |
79
+
80
+ **Relationships are declarations, not routing.** Declaring that workflow A triggers workflow B does not route A's output to B -- your handler must explicitly invoke B via the `execution` adapter. The graph can drift from reality if declarations don't match code.
81
+
82
+ ### What Is Enforced vs Decorative
83
+
84
+ | Category | Validated at Deploy | Matches Runtime | Status |
85
+ | ---------------------------------------- | ---------------------------- | --------------- | -------------- |
86
+ | Resource IDs unique | Yes | Yes | **Enforced** |
87
+ | Input schema matches execution interface | Yes | Yes | **Enforced** |
88
+ | Relationship targets exist | Yes | No | **Decorative** |
89
+ | Trigger routing | No | No | **Decorative** |
90
+ | Tool availability per agent | No | No | **Decorative** |
91
+ | Model config | Yes (provider + model valid) | No | **Decorative** |
92
+
93
+ Keep relationships in sync with your handler code. When you add an `execution.trigger()` call, add the corresponding relationship declaration.
94
+
95
+ ### Deploy-Time Validation
96
+
97
+ `elevasis-sdk deploy` and `elevasis-sdk check` both validate:
98
+
99
+ - Duplicate resource IDs
100
+ - Relationship targets must exist in the same `DeploymentSpec`
101
+ - Agent model params (provider, model name, temperature bounds)
102
+ - Workflow step chains (`next.target` must point to existing step names)
103
+
104
+ **Validation error examples:**
105
+
106
+ ```
107
+ ERROR Relationship target 'send-proposal' not found in organization resources
108
+ ERROR Duplicate resource ID 'score-lead' in deployment
109
+ ```
110
+
111
+ ### Graph Serialization
112
+
113
+ The platform converts your definitions into `CommandViewNode` (one per resource) and `CommandViewEdge` (one per relationship) structures. `buildEdges()` reads your `relationships` declarations and produces edges as a pure transformation -- no runtime behavior is inferred.
114
+
115
+ > **SDK takeaway:** Declare relationships in `DeploymentSpec` to keep the Command View accurate as your system grows. Update declarations whenever you add or remove `execution.trigger()` calls.
116
+
117
+ ---
118
+
119
+ ## Command Queue
120
+
121
+ The Command Queue surfaces all pending Human-in-the-Loop (HITL) approval requests from running workflows.
122
+
123
+ **What you can do here:**
124
+
125
+ - View pending approval requests with context provided by the workflow
126
+ - Filter by resource, status, or date
127
+ - Approve or reject with an optional comment
128
+ - See the history of past decisions
129
+
130
+ **How it connects to your code:** Approval requests appear when a workflow step calls `approval.create()`. The workflow pauses at that step and waits for a decision.
131
+
132
+ ```typescript
133
+ import { approval } from '@elevasis/sdk/worker'
134
+
135
+ const task = await approval.create({
136
+ actions: [
137
+ { id: 'approve', label: 'Approve', type: 'primary' },
138
+ { id: 'reject', label: 'Reject', type: 'danger' },
139
+ ],
140
+ context: { dealId, proposalUrl },
141
+ description: 'Approve proposal before sending',
142
+ })
143
+ ```
144
+
145
+ > **SDK takeaway:** Use `approval.create()` to create approval gates. Provide rich `context` so reviewers have what they need to decide.
146
+
147
+ ---
148
+
149
+ ## Execution Logs
150
+
151
+ The Execution Logs page shows the history of all executions across every deployed resource.
152
+
153
+ **What you can do here:**
154
+
155
+ - Search and filter by resource, status (completed/failed/running), date range
156
+ - Click any execution to view full detail: input, output, step-level trace, duration
157
+ - Identify failed executions and see error messages with stack traces
158
+ - Navigate from a log entry directly to the resource in Command View
159
+
160
+ **Filtering tips:**
161
+
162
+ - Filter by resource name to debug a specific workflow
163
+ - Filter by `failed` status to triage production issues
164
+ - Use date range to narrow down incidents
165
+
166
+ > **SDK takeaway:** Every `elevasis-sdk exec` and every scheduled run appears here. Use this page to verify behavior after deploy and to diagnose failures before opening code.
167
+
168
+ ---
169
+
170
+ ## Credentials
171
+
172
+ The Credentials page manages encrypted API keys and OAuth tokens used by your workflows at runtime.
173
+
174
+ **What you can do here:**
175
+
176
+ - Create API key and webhook-secret credentials via a form
177
+ - Connect OAuth providers (Google Sheets, Dropbox) via browser flow
178
+ - View existing credentials (values are never shown after creation)
179
+ - Delete credentials that are no longer needed
180
+
181
+ **Two credential types:**
182
+
183
+ | Type | Created via | Notes |
184
+ | ------------------------ | -------------------------------------------- | ------------------------------------------------------ |
185
+ | API key / webhook secret | CLI (`elevasis-sdk creds create`) or UI form | Either method works |
186
+ | OAuth | UI only | Requires browser redirect -- cannot be created via CLI |
187
+
188
+ > **SDK takeaway:** Reference credentials in your code by name (`credential: 'my-cred-name'`). Create API keys via CLI or UI; OAuth credentials require this page.
189
+
190
+ ---
191
+
192
+ ## Deployments
193
+
194
+ The Deployments page shows the history of all deployments for your organization.
195
+
196
+ **What you can do here:**
197
+
198
+ - View a chronological list of past deployments
199
+ - See which resources changed in each deployment
200
+ - Identify the currently active version
201
+ - Compare resource counts across deployments
202
+
203
+ **How it connects to your code:** Each `elevasis-sdk deploy` run creates a new deployment entry. The platform activates the new version atomically -- in-flight executions complete against the previous version while new executions start against the new one.
204
+
205
+ > **SDK takeaway:** Check this page after `elevasis-sdk deploy` to confirm your resources are active.
206
+
207
+ ---
208
+
209
+ **Last Updated:** 2026-03-06