@elevasis/sdk 1.44.3 → 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.
- package/dist/cli.cjs +991 -650
- package/dist/index.d.ts +1045 -509
- package/dist/index.js +738 -688
- package/dist/node/index.d.ts +105 -97
- package/dist/test-utils/index.d.ts +42 -28
- package/dist/test-utils/index.js +514 -783
- package/dist/worker/index.d.ts +12112 -0
- package/dist/worker/index.js +121 -182
- package/package.json +6 -9
- package/reference/_navigation.md +151 -21
- package/reference/_reference-manifest.json +186 -4
- package/reference/claude-config.md +8 -0
- package/reference/core/index.mdx +3 -3
- package/reference/examples/organization-model.ts +117 -111
- package/reference/index.mdx +4 -4
- package/reference/rules/active-change-index.md +40 -54
- package/reference/rules/agent-runtime.md +81 -0
- package/reference/rules/agent-start-here.md +71 -163
- package/reference/rules/deployment.md +33 -10
- package/reference/rules/error-handling.md +26 -0
- package/reference/rules/execution.md +13 -0
- package/reference/rules/frontend.md +10 -3
- package/reference/rules/observability.md +9 -1
- package/reference/rules/operations.md +26 -17
- package/reference/rules/organization-model.md +74 -88
- package/reference/rules/organization-os.md +71 -88
- package/reference/rules/package-taxonomy.md +11 -2
- package/reference/rules/platform.md +13 -7
- package/reference/rules/shared-types.md +15 -0
- package/reference/rules/task-tracking.md +30 -5
- package/reference/rules/ui.md +145 -3
- package/reference/rules/vibe-intents.md +271 -0
- package/reference/rules/vibe.md +17 -243
- package/reference/scaffold/core/organization-graph.mdx +111 -97
- package/reference/scaffold/core/organization-model.mdx +234 -214
- package/reference/scaffold/operations/propagation-pipeline.md +1 -1
- package/reference/scaffold/operations/scaffold-maintenance.md +19 -18
- package/reference/scaffold/operations/workflow-recipes.md +71 -19
- package/reference/scaffold/recipes/add-a-feature.md +156 -146
- package/reference/scaffold/recipes/add-a-resource.md +123 -117
- package/reference/scaffold/recipes/customize-crm-actions.md +25 -10
- package/reference/scaffold/recipes/customize-knowledge-browser.md +52 -117
- package/reference/scaffold/recipes/customize-organization-model.md +161 -149
- package/reference/scaffold/recipes/extend-a-base-entity.md +156 -140
- package/reference/scaffold/recipes/extend-crm.md +16 -11
- package/reference/scaffold/recipes/extend-lead-gen.md +25 -7
- package/reference/scaffold/recipes/gate-by-feature-or-admin.md +160 -118
- package/reference/scaffold/recipes/index.md +2 -2
- package/reference/scaffold/recipes/query-the-knowledge-graph.md +23 -23
- package/reference/scaffold/reference/contracts.md +12 -1
- package/reference/scaffold/reference/glossary.md +3 -3
- package/reference/scaffold/reference/system-interface-capabilities.md +5 -4
- package/reference/scaffold/ui/composition-extensibility.mdx +271 -232
- package/reference/scaffold/ui/feature-flags-and-gating.md +14 -6
- package/reference/scaffold/ui/feature-shell.mdx +279 -62
- package/reference/scaffold/ui/recipes.md +229 -197
- package/reference/sdk/cli-management.mdx +77 -29
- package/reference/sdk/concepts.mdx +2 -0
- package/reference/sdk/define-builders.mdx +76 -0
- package/reference/sdk/deployment/command-center.mdx +6 -2
- package/reference/sdk/deployment/execution-reference.mdx +64 -186
- package/reference/sdk/deployment/index.mdx +2 -0
- package/reference/sdk/exports.mdx +4 -4
- package/reference/sdk/framework/agent.mdx +49 -119
- package/reference/sdk/framework/index.mdx +46 -65
- package/reference/sdk/framework/project-structure.mdx +150 -205
- package/reference/sdk/framework/tutorial-system.mdx +2 -2
- package/reference/sdk/human-in-the-loop.mdx +152 -0
- package/reference/sdk/index.mdx +6 -7
- package/reference/sdk/platform-tools/index.mdx +12 -0
- package/reference/sdk/platform-tools/type-safety.mdx +4 -0
- package/reference/sdk/project-deployment-spec.mdx +131 -0
- package/reference/sdk/resources/index.mdx +21 -7
- package/reference/sdk/resources/patterns.mdx +54 -24
- package/reference/sdk/resources/types.mdx +7 -4
- package/reference/sdk/templates/data-enrichment.mdx +7 -3
- package/reference/sdk/templates/email-sender.mdx +139 -135
- package/reference/sdk/templates/lead-scorer.mdx +5 -1
- package/reference/sdk/templates/pdf-generator.mdx +155 -151
- package/reference/sdk/templates/recurring-job.mdx +195 -189
- package/reference/sdk/templates/text-classifier.mdx +4 -0
- package/reference/sdk/templates/web-scraper.mdx +139 -135
- package/reference/spine/spine-primer.md +135 -96
- package/reference/ui/index.mdx +14 -7
- package/dist/types/worker/adapters/anymailfinder.d.ts +0 -14
- package/dist/types/worker/adapters/apify.d.ts +0 -14
- package/dist/types/worker/adapters/approval.d.ts +0 -23
- package/dist/types/worker/adapters/attio.d.ts +0 -22
- package/dist/types/worker/adapters/clickup.d.ts +0 -22
- package/dist/types/worker/adapters/create-adapter.d.ts +0 -41
- package/dist/types/worker/adapters/crm.d.ts +0 -20
- package/dist/types/worker/adapters/dropbox.d.ts +0 -14
- package/dist/types/worker/adapters/email.d.ts +0 -25
- package/dist/types/worker/adapters/execution.d.ts +0 -22
- package/dist/types/worker/adapters/gmail.d.ts +0 -14
- package/dist/types/worker/adapters/google-sheets.d.ts +0 -14
- package/dist/types/worker/adapters/index.d.ts +0 -33
- package/dist/types/worker/adapters/instantly.d.ts +0 -14
- package/dist/types/worker/adapters/lead.d.ts +0 -28
- package/dist/types/worker/adapters/list.d.ts +0 -9
- package/dist/types/worker/adapters/llm.d.ts +0 -45
- package/dist/types/worker/adapters/millionverifier.d.ts +0 -14
- package/dist/types/worker/adapters/notification.d.ts +0 -28
- package/dist/types/worker/adapters/pdf.d.ts +0 -22
- package/dist/types/worker/adapters/projects.d.ts +0 -20
- package/dist/types/worker/adapters/resend.d.ts +0 -14
- package/dist/types/worker/adapters/scheduler.d.ts +0 -25
- package/dist/types/worker/adapters/signature-api.d.ts +0 -14
- package/dist/types/worker/adapters/storage.d.ts +0 -33
- package/dist/types/worker/adapters/stripe.d.ts +0 -14
- package/dist/types/worker/adapters/tomba.d.ts +0 -14
- package/dist/types/worker/index.d.ts +0 -60
- package/dist/types/worker/platform.d.ts +0 -90
- package/dist/types/worker/utils.d.ts +0 -9
- package/reference/claude-config/Overview.md +0 -230
- package/reference/claude-config/hooks/post-edit-validate.mjs +0 -98
- package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +0 -187
- package/reference/claude-config/hooks/tool-failure-recovery.mjs +0 -73
- package/reference/claude-config/registries/graph-skills.json +0 -4
- package/reference/claude-config/registries/knowledge-flags.json +0 -154
- package/reference/claude-config/registries/skill-coverage.json +0 -20
- package/reference/claude-config/rules/active-change-index.md +0 -22
- package/reference/claude-config/rules/agent-start-here.md +0 -22
- package/reference/claude-config/rules/deployment.md +0 -22
- package/reference/claude-config/rules/error-handling.md +0 -22
- package/reference/claude-config/rules/execution.md +0 -22
- package/reference/claude-config/rules/frontend.md +0 -22
- package/reference/claude-config/rules/observability.md +0 -22
- package/reference/claude-config/rules/operations.md +0 -22
- package/reference/claude-config/rules/organization-model.md +0 -22
- package/reference/claude-config/rules/organization-os.md +0 -22
- package/reference/claude-config/rules/package-taxonomy.md +0 -22
- package/reference/claude-config/rules/platform.md +0 -22
- package/reference/claude-config/rules/shared-types.md +0 -22
- package/reference/claude-config/rules/task-tracking.md +0 -22
- package/reference/claude-config/rules/topbar-actions.md +0 -70
- package/reference/claude-config/rules/ui.md +0 -22
- package/reference/claude-config/rules/vibe.md +0 -22
- package/reference/claude-config/scripts/statusline-command.js +0 -18
- package/reference/claude-config/settings.json +0 -30
- package/reference/claude-config/skills/client/SKILL.md +0 -201
- package/reference/claude-config/skills/deploy/SKILL.md +0 -159
- package/reference/claude-config/skills/dsp/SKILL.md +0 -66
- package/reference/claude-config/skills/elevasis/SKILL.md +0 -251
- package/reference/claude-config/skills/explore/SKILL.md +0 -78
- package/reference/claude-config/skills/git-sync/SKILL.md +0 -166
- package/reference/claude-config/skills/om/SKILL.md +0 -475
- package/reference/claude-config/skills/om/operations/build.md +0 -237
- package/reference/claude-config/skills/om/operations/codify-level-a.md +0 -109
- package/reference/claude-config/skills/om/operations/codify-level-b.md +0 -159
- package/reference/claude-config/skills/om/operations/customers.md +0 -114
- package/reference/claude-config/skills/om/operations/features.md +0 -88
- package/reference/claude-config/skills/om/operations/goals.md +0 -123
- package/reference/claude-config/skills/om/operations/identity.md +0 -97
- package/reference/claude-config/skills/om/operations/labels.md +0 -110
- package/reference/claude-config/skills/om/operations/offerings.md +0 -114
- package/reference/claude-config/skills/om/operations/roles.md +0 -104
- package/reference/claude-config/skills/om/operations/scaffold.md +0 -163
- package/reference/claude-config/skills/om/operations/techStack.md +0 -38
- package/reference/claude-config/skills/project/SKILL.md +0 -1114
- package/reference/claude-config/skills/run-ui/SKILL.md +0 -73
- package/reference/claude-config/skills/save/SKILL.md +0 -183
- package/reference/claude-config/skills/setup/SKILL.md +0 -290
- package/reference/claude-config/skills/status/SKILL.md +0 -59
- package/reference/claude-config/skills/submit-request/SKILL.md +0 -180
- package/reference/claude-config/skills/sync/SKILL.md +0 -47
- package/reference/claude-config/skills/tutorial/SKILL.md +0 -259
- package/reference/claude-config/skills/tutorial/progress-template.md +0 -74
- package/reference/claude-config/skills/tutorial/technical.md +0 -1303
- package/reference/claude-config/skills/tutorial/vibe-coder.md +0 -890
- package/reference/claude-config/sync-notes/2026-04-22-git-sync-and-sync-notes.md +0 -27
- package/reference/claude-config/sync-notes/2026-04-22-lead-gen-deliverability-removal.md +0 -30
- package/reference/claude-config/sync-notes/2026-04-24-test-utils-and-template-tests.md +0 -73
- package/reference/claude-config/sync-notes/2026-04-24-ui-consolidation-and-sdk-cli-train.md +0 -86
- package/reference/claude-config/sync-notes/2026-04-25-auth-role-system-and-settings-roles.md +0 -55
- package/reference/claude-config/sync-notes/2026-04-27-crm-hitl-action-layer-cutover.md +0 -97
- package/reference/claude-config/sync-notes/2026-04-27-lead-gen-substrate-train.md +0 -112
- package/reference/claude-config/sync-notes/2026-04-29-crm-state-and-lead-gen-processing-status.md +0 -93
- package/reference/claude-config/sync-notes/2026-05-02-crm-ownership-next-action.md +0 -58
- package/reference/claude-config/sync-notes/2026-05-02-template-hardcode-workos-config.md +0 -56
- package/reference/claude-config/sync-notes/2026-05-04-elevasis-workspace.md +0 -71
- package/reference/claude-config/sync-notes/2026-05-04-knowledge-bundle.md +0 -83
- package/reference/claude-config/sync-notes/2026-05-04-template-skills-run-ui-and-tutorial.md +0 -59
- package/reference/claude-config/sync-notes/2026-05-05-list-builder.md +0 -42
- package/reference/claude-config/sync-notes/2026-05-06-crm-spine.md +0 -60
- package/reference/claude-config/sync-notes/2026-05-06-sdk-changes-release-train.md +0 -37
- package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +0 -34
- package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +0 -38
- package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +0 -32
- package/reference/claude-config/sync-notes/2026-05-09-command-system.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +0 -69
- package/reference/claude-config/sync-notes/2026-05-12-sdk-ready-release-train.md +0 -30
- package/reference/claude-config/sync-notes/2026-05-14-organization-model-ontology-refactor.md +0 -45
- package/reference/claude-config/sync-notes/2026-05-15-om-skill-rename-and-write-family.md +0 -52
- package/reference/claude-config/sync-notes/2026-05-17-sdk-boundary-consolidation.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +0 -32
- package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +0 -43
- package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +0 -40
- package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +0 -61
- package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +0 -49
- package/reference/claude-config/sync-notes/2026-05-23-lead-gen-manage-access.md +0 -31
- package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +0 -42
- package/reference/claude-config/sync-notes/2026-05-23-om-full-model-deploy-contract.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-23-ui-sdk-package-fixes.md +0 -37
- package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +0 -28
- package/reference/claude-config/sync-notes/2026-05-24-system-interface-readiness.md +0 -43
- package/reference/claude-config/sync-notes/2026-05-25-invitation-login-loader.md +0 -26
- package/reference/claude-config/sync-notes/2026-05-25-om-topbar-requests.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-25-system-interface-profile-registry-and-substrate.md +0 -35
- package/reference/claude-config/sync-notes/2026-05-25-tenant-om-scaffold-cli.md +0 -49
- package/reference/claude-config/sync-notes/2026-05-25-vibe-operate-intent.md +0 -47
- package/reference/claude-config/sync-notes/2026-05-28-om-snapshot-sdk-workflow-config.md +0 -33
- package/reference/claude-config/sync-notes/2026-05-30-client-source-and-om-profiles.md +0 -39
- package/reference/claude-config/sync-notes/2026-06-02-knowledge-nested-group-routing.md +0 -27
- package/reference/claude-config/sync-notes/2026-06-02-nest-projects-under-platform.md +0 -45
- package/reference/claude-config/sync-notes/2026-06-03-skill-autogen-and-client-skill.md +0 -34
- package/reference/claude-config/sync-notes/2026-06-04-scaffold-registry-lane-severity.md +0 -34
- package/reference/claude-config/sync-notes/2026-06-05-appearance-app-mode-decouple.md +0 -29
- package/reference/claude-config/sync-notes/2026-06-05-ontology-endpoint-rename-and-knowledge-browser-ui.md +0 -86
- package/reference/claude-config/sync-notes/2026-06-06-om-build-systems-scaffold.md +0 -47
- package/reference/claude-config/sync-notes/2026-06-06-om-item-copy-references.md +0 -50
- package/reference/claude-config/sync-notes/2026-06-08-knowledge-base-page-not-found-fix.md +0 -76
- package/reference/claude-config/sync-notes/2026-06-09-agent-sessions-public-agent-chat-route.md +0 -75
- package/reference/claude-config/sync-notes/2026-06-09-sdk-cli-load-org-model-resolution.md +0 -42
- package/reference/claude-config/sync-notes/2026-06-12-agent-grants-visualizer-operations.md +0 -30
- package/reference/claude-config/sync-notes/2026-06-14-session-ux-and-project-cli-json.md +0 -33
- package/reference/claude-config/sync-notes/2026-06-14-shared-session-conversation-view.md +0 -26
- package/reference/claude-config/sync-notes/2026-06-15-session-chat-zero-wiring.md +0 -46
- package/reference/claude-config/sync-notes/2026-06-17-agent-session-ux-features.md +0 -34
- package/reference/claude-config/sync-notes/2026-06-25-shared-page-scroll-contract-guard.md +0 -52
- package/reference/claude-config/sync-notes/2026-06-26-leadgen-overview-om-telemetry.md +0 -47
- package/reference/claude-config/sync-notes/2026-07-21-agent-scaffold-hardening.md +0 -75
- package/reference/claude-config/sync-notes/2026-07-23-agent-session-memory.md +0 -49
- package/reference/claude-config/sync-notes/2026-07-23-workos-org-marker.md +0 -50
- package/reference/claude-config/sync-notes/2026-07-24-claude-5-models-and-session-surface-fixes.md +0 -116
- package/reference/claude-config/sync-notes/2026-07-27-agent-strict-output-and-turn-drift.md +0 -73
- package/reference/claude-config/sync-notes/2026-07-28-agent-reply-is-its-own-field.md +0 -84
- package/reference/claude-config/sync-notes/2026-07-30-login-screen-and-member-provisioning-state.md +0 -114
- package/reference/claude-config/sync-notes/2026-08-02-auth-guard-defaults-and-truncation-fix.md +0 -122
- package/reference/claude-config/sync-notes/2026-08-03-agent-prose-escape-normalization.md +0 -88
- package/reference/claude-config/sync-notes/2026-08-03-cli-gateway-errors-and-request-timeout.md +0 -120
- package/reference/claude-config/sync-notes/README.md +0 -43
- package/reference/sdk/framework/interaction-guidance.mdx +0 -182
- package/reference/sdk/framework/memory.mdx +0 -326
- package/reference/sdk/framework/resource-documentation.mdx +0 -90
- package/reference/sdk/roadmap.mdx +0 -164
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# Agent prose is repaired before it is stored
|
|
2
|
-
|
|
3
|
-
## Why this note exists
|
|
4
|
-
|
|
5
|
-
**Your agents have been writing the two characters `\n` into their replies where a line break
|
|
6
|
-
belongs, and `\"` where a quotation mark belongs.** The operator reads `\n\n` in the middle of a
|
|
7
|
-
sentence, and the stored transcript keeps those characters forever.
|
|
8
|
-
|
|
9
|
-
Measured on 2026-08-03 across four 14-turn production sessions on a live tenant agent — 56 assistant
|
|
10
|
-
replies:
|
|
11
|
-
|
|
12
|
-
| Surface | Rows | Rows affected | Literal `\n` | Literal `\"` |
|
|
13
|
-
| ----------- | ---- | ------------- | ------------ | ------------ |
|
|
14
|
-
| `message` | 56 | 28 | 111 | 146 |
|
|
15
|
-
| `reasoning` | 56 | 1 | 4 | 0 |
|
|
16
|
-
|
|
17
|
-
Half the replies were affected. This is a different defect from the em-dash corruption in
|
|
18
|
-
`2026-07-28-agent-reply-is-its-own-field.md`, and that fix still holds — em-dashes were clean across
|
|
19
|
-
all 56 replies here. This one is on the field that fix created.
|
|
20
|
-
|
|
21
|
-
**The model is choosing the wrong characters, not the wrong encoding.** Three replies carried one
|
|
22
|
-
paragraph break written as real newlines and another written as the two characters, inside the
|
|
23
|
-
_same string_. No serialization layer produces that — a layer that escapes, escapes everything. So
|
|
24
|
-
there is nothing to wait for on the provider side: the output is valid JSON, it satisfies the
|
|
25
|
-
response schema, and no parser can tell the difference.
|
|
26
|
-
|
|
27
|
-
**It also feeds back.** Assistant text is replayed verbatim into the next turn as trusted context,
|
|
28
|
-
so a damaged reply becomes evidence to the model of how this agent writes.
|
|
29
|
-
|
|
30
|
-
The runtime now repairs it deterministically at the single point where model output is validated —
|
|
31
|
-
upstream of persist, stream, render, and replay. `\n`, `\r\n`, `\t`, and `\"` are converted to the
|
|
32
|
-
characters they denote in `message`, in `reasoning`, and in session-memory values.
|
|
33
|
-
|
|
34
|
-
## Applies to
|
|
35
|
-
|
|
36
|
-
- **Every agent, not only session-capable ones.** `reasoning` and `memoryOps` are normalized on all
|
|
37
|
-
agents; `message` on the ones that have it.
|
|
38
|
-
- **Session memory especially.** A stored memory value is re-sent on every iteration of every
|
|
39
|
-
later turn and never ages out, so one literal escape stored there is one the model re-reads for
|
|
40
|
-
the life of the session. This surface had never been measured before this train.
|
|
41
|
-
- **No agent definition changes are required.** You do not edit your agents. The repair lives in the
|
|
42
|
-
runtime your bundle carries.
|
|
43
|
-
|
|
44
|
-
## Two behaviors worth knowing
|
|
45
|
-
|
|
46
|
-
1. **The normalizer is not markdown-aware.** A fenced code block or inline span containing a literal
|
|
47
|
-
`\n` **is** converted. This was a deliberate trade: a reply whose line breaks are all literal has
|
|
48
|
-
no line structure for a fence to start on, so the replies most in need of repair are exactly the
|
|
49
|
-
ones a fence scan would fail to parse. If you run an agent that discusses escape sequences or
|
|
50
|
-
regexes in its user-facing prose, this is the case to check.
|
|
51
|
-
2. **A doubled backslash is left alone**, and JSON-shaped memory values are skipped entirely — so a
|
|
52
|
-
stored JSON blob keeps its internal escaping and still parses.
|
|
53
|
-
|
|
54
|
-
## Required actions
|
|
55
|
-
|
|
56
|
-
1. **Take the `@elevasis/sdk` baseline bump** this train propagates, then reinstall in `operations/`
|
|
57
|
-
so the new worker bundle is present.
|
|
58
|
-
2. **Redeploy your operations bundle.** This is the step that closes the defect. The agent loop is
|
|
59
|
-
inlined into your deployed bundle, so an existing deployment keeps emitting damaged prose until
|
|
60
|
-
it is redeployed:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
pnpm -C operations exec elevasis-sdk deploy --prod
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
A platform-side deploy does not fix this for you, and neither does the reinstall on its own.
|
|
67
|
-
|
|
68
|
-
3. **Do not treat existing transcripts as clean.** No backfill is performed. Replies and memory
|
|
69
|
-
snapshots written before your redeploy keep the literal escapes they already have. Memory
|
|
70
|
-
snapshots in particular are live agent state, and rewriting them mid-session was judged riskier
|
|
71
|
-
than the damage.
|
|
72
|
-
|
|
73
|
-
## Verification
|
|
74
|
-
|
|
75
|
-
- Run a multi-turn session and ask for a reply with paragraph structure — a short summary in two or
|
|
76
|
-
three paragraphs is enough. Read the reply: the signature failure is a visible `\n\n` between
|
|
77
|
-
sentences, or a quotation mark rendered as `\"`.
|
|
78
|
-
- **Check a reply containing quoted speech.** Quote escapes were the larger surface (146 of 257
|
|
79
|
-
measured occurrences), and one measured reply carried six of them with no newline escapes at all —
|
|
80
|
-
so a reply can be damaged purely on quotes and look fine structurally.
|
|
81
|
-
- If your agent declares `memoryPreferences`, run enough turns for it to write session memory, then
|
|
82
|
-
confirm a stored value comes back with real line breaks rather than literal ones.
|
|
83
|
-
|
|
84
|
-
## Not handled by /git-sync
|
|
85
|
-
|
|
86
|
-
- **The redeploy.** `/git-sync` commits and pushes the propagated dependency baseline. Your deployed
|
|
87
|
-
agents keep producing damaged prose until you run action 2 above.
|
|
88
|
-
- **Repairing existing transcripts or memory snapshots.** No backfill is performed, by decision.
|
package/reference/claude-config/sync-notes/2026-08-03-cli-gateway-errors-and-request-timeout.md
DELETED
|
@@ -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
|