@elevasis/sdk 0.6.5 → 0.6.8

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/index.d.ts CHANGED
@@ -584,7 +584,7 @@ type OpenAIModel = 'gpt-5' | 'gpt-5-mini';
584
584
  /**
585
585
  * Supported OpenRouter models (explicit union for type safety)
586
586
  */
587
- type OpenRouterModel = 'openrouter/anthropic/claude-sonnet-4.5' | 'openrouter/deepseek/deepseek-v3.2' | 'openrouter/x-ai/grok-4.1-fast' | 'openrouter/minimax/minimax-m2.5' | 'openrouter/qwen/qwen3.5-397b-a17b' | 'openrouter/moonshotai/kimi-k2.5' | 'openrouter/z-ai/glm-5' | 'openrouter/google/gemini-3-flash-preview';
587
+ type OpenRouterModel = 'openrouter/anthropic/claude-sonnet-4.5' | 'openrouter/deepseek/deepseek-v3.2' | 'openrouter/x-ai/grok-4.1-fast' | 'openrouter/minimax/minimax-m2.5' | 'openrouter/qwen/qwen3.5-397b-a17b' | 'openrouter/moonshotai/kimi-k2.5' | 'openrouter/z-ai/glm-5';
588
588
  /**
589
589
  * Supported Google models (direct SDK access)
590
590
  */
@@ -1277,6 +1277,7 @@ type Database = {
1277
1277
  qualification: string | null;
1278
1278
  source: string | null;
1279
1279
  source_id: string | null;
1280
+ status: string;
1280
1281
  title: string | null;
1281
1282
  updated_at: string;
1282
1283
  };
@@ -1303,6 +1304,7 @@ type Database = {
1303
1304
  qualification?: string | null;
1304
1305
  source?: string | null;
1305
1306
  source_id?: string | null;
1307
+ status?: string;
1306
1308
  title?: string | null;
1307
1309
  updated_at?: string;
1308
1310
  };
@@ -1329,6 +1331,7 @@ type Database = {
1329
1331
  qualification?: string | null;
1330
1332
  source?: string | null;
1331
1333
  source_id?: string | null;
1334
+ status?: string;
1332
1335
  title?: string | null;
1333
1336
  updated_at?: string;
1334
1337
  };
@@ -3080,6 +3083,29 @@ declare class ResourceRegistry {
3080
3083
  * @throws Error if incoming deployment contains duplicate resourceIds
3081
3084
  */
3082
3085
  registerOrganization(orgName: string, org: OrganizationResources, remote: RemoteOrgConfig): void;
3086
+ /**
3087
+ * Patch serialized cache with pre-serialized schemas from an external manifest.
3088
+ *
3089
+ * External deployments use stub definitions with z.any() schemas (never called).
3090
+ * The manifest carries the real schemas as pre-serialized JSON Schema from the worker.
3091
+ * This method patches those into the serialized cache so describe/CLI display them.
3092
+ *
3093
+ * @param orgName - Organization name
3094
+ * @param manifestSchemas - Map of resourceId -> { contract, steps } with JSON Schema
3095
+ */
3096
+ patchManifestSchemas(orgName: string, manifestSchemas: Array<{
3097
+ resourceId: string;
3098
+ type: 'workflow' | 'agent';
3099
+ contract?: {
3100
+ inputSchema?: object;
3101
+ outputSchema?: object;
3102
+ };
3103
+ steps?: Array<{
3104
+ id: string;
3105
+ inputSchema?: object;
3106
+ outputSchema?: object;
3107
+ }>;
3108
+ }>): void;
3083
3109
  /**
3084
3110
  * Register built-in platform resources (static, local execution)
3085
3111
  *
@@ -3409,6 +3435,7 @@ interface AcqContact {
3409
3435
  /** Attio Person record ID - set when contact responds and is added to CRM */
3410
3436
  attioPersonId: string | null;
3411
3437
  batchId: string | null;
3438
+ status: 'active' | 'invalid';
3412
3439
  createdAt: Date;
3413
3440
  updatedAt: Date;
3414
3441
  }
@@ -3506,6 +3533,7 @@ interface UpdateContactParams {
3506
3533
  enrichmentData?: Record<string, unknown>;
3507
3534
  /** Attio Person record ID - set when contact responds and is added to CRM. Pass null to clear. */
3508
3535
  attioPersonId?: string | null;
3536
+ status?: 'active' | 'invalid';
3509
3537
  }
