@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
@@ -1,120 +0,0 @@
1
- # Your CLI now explains a 502 instead of just reporting one, and no request hangs forever
2
-
3
- ## Why this note exists
4
-
5
- This train publishes one package — `@elevasis/sdk` — and every change in it is in the CLI you type
6
- commands into. Nothing about your workflows, organization model, or UI moves. But the CLI's failure
7
- messages change, and one of them changes in a way that is meant to stop you doing something harmful.
8
-
9
- **1. A gateway failure now tells you the work may still be running, and how to check.** Until now
10
- every non-2xx response produced the same shape: `API request failed (502)`. That message is
11
- technically accurate and practically dangerous, because the most natural reaction to it is to run the
12
- command again.
13
-
14
- A 502, 503, or 504 does not come from the platform API. It comes from a hop in front of it that ended
15
- your connection while the API was still working. The request you sent may have completed in full. We
16
- found this the hard way: a session turn returned 502 to the CLI after 300 seconds, and a later
17
- database query showed the turn had **completed successfully server-side in 319.8 seconds** with a
18
- model reply written and no error of any kind. The only thing that failed was the connection carrying
19
- the answer back. It was turn 14 of a 14-turn run — re-running blind would have executed that turn a
20
- second time.
21
-
22
- The new message says the proxy ended the connection, that this is not the API rejecting your request,
23
- that the work may still be running, and which command to use to look for a result before re-running.
24
-
25
- **2. Every CLI request is now bounded by a timeout, defaulting to 2 hours.** Before, the CLI used a
26
- bare `fetch()` with no signal, so a connection that stalled would sit there indefinitely with no
27
- output. The limit is deliberately set high — it matches the server's own socket budget on long routes.
28
- The goal is to bound an indefinite hang, not to police how long your work may take. Anything shorter
29
- would make the CLI give up on executions the API is still legitimately serving, turning a working long
30
- run into a reported failure. Override it with `ELEVASIS_CLI_TIMEOUT_MS` if you have a reason to.
31
-
32
- **3. "Timed out" and "never reached the API" are now different messages.** A bare `fetch()` rejection
33
- carries no status, so a dead port, a wrong API URL, and a stalled connection were indistinguishable.
34
- They now read differently.
35
-
36
- **4. The friendly authentication message now applies to every verb.** A 401 on `GET` printed a clear
37
- "check your platform key" message; a 401 on `POST`, `PATCH`, or `DELETE` printed the raw response
38
- body. All four now share the same message.
39
-
40
- **5. Three dead exports were removed from the agent memory surface.** `MEMORY_DOMAINS.ACTION_OWNED`
41
- was an empty array, `isActionOwnedKey` returned `false` for every input, and the `ActionOwnedKey` type
42
- resolved to `never`. They are gone. The live half of that layer is unchanged and still enforced: an
43
- agent still cannot write to a tool-owned memory key. If your project imports any of the three removed
44
- names, it was importing something that could never do anything — but the import will now fail, so it
45
- is worth a grep.
46
-
47
- ## Applies to
48
-
49
- - **Every project that uses the `elevasis-sdk` CLI**, which is every template-family project. Items 1
50
- through 4 arrive with the baseline bump and need no source edit from you.
51
- - **Any script or CI job that parses CLI stderr.** The gateway, timeout, and transport messages are
52
- new text. If something greps for `API request failed`, check it.
53
- - **Any project importing `ACTION_OWNED`, `isActionOwnedKey`, or `ActionOwnedKey`** from the SDK, for
54
- item 5. We found no such import in any template-family project, but only you can see out-of-tree
55
- code.
56
- - **Not applicable to your organization model, knowledge nodes, workflows, or UI.** Nothing in this
57
- train touches authored content or any rendered surface.
58
-
59
- ## Required actions
60
-
61
- 1. **Take the `@elevasis/sdk` baseline bump** this train propagates, then reinstall in `operations/`:
62
-
63
- ```bash
64
- pnpm -C operations install
65
- ```
66
-
67
- 2. **Grep for the three removed memory exports** before you deploy. This is the only change in the
68
- train that can break a build, and it is cheap to rule out:
69
-
70
- ```bash
71
- grep -rn "ACTION_OWNED\|isActionOwnedKey\|ActionOwnedKey" operations/src core/config
72
- ```
73
-
74
- No output means item 5 does not affect you.
75
-
76
- 3. **Redeploy `operations/`.** The baseline bump changes what your next bundle contains; it does not
77
- change what is already deployed:
78
-
79
- ```bash
80
- pnpm -C operations exec elevasis-sdk deploy
81
- ```
82
-
83
- 4. **Check any script that matches on CLI error text.** If you have automation that branches on
84
- `API request failed`, it will no longer match a gateway failure.
85
-
86
- ## Verification
87
-
88
- - **Read the installed bundle, not the version number.** A bumped pin and a green sync report are
89
- claims about intent; the installed file is the only ground truth:
90
-
91
- ```bash
92
- grep -c "GATEWAY_STATUSES" operations/node_modules/@elevasis/sdk/dist/cli.cjs
93
- grep -c "ACTION_OWNED" operations/node_modules/@elevasis/sdk/dist/worker/index.js
94
- ```
95
-
96
- The first must be non-zero and the second must be `0`. Either result the other way means the
97
- install did not land, regardless of what `package.json` says.
98
-
99
- - **Provoke a transport failure and read the message.** The cheapest honest check that the new
100
- branches are live, because it needs no broken server:
101
-
102
- ```bash
103
- ELEVASIS_API_URL=http://localhost:9 pnpm -C operations exec elevasis-sdk list
104
- ```
105
-
106
- You should get a message naming the endpoint and saying the request never reached the API — not a
107
- bare `fetch failed`.
108
-
109
- - **Confirm the timeout is configurable.** Setting `ELEVASIS_CLI_TIMEOUT_MS=1` on any command should
110
- produce a timeout message that quotes the limit back to you.
111
-
112
- ## Not handled by /git-sync
113
-
114
- - **The `operations/` reinstall.** `/git-sync` propagates and commits the dependency baseline. The
115
- `node_modules` copy your CLI actually executes is not updated until you run `pnpm install` yourself,
116
- and the CLI will keep printing the old messages until you do.
117
- - **The `operations/` redeploy.** Bumping the `@elevasis/sdk` pin changes what your next bundle
118
- contains. Your currently deployed workers keep running the old bundle until you deploy.
119
- - **The grep for the removed memory exports.** Nothing can detect an out-of-tree import for you.
120
- - **Updating scripts that match on CLI error text.** The sync cannot see your automation.
@@ -1,43 +0,0 @@
1
- # Sync Notes
2
-
3
- Template-owned downstream migration guidance lives in this directory.
4
-
5
- ## File Contract
6
-
7
- - Operative note files must be named `YYYY-MM-DD-<slug>.md`
8
- - `README.md` explains the contract and is ignored by `/git-sync`
9
- - Notes are append-only. Add a new dated file for each downstream-affecting release train instead of rewriting an older note
10
-
11
- ## When A Note Is Mandatory
12
-
13
- Add a new operative note whenever a train affects derived projects beyond a normal pull, install, and baseline verify. Common triggers:
14
-
15
- - template dependency-baseline changes
16
- - scaffold or sync-contract changes
17
- - rename or migration work
18
- - verifier or behavior changes that downstream maintainers need to understand
19
- - any release train that will ask maintainers to do manual follow-up after pulling
20
-
21
- ## Required Sections
22
-
23
- Every operative note must include these exact headings:
24
-
25
- ## Why this note exists
26
-
27
- Explain what changed and why downstream maintainers are seeing this note.
28
-
29
- ## Applies to
30
-
31
- State which projects, app modes, or versions need the follow-up.
32
-
33
- ## Required actions
34
-
35
- List the manual work maintainers need to do after `/git-sync`.
36
-
37
- ## Verification
38
-
39
- List the commands or flows that confirm the migration landed correctly.
40
-
41
- ## Not handled by /git-sync
42
-
43
- Call out what remains manual so maintainers do not assume the pull/install/verify flow reconciled everything.
@@ -1,182 +0,0 @@
1
- ---
2
- title: "Interaction Guidance"
3
- description: "Full dimensional adaptation rules per skill axis -- platform navigation, API integration, automation concepts, domain expertise -- with growth tracking protocol"
4
- loadWhen: "Unsure how to adapt for a skill combination"
5
- ---
6
-
7
- This reference defines how to adapt every interaction based on the dimensions in `.claude/memory/profile/skills.md`. Read it when the compact directive in CLAUDE.md is not enough to decide how to handle an unusual skill combination.
8
-
9
- ---
10
-
11
- ## Skill Dimensions
12
-
13
- The user profile stores four independent skill dimensions. Each dimension has its own adaptation rules. Do not collapse them into a single beginner/intermediate/advanced rating.
14
-
15
- ### Platform Navigation (none / oriented / comfortable)
16
-
17
- **none** -- Never used the Command Center. Does not know where pages are.
18
-
19
- - Walk through each page step by step before directing the user there
20
- - Provide exact navigation paths (e.g., "Open the Command Center, then click Execution Runner in the left sidebar")
21
- - Explain what each page does before asking them to use it
22
- - Do not assume they can find a page by name alone
23
-
24
- **oriented** -- Has explored the Command Center, knows the main sections.
25
-
26
- - Reference pages by name (Execution Runner, Command Queue, Task Scheduler)
27
- - Briefly remind the user what a page does on first mention in a session
28
- - Trust them to navigate once you name the destination
29
-
30
- **comfortable** -- Regularly uses the Command Center without guidance.
31
-
32
- - Reference pages by name only, no reminders needed
33
- - Focus on advanced filtering, schedule types, and log detail navigation
34
- - Trust them to explore and navigate independently
35
-
36
- ---
37
-
38
- ### API and Integration (none / basic / proficient)
39
-
40
- **none** -- Has not called an API directly. Uses tools with built-in integrations.
41
-
42
- - Explain what credentials are and why they exist before any integration code
43
- - Walk through credential creation in the platform command center step by step
44
- - Explain what "calling an API" means in plain English
45
- - Explain why `.env` exists and what `ELEVASIS_PLATFORM_KEY` is for
46
- - Do not assume they understand HTTP methods, JSON, or authentication headers
47
-
48
- **basic** -- Has used APIs with documentation or built simple integrations.
49
-
50
- - Show `platform.call()` patterns with brief notes on credential names
51
- - Reference the platform credential system for setup without full walkthrough
52
- - Explain SDK-specific credential patterns (how the platform injects secrets server-side)
53
-
54
- **proficient** -- Has built production integrations, understands REST and auth patterns.
55
-
56
- - Just the code and credential name
57
- - Trust them to set up credentials in the command center without guidance
58
- - Focus on SDK-specific behavior (timeout, error types, server-side injection)
59
-
60
- ---
61
-
62
- ### Automation Concepts (none / low-code / custom)
63
-
64
- **none** -- Has not used automation tools. Thinks in manual processes.
65
-
66
- - Use analogies before any technical explanation (see Analogies section)
67
- - Explain the execution model early: "Your code runs on Elevasis servers, not your computer"
68
- - Define Workflow, Step, Trigger, Schema, Credential on first use
69
- - Explain why automation is valuable for their specific use case before building anything
70
- - Explain deploy: "After deploy, your workflow is live and can be triggered"
71
-
72
- **low-code** -- Has used Zapier, Make, or similar tools.
73
-
74
- - Map Elevasis concepts to tools they know: "Steps are like Zapier actions. The workflow is the Zap."
75
- - Focus on what is different: code is more flexible but requires TypeScript
76
- - Explain schema validation: "Zapier has field mapping; Elevasis has schemas that validate the shape of data"
77
-
78
- **custom** -- Has written custom automation scripts or integrations.
79
-
80
- - Skip analogies
81
- - Focus on the SDK execution model: worker threads, postMessage, ephemeral processes
82
- - Explain the credential security model (server-side injection, no env vars in workers)
83
- - Discuss error handling patterns and retry behavior
84
-
85
- ---
86
-
87
- ### Domain Expertise
88
-
89
- Domain expertise is not a code skill. It is the user's depth of knowledge in their industry or business function (sales, finance, operations, marketing, etc.).
90
-
91
- When domain expertise is high:
92
-
93
- - Ask for business process descriptions before designing schemas
94
- - Let them drive the "what" (business logic); you handle the "how" (implementation)
95
- - Translate their process description into workflow steps, schemas, and tool choices
96
- - Validate your understanding: "So the workflow should: receive a new lead from the CRM, score it based on these criteria, and send a Slack alert if the score is above 80?"
97
- - Trust their judgment on what the workflow should do; never second-guess business logic
98
-
99
- When domain expertise is low:
100
-
101
- - Ask clarifying questions about the business process before designing anything
102
- - Do not assume what "a lead" or "a deal" or "an invoice" means in their context
103
- - Confirm edge cases explicitly: "What should happen if the lead has no email address?"
104
-
105
- ---
106
-
107
- ## Analogies for Non-Technical Users
108
-
109
- Use these when programming level is none or minimal, or when automation level is none.
110
-
111
- | Concept | Analogy |
112
- | ------------- | ----------------------------------------------------------------------------------------------------------- |
113
- | Workflow | A recipe: ingredients go in (input), steps are instructions, finished dish comes out (output) |
114
- | Step | One instruction in a recipe: "add salt," "stir for 2 minutes" |
115
- | Schema | A form template: it defines what fields exist and what type of data each field accepts |
116
- | Deployment | Publishing: like publishing a document so others can access it |
117
- | Execution | One run: like baking the recipe once |
118
- | Platform tool | A kitchen appliance: you use the mixer (tool) without knowing how it works inside |
119
- | Credential | A key: you give Elevasis the key to your Gmail account; it unlocks the door when needed |
120
- | Assembly line | Raw material goes in one end (input), each station does one job (step), finished product comes out (output) |
121
-
122
- Choose the analogy that fits the user's domain. A sales operations person will relate more to "a form template" than a developer would.
123
-
124
- ---
125
-
126
- ## Growth Tracking Protocol
127
-
128
- ### Observations
129
-
130
- During each session, note behaviors that reveal skill level changes. Examples:
131
-
132
- - User wrote a handler without asking for help
133
- - User suggested using StepType.CONDITIONAL without prompting
134
- - User asked a question that shows they now understand the execution model
135
- - User navigated to the correct Command Center page without being directed
136
- - User filtered Execution Logs by resource independently to diagnose a failure
137
- - User created a Task Scheduler entry unassisted
138
-
139
- ### Promotion Rules
140
-
141
- Do not automatically update the skill profile for every observation. Update when:
142
-
143
- - The user independently performs a task they previously needed explicit help with
144
- - The behavior is consistent across at least two instances (not a one-off)
145
- - The observation demonstrates understanding, not just copying a pattern
146
-
147
- ### Update Format
148
-
149
- When updating `.claude/memory/profile/skills.md` Growth Log:
150
-
151
- ```
152
- | Date | Observation | Dimension | Change |
153
- | 2026-03-01 | Navigated to Execution Logs and filtered by resource without direction | platformNavigation | none -> oriented |
154
- ```
155
-
156
- Also update the dimension's Level and Since fields in the Dimensions table.
157
-
158
- ### Celebration
159
-
160
- When growth is observed, acknowledge it briefly:
161
-
162
- - "You found that on your own -- looks like you've got the Command Center navigation down."
163
- - "Good catch on the optional field -- that is exactly the kind of thing that trips people up."
164
-
165
- Keep it natural. One sentence is enough. Do not over-celebrate.
166
-
167
- ---
168
-
169
- ## When This Reference is Needed
170
-
171
- Load this file when:
172
-
173
- - Starting `/meta init` to understand how to phrase the competency assessment questions
174
- - The user's skill combination is unusual and the compact CLAUDE.md directive is not enough to decide how to respond
175
- - Reassessing skill levels after several sessions
176
- - Writing the initial profile during onboarding
177
-
178
- For routine sessions, the compact directive in CLAUDE.md plus the user's stored `skills.md` is sufficient.
179
-
180
- ---
181
-
182
- **Last Updated:** 2026-02-26
@@ -1,326 +0,0 @@
1
- ---
2
- title: Memory System
3
- description: Cross-session project knowledge stored in .claude/memory/ -- deployment state, environment, decisions, and error patterns that persist between Claude Code sessions
4
- loadWhen: "Working with agent memory or session state"
5
- ---
6
-
7
- The memory system gives Claude Code a structured knowledge base for your project that survives across sessions. Deployment history, discovered credentials, architectural decisions, and error patterns are all written to `.claude/memory/` as the project evolves -- so the agent never starts from scratch.
8
-
9
- The `memory/` directory is gitignored and personal to each developer. The `profile/` subdirectory is created by `/meta init` during first-run setup. All other topics are created by the agent as the project evolves.
10
-
11
- ## Purpose
12
-
13
- Without project memory, the agent starts every session with only the context of the current conversation. It cannot remember that you already deployed yesterday, that a particular credential is configured, or that you encountered and solved a specific TypeScript error last week.
14
-
15
- With project memory, the agent loads a root index at session start, sees what has been recorded, and can retrieve detail on demand. Error patterns are matched before diagnosis. Deployment state is available before deploying again. The agent can say "I've seen this before -- here's the fix" instead of repeating the same diagnostic process.
16
-
17
- ## Architecture
18
-
19
- Memory is organized as a hierarchical index tree. Every directory has an `index.md` that maps to its children -- either content files or subdirectories with their own indexes.
20
-
21
- **The invariant:** A reader always starts at the root index and drills down. The agent reads `memory/index.md` at session start. It reads individual topic files on demand when the user asks about that topic or the agent is about to perform an action in that domain.
22
-
23
- **The scaling rule:** When a content file outgrows a single document, it graduates into a subdirectory:
24
-
25
- 1. `topic.md` becomes `topic/index.md` + sub-files
26
- 2. The parent index updates its link from `topic.md` to `topic/index.md`
27
- 3. The new sub-index maps to the sub-files
28
-
29
- This pattern is recursive. Subdirectories can split further as needed. The agent applies its own judgment about when a file has grown past usefulness as a single document.
30
-
31
- ### Starting Structure
32
-
33
- After `/meta init` and a first deployment, the structure looks like this:
34
-
35
- ```
36
- .claude/memory/
37
- ├── index.md # Root index -- read at session start
38
- ├── profile/ # Developer profile (created by /meta init)
39
- │ ├── index.md # Profile summary with links to sub-files
40
- │ ├── identity.md # Organization, industry, goals, integrations
41
- │ ├── skills.md # Skill dimensions and Growth Log
42
- │ └── preferences.md # Verbosity, guidance style, interaction patterns
43
- ├── deployment-state.md # Deploy IDs, resource inventory, org info
44
- ├── environment.md # Credentials, API keys, env vars
45
- ├── decisions.md # Architectural decisions and patterns
46
- └── errors/ # Subdirectory -- multiple categories
47
- ├── index.md # Error category summary with counts
48
- ├── deploy.md # Deployment error patterns
49
- ├── runtime.md # Runtime execution error patterns
50
- └── typescript.md # Type and build error patterns
51
- ```
52
-
53
- Profile tracking starts as a subdirectory because it has natural sub-topics from day one (identity, skills, preferences). Error tracking starts as a subdirectory because it naturally spans multiple categories. Other topics start as flat files.
54
-
55
- ### Grown Structure
56
-
57
- As a project matures, other topics may split:
58
-
59
- ```
60
- .claude/memory/
61
- ├── index.md
62
- ├── environment.md
63
- ├── decisions.md
64
- ├── deployment-state/ # Grew large enough to split
65
- │ ├── index.md
66
- │ ├── resources.md
67
- │ └── history.md
68
- └── errors/
69
- ├── index.md
70
- ├── deploy.md
71
- ├── typescript.md
72
- └── runtime/ # Runtime errors grew further
73
- ├── index.md
74
- ├── lead-scorer.md
75
- └── email-sender.md
76
- ```
77
-
78
- ## Memory Topics
79
-
80
- ### Developer Profile
81
-
82
- The `profile/` directory stores the developer's personal context -- organization details, skill levels, goals, and interaction preferences. It is created during `/meta init` guided setup and is the first thing the root index links to.
83
-
84
- ```
85
- .claude/memory/profile/
86
- ├── index.md # Profile summary with links to sub-files
87
- ├── identity.md # Organization, industry, goals, integrations
88
- ├── skills.md # Skill dimensions and Growth Log
89
- └── preferences.md # Verbosity, guidance style, interaction patterns
90
- ```
91
-
92
- **`identity.md`** records the organization name, industry, size, project goals, and known tool integrations. Example:
93
-
94
- ```markdown
95
- # Identity
96
-
97
- | Field | Value |
98
- | --- | --- |
99
- | Organization | Acme Corp |
100
- | Industry | E-commerce |
101
- | Size | 10-50 |
102
-
103
- ## Project Goals
104
-
105
- - Automate lead scoring from Attio CRM
106
- - Send follow-up emails via Resend
107
- - Weekly pipeline reports
108
-
109
- ## Known Integrations
110
-
111
- - Attio (CRM)
112
- - Resend (email)
113
- - Google Sheets (reporting)
114
- ```
115
-
116
- **`skills.md`** stores four skill dimensions as structured values so the Adaptive Guidance rules in [Interaction Guidance](interaction-guidance.mdx) can apply them consistently. It also tracks a Growth Log so the agent can detect when a level upgrade is warranted. Example:
117
-
118
- ```markdown
119
- # Skills
120
-
121
- | Dimension | Level | Since |
122
- | --- | --- | --- |
123
- | platformNavigation | oriented | 2026-02-25 |
124
- | apiIntegration | basic | 2026-02-25 |
125
- | automation | low-code | 2026-02-25 |
126
- | domainExpertise | high | 2026-02-25 |
127
-
128
- ## Growth Log
129
-
130
- | Date | Observation | Dimension | Change |
131
- | --- | --- | --- | --- |
132
- | 2026-03-01 | Navigated to Execution Logs and filtered by resource without direction | platformNavigation | none -> oriented |
133
- ```
134
-
135
- Valid levels per dimension:
136
-
137
- - `platformNavigation`: none / oriented / comfortable
138
- - `apiIntegration`: none / basic / proficient
139
- - `automation`: none / low-code / custom
140
- - `domainExpertise`: high / low
141
-
142
- **`preferences.md`** stores verbosity and proactive guidance settings. Example:
143
-
144
- ```markdown
145
- # Preferences
146
-
147
- | Setting | Value |
148
- | --- | --- |
149
- | Verbosity | detailed |
150
- | Proactive guidance | yes |
151
- ```
152
-
153
- ### Root Index
154
-
155
- `memory/index.md` is the only file read at session start. It lists all topics with their last-updated dates, giving the agent enough context to know what has been recorded without loading any detail.
156
-
157
- ```markdown
158
- # Project Memory
159
-
160
- Agent-maintained cross-session knowledge base. Updated automatically.
161
-
162
- | Entry | Topic | Last Updated |
163
- | --- | --- | --- |
164
- | [profile/](profile/index.md) | Developer profile (skills, identity, preferences) | 2026-02-25 |
165
- | [deployment-state.md](deployment-state.md) | Deploy history, resource inventory, org info | 2026-02-25 |
166
- | [environment.md](environment.md) | Credentials, API keys, env vars | 2026-02-25 |
167
- | [decisions.md](decisions.md) | Architectural decisions and patterns | 2026-02-26 |
168
- | [errors/](errors/index.md) | Error patterns by category | 2026-02-26 |
169
- ```
170
-
171
- Subdirectory entries link to their `index.md` rather than the directory itself.
172
-
173
- ### Deployment State
174
-
175
- `deployment-state.md` tracks the most recent deploy and resource inventory. The agent updates it after every successful deployment.
176
-
177
- ```markdown
178
- # Deployment State
179
-
180
- ## Latest Deploy
181
-
182
- | Field | Value |
183
- | --- | --- |
184
- | Date | 2026-02-26 |
185
- | Deploy ID | dep_abc123 |
186
- | Resource count | 2 |
187
- | Organization | acme-corp |
188
-
189
- ## Resources
190
-
191
- - `echo` (workflow, dev) -- echoes input, starter resource
192
- - `lead-scorer` (workflow, prod) -- scores leads from Attio
193
-
194
- ## Deploy History
195
-
196
- | Date | Deploy ID | Resources | Status |
197
- | --- | --- | --- | --- |
198
- | 2026-02-26 | dep_abc123 | 2 | success |
199
- | 2026-02-25 | dep_xyz789 | 1 | success |
200
- ```
201
-
202
- ### Environment
203
-
204
- `environment.md` records discovered credentials and environment variable status. The agent updates it when credentials are confirmed via the command center or deployment output.
205
-
206
- ### Decisions
207
-
208
- `decisions.md` captures architectural choices as a table: which tools were chosen, what patterns were established, and why. The agent adds a row when the user makes a significant decision during development.
209
-
210
- ## Error Tracking
211
-
212
- Error tracking is the first memory topic to outgrow a flat file. It starts as a subdirectory with one file per error category.
213
-
214
- ### Error Index
215
-
216
- `errors/index.md` provides a high-level summary of known error patterns by category. The agent reads this file (via the root index) at session start.
217
-
218
- ```markdown
219
- # Error Patterns
220
-
221
- Error pattern tracking by category. Updated when errors are diagnosed and resolved.
222
-
223
- | Entry | Category | Patterns | Total Occurrences | Last Seen |
224
- | --- | --- | --- | --- | --- |
225
- | [deploy.md](deploy.md) | Deployment | 2 | 3 | 2026-02-26 |
226
- | [runtime.md](runtime.md) | Runtime | 1 | 1 | 2026-02-26 |
227
- | [typescript.md](typescript.md) | TypeScript | 1 | 2 | 2026-02-25 |
228
- ```
229
-
230
- - **Patterns** -- count of unique error patterns in the category file
231
- - **Total Occurrences** -- sum of all occurrences across patterns
232
- - **Last Seen** -- most recent date any error in this category was seen
233
-
234
- ### Category Files
235
-
236
- Each category file is a table of known error patterns with resolutions:
237
-
238
- ```markdown
239
- # Deploy Errors
240
-
241
- | Last Seen | Error | Resolution | Occurrences |
242
- | --- | --- | --- | --- |
243
- | 2026-02-25 | `ELEVASIS_PLATFORM_KEY not set` | Added key to `.env` | 2 |
244
- | 2026-02-26 | `Schema validation: missing outputSchema` | Added Zod output schema to workflow | 1 |
245
- ```
246
-
247
- Runtime errors include the resource name since the same error in different resources may have different causes:
248
-
249
- ```markdown
250
- # Runtime Errors
251
-
252
- | Last Seen | Resource | Error | Resolution | Occurrences |
253
- | --- | --- | --- | --- | --- |
254
- | 2026-02-26 | lead-scorer | `PlatformToolError: credential not found` | Set credential via `elevasis-sdk env set` | 1 |
255
- ```
256
-
257
- ### Error Resolution Flow
258
-
259
- When the agent encounters an error, it follows this sequence:
260
-
261
- 1. Checks `memory/errors/index.md` (already loaded via root index) for a matching category
262
- 2. If the relevant category has known patterns, reads the category file
263
- 3. If a match exists, applies the known resolution immediately -- "I've seen this before, here's the fix"
264
- 4. If no match exists, diagnoses normally, then logs the new pattern
265
-
266
- When the agent logs a resolved error:
267
-
268
- 1. Reads the relevant category file (e.g., `memory/errors/deploy.md`)
269
- 2. If the pattern already exists, increments `Occurrences` and updates `Last Seen`
270
- 3. If it is a new pattern, adds a new row
271
- 4. Updates the error index: recalculates `Patterns`, `Total Occurrences`, and `Last Seen`
272
- 5. If the category file does not exist yet, creates it and adds a row to the error index
273
-
274
- ## Scaling Rule
275
-
276
- When a file has grown past usefulness as a single document -- too many rows to scan, too many unrelated concerns, or too much context to load for a targeted lookup -- split it into a subdirectory.
277
-
278
- **Before split:**
279
-
280
- ```
281
- memory/
282
- ├── index.md
283
- └── deployment-state.md # entry: deployment-state.md
284
- ```
285
-
286
- **After split:**
287
-
288
- ```
289
- memory/
290
- ├── index.md # entry updated: deployment-state/ -> deployment-state/index.md
291
- └── deployment-state/
292
- ├── index.md
293
- ├── resources.md
294
- └── history.md
295
- ```
296
-
297
- The parent index link changes from `deployment-state.md` to `deployment-state/index.md`. The new sub-index maps to the sub-files. The agent applies this pattern at every depth level.
298
-
299
- ## Maintenance
300
-
301
- ### Pruning
302
-
303
- Keep content useful, not exhaustive:
304
-
305
- - Keep the most recent ~20 entries in tables that grow over time (deploy history, error patterns)
306
- - Drop patterns that have not recurred in 30 or more days unless the resolution was non-obvious
307
- - Summarize if patterns are worth preserving but detail is not
308
-
309
- ### Index Hygiene
310
-
311
- - If a file exists but is not in its parent index, add it
312
- - If an index references a missing file, remove the row
313
-
314
- The agent self-heals on read. Index hygiene is applied as part of normal session operation.
315
-
316
- ### Promotion
317
-
318
- If an error pattern recurs 3 or more times, promote it to a rule in the `CLAUDE.md` Rules section. Rules prevent errors rather than diagnosing them.
319
-
320
- ## Relationship to Claude Code Auto-Memory
321
-
322
- Claude Code's auto-memory (`MEMORY.md`) and project memory (`.claude/memory/`) are complementary -- both should be active. Auto-memory captures organic discoveries; project memory captures structured project state that `CLAUDE.md` explicitly instructs the agent to record.
323
-
324
- ---
325
-
326
- **Last Updated:** 2026-02-25