@elevasis/sdk 0.5.12 → 0.5.13

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 (32) hide show
  1. package/dist/cli.cjs +92 -81
  2. package/dist/index.d.ts +11 -253
  3. package/dist/index.js +5 -9
  4. package/dist/templates.js +26 -23
  5. package/dist/types/worker/adapters/index.d.ts +0 -1
  6. package/dist/worker/index.js +47 -53
  7. package/package.json +1 -1
  8. package/reference/_navigation.md +13 -57
  9. package/reference/concepts.mdx +203 -0
  10. package/reference/deployment/{command-center-ui.mdx → command-center.mdx} +229 -151
  11. package/reference/deployment/index.mdx +158 -153
  12. package/reference/framework/agent.mdx +168 -151
  13. package/reference/framework/index.mdx +182 -103
  14. package/reference/framework/memory.mdx +347 -347
  15. package/reference/framework/tutorial-system.mdx +253 -0
  16. package/reference/{getting-started/index.mdx → getting-started.mdx} +4 -4
  17. package/reference/index.mdx +117 -114
  18. package/reference/platform-tools/adapters.mdx +175 -32
  19. package/reference/platform-tools/index.mdx +354 -195
  20. package/reference/resources/index.mdx +5 -0
  21. package/reference/{roadmap/index.mdx → roadmap.mdx} +1 -1
  22. package/reference/{runtime/index.mdx → runtime.mdx} +196 -141
  23. package/dist/types/worker/adapters/trello.d.ts +0 -14
  24. package/reference/concepts/index.mdx +0 -203
  25. package/reference/deployment/command-view.mdx +0 -154
  26. package/reference/framework/documentation.mdx +0 -92
  27. package/reference/platform-tools/examples.mdx +0 -170
  28. package/reference/runtime/limits.mdx +0 -75
  29. package/reference/security/credentials.mdx +0 -141
  30. /package/reference/{cli/index.mdx → cli.mdx} +0 -0
  31. /package/reference/{developer → framework}/interaction-guidance.mdx +0 -0
  32. /package/reference/{troubleshooting/common-errors.mdx → troubleshooting.mdx} +0 -0
package/dist/cli.cjs CHANGED
@@ -43302,6 +43302,7 @@ var ResourceRegistry = class {
43302
43302
  version: def.config.version,
43303
43303
  type: def.config.type,
43304
43304
  status: def.config.status,
43305
+ domains: def.config.domains,
43305
43306
  origin: this.remoteResources.has(`${organizationName}/${def.config.resourceId}`) ? "remote" : "local"
43306
43307
  })).filter((resource) => !environment || resource.status === environment);
