@elevasis/sdk 1.28.0 → 1.29.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 (53) hide show
  1. package/dist/cli.cjs +8 -2
  2. package/dist/index.d.ts +18 -0
  3. package/dist/index.js +4 -0
  4. package/dist/test-utils/index.d.ts +18 -0
  5. package/dist/test-utils/index.js +2 -0
  6. package/package.json +4 -4
  7. package/reference/_navigation.md +4 -4
  8. package/reference/_reference-manifest.json +8 -8
  9. package/reference/claude-config/hooks/scaffold-registry-reminder.mjs +3 -3
  10. package/reference/claude-config/skills/tutorial/technical.md +5 -5
  11. package/reference/claude-config/sync-notes/2026-05-24-platform-invite-router-core-baseline.md +28 -0
  12. package/reference/core/exports.mdx +16 -0
  13. package/reference/core/index.mdx +58 -0
  14. package/reference/index.mdx +36 -67
  15. package/reference/scaffold/operations/propagation-pipeline.md +152 -152
  16. package/reference/{cli-management.mdx → sdk/cli-management.mdx} +159 -13
  17. package/reference/{cli.mdx → sdk/cli.mdx} +68 -12
  18. package/reference/sdk/exports.mdx +14 -0
  19. package/reference/sdk/index.mdx +93 -0
  20. package/reference/sdk/platform-tools/adapters-integration.mdx +25 -0
  21. package/reference/sdk/platform-tools/adapters-platform.mdx +24 -0
  22. package/reference/{platform-tools → sdk/platform-tools}/index.mdx +9 -30
  23. package/reference/{resources → sdk/resources}/patterns.mdx +29 -11
  24. package/reference/ui/exports.mdx +60 -0
  25. package/reference/ui/index.mdx +75 -0
  26. package/reference/platform-tools/adapters-integration.mdx +0 -300
  27. package/reference/platform-tools/adapters-platform.mdx +0 -552
  28. /package/reference/{concepts.mdx → sdk/concepts.mdx} +0 -0
  29. /package/reference/{deployment → sdk/deployment}/command-center.mdx +0 -0
  30. /package/reference/{deployment → sdk/deployment}/execution-reference.mdx +0 -0
  31. /package/reference/{deployment → sdk/deployment}/index.mdx +0 -0
  32. /package/reference/{framework → sdk/framework}/agent.mdx +0 -0
  33. /package/reference/{framework → sdk/framework}/index.mdx +0 -0
  34. /package/reference/{framework → sdk/framework}/interaction-guidance.mdx +0 -0
  35. /package/reference/{framework → sdk/framework}/memory.mdx +0 -0
  36. /package/reference/{framework → sdk/framework}/project-structure.mdx +0 -0
  37. /package/reference/{framework → sdk/framework}/resource-documentation.mdx +0 -0
  38. /package/reference/{framework → sdk/framework}/tutorial-system.mdx +0 -0
  39. /package/reference/{getting-started.mdx → sdk/getting-started.mdx} +0 -0
  40. /package/reference/{platform-tools → sdk/platform-tools}/type-safety.mdx +0 -0
  41. /package/reference/{resources → sdk/resources}/index.mdx +0 -0
  42. /package/reference/{resources → sdk/resources}/types.mdx +0 -0
  43. /package/reference/{roadmap.mdx → sdk/roadmap.mdx} +0 -0
  44. /package/reference/{runtime.mdx → sdk/runtime.mdx} +0 -0
  45. /package/reference/{templates → sdk/templates}/data-enrichment.mdx +0 -0
  46. /package/reference/{templates → sdk/templates}/email-sender.mdx +0 -0
  47. /package/reference/{templates → sdk/templates}/index.mdx +0 -0
  48. /package/reference/{templates → sdk/templates}/lead-scorer.mdx +0 -0
  49. /package/reference/{templates → sdk/templates}/pdf-generator.mdx +0 -0
  50. /package/reference/{templates → sdk/templates}/recurring-job.mdx +0 -0
  51. /package/reference/{templates → sdk/templates}/text-classifier.mdx +0 -0
  52. /package/reference/{templates → sdk/templates}/web-scraper.mdx +0 -0
  53. /package/reference/{troubleshooting.mdx → sdk/troubleshooting.mdx} +0 -0
@@ -405,36 +405,49 @@ elevasis-sdk describe onboard-client
405
405
 
406
406
  ## elevasis-sdk creds
407
407
 
408
- Manage credentials for your project.
408
+ Manage credentials for your organization. Credentials store API keys and secrets server-side so they never appear in your worker code.
409
409
 
410
410
  **Synopsis:**
411
411
 
412
412
  ```
413
413
  elevasis-sdk creds list
414
- elevasis-sdk creds set <key> <value>
415
- elevasis-sdk creds remove <key>
414
+ elevasis-sdk creds create --name <name> --type <type> [--value <json>]
415
+ elevasis-sdk creds update <name> --value <json>
416
+ elevasis-sdk creds rename <name> --to <newName>
417
+ elevasis-sdk creds delete <name> [--force]
416
418
  ```
417
419
 
418
- **Behavior:**
420
+ **Subcommands:**
419
421
 
420
- - `list` -- display all credentials configured for the project
421
- - `set` -- add or update a credential
422
- - `remove` -- delete a credential
422
+ - `list` -- display all credentials (metadata only, no secret values)
423
+ - `create` -- create a new credential; `--name` and `--type` are required; `--value` is an optional JSON string for the initial value
424
+ - `update <name>` -- replace the value of an existing credential; `--value` (JSON) is required
425
+ - `rename <name>` -- rename a credential; `--to <newName>` is required
426
+ - `delete <name>` -- delete a credential; pass `--force` to skip the confirmation prompt
423
427
 
424
428
  **Flags:**
425
429
 
426
- | Flag | Description |
427
- | ------------------- | ------------------------- |
428
- | `--api-url <url>` | Override the API base URL |
430
+ | Flag | Description |
431
+ | ------------------- | -------------------------------------------------- |
432
+ | `--name <name>` | Credential name (create: required) |
433
+ | `--type <type>` | Credential type, e.g. `api-key` (create: required) |
434
+ | `--value <json>` | Credential value as a JSON string |
435
+ | `--to <newName>` | New name (rename: required) |
436
+ | `--force` | Skip confirmation prompt (delete) |
437
+ | `--api-url <url>` | Override the API base URL |
429
438
 