3510
3538
  type UpsertContactParams = CreateContactParams;
3511
3539
  interface ContactFilters {
@@ -3515,6 +3543,7 @@ interface ContactFilters {
3515
3543
  pipelineStatus?: Record<string, unknown>;
3516
3544
  batchId?: string;
3517
3545
  excludeInvalidCompanies?: boolean;
3546
+ contactStatus?: 'active' | 'invalid';
3518
3547
  }
3519
3548
  interface UpsertDealParams {
3520
3549
  organizationId: string;
@@ -4700,6 +4729,70 @@ interface CreateCampaignResult {
4700
4729
  campaign_id: string;
4701
4730
  name: string;
4702
4731
  }
4732
+ /**
4733
+ * Get daily campaign analytics parameters
4734
+ */
4735
+ interface GetDailyCampaignAnalyticsParams {
4736
+ campaign_id?: string;
4737
+ start_date?: string;
4738
+ end_date?: string;
4739
+ }
4740
+ /**
4741
+ * Get daily campaign analytics result
4742
+ */
4743
+ interface GetDailyCampaignAnalyticsResult {
4744
+ data: Array<{
4745
+ date: string;
4746
+ sent: number;
4747
+ opened: number;
4748
+ unique_opened: number;
4749
+ replied: number;
4750
+ unique_replied: number;
4751
+ bounced: number;
4752
+ clicks: number;
4753
+ unique_clicks: number;
4754
+ }>;
4755
+ }
4756
+ /**
4757
+ * List leads parameters
4758
+ */
4759
+ interface ListLeadsParams {
4760
+ campaign_id?: string;
4761
+ email?: string;
4762
+ limit?: number;
4763
+ starting_after?: string;
4764
+ }
4765
+ /**
4766
+ * List leads result
4767
+ */
4768
+ interface ListLeadsResult {
4769
+ items: Array<{
4770
+ id: string;
4771
+ email: string;
4772
+ first_name?: string;
4773
+ last_name?: string;
4774
+ company_name?: string;
4775
+ status: string;
4776
+ campaign_id?: string;
4777
+ timestamp_created?: string;
4778
+ }>;
4779
+ next_starting_after?: string;
4780
+ }
4781
+ /**
4782
+ * Bulk delete leads parameters
4783
+ */
4784
+ interface BulkDeleteLeadsParams {
4785
+ lead_ids?: string[];
4786
+ campaign_id?: string;
4787
+ list_id?: string;
4788
+ limit?: number;
4789
+ }
4790
+ /**
4791
+ * Bulk delete leads result
4792
+ */
4793
+ interface BulkDeleteLeadsResult {
4794
+ deleted_count: number;
4795
+ }
4703
4796
 
4704
4797
  /**
4705
4798
  * Shared Mailso param/result types (browser-safe)
@@ -4811,6 +4904,7 @@ interface DomainSearchParams {
4811
4904
  domain: string;
4812
4905
  limit?: number;
4813
4906
  department?: string;
4907
+ type?: 'personal' | 'generic';
4814
4908
  }
4815
4909
  interface DomainSearchEmail {
4816
4910
  email: string;
@@ -5685,6 +5779,18 @@ type InstantlyToolMap = {
5685
5779
  params: CreateCampaignParams;
5686
5780
  result: CreateCampaignResult;
5687
5781
  };
5782
+ getDailyCampaignAnalytics: {
5783
+ params: GetDailyCampaignAnalyticsParams;
5784
+ result: GetDailyCampaignAnalyticsResult;
5785
+ };
5786
+ listLeads: {
5787
+ params: ListLeadsParams;
5788
+ result: ListLeadsResult;
5789
+ };
5790
+ bulkDeleteLeads: {
5791
+ params: BulkDeleteLeadsParams;
5792
+ result: BulkDeleteLeadsResult;
5793
+ };
5688
5794
  };
5689
5795
  type MailsoToolMap = {
5690
5796
  verifyEmail: {
@@ -6722,4 +6828,4 @@ declare class ToolingError extends ExecutionError {
6722
6828
  }
6723
6829
 
6724
6830
  export { ExecutionError, RegistryValidationError, ResourceRegistry, StepType, ToolingError };
6725
- export type { AbsoluteScheduleConfig, AcqCompany, AcqContact, AcqDeal, AcqList, AddToCampaignLead, AddToCampaignParams, AddToCampaignResult, AgentConfig, AgentConstraints, AgentDefinition, AgentMemory, FindCompanyEmailParams as AnymailfinderFindCompanyEmailParams, FindCompanyEmailResult as AnymailfinderFindCompanyEmailResult, FindDecisionMakerEmailParams as AnymailfinderFindDecisionMakerEmailParams, FindDecisionMakerEmailResult as AnymailfinderFindDecisionMakerEmailResult, FindPersonEmailParams as AnymailfinderFindPersonEmailParams, FindPersonEmailResult as AnymailfinderFindPersonEmailResult, AnymailfinderToolMap, VerifyEmailParams as AnymailfinderVerifyEmailParams, VerifyEmailResult as AnymailfinderVerifyEmailResult, ApifyToolMap, ApifyWebhookConfig, 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, 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, SDKLLMGenerateParams, ScheduleOriginTracking, ScheduleTarget, ScheduleTriggerConfig, SchedulerToolMap, SendReplyParams, SendReplyResult, SetContactNurtureParams, SheetInfo, SignatureApiFieldType, SignatureApiToolMap, SigningPlace, SortCriteria, StartActorParams, StartActorResult, StepHandler, StorageDeleteInput, StorageDeleteOutput, StorageDownloadInput, StorageDownloadOutput, StorageListInput, StorageListOutput, StorageSignedUrlInput, StorageSignedUrlOutput, StorageToolMap, StorageUploadInput, StorageUploadOutput, StripeToolMap, SyncDealStageParams, TaskSchedule, TaskScheduleConfig, TombaToolMap, 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 };
6831
+ export type { AbsoluteScheduleConfig, AcqCompany, AcqContact, AcqDeal, AcqList, AddToCampaignLead, AddToCampaignParams, AddToCampaignResult, AgentConfig, AgentConstraints, AgentDefinition, AgentMemory, FindCompanyEmailParams as AnymailfinderFindCompanyEmailParams, FindCompanyEmailResult as AnymailfinderFindCompanyEmailResult, FindDecisionMakerEmailParams as AnymailfinderFindDecisionMakerEmailParams, FindDecisionMakerEmailResult as AnymailfinderFindDecisionMakerEmailResult, FindPersonEmailParams as AnymailfinderFindPersonEmailParams, FindPersonEmailResult as AnymailfinderFindPersonEmailResult, AnymailfinderToolMap, VerifyEmailParams as AnymailfinderVerifyEmailParams, VerifyEmailResult as AnymailfinderVerifyEmailResult, ApifyToolMap, ApifyWebhookConfig, AppendBlocksParams, AppendBlocksResult, AppendRowsParams, AppendRowsResult, ApprovalToolMap, AttioToolMap, BatchUpdateParams, BatchUpdateResult, BulkDeleteLeadsParams, BulkDeleteLeadsResult, 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, GetDailyCampaignAnalyticsParams, GetDailyCampaignAnalyticsResult, 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, ListLeadsParams, ListLeadsResult, ListNotesParams, ListNotesResult, ListObjectsResult, ListPaymentLinksParams, ListPaymentLinksResult, MailsoToolMap, MailsoVerifyEmailParams, MailsoVerifyEmailResult, MarkProposalReviewedParams, MarkProposalSentParams, MethodEntry, ModelConfig, NextConfig, NotificationSDKInput, NotificationToolMap, NotionToolMap, OrganizationResources, PageWithChildren, PaginatedResult, 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, SDKLLMGenerateParams, ScheduleOriginTracking, ScheduleTarget, ScheduleTriggerConfig, SchedulerToolMap, SendReplyParams, SendReplyResult, SetContactNurtureParams, SheetInfo, SignatureApiFieldType, SignatureApiToolMap, SigningPlace, SortCriteria, StartActorParams, StartActorResult, StepHandler, StorageDeleteInput, StorageDeleteOutput, StorageDownloadInput, StorageDownloadOutput, StorageListInput, StorageListOutput, StorageSignedUrlInput, StorageSignedUrlOutput, StorageToolMap, StorageUploadInput, StorageUploadOutput, StripeToolMap, SyncDealStageParams, TaskSchedule, TaskScheduleConfig, TombaToolMap, 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
@@ -226,8 +226,7 @@ var OpenRouterConfigSchema = z.object({
226
226
  "openrouter/minimax/minimax-m2.5",
227
227
  "openrouter/qwen/qwen3.5-397b-a17b",
228
228
  "openrouter/moonshotai/kimi-k2.5",
229
- "openrouter/z-ai/glm-5",
230
- "openrouter/google/gemini-3-flash-preview"
229
+ "openrouter/z-ai/glm-5"
231
230
  ]),
232
231
  provider: z.literal("openrouter"),
233
232
  apiKey: z.string(),
@@ -387,18 +386,6 @@ var MODEL_INFO = {
387
386
  category: "standard",
388
387
  configSchema: OpenRouterConfigSchema
389
388
  },
390
- "openrouter/google/gemini-3-flash-preview": {
391
- inputCostPer1M: 50,
392
- // $0.50 per 1M tokens
393
- outputCostPer1M: 300,
394
- // $3.00 per 1M tokens
395
- minTokens: 4e3,
396
- recommendedTokens: 8e3,
397
- maxTokens: 1048576,
398
- // 1M context window
399
- category: "standard",
400
- configSchema: OpenRouterConfigSchema
401
- },
402
389
  // Google Gemini Models (direct SDK access via @google/genai)
403
390
  "gemini-3-flash-preview": {
404
391
  inputCostPer1M: 50,
@@ -2894,11 +2881,11 @@ function serializeDefinition(definition, options) {
2894
2881
  function deepSerialize(value, ctx) {
2895
2882
  if (value === null || value === void 0) return value;
2896
2883
  if (typeof value !== "object") return value;
2884
+ if (isZodSchema(value)) return convertZodToJsonSchema(value);
2897
2885
  if (ctx.visited.has(value)) {
2898
2886
  return { __circular: true };
2899
2887
  }
2900
2888
  ctx.visited.add(value);
2901
- if (isZodSchema(value)) return convertZodToJsonSchema(value);
2902
2889
  if (value instanceof Map) return convertMapToArray(value, ctx);
2903
2890
  if (value instanceof Set) return convertSetToArray(value, ctx);
2904
2891
  if (value instanceof Date) return value.toISOString();
@@ -3433,6 +3420,41 @@ var ResourceRegistry = class {
3433
3420
  }
3434
3421
  this.serializedCache.set(orgName, serializeOrganization(this.registry[orgName]));
3435
3422
  }
3423
+ /**
3424
+ * Patch serialized cache with pre-serialized schemas from an external manifest.
3425
+ *
3426
+ * External deployments use stub definitions with z.any() schemas (never called).
3427
+ * The manifest carries the real schemas as pre-serialized JSON Schema from the worker.
3428
+ * This method patches those into the serialized cache so describe/CLI display them.
3429
+ *
3430
+ * @param orgName - Organization name
3431
+ * @param manifestSchemas - Map of resourceId -> { contract, steps } with JSON Schema
3432
+ */
3433
+ patchManifestSchemas(orgName, manifestSchemas) {
3434
+ const cache = this.serializedCache.get(orgName);
3435
+ if (!cache) return;
3436
+ for (const entry of manifestSchemas) {
3437
+ if (entry.type === "workflow") {
3438
+ const def = cache.definitions.workflows.get(entry.resourceId);
3439
+ if (!def) continue;
3440
+ if (entry.contract?.inputSchema) def.contract.inputSchema = entry.contract.inputSchema;
3441
+ if (entry.contract?.outputSchema) def.contract.outputSchema = entry.contract.outputSchema;
3442
+ if (entry.steps && def.steps) {
3443
+ for (const stepPatch of entry.steps) {
3444
+ const step = def.steps.find((s) => s.id === stepPatch.id);
3445
+ if (!step) continue;
3446
+ if (stepPatch.inputSchema) step.inputSchema = stepPatch.inputSchema;
3447
+ if (stepPatch.outputSchema) step.outputSchema = stepPatch.outputSchema;
3448
+ }
3449
+ }
3450
+ } else if (entry.type === "agent") {
3451
+ const def = cache.definitions.agents.get(entry.resourceId);
3452
+ if (!def) continue;
3453
+ if (entry.contract?.inputSchema) def.contract.inputSchema = entry.contract.inputSchema;
3454
+ if (entry.contract?.outputSchema) def.contract.outputSchema = entry.contract.outputSchema;
3455
+ }
3456
+ }
3457
+ }
3436
3458
  /**
3437
3459
  * Register built-in platform resources (static, local execution)
3438
3460
  *