43307
43308
  const agents = (orgResources.agents || []).map((def) => ({
@@ -43311,6 +43312,7 @@ var ResourceRegistry = class {
43311
43312
  version: def.config.version,
43312
43313
  type: def.config.type,
43313
43314
  status: def.config.status,
43315
+ domains: def.config.domains,
43314
43316
  sessionCapable: def.config.sessionCapable ?? false,
43315
43317
  origin: this.remoteResources.has(`${organizationName}/${def.config.resourceId}`) ? "remote" : "local"
43316
43318
  })).filter((resource) => !environment || resource.status === environment);
@@ -43357,9 +43359,7 @@ var ResourceRegistry = class {
43357
43359
  const seen = /* @__PURE__ */ new Set();
43358
43360
  for (const id of incomingIds) {
43359
43361
  if (seen.has(id)) {
43360
- throw new Error(
43361
- `Duplicate resource ID '${id}' in deployment. Each resource must have a unique ID.`
43362
- );
43362
+ throw new Error(`Duplicate resource ID '${id}' in deployment. Each resource must have a unique ID.`);
43363
43363
  }
43364
43364
  seen.add(id);
43365
43365
  }
@@ -43418,12 +43418,8 @@ var ResourceRegistry = class {
43418
43418
  if (remoteIds.size === 0) return;
43419
43419
  const orgResources = this.registry[orgName];
43420
43420
  if (!orgResources) return;
43421
- orgResources.workflows = (orgResources.workflows ?? []).filter(
43422
- (w) => !remoteIds.has(w.config.resourceId)
43423
- );
43424
- orgResources.agents = (orgResources.agents ?? []).filter(
43425
- (a) => !remoteIds.has(a.config.resourceId)
43426
- );
43421
+ orgResources.workflows = (orgResources.workflows ?? []).filter((w) => !remoteIds.has(w.config.resourceId));
43422
+ orgResources.agents = (orgResources.agents ?? []).filter((a) => !remoteIds.has(a.config.resourceId));
43427
43423
  if (orgResources.relationships) {
43428
43424
  for (const id of remoteIds) {
43429
43425
  delete orgResources.relationships[id];
@@ -43787,7 +43783,7 @@ async function apiDelete(endpoint, apiUrl = resolveApiUrl()) {
43787
43783
  // package.json
43788
43784
  var package_default = {
43789
43785
  name: "@elevasis/sdk",
43790
- version: "0.5.12",
43786
+ version: "0.5.13",
43791
43787
  description: "SDK for building Elevasis organization resources",
43792
43788
  type: "module",
43793
43789
  bin: {
@@ -45228,26 +45224,30 @@ pnpm exec elevasis-sdk exec echo --input '{"message": "hello"}'
45228
45224
 
45229
45225
  // src/cli/commands/templates/core/claude.ts
45230
45226
  function claudeSettingsTemplate() {
45231
- return JSON.stringify({
45232
- autoCompact: false,
45233
- statusLine: {
45234
- type: "command",
45235
- command: "node .claude/scripts/statusline-command.js"
45227
+ return JSON.stringify(
45228
+ {
45229
+ autoCompact: false,
45230
+ statusLine: {
45231
+ type: "command",
45232
+ command: "node .claude/scripts/statusline-command.js"
45233
+ },
45234
+ hooks: {
45235
+ PreToolUse: [
45236
+ {
45237
+ matcher: "Write|Edit|MultiEdit|Bash",
45238
+ hooks: [
45239
+ {
45240
+ type: "command",
45241
+ command: "node .claude/hooks/enforce-sdk-boundary.mjs"
45242
+ }
45243
+ ]
45244
+ }
45245
+ ]
45246
+ }
45236
45247
  },
45237
- hooks: {
45238
- PreToolUse: [
45239
- {
45240
- matcher: "Write|Edit|MultiEdit|Bash",
45241
- hooks: [
45242
- {
45243
- type: "command",
45244
- command: "node .claude/hooks/enforce-sdk-boundary.mjs"
45245
- }
45246
- ]
45247
- }
45248
- ]
45249
- }
45250
- }, null, 2) + "\n";
45248
+ null,
45249
+ 2
45250
+ ) + "\n";
45251
45251
  }
45252
45252
  function claudeStatuslineScriptTemplate() {
45253
45253
  return `#!/usr/bin/env node
@@ -45510,7 +45510,8 @@ When an error occurs:
45510
45510
  - Import from \`@elevasis/sdk-ui\`, never from \`@elevasis/sdk\` or \`@repo/ui\`
45511
45511
  - Dev server runs on port 5100: \`cd ui && pnpm dev\`
45512
45512
  - Set \`VITE_WORKOS_CLIENT_ID\` in \`ui/.env\` before running
45513
- - \`ElevasisProvider\` is pre-configured in \`ui/src/App.tsx\` (oauth mode, redirectUri \`http://localhost:5100/auth-redirect\`, apiUrl \`http://localhost:5170\`)
45513
+ - \`ElevasisCoreProvider\` (headless, no Mantine dependency) is pre-configured in \`ui/src/App.tsx\` with \`auth={{ mode: 'oauth', clientId, redirectUri }}\`, \`apiUrl="http://localhost:5170"\`, and \`theme={{ colorScheme: 'dark', preset: 'default' }}\`
45514
+ - To use pre-built Mantine components from \`@elevasis/sdk-ui\`, switch to \`ElevasisUIProvider\` and install \`@mantine/core\` and \`@mantine/hooks\`
45514
45515
  - OAuth redirect is handled by the \`AuthRedirect\` component at \`/auth-redirect\` -- it uses \`useAuthContext()\` from \`@elevasis/sdk-ui/auth\` and navigates home once \`user\` is set
45515
45516
  - API must be running on port 5170 for the UI to work (\`pnpm --filter api dev\` from the platform monorepo)` : ""}
45516
45517
 
@@ -46692,7 +46693,6 @@ Your \`ELEVASIS_PLATFORM_KEY\` in \`.env\` determines the organization.
46692
46693
  | --- | --- | --- |
46693
46694
  | \`api-key\` | \`{"apiKey": "sk-..."}\` | Stripe, Resend, Apify, Attio, Instantly |
46694
46695
  | \`webhook-secret\` | \`{"signingSecret": "whsec_..."}\` | Cal.com, Stripe webhooks |
46695
- | \`trello\` | \`{"apiKey": "...", "token": "..."}\` | Trello |
46696
46696
  | \`oauth\` | N/A (browser flow only) | Notion, Google Sheets, Dropbox |
46697
46697
 
46698
46698
  OAuth credentials **cannot** be created via CLI. Redirect the user to the Command Center UI.
@@ -46715,12 +46715,11 @@ elevasis-sdk creds list
46715
46715
  Display the output. Note which are \`oauth\` (not modifiable via CLI).
46716
46716
 
46717
46717
  **\`create\`:** Guided credential creation flow:
46718
- 1. Ask credential type (\`api-key\`, \`webhook-secret\`, or \`trello\`). Not \`oauth\`.
46718
+ 1. Ask credential type (\`api-key\` or \`webhook-secret\`). Not \`oauth\`.
46719
46719
  2. Ask credential name. Validate naming rules before proceeding.
46720
46720
  3. Ask the user to paste the credential value directly in chat.
46721
46721
  - For \`api-key\`: ask for the API key, construct \`{"apiKey": "..."}\`
46722
46722
  - For \`webhook-secret\`: ask for the signing secret, construct \`{"signingSecret": "..."}\`
46723
- - For \`trello\`: ask for API key AND user token, construct \`{"apiKey": "...", "token": "..."}\`
46724
46723
  4. Pipe to CLI: \`echo '{"apiKey":"..."}' | elevasis-sdk creds create --name {name} --type {type}\`
46725
46724
  5. Confirm success. **NEVER echo the credential value back.**
46726
46725
 
@@ -47158,31 +47157,33 @@ function getUIFiles(orgSlug) {
47158
47157
  };
47159
47158
  }
47160
47159
  function uiPackageJsonTemplate(orgSlug) {
47161
- return JSON.stringify({
47162
- name: `${orgSlug}-ui`,
47163
- private: true,
47164
- type: "module",
47165
- scripts: {
47166
- dev: "vite",
47167
- build: "tsc && vite build",
47168
- preview: "vite preview"
47169
- },
47170
- dependencies: {
47171
- "@elevasis/sdk-ui": "latest",
47172
- "@mantine/core": "^8.0.0",
47173
- "@mantine/hooks": "^8.0.0",
47174
- "react": "^19.0.0",
47175
- "react-dom": "^19.0.0",
47176
- "react-router-dom": "^7.0.0"
47160
+ return JSON.stringify(
47161
+ {
47162
+ name: `${orgSlug}-ui`,
47163
+ private: true,
47164
+ type: "module",
47165
+ scripts: {
47166
+ dev: "vite",
47167
+ build: "tsc && vite build",
47168
+ preview: "vite preview"
47169
+ },
47170
+ dependencies: {
47171
+ "@elevasis/sdk-ui": "latest",
47172
+ react: "^19.0.0",
47173
+ "react-dom": "^19.0.0",
47174
+ "react-router-dom": "^7.0.0"
47175
+ },
47176
+ devDependencies: {
47177
+ "@types/react": "^19.0.0",
47178
+ "@types/react-dom": "^19.0.0",
47179
+ "@vitejs/plugin-react": "^4.0.0",
47180
+ typescript: "^5.7.0",
47181
+ vite: "^6.0.0"
47182
+ }
47177
47183
  },
47178
- devDependencies: {
47179
- "@types/react": "^19.0.0",
47180
- "@types/react-dom": "^19.0.0",
47181
- "@vitejs/plugin-react": "^4.0.0",
47182
- "typescript": "^5.7.0",
47183
- "vite": "^6.0.0"
47184
- }
47185
- }, null, 2) + "\n";
47184
+ null,
47185
+ 2
47186
+ ) + "\n";
47186
47187
  }
47187
47188
  function uiIndexHtmlTemplate() {
47188
47189
  return `<!doctype html>
@@ -47212,22 +47213,26 @@ export default defineConfig({
47212
47213
  `;
47213
47214
  }
47214
47215
  function uiTsconfigTemplate() {
47215
- return JSON.stringify({
47216
- compilerOptions: {
47217
- target: "ES2022",
47218
- lib: ["ES2022", "DOM", "DOM.Iterable"],
47219
- module: "ESNext",
47220
- moduleResolution: "bundler",
47221
- jsx: "react-jsx",
47222
- strict: true,
47223
- esModuleInterop: true,
47224
- skipLibCheck: true,
47225
- forceConsistentCasingInFileNames: true,
47226
- isolatedModules: true,
47227
- noEmit: true
47216
+ return JSON.stringify(
47217
+ {
47218
+ compilerOptions: {
47219
+ target: "ES2022",
47220
+ lib: ["ES2022", "DOM", "DOM.Iterable"],
47221
+ module: "ESNext",
47222
+ moduleResolution: "bundler",
47223
+ jsx: "react-jsx",
47224
+ strict: true,
47225
+ esModuleInterop: true,
47226
+ skipLibCheck: true,
47227
+ forceConsistentCasingInFileNames: true,
47228
+ isolatedModules: true,
47229
+ noEmit: true
47230
+ },
47231
+ include: ["src"]
47228
47232
  },
47229
- include: ["src"]
47230
- }, null, 2) + "\n";
47233
+ null,
47234
+ 2
47235
+ ) + "\n";
47231
47236
  }
47232
47237
  function uiMainTsxTemplate() {
47233
47238
  return `import { StrictMode } from 'react'
@@ -47245,23 +47250,29 @@ createRoot(document.getElementById('root')!).render(
47245
47250
  `;
47246
47251
  }
47247
47252
  function uiAppTsxTemplate() {
47248
- return `import { Routes, Route } from 'react-router-dom'
47249
- import { ElevasisProvider } from '@elevasis/sdk-ui'
47253
+ return `import { ElevasisCoreProvider } from '@elevasis/sdk-ui'
47254
+ import { Routes, Route } from 'react-router-dom'
47250
47255
  import { AuthRedirect } from './AuthRedirect'
47251
47256
 
47252
47257
  export function App() {
47253
47258
  return (
47254
- <ElevasisProvider
47255
- mode="oauth"
47256
- clientId={import.meta.env.VITE_WORKOS_CLIENT_ID}
47257
- redirectUri="http://localhost:5100/auth-redirect"
47259
+ <ElevasisCoreProvider
47260
+ auth={{
47261
+ mode: 'oauth',
47262
+ clientId: import.meta.env.VITE_WORKOS_CLIENT_ID,
47263
+ redirectUri: 'http://localhost:5100/auth-redirect',
47264
+ }}
47258
47265
  apiUrl="http://localhost:5170"
47266
+ theme={{
47267
+ colorScheme: 'dark',
47268
+ preset: 'default',
47269
+ }}
47259
47270
  >
47260
47271
  <Routes>
47261
47272
  <Route path="/" element={<h1>Home</h1>} />
47262
47273
  <Route path="/auth-redirect" element={<AuthRedirect />} />
47263
47274
  </Routes>
47264
- </ElevasisProvider>
47275
+ </ElevasisCoreProvider>
47265
47276
  )
47266
47277
  }
47267
47278
  `;
@@ -47754,7 +47765,7 @@ Credentials (${data.credentials.length}):
47754
47765
 
47755
47766
  // src/cli/commands/creds/creds-create.ts
47756
47767
  var CREDENTIAL_NAME_REGEX = /^[a-z0-9]+(-[a-z0-9]+)*$/;
47757
- var VALID_TYPES = ["api-key", "webhook-secret", "trello"];
47768
+ var VALID_TYPES = ["api-key", "webhook-secret"];
47758
47769
  async function createCreds(apiUrl, name, type, valueJson) {
47759
47770
  if (!name || name.length < 1 || name.length > 100) {
47760
47771
  throw new Error("Credential name must be 1-100 characters");
@@ -47923,7 +47934,7 @@ function registerCredsCommand(program3) {
47923
47934
  creds.command("list").description("List all credentials (metadata only, no secrets)").option("--api-url <url>", "API URL").option("--json", "Output as JSON").action(wrapAction("creds list", async (options2) => {
47924
47935
  await listCreds(resolveApiUrl(options2.apiUrl), options2.json);
47925
47936
  }));
47926
- creds.command("create").description("Create a new credential").requiredOption("--name <name>", "Credential name (lowercase, digits, hyphens)").requiredOption("--type <type>", "Credential type (api-key, webhook-secret, trello)").option("--value <json>", "Credential value as JSON string").option("--api-url <url>", "API URL").action(wrapAction("creds create", async (options2) => {
47937
+ creds.command("create").description("Create a new credential").requiredOption("--name <name>", "Credential name (lowercase, digits, hyphens)").requiredOption("--type <type>", "Credential type (api-key, webhook-secret)").option("--value <json>", "Credential value as JSON string").option("--api-url <url>", "API URL").action(wrapAction("creds create", async (options2) => {
47927
47938
  await createCreds(resolveApiUrl(options2.apiUrl), options2.name, options2.type, options2.value);
47928
47939
  }));
47929
47940
  creds.command("update <name>").description("Update a credential value").requiredOption("--value <json>", "New credential value as JSON string").option("--api-url <url>", "API URL").action(wrapAction("creds update", async (name, options2) => {
package/dist/index.d.ts CHANGED
@@ -2030,6 +2030,7 @@ type Database = {
2030
2030
  error: string | null;
2031
2031
  execution_id: string;
2032
2032
  input: Json | null;
2033
+ last_heartbeat_at: string | null;
2033
2034
  logs: Json | null;
2034
2035
  organization_id: string;
2035
2036
  origin_execution_id: string | null;
@@ -2053,6 +2054,7 @@ type Database = {
2053
2054
  error?: string | null;
2054
2055
  execution_id?: string;
2055
2056
  input?: Json | null;
2057
+ last_heartbeat_at?: string | null;
2056
2058
  logs?: Json | null;
2057
2059
  organization_id: string;
2058
2060
  origin_execution_id?: string | null;
@@ -2076,6 +2078,7 @@ type Database = {
2076
2078
  error?: string | null;
2077
2079
  execution_id?: string;
2078
2080
  input?: Json | null;
2081
+ last_heartbeat_at?: string | null;
2079
2082
  logs?: Json | null;
2080
2083
  organization_id?: string;
2081
2084
  origin_execution_id?: string | null;
@@ -2777,6 +2780,10 @@ type Database = {
2777
2780
  Args: never;
2778
2781
  Returns: string;
2779
2782
  };
2783
+ detect_stalled_executions: {
2784
+ Args: never;
2785
+ Returns: undefined;
2786
+ };
2780
2787
  execute_session_turn: {
2781
2788
  Args: {
2782
2789
  p_session_id: string;
@@ -4828,215 +4835,6 @@ interface CreateCheckoutSessionResult {
4828
4835
  expiresAt: number;
4829
4836
  }
4830
4837
 
4831
- /**
4832
- * Shared Trello param/result types (browser-safe)
4833
- *
4834
- * These types define the public interface for Trello operations -- used by both
4835
- * the server-side adapter and the SDK typed wrappers. They contain zero Node.js
4836
- * dependencies and are safe to import in any environment.
4837
- *
4838
- * Server-internal types (credentials, Zod schemas) remain in
4839
- * server/adapters/trello/
4840
- */
4841
- /**
4842
- * Get board parameters
4843
- */
4844
- interface GetBoardParams {
4845
- id: string;
4846
- }
4847
- /**
4848
- * Get board result
4849
- */
4850
- interface GetBoardResult {
4851
- id: string;
4852
- name: string;
4853
- desc: string;
4854
- url: string;
4855
- shortUrl: string;
4856
- closed: boolean;
4857
- }
4858
- /**
4859
- * Get lists parameters
4860
- */
4861
- interface GetListsParams {
4862
- boardId: string;
4863
- filter?: 'all' | 'open' | 'closed';
4864
- }
4865
- /**
4866
- * Get lists result
4867
- */
4868
- interface GetListsResult {
4869
- lists: Array<{
4870
- id: string;
4871
- name: string;
4872
- closed: boolean;
4873
- pos: number;
4874
- idBoard: string;
4875
- }>;
4876
- }
4877
- /**
4878
- * Get cards parameters
4879
- */
4880
- interface GetCardsParams {
4881
- listId: string;
4882
- }
4883
- /**
4884
- * Get cards result
4885
- */
4886
- interface GetCardsResult {
4887
- cards: Array<{
4888
- id: string;
4889
- name: string;
4890
- desc: string;
4891
- closed: boolean;
4892
- due: string | null;
4893
- url: string;
4894
- shortUrl: string;
4895
- idList: string;
4896
- idBoard: string;
4897
- }>;
4898
- }
4899
- /**
4900
- * Create card parameters
4901
- */
4902
- interface CreateCardParams {
4903
- name: string;
4904
- idList: string;
4905
- desc?: string;
4906
- pos?: 'top' | 'bottom' | number;
4907
- due?: string;
4908
- idMembers?: string[];
4909
- idLabels?: string[];
4910
- }
4911
- /**
4912
- * Create card result
4913
- */
4914
- interface CreateCardResult {
4915
- id: string;
4916
- name: string;
4917
- url: string;
4918
- shortUrl: string;
4919
- }
4920
- /**
4921
- * Update card parameters
4922
- */
4923
- interface UpdateCardParams {
4924
- id: string;
4925
- name?: string;
4926
- desc?: string;
4927
- closed?: boolean;
4928
- idList?: string;
4929
- due?: string;
4930
- pos?: 'top' | 'bottom' | number;
4931
- idMembers?: string[];
4932
- idLabels?: string[];
4933
- }
4934
- /**
4935
- * Update card result
4936
- */
4937
- interface UpdateCardResult {
4938
- id: string;
4939
- name: string;
4940
- url: string;
4941
- success: boolean;
4942
- }
4943
- /**
4944
- * Create list parameters
4945
- *
4946
- * Prefixed with "Trello" to avoid collision with the Lead Service CreateListParams
4947
- * exported from the same barrel (execution/index.ts).
4948
- */
4949
- interface TrelloCreateListParams {
4950
- name: string;
4951
- idBoard: string;
4952
- pos?: 'top' | 'bottom' | number;
4953
- }
4954
- /**
4955
- * Create list result
4956
- */
4957
- interface TrelloCreateListResult {
4958
- id: string;
4959
- name: string;
4960
- closed: boolean;
4961
- pos: number;
4962
- idBoard: string;
4963
- }
4964
- /**
4965
- * Create checklist parameters
4966
- */
4967
- interface CreateChecklistParams {
4968
- idCard: string;
4969
- name: string;
4970
- pos?: 'top' | 'bottom' | number;
4971
- }
4972
- /**
4973
- * Create checklist result
4974
- */
4975
- interface CreateChecklistResult {
4976
- id: string;
4977
- name: string;
4978
- idCard: string;
4979
- }
4980
- /**
4981
- * Add checklist item parameters
4982
- */
4983
- interface AddChecklistItemParams {
4984
- idChecklist: string;
4985
- name: string;
4986
- pos?: 'top' | 'bottom' | number;
4987
- checked?: boolean;
4988
- }
4989
- /**
4990
- * Add checklist item result
4991
- */
4992
- interface AddChecklistItemResult {
4993
- id: string;
4994
- name: string;
4995
- state: 'complete' | 'incomplete';
4996
- idChecklist: string;
4997
- }
4998
- /**
4999
- * Update checklist item parameters
5000
- */
5001
- interface UpdateChecklistItemParams {
5002
- idCard: string;
5003
- idCheckItem: string;
5004
- state?: 'complete' | 'incomplete';
5005
- name?: string;
5006
- pos?: 'top' | 'bottom' | number;
5007
- }
5008
- /**
5009
- * Update checklist item result
5010
- */
5011
- interface UpdateChecklistItemResult {
5012
- id: string;
5013
- name: string;
5014
- state: 'complete' | 'incomplete';
5015
- success: boolean;
5016
- }
5017
- /**
5018
- * Get card checklists parameters
5019
- */
5020
- interface GetCardChecklistsParams {
5021
- idCard: string;
5022
- }
5023
- /**
5024
- * Get card checklists result
5025
- */
5026
- interface GetCardChecklistsResult {
5027
- checklists: Array<{
5028
- id: string;
5029
- name: string;
5030
- idCard: string;
5031
- checkItems: Array<{
5032
- id: string;
5033
- name: string;
5034
- state: 'complete' | 'incomplete';
5035
- pos: number;
5036
- }>;
5037
- }>;
5038
- }
5039
-
5040
4838
  /**
5041
4839
  * Tool Method Maps
5042
4840
  *
@@ -5342,48 +5140,6 @@ type DropboxToolMap = {
5342
5140
  result: CreateFolderResult;
5343
5141
  };
5344
5142
  };
5345
- type TrelloToolMap = {
5346
- getBoard: {
5347
- params: GetBoardParams;
5348
- result: GetBoardResult;
5349
- };
5350
- getLists: {
5351
- params: GetListsParams;
5352
- result: GetListsResult;
5353
- };
5354
- getCards: {
5355
- params: GetCardsParams;
5356
- result: GetCardsResult;
5357
- };
5358
- createCard: {
5359
- params: CreateCardParams;
5360
- result: CreateCardResult;
5361
- };
5362
- updateCard: {
5363
- params: UpdateCardParams;
5364
- result: UpdateCardResult;
5365
- };
5366
- createList: {
5367
- params: TrelloCreateListParams;
5368
- result: TrelloCreateListResult;
5369
- };
5370
- createChecklist: {
5371
- params: CreateChecklistParams;
5372
- result: CreateChecklistResult;
5373
- };
5374
- addChecklistItem: {
5375
- params: AddChecklistItemParams;
5376
- result: AddChecklistItemResult;
5377
- };
5378
- updateChecklistItem: {
5379
- params: UpdateChecklistItemParams;
5380
- result: UpdateChecklistItemResult;
5381
- };
5382
- getCardChecklists: {
5383
- params: GetCardChecklistsParams;
5384
- result: GetCardChecklistsResult;
5385
- };
5386
- };
5387
5143
  type SignatureApiToolMap = {
5388
5144
  createEnvelope: {
5389
5145
  params: CreateEnvelopeParams;
@@ -5898,6 +5654,8 @@ interface ExecutionContext extends ExecutionMetadata {
5898
5654
  logger: IExecutionLogger;
5899
5655
  signal?: AbortSignal;
5900
5656
  onMessageEvent?: (event: MessageEvent) => Promise<void>;
5657
+ /** Called per iteration to write heartbeat + check stall status. Non-fatal if it throws. */
5658
+ onHeartbeat?: () => Promise<void>;
5901
5659
  aiUsageCollector?: AIUsageCollector;
5902
5660
  metricsCollector?: MetricsCollector;
5903
5661
  parentExecutionId?: string;
@@ -5963,7 +5721,7 @@ type ToolingErrorType = 'service_unavailable' | 'permission_denied' | 'adapter_n
5963
5721
  * Note: Concrete adapter implementations are deferred until needed.
5964
5722
  * This type provides compile-time safety and auto-completion for tool definitions.
5965
5723
  */
5966
- type IntegrationType = 'gmail' | 'google-sheets' | 'slack' | 'github' | 'linear' | 'notion' | 'attio' | 'airtable' | 'trello' | 'salesforce' | 'hubspot' | 'stripe' | 'twilio' | 'sendgrid' | 'mailgun' | 'zapier' | 'webhook' | 'apify' | 'instantly' | 'resend' | 'signature-api' | 'dropbox' | 'mailso';
5724
+ type IntegrationType = 'gmail' | 'google-sheets' | 'slack' | 'github' | 'linear' | 'notion' | 'attio' | 'airtable' | 'salesforce' | 'hubspot' | 'stripe' | 'twilio' | 'sendgrid' | 'mailgun' | 'zapier' | 'webhook' | 'apify' | 'instantly' | 'resend' | 'signature-api' | 'dropbox' | 'mailso';
5967
5725
 
5968
5726
  /**
5969
5727
  * Resource Registry type definitions
@@ -6369,4 +6127,4 @@ declare class ToolingError extends ExecutionError {
6369
6127
  }
6370
6128
 
6371
6129
  export { ExecutionError, RegistryValidationError, ResourceRegistry, StepType, ToolingError };
6372
- export type { AbsoluteScheduleConfig, AcqCompany, AcqContact, AcqDeal, AcqList, AddChecklistItemParams, AddChecklistItemResult, AddToCampaignLead, AddToCampaignParams, AddToCampaignResult, AgentConfig, AgentConstraints, AgentDefinition, AgentMemory, ApifyToolMap, AppendBlocksParams, AppendBlocksResult, AppendRowsParams, AppendRowsResult, ApprovalToolMap, AttioToolMap, BatchUpdateParams, BatchUpdateResult, BulkImportParams, BulkImportResult, CancelHitlByDealIdParams, CancelSchedulesAndHitlByEmailParams, ClearDealFieldsParams, ClearRangeParams, ClearRangeResult, CompanyFilters, ConditionalNext, ContactFilters, Contract, CreateAttributeParams, CreateAttributeResult, CreateAutoPaymentLinkParams, CreateAutoPaymentLinkResult, CreateCardParams, CreateCardResult, CreateChecklistParams, CreateChecklistResult, CreateCheckoutSessionParams, CreateCheckoutSessionResult, CreateCompanyParams, CreateContactParams, CreateEnvelopeParams, CreateEnvelopeResult, CreateFolderParams, CreateFolderResult, CreateListParams, CreateNoteParams, CreateNoteResult, CreatePageParams, CreatePageResult, CreatePaymentLinkParams, CreatePaymentLinkResult, CreateRecordParams, CreateRecordResult, CreateScheduleInput, DeleteBlocksParams, DeleteBlocksResult, DeleteDealParams, DeleteNoteParams, DeleteNoteResult, DeletePageParams, DeletePageResult, DeleteRecordParams, DeleteRecordResult, DeleteRowByValueParams, DeleteRowByValueResult, DomainDefinition, DownloadDocumentParams, DownloadDocumentResult, DropboxToolMap, ElevasConfig, EmailToolMap, EnvelopeDocument, EventTriggerConfig, ExecutionContext, ExecutionInterface, ExecutionMetadata, ExecutionToolMap, FilterExpression, FilterRowsParams, FilterRowsResult, FormField, FormFieldType, FormSchema, GetBoardParams, GetBoardResult, GetCardChecklistsParams, GetCardChecklistsResult, GetCardsParams, GetCardsResult, GetEmailsParams, GetEmailsResult, GetEnvelopeParams, GetEnvelopeResult, GetHeadersParams, GetHeadersResult, GetLastRowParams, GetLastRowResult, GetListsParams, GetListsResult, GetPaymentLinkParams, GetPaymentLinkResult, GetRecordParams, GetRecordResult, GetRowByValueParams, GetRowByValueResult, GetSpreadsheetMetadataParams, GetSpreadsheetMetadataResult, GmailSendEmailParams, GmailSendEmailResult, GmailToolMap, GoogleSheetsToolMap, HumanCheckpointDefinition, InstantlyToolMap, IntegrationDefinition, LLMAdapterFactory, LLMGenerateRequest, LLMGenerateResponse, LLMMessage, LLMModel, LeadToolMap, LinearNext, ListAllPagesResult, ListAttributesParams, ListAttributesResult, ListNotesParams, ListNotesResult, ListObjectsResult, ListPaymentLinksParams, ListPaymentLinksResult, MailsoToolMap, MailsoVerifyEmailParams, MailsoVerifyEmailResult, MarkProposalReviewedParams, MarkProposalSentParams, MethodEntry, ModelConfig, NextConfig, NotificationSDKInput, NotificationToolMap, NotionToolMap, OrganizationResources, PageWithChildren, PaginatedResult, PaginationParams$1 as PaginationParams, PdfToolMap, QueryRecordsParams, QueryRecordsResult, ReadPageParams, ReadPageResult, ReadSheetParams, ReadSheetResult, Recipient, RecurringScheduleConfig, RelationshipDeclaration, RelativeScheduleConfig, RemoveFromSubsequenceParams, RemoveFromSubsequenceResult, ResendGetEmailParams, ResendGetEmailResult, ResendSendEmailParams, ResendSendEmailResult, ResendToolMap, ResourceDefinition, ResourceDomain, ResourceMetricsConfig, ResourceRelationships, ResourceStatus$1 as ResourceStatus, ResourceType, RunActorParams, RunActorResult, ScheduleOriginTracking, ScheduleTarget, ScheduleTriggerConfig, SchedulerToolMap, SendReplyParams, SendReplyResult, SetContactNurtureParams, SheetInfo, SignatureApiFieldType, SignatureApiToolMap, SigningPlace, SortCriteria, StepHandler, StorageDeleteInput, StorageDeleteOutput, StorageDownloadInput, StorageDownloadOutput, StorageListInput, StorageListOutput, StorageSignedUrlInput, StorageSignedUrlOutput, StorageToolMap, StorageUploadInput, StorageUploadOutput, StripeToolMap, SyncDealStageParams, TaskSchedule, TaskScheduleConfig, Tool, ToolExecutionOptions, ToolMethodMap, ToolingErrorType, TrelloCreateListParams, TrelloCreateListResult, TrelloToolMap, TriggerConfig, TriggerDefinition, UpdateAttributeParams, UpdateAttributeResult, UpdateBlocksParams, UpdateBlocksResult, UpdateCardParams, UpdateCardResult, UpdateChecklistItemParams, UpdateChecklistItemResult, UpdateCloseLostReasonParams, UpdateCompanyParams, UpdateContactParams, UpdateDiscoveryDataParams, UpdateFeesParams, UpdateInterestStatusParams, UpdateInterestStatusResult, UpdateListParams, UpdatePageTitleParams, UpdatePageTitleResult, UpdatePaymentLinkParams, UpdatePaymentLinkResult, UpdateProposalDataParams, UpdateRecordParams, UpdateRecordResult, UpdateRowByValueParams, UpdateRowByValueResult, UploadFileParams, UploadFileResult, UpsertCompanyParams, UpsertContactParams, UpsertDealParams, UpsertRowParams, UpsertRowResult, VoidEnvelopeParams, VoidEnvelopeResult, WebhookProviderType, WebhookTriggerConfig, WorkflowConfig, WorkflowDefinition, WorkflowStep, WriteSheetParams, WriteSheetResult };
6130
+ export type { AbsoluteScheduleConfig, AcqCompany, AcqContact, AcqDeal, AcqList, AddToCampaignLead, AddToCampaignParams, AddToCampaignResult, AgentConfig, AgentConstraints, AgentDefinition, AgentMemory, ApifyToolMap, AppendBlocksParams, AppendBlocksResult, AppendRowsParams, AppendRowsResult, ApprovalToolMap, AttioToolMap, BatchUpdateParams, BatchUpdateResult, BulkImportParams, BulkImportResult, CancelHitlByDealIdParams, CancelSchedulesAndHitlByEmailParams, ClearDealFieldsParams, ClearRangeParams, ClearRangeResult, CompanyFilters, ConditionalNext, ContactFilters, Contract, CreateAttributeParams, CreateAttributeResult, CreateAutoPaymentLinkParams, CreateAutoPaymentLinkResult, CreateCheckoutSessionParams, CreateCheckoutSessionResult, CreateCompanyParams, CreateContactParams, CreateEnvelopeParams, CreateEnvelopeResult, CreateFolderParams, CreateFolderResult, CreateListParams, CreateNoteParams, CreateNoteResult, CreatePageParams, CreatePageResult, CreatePaymentLinkParams, CreatePaymentLinkResult, CreateRecordParams, CreateRecordResult, CreateScheduleInput, DeleteBlocksParams, DeleteBlocksResult, DeleteDealParams, DeleteNoteParams, DeleteNoteResult, DeletePageParams, DeletePageResult, DeleteRecordParams, DeleteRecordResult, DeleteRowByValueParams, DeleteRowByValueResult, DomainDefinition, DownloadDocumentParams, DownloadDocumentResult, DropboxToolMap, ElevasConfig, EmailToolMap, EnvelopeDocument, EventTriggerConfig, ExecutionContext, ExecutionInterface, ExecutionMetadata, ExecutionToolMap, FilterExpression, FilterRowsParams, FilterRowsResult, FormField, FormFieldType, FormSchema, GetEmailsParams, GetEmailsResult, GetEnvelopeParams, GetEnvelopeResult, GetHeadersParams, GetHeadersResult, GetLastRowParams, GetLastRowResult, GetPaymentLinkParams, GetPaymentLinkResult, GetRecordParams, GetRecordResult, GetRowByValueParams, GetRowByValueResult, GetSpreadsheetMetadataParams, GetSpreadsheetMetadataResult, GmailSendEmailParams, GmailSendEmailResult, GmailToolMap, GoogleSheetsToolMap, HumanCheckpointDefinition, InstantlyToolMap, IntegrationDefinition, LLMAdapterFactory, LLMGenerateRequest, LLMGenerateResponse, LLMMessage, LLMModel, LeadToolMap, LinearNext, ListAllPagesResult, ListAttributesParams, ListAttributesResult, ListNotesParams, ListNotesResult, ListObjectsResult, ListPaymentLinksParams, ListPaymentLinksResult, MailsoToolMap, MailsoVerifyEmailParams, MailsoVerifyEmailResult, MarkProposalReviewedParams, MarkProposalSentParams, MethodEntry, ModelConfig, NextConfig, NotificationSDKInput, NotificationToolMap, NotionToolMap, OrganizationResources, PageWithChildren, PaginatedResult, PaginationParams$1 as PaginationParams, PdfToolMap, QueryRecordsParams, QueryRecordsResult, ReadPageParams, ReadPageResult, ReadSheetParams, ReadSheetResult, Recipient, RecurringScheduleConfig, RelationshipDeclaration, RelativeScheduleConfig, RemoveFromSubsequenceParams, RemoveFromSubsequenceResult, ResendGetEmailParams, ResendGetEmailResult, ResendSendEmailParams, ResendSendEmailResult, ResendToolMap, ResourceDefinition, ResourceDomain, ResourceMetricsConfig, ResourceRelationships, ResourceStatus$1 as ResourceStatus, ResourceType, RunActorParams, RunActorResult, ScheduleOriginTracking, ScheduleTarget, ScheduleTriggerConfig, SchedulerToolMap, SendReplyParams, SendReplyResult, SetContactNurtureParams, SheetInfo, SignatureApiFieldType, SignatureApiToolMap, SigningPlace, SortCriteria, StepHandler, StorageDeleteInput, StorageDeleteOutput, StorageDownloadInput, StorageDownloadOutput, StorageListInput, StorageListOutput, StorageSignedUrlInput, StorageSignedUrlOutput, StorageToolMap, StorageUploadInput, StorageUploadOutput, StripeToolMap, SyncDealStageParams, TaskSchedule, TaskScheduleConfig, Tool, ToolExecutionOptions, ToolMethodMap, ToolingErrorType, TriggerConfig, TriggerDefinition, UpdateAttributeParams, UpdateAttributeResult, UpdateBlocksParams, UpdateBlocksResult, UpdateCloseLostReasonParams, UpdateCompanyParams, UpdateContactParams, UpdateDiscoveryDataParams, UpdateFeesParams, UpdateInterestStatusParams, UpdateInterestStatusResult, UpdateListParams, UpdatePageTitleParams, UpdatePageTitleResult, UpdatePaymentLinkParams, UpdatePaymentLinkResult, UpdateProposalDataParams, UpdateRecordParams, UpdateRecordResult, UpdateRowByValueParams, UpdateRowByValueResult, UploadFileParams, UploadFileResult, UpsertCompanyParams, UpsertContactParams, UpsertDealParams, UpsertRowParams, UpsertRowResult, VoidEnvelopeParams, VoidEnvelopeResult, WebhookProviderType, WebhookTriggerConfig, WorkflowConfig, WorkflowDefinition, WorkflowStep, WriteSheetParams, WriteSheetResult };
package/dist/index.js CHANGED
@@ -3234,6 +3234,7 @@ var ResourceRegistry = class {
3234
3234
  version: def.config.version,
3235
3235
  type: def.config.type,
3236
3236
  status: def.config.status,
3237
+ domains: def.config.domains,
3237
3238
  origin: this.remoteResources.has(`${organizationName}/${def.config.resourceId}`) ? "remote" : "local"
3238
3239
  })).filter((resource) => !environment || resource.status === environment);
3239
3240
  const agents = (orgResources.agents || []).map((def) => ({
@@ -3243,6 +3244,7 @@ var ResourceRegistry = class {
3243
3244
  version: def.config.version,
3244
3245
  type: def.config.type,
3245
3246
  status: def.config.status,
3247
+ domains: def.config.domains,
3246
3248
  sessionCapable: def.config.sessionCapable ?? false,
3247
3249
  origin: this.remoteResources.has(`${organizationName}/${def.config.resourceId}`) ? "remote" : "local"
3248
3250
  })).filter((resource) => !environment || resource.status === environment);
@@ -3289,9 +3291,7 @@ var ResourceRegistry = class {
3289
3291
  const seen = /* @__PURE__ */ new Set();
3290
3292
  for (const id of incomingIds) {
3291
3293
  if (seen.has(id)) {
3292
- throw new Error(
3293
- `Duplicate resource ID '${id}' in deployment. Each resource must have a unique ID.`
3294
- );
3294
+ throw new Error(`Duplicate resource ID '${id}' in deployment. Each resource must have a unique ID.`);
3295
3295
  }
3296
3296
  seen.add(id);
3297
3297
  }
@@ -3350,12 +3350,8 @@ var ResourceRegistry = class {
3350
3350
  if (remoteIds.size === 0) return;
3351
3351
  const orgResources = this.registry[orgName];
3352
3352
  if (!orgResources) return;
3353
- orgResources.workflows = (orgResources.workflows ?? []).filter(
3354
- (w) => !remoteIds.has(w.config.resourceId)
3355
- );
3356
- orgResources.agents = (orgResources.agents ?? []).filter(
3357
- (a) => !remoteIds.has(a.config.resourceId)
3358
- );
3353
+ orgResources.workflows = (orgResources.workflows ?? []).filter((w) => !remoteIds.has(w.config.resourceId));
3354
+ orgResources.agents = (orgResources.agents ?? []).filter((a) => !remoteIds.has(a.config.resourceId));
3359
3355
  if (orgResources.relationships) {
3360
3356
  for (const id of remoteIds) {
3361
3357
  delete orgResources.relationships[id];