430
439
  **Examples:**
431
440
 
432
441
  ```bash
433
442
  elevasis-sdk creds list
434
- elevasis-sdk creds set OPENAI_API_KEY sk-proj-***
435
- elevasis-sdk creds remove OPENAI_API_KEY
443
+ elevasis-sdk creds create --name openai-key --type api-key --value '{"key":"sk-proj-***"}'
444
+ elevasis-sdk creds update openai-key --value '{"key":"sk-proj-new"}'
445
+ elevasis-sdk creds rename openai-key --to openai-prod-key
446
+ elevasis-sdk creds delete openai-prod-key --force
436
447
  ```
437
448
 
449
+ **Implementation:** `packages/sdk/src/cli/commands/creds/creds.ts`
450
+
438
451
  ---
439
452
 
440
453
  ## elevasis-sdk rename
@@ -558,6 +571,49 @@ pnpm -C external/<project>/operations exec elevasis-sdk cli
558
571
 
559
572
  ---
560
573
 
574
+ ## elevasis-sdk doctor
575
+
576
+ Check that your Elevasis project is correctly configured.
577
+
578
+ **Synopsis:**
579
+
580
+ ```
581
+ elevasis-sdk doctor [--verbose]
582
+ ```
583
+
584
+ **Behavior:**
585
+
586
+ Runs four sequential checks and reports `[OK]` / `[FAIL]` / `[WARN]` for each. Exits with code 1 if any check fails. Later checks are skipped when a prerequisite fails.
587
+
588
+ 1. Project root resolved -- locates the `.elevasis` marker file from the current working directory
589
+ 2. `.env` found at project root
590
+ 3. `ELEVASIS_PLATFORM_KEY` present and non-empty
591
+ 4. API reachable and key valid -- calls `GET /api/external/health`
592
+
593
+ **Flags:**
594
+
595
+ | Flag | Description |
596
+ | ----------- | ------------------------------------------------------------------- |
597
+ | `--verbose` | Print full paths, response bodies, and error details for each check |
598
+
599
+ **Example output (all passing):**
600
+
601
+ ```
602
+ Running Elevasis SDK doctor checks...
603
+
604
+ [OK] Project root: /path/to/my-project
605
+ [OK] .env: Found at /path/to/my-project/.env
606
+ [OK] API key: Set (length: 56)
607
+ [OK] API: Reachable. Workspace: Acme Corp (ws_abc123)
608
+ [WARN] SDK compat: server minSdkVersion is 1.25.0; check is advisory in v1.
609
+
610
+ All checks passed. Your Elevasis project is correctly configured.
611
+ ```
612
+
613
+ **Implementation:** `packages/sdk/src/cli/commands/doctor.ts`
614
+
615
+ ---
616
+
561
617
  ## Global Flags
562
618
 
563
619
  These flags are accepted by all commands:
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: "@elevasis/sdk Export Catalog"
3
+ description: "Auto-generated catalog of all published @elevasis/sdk subpath exports, derived from packages/sdk/reference-manifest.ts."
4
+ ---
5
+
6
+ {/* @generated by .claude/_gen/sync-sdk-catalog.ts — DO NOT EDIT */}
7
+ {/* Regenerate: pnpm gen:sdk-catalog */}
8
+
9
+ | Import | Title | Group | Description |
10
+ | --- | --- | --- | --- |
11
+ | `@elevasis/sdk` | SDK | Getting Started | Root SDK types, config, runtime errors, and registry surface. |
12
+ | `@elevasis/sdk/worker` | Worker Runtime | Runtime | Worker runtime entrypoint, adapters, and platform execution surface. |
13
+ | `@elevasis/sdk/test-utils` | Test Utils | Testing | Workflow runner, registry assertion, and typed adapter mocks for SDK consumers. |
14
+ | `@elevasis/sdk/node` | Node Build Tooling | Tooling | Node-only build helpers: knowledge codegen and other fs/path/process utilities. Not browser-safe. |
@@ -0,0 +1,93 @@
1
+ ---
2
+ title: Elevasis SDK
3
+ description: Build and deploy workflows, agents, and resources with the Elevasis SDK
4
+ ---
5
+
6
+ `@elevasis/sdk` lets you build workflows, agents, and resources in TypeScript and deploy them to the Elevasis platform with a single command. The developer experience is Vercel-style: write TypeScript, validate locally, deploy -- the platform handles execution, tool access, and observability. You never manage infrastructure. Zod 4.1 is the only peer dependency.
7
+
8
+ Workflows are step-based automations with typed inputs and outputs. Agents are autonomous AI resources with access to platform tools. Both are defined in TypeScript, exported from a single entry point, and deployed with `elevasis-sdk deploy`. Resources appear in AI Studio immediately after a successful deploy.
9
+
10
+ The SDK ships with a full CLI (`elevasis-sdk`) for validation, deployment, execution, inspection, and project-management operations. Platform tools expose 25 adapters (13 integration + 12 platform) across integration adapters and platform services -- Gmail, Stripe, Google Sheets, Attio, and more -- with credentials managed server-side so API keys never cross the execution boundary.
11
+
12
+ ## Quick Start
13
+
14
+ ```bash
15
+ pnpm dlx @elevasis/sdk init my-project
16
+ cd my-project
17
+ pnpm install
18
+ elevasis-sdk deploy
19
+ ```
20
+
21
+ After `pnpm dlx @elevasis/sdk init`, your project is scaffolded with a working echo workflow, config file, TypeScript setup, and a `CLAUDE.md` that gives Claude Code full awareness of the SDK.
22
+
23
+ ## What You Can Build
24
+
25
+ - **Workflows** -- Step-based automation with typed inputs and outputs. Steps can be linear, conditional, or branching. Each step is a plain async function. See [Resources](resources/index.mdx) for the complete definition API.
26
+ - **Agents** -- Autonomous AI resources with access to platform tools. Agents run in the worker runtime with full LLM access and platform tool support. Use `--async` when executing agents to avoid HTTP timeout limits on long-running runs.
27
+ - **Feature-driven apps** -- The published `@elevasis/ui` surface includes manifest-backed shared features for Lead Gen, CRM, Projects, Operations, Monitoring, Settings, and SEO, plus dashboard-oriented compatibility components for host-owned shells. See [Provided Features](deployment/index.mdx#provided-features).
28
+
29
+ ## Platform Tools
30
+
31
+ The platform exposes 25 adapters (13 integration + 12 platform) across integration adapters and platform services -- Gmail, Stripe, Google Sheets, Attio, and more. Import typed adapters from `@elevasis/sdk/worker` inside any workflow step or agent. Credentials are managed server-side; API keys never cross the execution boundary.
32
+
33
+ See [Platform Tools](platform-tools/index.mdx) for the full catalog, adapter reference, and credential setup.
34
+
35
+ ## Known Limitations
36
+
37
+ - **No streaming logs** -- Execution logs are returned in the response body after completion. Real-time log streaming is not available.
38
+ - **Agent HTTP timeouts** -- Use `elevasis-sdk exec --async` for agent executions. Agents can run for minutes; the synchronous endpoint will time out for long-running runs. The `--async` flag returns an execution ID immediately and polls for the result.
39
+
40
+ ## Documentation
41
+
42
+ ### Getting Started
43
+
44
+ - [Getting Started](getting-started.mdx) - Installation, authentication, first workflow, and project structure
45
+
46
+ ### Core Concepts
47
+
48
+ - [Resources](resources/index.mdx) - Workflow and agent definition patterns, Zod schemas, step types, and routing
49
+ - [Platform Tools](platform-tools/index.mdx) - Full catalog of 25 adapters (13 integration + 12 platform), integration adapters, and credential management
50
+ - [Credential Security](platform-tools/index.mdx#credential-security) - Three-layer credential model, HTTP tool patterns, and credential management
51
+
52
+ ### Reference
53
+
54
+ - [Concepts](concepts.mdx) - Plain-English concept explanations, glossary, Zod guide, execution model, and common errors
55
+ - [Templates](templates/index.mdx) - 7 workflow templates: web-scraper, data-enrichment, email-sender, lead-scorer, and more
56
+ - [CLI Reference](cli.mdx) - Core commands: check, deploy, exec, resources, executions, deployments, describe, creds, and rename
57
+ - [CLI Management Commands](cli-management.mdx) - Management families: project:\*, note:\*, acquisition:\*, client:\*, agent:\*, session:\*, queue:\*, schedule:\*, om:\*, and ui:\*
58
+ - [Deployment](deployment/index.mdx) - Deploy pipeline, versioning, bundle upload, and registry registration
59
+ - [Runtime](runtime.mdx) - Worker execution model, concurrency, timeouts, cancellation, resource limits, and v1 limitations
60
+
61
+ ### Typed Adapters
62
+
63
+ - [Integration Adapters](platform-tools/adapters-integration.mdx) - Integration adapter catalog for Attio, Stripe, Google Sheets, Resend, and more
64
+ - [Platform Adapters](platform-tools/adapters-platform.mdx) - All 12 platform service adapters: scheduler, storage, llm, pdf, approval, and more
65
+
66
+ ### Framework
67
+
68
+ - [Development Framework](framework/index.mdx) - How Claude Code helps you build: project structure, agent integration, memory, and documentation
69
+ - [Project Structure](framework/project-structure.mdx) - Scaffolded file layout, domain barrels, src/index.ts entry point, and config files
70
+ - [Agent Configuration](framework/agent.mdx) - Agent capabilities, tool access, model config, and Claude Code integration patterns
71
+ - [Memory](framework/memory.mdx) - Agent memory system, session state, developer profiles, and workspace conventions
72
+ - [Interaction Guidance](framework/interaction-guidance.mdx) - Skill dimension adaptation rules for platform navigation, API integration, and automation concepts
73
+ - [Tutorial System](framework/tutorial-system.mdx) - 21-item tutorial menu, skill-adaptive lesson variants, progress tracking, and module contents
74
+ - [Resource Documentation](framework/resource-documentation.mdx) - Docs directory structure, frontmatter schema, size limits, deploy behavior, and /docs command reference
75
+
76
+ ### Resources Subpages
77
+
78
+ - [SDK Types](resources/types.mdx) - Complete type reference for `@elevasis/sdk` exports, config fields, and step handler context
79
+ - [Common Patterns](resources/patterns.mdx) - Sequential steps, conditional branching, error handling, and resource status patterns
80
+
81
+ ### Deployment Subpages
82
+
83
+ - [Command Center](deployment/command-center.mdx) - Resource graph, relationships, node types, and post-deployment UI reference
84
+ - [Execution Reference](deployment/execution-reference.mdx) - REST endpoints for executing resources, managing deployments, and React UI components for custom Run dialogs
85
+
86
+ ### More
87
+
88
+ - [Troubleshooting](troubleshooting.mdx) - Static error catalog for CLI, deployment, schema, and runtime failures
89
+ - [Roadmap](roadmap.mdx) - Planned features including error taxonomy, retry semantics, circuit breaker, and metrics
90
+
91
+ ---
92
+
93
+ **Last Updated:** 2026-05-19
@@ -0,0 +1,25 @@
1
+ ---
2
+ title: "Integration Adapters"
3
+ description: "Auto-generated table of all 13 integration (credential-bound) adapters exported from @elevasis/sdk/worker, derived from static analysis of the adapter source files."
4
+ ---
5
+
6
+ {/* @generated by .claude/_gen/sync-sdk-adapters.ts — DO NOT EDIT */}
7
+ {/* Regenerate: pnpm gen:sdk-adapters */}
8
+
9
+ Integration adapters use a factory pattern. Call `create*Adapter(credential)` with a credential name configured in the Command Center to get a typed adapter object.
10
+
11
+ | Adapter | Factory | Methods | Description |
12
+ | --- | --- | --- | --- |
13
+ | Attio | `createAttioAdapter(credential)` | `createRecord`, `updateRecord`, `listRecords`, `getRecord`, `deleteRecord`, `listObjects`, `listAttributes`, `createAttribute`, `updateAttribute`, `createNote`, `listNotes`, `deleteNote` | Attio CRM — create, read, update, delete records, objects, attributes, and notes. |
14
+ | Apify | `createApifyAdapter(credential)` | `runActor`, `getDatasetItems`, `startActor` | Apify — run actors and retrieve dataset items from web scraping runs. |
15
+ | ClickUp | `createClickUpAdapter(credential)` | `verify`, `createTask` | ClickUp — verify connection and create tasks in ClickUp lists. |
16
+ | Dropbox | `createDropboxAdapter(credential)` | `uploadFile`, `createFolder` | Dropbox — upload files and create folders. |
17
+ | Gmail | `createGmailAdapter(credential)` | `sendEmail` | Gmail — send emails via a bound Gmail credential. |
18
+ | GoogleSheets | `createGoogleSheetsAdapter(credential)` | `readSheet`, `writeSheet`, `appendRows`, `clearRange`, `getSpreadsheetMetadata`, `batchUpdate`, `getHeaders`, `getLastRow`, `getRowByValue`, `updateRowByValue`, `upsertRow`, `filterRows`, `deleteRowByValue` | Google Sheets — read, write, append, filter, and manage spreadsheet data. |
19
+ | Instantly | `createInstantlyAdapter(credential)` | `sendReply`, `removeFromSubsequence`, `getEmails`, `updateInterestStatus`, `addToCampaign`, `listCampaigns`, `getCampaign`, `updateCampaign`, `pauseCampaign`, `activateCampaign`, `getCampaignAnalytics`, `getStepAnalytics`, `bulkAddLeads`, `getAccountHealth`, `createInboxTest`, `createCampaign`, `getDailyCampaignAnalytics`, `listLeads`, `bulkDeleteLeads`, `deleteCampaign`, `patchLead` | Instantly — manage email outreach campaigns, leads, analytics, and inbox health. |
20
+ | MillionVerifier | `createMillionVerifierAdapter(credential)` | `verifyEmail`, `checkCredits` | MillionVerifier — verify email deliverability and check account credits. |
21
+ | Anymailfinder | `createAnymailfinderAdapter(credential)` | `findCompanyEmail`, `findPersonEmail`, `findDecisionMakerEmail`, `verifyEmail` | Anymailfinder — find and verify company and person email addresses. |
22
+ | Tomba | `createTombaAdapter(credential)` | `emailFinder`, `domainSearch`, `emailVerifier` | Tomba — email finder, domain search, and email verifier for prospecting. |
23
+ | Resend | `createResendAdapter(credential)` | `sendEmail`, `getEmail` | Resend — send and retrieve transactional emails. |
24
+ | SignatureApi | `createSignatureApiAdapter(credential)` | `createEnvelope`, `voidEnvelope`, `downloadDocument`, `getEnvelope` | SignatureAPI — create, void, download, and retrieve eSignature envelopes. |
25
+ | Stripe | `createStripeAdapter(credential)` | `createPaymentLink`, `getPaymentLink`, `updatePaymentLink`, `listPaymentLinks`, `createAutoPaymentLink`, `createCheckoutSession` | Stripe — create and manage payment links and checkout sessions. |
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: "Platform Adapters"
3
+ description: "Auto-generated table of all 12 platform (singleton, no credential) adapters exported from @elevasis/sdk/worker, derived from static analysis of the adapter source files."
4
+ ---
5
+
6
+ {/* @generated by .claude/_gen/sync-sdk-adapters.ts — DO NOT EDIT */}
7
+ {/* Regenerate: pnpm gen:sdk-adapters */}
8
+
9
+ Platform adapters are singletons — import them directly, no credential required.
10
+
11
+ | Adapter | Export | Methods | Description |
12
+ | --- | --- | --- | --- |
13
+ | Scheduler | `scheduler` | `createSchedule`, `updateAnchor`, `deleteSchedule`, `findByIdempotencyKey`, `deleteScheduleByIdempotencyKey`, `listSchedules`, `getSchedule`, `cancelSchedule`, `cancelSchedulesByMetadata`, `cancelScheduleByIdempotencyKey` | Scheduler — create, update, cancel, and query task schedules. |
14
+ | Llm | `llm` | `generate` | LLM — generate structured or unstructured text via OpenAI, Anthropic, OpenRouter, or Google. |
15
+ | Storage | `storage` | `upload`, `download`, `createSignedUrl`, `delete`, `list` | Storage — upload, download, list, delete files, and create signed URLs in org-scoped buckets. |
16
+ | Notifications | `notifications` | `create` | Notifications — send in-platform notifications to team members. |
17
+ | AcqDb | `acqDb` | `listLists`, `createList`, `updateList`, `deleteList`, `addContactsToList`, `addCompaniesToList`, `updateCompanyStage`, `updateContactStage`, `createCompany`, `upsertCompany`, `updateCompany`, `getCompany`, `listCompanies`, `deleteCompany`, `createContact`, `upsertContact`, `updateContact`, `getContact`, `getContactByEmail`, `listContacts`, `deleteContact`, `bulkImportContacts`, `bulkImportCompanies`, `deactivateContactsByCompany`, `upsertDeal`, `getDealByEmail`, `getDealByEnvelopeId`, `updateDealEnvelopeId`, `getDealById`, `getContactById`, `getCompanyById`, `updateDiscoveryData`, `updateProposalData`, `markProposalSent`, `markProposalReviewed`, `updateCloseLostReason`, `updateFees`, `cacheInstantlyThreadIds`, `transitionItem`, `setContactNurture`, `cancelSchedulesAndHitlByEmail`, `cancelHitlByDealId`, `clearDealFields`, `deleteDeal`, `recordDealActivity`, `setDealStateKey`, `transitionDeal`, `loadDeal`, `createDealNote`, `listDealNotes`, `createDealTask`, `listDealTasks`, `listDealTasksDue`, `completeDealTask`, `mergeEnrichmentData`, `upsertSocialPosts` | AcqDb — full acquisition database: lists, companies, contacts, deals, notes, tasks, and enrichment. |
18
+ | Projects | `projects` | `listProjects`, `getProject`, `createProject`, `updateProject`, `deleteProject`, `listMilestones`, `createMilestone`, `updateMilestone`, `deleteMilestone`, `listTasks`, `getTask`, `createTask`, `updateTask`, `deleteTask`, `mergeTaskResumeContext`, `listNotes`, `createNote`, `updateNote`, `deleteNote` | Projects — manage delivery projects, milestones, tasks, notes, and resume context. |
19
+ | Crm | `crm` | `getRecentActivity`, `listDeals`, `getDeal`, `getDealByEmail`, `createDealNote`, `listDealNotes`, `createDealTask`, `listDealTasks`, `listDealTasksDue`, `completeDealTask`, `recordActivity`, `deleteDeal` | CRM — read and update deals, notes, tasks, activity, and stage transitions. |
20
+ | List | `list` | `getConfig`, `recordExecution`, `updateCompanyStage`, `updateContactStage`, `listPendingCompanyIds`, `listPendingContactIds` | List — list-scoped workflow execution tracking and stage updates. |
21
+ | Pdf | `pdf` | `render`, `renderToBuffer` | PDF — render PDF documents from structured page definitions. |
22
+ | Approval | `approval` | `create`, `deleteByMetadata` | Approval — create and manage HITL (human-in-the-loop) tasks. |
23
+ | Execution | `execution` | `trigger`, `triggerAsync` | Execution — trigger other workflows or agents within the same organization. |
24
+ | Email | `email` | `send` | Email — send platform emails (from notifications@elevasis.io) to organization members. |
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  title: Platform Tools
3
- description: Access 70+ tools across integration adapters and platform services from your SDK workflows -- typed adapters, credential security model, and working code examples
3
+ description: Access 25 adapters (13 integration + 12 platform) from your SDK workflows -- typed adapters, credential security model, and working code examples
4
4
  ---
5
5
 
6
- Your SDK workflows have access to 70+ tools -- Gmail, Stripe, Google Sheets, PDF generation, human-in-the-loop approvals, storage, scheduling, and more. Credentials are managed server-side and never appear in your code.
6
+ Your SDK workflows have access to 25 adapters (13 integration + 12 platform) -- Gmail, Stripe, Google Sheets, PDF generation, human-in-the-loop approvals, storage, scheduling, and more. Credentials are managed server-side and never appear in your code.
7
7
 
8
8
  **Typed adapters** are the recommended way to call tools. They provide full TypeScript autocomplete, compile-time method checking, and eliminate boilerplate. Use `platform.call()` only for tools that don't have an adapter yet.
9
9
 
@@ -39,20 +39,9 @@ Both patterns return a Promise that resolves with the tool result or rejects wit
39
39
 
40
40
  ## Integration Adapters
41
41
 
42
- Ten integration adapters give you access to 50+ tool methods covering third-party APIs. Pass the credential name once at adapter creation. Supabase is listed separately under [Database Access](#database-access) below.
43
-
44
- | Adapter | Tools | Credential Shape |
45
- | ------------- | ----------------------------- | ------------------------ |
46
- | Attio | 12 (CRUD + schema + notes) | `{ apiKey }` |
47
- | Google Sheets | 13 (read/write/filter/upsert) | OAuth2 / service account |
48
- | Stripe | 6 (payment links + checkout) | `{ secretKey }` |
49
- | Instantly | 5 (email campaigns) | `{ apiKey }` |
50
- | SignatureAPI | 4 (envelopes) | `{ apiKey }` |
51
- | Tomba | 3 (email discovery) | `api-key-secret` |
52
- | Gmail | 2 (send email) | OAuth2 / service account |
53
- | Resend | 2 (send/get email) | `{ apiKey }` |
54
- | Dropbox | 2 (upload/folder) | `{ accessToken }` |
55
- | Apify | 1 (run actor) | `{ token }` |
42
+ The SDK ships 13 integration adapters (credential-bound factory functions) covering third-party APIs -- Attio, Apify, ClickUp, Dropbox, Gmail, Google Sheets, Instantly, MillionVerifier, Anymailfinder, Tomba, Resend, SignatureAPI, and Stripe. Pass the credential name once at adapter creation. Supabase is covered separately under [Database Access](#database-access) below.
43
+
44
+ For the full per-adapter method tables, credential shapes, and code examples, see [Integration Adapters](adapters-integration.mdx) -- generated from the adapter source so it never drifts.
56
45
 
57
46
  ## Credential Security
58
47
 
@@ -131,19 +120,9 @@ Credentials are created in the command center UI: navigate to Credentials -> Add
131
120
 
132
121
  ## Platform Services
133
122
 
134
- Nine built-in platform services are available without a `credential` field. All have typed singleton adapters imported from `@elevasis/sdk/worker`.
123
+ The SDK ships 12 platform service singletons available without a `credential` field -- imported directly from `@elevasis/sdk/worker`: `scheduler`, `llm`, `storage`, `notifications`, `acqDb`, `projects`, `crm`, `list`, `pdf`, `approval`, `execution`, and `email`. The platform injects context server-side, so no credential is passed.
135
124
 
136
- | Tool Key | Methods | Purpose |
137
- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
138
- | `acqDb` | 35 methods (CRUD + sync) | Acquisition database -- `acqDb` adapter |
139
- | `email` | `send` | Send email to org members -- `email` adapter |
140
- | `storage` | `upload`, `download`, `createSignedUrl`, `delete`, `list` | File storage -- `storage` adapter |
141
- | `pdf` | `render`, `renderToBuffer` | PDF rendering -- `pdf` adapter |
142
- | `notification` | `create` | In-app notifications -- `notifications` adapter |
143
- | `approval` | `create`, `deleteByMetadata` | HITL approval gates -- `approval` adapter |
144
- | `scheduler` | `createSchedule`, `updateAnchor`, `deleteSchedule`, `findByIdempotencyKey`, `deleteScheduleByIdempotencyKey`, `listSchedules`, `getSchedule`, `cancelSchedule`, `cancelSchedulesByMetadata` | Task scheduling -- `scheduler` adapter |
145
- | `llm` | `generate` | LLM inference -- `llm` adapter |
146
- | `execution` | `trigger` | Nested child execution -- `execution` adapter |
125
+ For the full per-service method tables (including the `acqDb` 41-method surface), see [Platform Adapters](adapters-platform.mdx) -- generated from the adapter source.
147
126
 
148
127
  ## LLM Tool
149
128
 
@@ -207,8 +186,8 @@ const qualified = await platform.call({
207
186
 
208
187
  ## Documentation
209
188
 
210
- - [Integration Adapters](adapters-integration.mdx) - All 10 integration adapters with method tables and code examples
211
- - [Platform Adapters](adapters-platform.mdx) - All 9 platform service adapters with method tables and code examples
189
+ - [Integration Adapters](adapters-integration.mdx) - All 13 integration adapters with method tables and code examples
190
+ - [Platform Adapters](adapters-platform.mdx) - All 12 platform service adapters with method tables and code examples
212
191
  - [Adapter Type Safety](type-safety.mdx) - Required fields, discriminated unions, and intentionally loose adapter types
213
192
 
214
193
  ---
@@ -11,19 +11,23 @@ This page collects the patterns you will reach for most often when writing resou
11
11
 
12
12
  The simplest pattern: a chain of steps where each step feeds its output into the next.
13
13
 
14
+ Each `WorkflowStep` requires `id`, `name`, `description`, `handler`, `inputSchema`, `outputSchema`, and `next`. There is no `type` field on a step -- `StepType` (`LINEAR` / `CONDITIONAL`) is a label for `next.type` only, not a step property.
15
+
14
16
  ```typescript
15
17
  import { z } from 'zod';
16
- import { StepType } from '@elevasis/sdk';
17
18
  import type { WorkflowDefinition, WorkflowStep } from '@elevasis/sdk';
18
19
 
19
20
  const inputSchema = z.object({ orderId: z.string() });
20
21
  const outputSchema = z.object({ shipped: z.boolean(), trackingNumber: z.string() });
21
22
 
22
23
  type Input = z.infer<typeof inputSchema>;
23
- type Output = z.infer<typeof outputSchema>;
24
24
 
25
25
  const validateStep: WorkflowStep = {
26
- type: StepType.LINEAR,
26
+ id: 'validate',
27
+ name: 'Validate Order',
28
+ description: 'Checks the order exists before shipping',
29
+ inputSchema: z.object({ orderId: z.string() }),
30
+ outputSchema: z.object({ order: z.unknown() }),
27
31
  handler: async (input: Input) => {
28
32
  const order = await getOrder(input.orderId);
29
33
  if (!order) throw new Error(`Order ${input.orderId} not found`);
@@ -33,7 +37,11 @@ const validateStep: WorkflowStep = {
33
37
  };
34
38
 
35
39
  const shipStep: WorkflowStep = {
36
- type: StepType.LINEAR,
40
+ id: 'ship',
41
+ name: 'Ship Order',
42
+ description: 'Creates a shipment and returns the tracking number',
43
+ inputSchema: z.object({ order: z.unknown() }),
44
+ outputSchema: z.object({ shipped: z.boolean(), trackingNumber: z.string() }),
37
45
  handler: async (input) => {
38
46
  const tracking = await createShipment(input.order);
39
47
  return { shipped: true, trackingNumber: tracking.number };
@@ -51,23 +59,29 @@ const fulfillOrder: WorkflowDefinition = {
51
59
 
52
60
  **Key points:**
53
61
 
54
- - `next: { target: 'stepName' }` routes to the next step
62
+ - Steps require `id`, `name`, `description`, `inputSchema`, `outputSchema`, `handler`, and `next`
63
+ - `next.type` is `'linear'` or `'conditional'` -- this is where `StepType` values apply; the step itself has no `type` field
64
+ - `next: { type: 'linear', target: 'stepName' }` routes to the next step
55
65
  - `next: null` marks the terminal step
56
66
  - Each step receives the full return value of the previous step as its `input`
57
- - The terminal step's return value must satisfy `contract.output`
67
+ - The terminal step's return value must satisfy `contract.outputSchema`
58
68
 
59
69
  ---
60
70
 
61
71
  ## Conditional Branching
62
72
 
63
- Use `StepType.CONDITIONAL` when the next step depends on the output of the current step.
73
+ Use a `next.type` of `'conditional'` when the next step depends on the output of the current step. The step itself still has no `type` field -- the routing decision lives entirely in `next`.
64
74
 
65
75
  ```typescript
66
- import { StepType } from '@elevasis/sdk';
76
+ import { z } from 'zod';
67
77
  import type { WorkflowStep } from '@elevasis/sdk';
68
78
 
69
79
  const scoreStep: WorkflowStep = {
70
- type: StepType.CONDITIONAL,
80
+ id: 'score',
81
+ name: 'Score Application',
82
+ description: 'Calculates a risk score and routes on the result',
83
+ inputSchema: z.object({ applicationId: z.string() }),
84
+ outputSchema: z.object({ score: z.number(), applicationId: z.string() }),
71
85
  handler: async (input) => {
72
86
  const score = await calculateRiskScore(input.applicationId);
73
87
  return { score, applicationId: input.applicationId };
@@ -103,12 +117,16 @@ const scoreStep: WorkflowStep = {
103
117
  Platform tools let your steps call integrations managed by Elevasis (email, CRM, databases, etc.). Import `platform` from `@elevasis/sdk/worker` and call it with the tool name, method, parameters, and an optional credential reference when the tool requires one.
104
118
 
105
119
  ```typescript
120
+ import { z } from 'zod';
106
121
  import { platform, PlatformToolError } from '@elevasis/sdk/worker';
107
122
  import type { WorkflowStep } from '@elevasis/sdk';
108
- import { StepType } from '@elevasis/sdk';
109
123
 
110
124
  const sendEmailStep: WorkflowStep = {
111
- type: StepType.LINEAR,
125
+ id: 'sendEmail',
126
+ name: 'Send Email',
127
+ description: 'Sends a transactional email via the platform email tool',
128
+ inputSchema: z.object({ recipientEmail: z.string(), subject: z.string(), body: z.string() }),
129
+ outputSchema: z.object({ sent: z.boolean(), messageId: z.string() }),
112
130
  handler: async (input, context) => {
113
131
  const result = await platform.call({
114
132
  tool: 'email',
@@ -0,0 +1,60 @@
1
+ ---
2
+ title: "@elevasis/ui Export Catalog"
3
+ description: "Auto-generated catalog of all published @elevasis/ui subpath exports, derived from packages/ui/reference-manifest.ts."
4
+ ---
5
+
6
+ {/* @generated by .claude/_gen/sync-sdk-catalog.ts — DO NOT EDIT */}
7
+ {/* Regenerate: pnpm gen:sdk-catalog */}
8
+
9
+ | Import | Title | Group | Description |
10
+ | --- | --- | --- | --- |
11
+ | `@elevasis/ui/provider` | Provider | Provider | Published provider and feature-shell contract for downstream apps. |
12
+ | `@elevasis/ui/provider/ui` | Provider UI | Provider | Published provider UI entry for downstream applications. |
13
+ | `@elevasis/ui/auth` | Auth | Foundation | Published authentication surface for UI integrations. |
14
+ | `@elevasis/ui/auth/context` | Auth Context | Foundation | Published auth context entry for UI integrations. |
15
+ | `@elevasis/ui/hooks` | Hooks | Hooks | Headless hooks surface for executions, sessions, observability, and operations. |
16
+ | `@elevasis/ui/hooks/access` | Hooks Access | Hooks | Published Access Model hook surface for checking route, section, and action access. |
17
+ | `@elevasis/ui/sse` | SSE | Foundation | Published server-sent events helpers and connection utilities. |
18
+ | `@elevasis/ui/initialization` | Initialization | Foundation | Published app initialization provider and bootstrap helpers. |
19
+ | `@elevasis/ui/profile` | Profile | Foundation | Published user profile surface for UI applications. |
20
+ | `@elevasis/ui/organization` | Organization | Foundation | Published organization shell, store, and helper surface. |
21
+ | `@elevasis/ui/features/auth` | Features Auth | Features | Published auth feature surface for downstream shells. |
22
+ | `@elevasis/ui/features/clients` | Features Clients | Features | Published clients feature surface for downstream shells. |
23
+ | `@elevasis/ui/features/crm` | Features CRM | Features | Published CRM feature surface for downstream shells. |
24
+ | `@elevasis/ui/features/dashboard` | Features Dashboard | Features | Published dashboard feature surface for downstream shells. |
25
+ | `@elevasis/ui/features/delivery` | Features Delivery | Features | Published delivery feature surface for downstream shells. |
26
+ | `@elevasis/ui/features/lead-gen` | Features Lead Gen | Features | Published lead generation feature surface for downstream shells. |
27
+ | `@elevasis/ui/features/operations` | Features Operations | Features | Published operations feature surface for downstream shells. |
28
+ | `@elevasis/ui/features/monitoring` | Features Monitoring | Features | Published monitoring feature surface for downstream shells. |
29
+ | `@elevasis/ui/features/monitoring/requests` | Features Monitoring Requests | Features | Published submitted-requests list, detail, and triage surface for downstream shells. |
30
+ | `@elevasis/ui/features/seo` | Features SEO | Features | Published SEO feature surface for downstream shells. |
31
+ | `@elevasis/ui/features/knowledge` | Features Knowledge | Features | Published knowledge feature manifest for downstream shells. |
32
+ | `@elevasis/ui/features/notes` | Features Notes | Features | Published Notes panel view and supporting note components for shared right-panel integrations. |
33
+ | `@elevasis/ui/features/right-panel-host` | Features Right Panel Host | Features | Published right-panel host provider, layer, trigger, keyboard shortcut, store, and view contract. |
34
+ | `@elevasis/ui/knowledge` | Knowledge | Visual | Published knowledge browser primitives: Browser, Tree, NodeList, NodeView, SearchBar, MDX provider, and the generated KNOWLEDGE_BODIES map. |
35
+ | `@elevasis/ui/vite` | Vite | Build | Composite Vite plugin factory (elevasisVite) that bundles all @elevasis/ui Vite plugins into a single array for consumer vite.config.ts files. |
36
+ | `@elevasis/ui/vite-plugin-knowledge` | Vite Plugin Knowledge | Build | Vite plugin that regenerates the build-time knowledge MDX bodies and search index, with HMR support. |
37
+ | `@elevasis/ui/features/settings` | Features Settings | Features | Published settings feature surface for downstream shells. |
38
+ | `@elevasis/ui/types` | Types | Foundation | Published UI types entry for downstream applications. |
39
+ | `@elevasis/ui/components` | Components | Components | Published UI component barrel for downstream applications. |
40
+ | `@elevasis/ui/components/navigation` | Navigation Components | Components | Published navigation component entry for downstream applications. |
41
+ | `@elevasis/ui/components/chat` | Chat Components | Components | Published chat component entry for downstream applications. |
42
+ | `@elevasis/ui/layout` | Layout | Components | Published layout component entry for downstream applications. |
43
+ | `@elevasis/ui/charts` | Charts | Components | Published chart component entry for downstream applications. |
44
+ | `@elevasis/ui/theme` | Theme | Visual | Published theme entry for downstream applications. |
45
+ | `@elevasis/ui/theme/presets` | Theme Presets | Visual | Re-exports the canonical THEME_PRESETS tuple, ThemePresetName union, and ThemePresetEnum Zod enum from @repo/core. Single source of truth for preset names across UI, schemas, and Zustand state. |
46
+ | `@elevasis/ui/api` | API | Foundation | Published API client entry for downstream applications. |
47
+ | `@elevasis/ui/utils` | Utils | Foundation | Published utility entry for downstream applications. |
48
+ | `@elevasis/ui/graph` | Graph | Visual | Published graph helper and visualization entry. |
49
+ | `@elevasis/ui/execution` | Execution | Foundation | Published execution visualization and helper entry. |
50
+ | `@elevasis/ui/router` | Router | Foundation | Published router entry for downstream applications. |
51
+ | `@elevasis/ui/router/context` | Router Context | Foundation | Published router context entry for downstream applications. |
52
+ | `@elevasis/ui/zustand` | Zustand | Foundation | Published Zustand slice entry for downstream applications. |
53
+ | `@elevasis/ui/app` | App | Foundation | Published app factory that composes providers, router, auth, and theme into a mountable React app. |
54
+ | `@elevasis/ui/provider/ElevasisServiceContext` | Elevasis Service Context | Provider | Standalone service context and provider that supplies apiRequest, organizationId, and isReady to child components. |
55
+ | `@elevasis/ui/hooks/delivery` | Hooks Delivery | Hooks | Published delivery hooks for projects, milestones, tasks, and notes. |
56
+ | `@elevasis/ui/hooks/user-notes` | Hooks User Notes | Hooks | Published user-notes query and mutation hooks used by shared Notes surfaces. |
57
+ | `@elevasis/ui/hooks/operations/command-view/utils/transformCommandViewData` | Transform Command View Data | Hooks | Utility that transforms backend CommandViewData arrays into a unified frontend CommandViewGraph with nodes and edges. |
58
+ | `@elevasis/ui/test-utils` | Test Utils | Testing | Published rendering helpers, auth mocks, MSW handlers, and test provider utilities. |
59
+ | `@elevasis/ui/test-utils/setup` | Test Utils Setup | Testing | Vitest setup file for UI consumers using browser mocks and MSW. |
60
+ | `@elevasis/ui/test-utils/setup-integration` | Test Utils Integration Setup | Testing | Vitest setup file for integration tests that avoid MSW and use real network boundaries. |
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: "@elevasis/ui"
3
+ description: The shared React 19 feature-shell and manifest-backed feature modules for Elevasis — Lead Gen, CRM, Projects, Operations, Monitoring, Settings, SEO, and more. Embeds into any host UI via ElevasisProvider.
4
+ ---
5
+
6
+ `@elevasis/ui` is the shared React feature-shell for the Elevasis platform. It provides an `ElevasisProvider` and a set of manifest-backed feature modules that a host UI embeds and composes. The model is: your shell owns the layout and routing; Elevasis features plug in as self-contained modules.
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ pnpm add @elevasis/ui
12
+ ```
13
+
14
+ Many peer dependencies are optional. Pull only the peers that the features you use require. If you are not using the graph visualization features, you do not need `cytoscape`. If you are not using TanStack Router, you do not need it either.
15
+
16
+ ## Peer Dependencies
17
+
18
+ `@elevasis/ui` has a broad peer dependency set. The required peers are React 19 and Mantine 8.2.7. Most others are optional and only needed when specific feature modules are activated.
19
+
20
+ - **React 19** -- required. The feature modules use React 19 APIs.
21
+ - **Mantine 8.2.7** -- required. The component layer and theming foundation.
22
+ - **TanStack Query** -- required for data-fetching features (most modules).
23
+ - **TanStack Router** -- optional; required if you want the routing-aware feature shells.
24
+ - **Zod 4.1** -- required for schema validation in form-backed features.
25
+ - **Zustand 5** -- required for state management in multi-panel features.
26
+ - **cytoscape** -- optional; required for the graph/knowledge visualization modules only.
27
+
28
+ ## Provider and Feature-Shell Model
29
+
30
+ The entry point is `ElevasisProvider`, imported from `@elevasis/ui/provider`. Wrap your application root with it to give all child feature modules access to the platform context, auth session, and manifest registry.
31
+
32
+ ```tsx
33
+ import { ElevasisProvider } from "@elevasis/ui/provider";
34
+
35
+ export function AppRoot() {
36
+ return (
37
+ <ElevasisProvider config={elevasisConfig}>
38
+ {/* your shell and routes */}
39
+ </ElevasisProvider>
40
+ );
41
+ }
42
+ ```
43
+
44
+ Feature modules are imported from their own subpaths (e.g. `@elevasis/ui/features/lead-gen`, `@elevasis/ui/features/crm`) and rendered inside the provider tree. Each module is manifest-backed: it reads the platform manifest at runtime to know which resources and workflows are available, so no hard-coded resource IDs are needed in the host UI.
45
+
46
+ ## Available Feature Modules
47
+
48
+ The published feature surface includes modules for:
49
+
50
+ - **Lead Gen** -- prospecting pipeline, campaign review, acquisition workflows
51
+ - **CRM** -- client management, deal tracking, contact records
52
+ - **Projects** -- task tracking, project lifecycle, milestones
53
+ - **Operations** -- workflow execution history, operations dashboard
54
+ - **Monitoring** -- execution health, error log, platform diagnostics
55
+ - **Settings** -- organization settings, credential management, member management
56
+ - **SEO** -- content and SEO tooling modules
57
+ - **Notes** -- note capture and structured annotations
58
+ - **Knowledge** -- knowledge base viewer and search UI
59
+ - **Dashboard** -- compatibility components for host-owned dashboard shells
60
+
61
+ Each module has its own `@elevasis/ui/features/<name>` subpath. See the [Export Catalog](exports.mdx) for the full generated list.
62
+
63
+ ## When To Use @elevasis/ui
64
+
65
+ Use `@elevasis/ui` when you are building a host application that needs to embed Elevasis features -- lead-gen pipelines, CRM views, operations dashboards -- without re-implementing them. The provider/feature-shell model means you own the shell, navigation, and layout; Elevasis owns the feature logic and UI internals.
66
+
67
+ You do not need `@elevasis/ui` if you are only writing backend workflows and agents. Tenant automation projects use `@elevasis/sdk` alone.
68
+
69
+ ## Composition With @elevasis/core
70
+
71
+ `@elevasis/ui` uses `@elevasis/core` internally for entity schemas, org-model types, and auth contracts. Installing `@elevasis/ui` will pull in `@elevasis/core` as a dependency. You do not need to install `@elevasis/core` separately unless you need direct access to its subpaths.
72
+
73
+ ## Export Catalog
74
+
75
+ See [Export Catalog](exports.mdx) for a generated table of all published subpath exports derived from the reference manifest.