@elevasis/sdk 1.19.0 → 1.20.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 (56) hide show
  1. package/dist/cli.cjs +1712 -72
  2. package/dist/index.d.ts +659 -5
  3. package/dist/index.js +565 -42
  4. package/dist/node/index.d.ts +1 -0
  5. package/dist/node/index.js +213 -2
  6. package/dist/test-utils/index.d.ts +459 -4
  7. package/dist/test-utils/index.js +509 -37
  8. package/dist/worker/index.js +365 -37
  9. package/package.json +4 -4
  10. package/reference/_navigation.md +2 -1
  11. package/reference/_reference-manifest.json +14 -0
  12. package/reference/claude-config/rules/agent-start-here.md +5 -5
  13. package/reference/claude-config/rules/deployment.md +4 -3
  14. package/reference/claude-config/rules/frontend.md +2 -2
  15. package/reference/claude-config/rules/operations.md +17 -13
  16. package/reference/claude-config/rules/organization-model.md +7 -5
  17. package/reference/claude-config/rules/organization-os.md +13 -11
  18. package/reference/claude-config/rules/ui.md +3 -3
  19. package/reference/claude-config/rules/vibe.md +4 -4
  20. package/reference/claude-config/skills/explore/SKILL.md +4 -4
  21. package/reference/claude-config/skills/knowledge/SKILL.md +8 -8
  22. package/reference/claude-config/skills/knowledge/operations/codify-level-a.md +7 -7
  23. package/reference/claude-config/skills/knowledge/operations/codify-level-b.md +13 -13
  24. package/reference/claude-config/skills/knowledge/operations/customers.md +1 -1
  25. package/reference/claude-config/skills/knowledge/operations/goals.md +1 -1
  26. package/reference/claude-config/skills/knowledge/operations/identity.md +1 -1
  27. package/reference/claude-config/skills/knowledge/operations/offerings.md +1 -1
  28. package/reference/claude-config/skills/knowledge/operations/roles.md +1 -1
  29. package/reference/claude-config/skills/knowledge/operations/techStack.md +19 -91
  30. package/reference/claude-config/skills/project/SKILL.md +73 -13
  31. package/reference/claude-config/skills/save/SKILL.md +5 -5
  32. package/reference/claude-config/skills/tutorial/technical.md +5 -6
  33. package/reference/claude-config/sync-notes/2026-05-07-sdk-changes-release-train.md +34 -0
  34. package/reference/claude-config/sync-notes/2026-05-08-resource-governance-scaffold-guidance.md +38 -0
  35. package/reference/claude-config/sync-notes/2026-05-09-clients-domain.md +32 -0
  36. package/reference/claude-config/sync-notes/2026-05-09-command-system.md +33 -0
  37. package/reference/claude-config/sync-notes/2026-05-09-resource-governance-and-misc.md +69 -0
  38. package/reference/examples/organization-model.ts +17 -5
  39. package/reference/framework/index.mdx +1 -1
  40. package/reference/framework/project-structure.mdx +10 -8
  41. package/reference/packages/core/src/business/README.md +2 -2
  42. package/reference/packages/core/src/organization-model/README.md +10 -3
  43. package/reference/resources/index.mdx +27 -17
  44. package/reference/scaffold/core/organization-model.mdx +33 -14
  45. package/reference/scaffold/operations/workflow-recipes.md +35 -29
  46. package/reference/scaffold/recipes/add-a-feature.md +18 -3
  47. package/reference/scaffold/recipes/add-a-resource.md +50 -10
  48. package/reference/scaffold/recipes/customize-crm-actions.md +12 -6
  49. package/reference/scaffold/recipes/customize-organization-model.md +18 -3
  50. package/reference/scaffold/recipes/extend-crm.md +17 -19
  51. package/reference/scaffold/recipes/extend-lead-gen.md +31 -31
  52. package/reference/scaffold/recipes/index.md +1 -1
  53. package/reference/scaffold/reference/contracts.md +501 -303
  54. package/reference/scaffold/reference/feature-registry.md +1 -1
  55. package/reference/scaffold/reference/glossary.md +8 -3
  56. package/reference/scaffold/ui/recipes.md +21 -6
package/dist/index.d.ts CHANGED
@@ -318,6 +318,7 @@ interface SerializedAgentDefinition {
318
318
  description: string;
319
319
  version: string;
320
320
  type: 'agent';
321
+ kind: 'orchestrator' | 'specialist' | 'utility' | 'system';
321
322
  status: 'dev' | 'prod';
322
323
  links?: ResourceLink[];
323
324
  category?: ResourceCategory;
@@ -501,6 +502,131 @@ interface ModelConfig {
501
502
  modelOptions?: ModelSpecificOptions;
502
503
  }
503
504
 
505
+ declare const ResourceGovernanceStatusSchema: z.ZodEnum<{
506
+ active: "active";
507
+ deprecated: "deprecated";
508
+ archived: "archived";
509
+ }>;
510
+ declare const WorkflowResourceEntrySchema: z.ZodObject<{
511
+ id: z.ZodString;
512
+ systemId: z.ZodString;
513
+ ownerRoleId: z.ZodOptional<z.ZodString>;
514
+ status: z.ZodEnum<{
515
+ active: "active";
516
+ deprecated: "deprecated";
517
+ archived: "archived";
518
+ }>;
519
+ kind: z.ZodLiteral<"workflow">;
520
+ capabilityKey: z.ZodOptional<z.ZodString>;
521
+ }, z.core.$strip>;
522
+ declare const AgentResourceEntrySchema: z.ZodObject<{
523
+ id: z.ZodString;
524
+ systemId: z.ZodString;
525
+ ownerRoleId: z.ZodOptional<z.ZodString>;
526
+ status: z.ZodEnum<{
527
+ active: "active";
528
+ deprecated: "deprecated";
529
+ archived: "archived";
530
+ }>;
531
+ kind: z.ZodLiteral<"agent">;
532
+ agentKind: z.ZodEnum<{
533
+ orchestrator: "orchestrator";
534
+ specialist: "specialist";
535
+ utility: "utility";
536
+ system: "system";
537
+ }>;
538
+ actsAsRoleId: z.ZodOptional<z.ZodString>;
539
+ sessionCapable: z.ZodBoolean;
540
+ }, z.core.$strip>;
541
+ declare const ResourceEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
542
+ id: z.ZodString;
543
+ systemId: z.ZodString;
544
+ ownerRoleId: z.ZodOptional<z.ZodString>;
545
+ status: z.ZodEnum<{
546
+ active: "active";
547
+ deprecated: "deprecated";
548
+ archived: "archived";
549
+ }>;
550
+ kind: z.ZodLiteral<"workflow">;
551
+ capabilityKey: z.ZodOptional<z.ZodString>;
552
+ }, z.core.$strip>, z.ZodObject<{
553
+ id: z.ZodString;
554
+ systemId: z.ZodString;
555
+ ownerRoleId: z.ZodOptional<z.ZodString>;
556
+ status: z.ZodEnum<{
557
+ active: "active";
558
+ deprecated: "deprecated";
559
+ archived: "archived";
560
+ }>;
561
+ kind: z.ZodLiteral<"agent">;
562
+ agentKind: z.ZodEnum<{
563
+ orchestrator: "orchestrator";
564
+ specialist: "specialist";
565
+ utility: "utility";
566
+ system: "system";
567
+ }>;
568
+ actsAsRoleId: z.ZodOptional<z.ZodString>;
569
+ sessionCapable: z.ZodBoolean;
570
+ }, z.core.$strip>, z.ZodObject<{
571
+ id: z.ZodString;
572
+ systemId: z.ZodString;
573
+ ownerRoleId: z.ZodOptional<z.ZodString>;
574
+ status: z.ZodEnum<{
575
+ active: "active";
576
+ deprecated: "deprecated";
577
+ archived: "archived";
578
+ }>;
579
+ kind: z.ZodLiteral<"integration">;
580
+ provider: z.ZodString;
581
+ }, z.core.$strip>], "kind">;
582
+ declare const ResourcesDomainSchema: z.ZodObject<{
583
+ entries: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
584
+ id: z.ZodString;
585
+ systemId: z.ZodString;
586
+ ownerRoleId: z.ZodOptional<z.ZodString>;
587
+ status: z.ZodEnum<{
588
+ active: "active";
589
+ deprecated: "deprecated";
590
+ archived: "archived";
591
+ }>;
592
+ kind: z.ZodLiteral<"workflow">;
593
+ capabilityKey: z.ZodOptional<z.ZodString>;
594
+ }, z.core.$strip>, z.ZodObject<{
595
+ id: z.ZodString;
596
+ systemId: z.ZodString;
597
+ ownerRoleId: z.ZodOptional<z.ZodString>;
598
+ status: z.ZodEnum<{
599
+ active: "active";
600
+ deprecated: "deprecated";
601
+ archived: "archived";
602
+ }>;
603
+ kind: z.ZodLiteral<"agent">;
604
+ agentKind: z.ZodEnum<{
605
+ orchestrator: "orchestrator";
606
+ specialist: "specialist";
607
+ utility: "utility";
608
+ system: "system";
609
+ }>;
610
+ actsAsRoleId: z.ZodOptional<z.ZodString>;
611
+ sessionCapable: z.ZodBoolean;
612
+ }, z.core.$strip>, z.ZodObject<{
613
+ id: z.ZodString;
614
+ systemId: z.ZodString;
615
+ ownerRoleId: z.ZodOptional<z.ZodString>;
616
+ status: z.ZodEnum<{
617
+ active: "active";
618
+ deprecated: "deprecated";
619
+ archived: "archived";
620
+ }>;
621
+ kind: z.ZodLiteral<"integration">;
622
+ provider: z.ZodString;
623
+ }, z.core.$strip>], "kind">>>;
624
+ }, z.core.$strip>;
625
+ type ResourceGovernanceStatus = z.infer<typeof ResourceGovernanceStatusSchema>;
626
+ type WorkflowResourceEntry = z.infer<typeof WorkflowResourceEntrySchema>;
627
+ type AgentResourceEntry = z.infer<typeof AgentResourceEntrySchema>;
628
+ type ResourceEntry = z.infer<typeof ResourceEntrySchema>;
629
+
504
630
  /**
505
631
  * Shared form field types for dynamic form generation
506
632
  * Used by: Command Queue, Execution Runner UI, future form-based features
@@ -608,6 +734,8 @@ interface WebhookConfig {
608
734
 
609
735
  interface WorkflowConfig extends ResourceDefinition {
610
736
  type: 'workflow';
737
+ /** OM descriptor backing canonical identity and governance metadata. */
738
+ resource?: WorkflowResourceEntry;
611
739
  /** Lead-gen capability key for registry derivation (e.g. 'lead-gen.company.apollo-import') */
612
740
  capabilityKey?: string;
613
741
  }
@@ -960,8 +1088,12 @@ interface KnowledgeContent {
960
1088
  * AIUsageCollector/AICallContext) and the worker proxy (which ignores them) satisfy the type.
961
1089
  */
962
1090
  type LLMAdapterFactory = (config: ModelConfig, ...args: any[]) => LLMAdapter;
1091
+ type AgentKind = 'orchestrator' | 'specialist' | 'utility' | 'system';
963
1092
  interface AgentConfig extends ResourceDefinition {
964
1093
  type: 'agent';
1094
+ /** OM descriptor backing canonical identity and governance metadata. */
1095
+ resource?: AgentResourceEntry;
1096
+ kind: AgentKind;
965
1097
  systemPrompt: string;
966
1098
  constraints?: AgentConstraints;
967
1099
  /**
@@ -1119,6 +1251,7 @@ type Database = {
1119
1251
  batch_id: string | null;
1120
1252
  category: string | null;
1121
1253
  category_pain: string | null;
1254
+ client_id: string | null;
1122
1255
  created_at: string;
1123
1256
  domain: string | null;
1124
1257
  enrichment_data: Json | null;
@@ -1145,6 +1278,7 @@ type Database = {
1145
1278
  batch_id?: string | null;
1146
1279
  category?: string | null;
1147
1280
  category_pain?: string | null;
1281
+ client_id?: string | null;
1148
1282
  created_at?: string;
1149
1283
  domain?: string | null;
1150
1284
  enrichment_data?: Json | null;
@@ -1171,6 +1305,7 @@ type Database = {
1171
1305
  batch_id?: string | null;
1172
1306
  category?: string | null;
1173
1307
  category_pain?: string | null;
1308
+ client_id?: string | null;
1174
1309
  created_at?: string;
1175
1310
  domain?: string | null;
1176
1311
  enrichment_data?: Json | null;
@@ -1194,6 +1329,13 @@ type Database = {
1194
1329
  website?: string | null;
1195
1330
  };
1196
1331
  Relationships: [
1332
+ {
1333
+ foreignKeyName: "acq_companies_client_id_fkey";
1334
+ columns: ["client_id"];
1335
+ isOneToOne: false;
1336
+ referencedRelation: "clients";
1337
+ referencedColumns: ["id"];
1338
+ },
1197
1339
  {
1198
1340
  foreignKeyName: "acq_companies_organization_id_fkey";
1199
1341
  columns: ["organization_id"];
@@ -1208,6 +1350,7 @@ type Database = {
1208
1350
  batch_id: string | null;
1209
1351
  brochure_first_viewed_at: string | null;
1210
1352
  brochure_view_count: number;
1353
+ client_id: string | null;
1211
1354
  company_id: string | null;
1212
1355
  created_at: string;
1213
1356
  email: string;
@@ -1236,6 +1379,7 @@ type Database = {
1236
1379
  batch_id?: string | null;
1237
1380
  brochure_first_viewed_at?: string | null;
1238
1381
  brochure_view_count?: number;
1382
+ client_id?: string | null;
1239
1383
  company_id?: string | null;
1240
1384
  created_at?: string;
1241
1385
  email: string;
@@ -1264,6 +1408,7 @@ type Database = {
1264
1408
  batch_id?: string | null;
1265
1409
  brochure_first_viewed_at?: string | null;
1266
1410
  brochure_view_count?: number;
1411
+ client_id?: string | null;
1267
1412
  company_id?: string | null;
1268
1413
  created_at?: string;
1269
1414
  email?: string;
@@ -1289,6 +1434,13 @@ type Database = {
1289
1434
  updated_at?: string;
1290
1435
  };
1291
1436
  Relationships: [
1437
+ {
1438
+ foreignKeyName: "acq_contacts_client_id_fkey";
1439
+ columns: ["client_id"];
1440
+ isOneToOne: false;
1441
+ referencedRelation: "clients";
1442
+ referencedColumns: ["id"];
1443
+ },
1292
1444
  {
1293
1445
  foreignKeyName: "acq_contacts_company_id_fkey";
1294
1446
  columns: ["company_id"];
@@ -1532,8 +1684,10 @@ type Database = {
1532
1684
  acq_deals: {
1533
1685
  Row: {
1534
1686
  activity_log: Json;
1687
+ client_id: string | null;
1535
1688
  closed_lost_at: string | null;
1536
1689
  closed_lost_reason: string | null;
1690
+ company_id: string | null;
1537
1691
  contact_email: string;
1538
1692
  contact_id: string | null;
1539
1693
  created_at: string;
@@ -1569,8 +1723,10 @@ type Database = {
1569
1723
  };
1570
1724
  Insert: {
1571
1725
  activity_log?: Json;
1726
+ client_id?: string | null;
1572
1727
  closed_lost_at?: string | null;
1573
1728
  closed_lost_reason?: string | null;
1729
+ company_id?: string | null;
1574
1730
  contact_email: string;
1575
1731
  contact_id?: string | null;
1576
1732
  created_at?: string;
@@ -1606,8 +1762,10 @@ type Database = {
1606
1762
  };
1607
1763
  Update: {
1608
1764
  activity_log?: Json;
1765
+ client_id?: string | null;
1609
1766
  closed_lost_at?: string | null;
1610
1767
  closed_lost_reason?: string | null;
1768
+ company_id?: string | null;
1611
1769
  contact_email?: string;
1612
1770
  contact_id?: string | null;
1613
1771
  created_at?: string;
@@ -1642,6 +1800,20 @@ type Database = {
1642
1800
  updated_at?: string;
1643
1801
  };
1644
1802
  Relationships: [
1803
+ {
1804
+ foreignKeyName: "acq_deals_client_id_fkey";
1805
+ columns: ["client_id"];
1806
+ isOneToOne: false;
1807
+ referencedRelation: "clients";
1808
+ referencedColumns: ["id"];
1809
+ },
1810
+ {
1811
+ foreignKeyName: "acq_deals_company_id_fkey";
1812
+ columns: ["company_id"];
1813
+ isOneToOne: false;
1814
+ referencedRelation: "acq_companies";
1815
+ referencedColumns: ["id"];
1816
+ },
1645
1817
  {
1646
1818
  foreignKeyName: "acq_deals_contact_id_fkey";
1647
1819
  columns: ["contact_id"];
@@ -2259,6 +2431,77 @@ type Database = {
2259
2431
  }
2260
2432
  ];
2261
2433
  };
2434
+ clients: {
2435
+ Row: {
2436
+ converted_at: string | null;
2437
+ created_at: string;
2438
+ id: string;
2439
+ metadata: Json;
2440
+ name: string;
2441
+ organization_id: string;
2442
+ primary_company_id: string | null;
2443
+ primary_contact_id: string | null;
2444
+ source_deal_id: string | null;
2445
+ status: string;
2446
+ updated_at: string;
2447
+ };
2448
+ Insert: {
2449
+ converted_at?: string | null;
2450
+ created_at?: string;
2451
+ id?: string;
2452
+ metadata?: Json;
2453
+ name: string;
2454
+ organization_id: string;
2455
+ primary_company_id?: string | null;
2456
+ primary_contact_id?: string | null;
2457
+ source_deal_id?: string | null;
2458
+ status?: string;
2459
+ updated_at?: string;
2460
+ };
2461
+ Update: {
2462
+ converted_at?: string | null;
2463
+ created_at?: string;
2464
+ id?: string;
2465
+ metadata?: Json;
2466
+ name?: string;
2467
+ organization_id?: string;
2468
+ primary_company_id?: string | null;
2469
+ primary_contact_id?: string | null;
2470
+ source_deal_id?: string | null;
2471
+ status?: string;
2472
+ updated_at?: string;
2473
+ };
2474
+ Relationships: [
2475
+ {
2476
+ foreignKeyName: "clients_organization_id_fkey";
2477
+ columns: ["organization_id"];
2478
+ isOneToOne: false;
2479
+ referencedRelation: "organizations";
2480
+ referencedColumns: ["id"];
2481
+ },
2482
+ {
2483
+ foreignKeyName: "clients_primary_company_id_fkey";
2484
+ columns: ["primary_company_id"];
2485
+ isOneToOne: false;
2486
+ referencedRelation: "acq_companies";
2487
+ referencedColumns: ["id"];
2488
+ },
2489
+ {
2490
+ foreignKeyName: "clients_primary_contact_id_fkey";
2491
+ columns: ["primary_contact_id"];
2492
+ isOneToOne: false;
2493
+ referencedRelation: "acq_contacts";
2494
+ referencedColumns: ["id"];
2495
+ },
2496
+ {
2497
+ foreignKeyName: "clients_source_deal_id_fkey";
2498
+ columns: ["source_deal_id"];
2499
+ isOneToOne: false;
2500
+ referencedRelation: "acq_deals";
2501
+ referencedColumns: ["id"];
2502
+ }
2503
+ ];
2504
+ };
2262
2505
  command_queue: {
2263
2506
  Row: {
2264
2507
  action_payload: Json | null;
@@ -3228,6 +3471,7 @@ type Database = {
3228
3471
  Row: {
3229
3472
  actual_end_date: string | null;
3230
3473
  client_company_id: string | null;
3474
+ client_id: string | null;
3231
3475
  contract_value: number | null;
3232
3476
  created_at: string;
3233
3477
  deal_id: string | null;
@@ -3245,6 +3489,7 @@ type Database = {
3245
3489
  Insert: {
3246
3490
  actual_end_date?: string | null;
3247
3491
  client_company_id?: string | null;
3492
+ client_id?: string | null;
3248
3493
  contract_value?: number | null;
3249
3494
  created_at?: string;
3250
3495
  deal_id?: string | null;
@@ -3262,6 +3507,7 @@ type Database = {
3262
3507
  Update: {
3263
3508
  actual_end_date?: string | null;
3264
3509
  client_company_id?: string | null;
3510
+ client_id?: string | null;
3265
3511
  contract_value?: number | null;
3266
3512
  created_at?: string;
3267
3513
  deal_id?: string | null;
@@ -3298,6 +3544,13 @@ type Database = {
3298
3544
  referencedRelation: "acq_companies";
3299
3545
  referencedColumns: ["id"];
3300
3546
  },
3547
+ {
3548
+ foreignKeyName: "prj_projects_client_id_fkey";
3549
+ columns: ["client_id"];
3550
+ isOneToOne: false;
3551
+ referencedRelation: "clients";
3552
+ referencedColumns: ["id"];
3553
+ },
3301
3554
  {
3302
3555
  foreignKeyName: "prj_projects_deal_id_fkey";
3303
3556
  columns: ["deal_id"];
@@ -3959,6 +4212,38 @@ type Database = {
3959
4212
  };
3960
4213
  };
3961
4214
 
4215
+ declare const RecordColumnConfigSchema: z.ZodObject<{
4216
+ key: z.ZodString;
4217
+ label: z.ZodString;
4218
+ path: z.ZodString;
4219
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
4220
+ renderType: z.ZodOptional<z.ZodEnum<{
4221
+ text: "text";
4222
+ badge: "badge";
4223
+ datetime: "datetime";
4224
+ count: "count";
4225
+ json: "json";
4226
+ }>>;
4227
+ badgeColor: z.ZodOptional<z.ZodString>;
4228
+ }, z.core.$strip>;
4229
+ declare const CredentialRequirementSchema: z.ZodObject<{
4230
+ key: z.ZodString;
4231
+ provider: z.ZodString;
4232
+ credentialType: z.ZodEnum<{
4233
+ "api-key": "api-key";
4234
+ "api-key-secret": "api-key-secret";
4235
+ oauth: "oauth";
4236
+ "webhook-secret": "webhook-secret";
4237
+ }>;
4238
+ label: z.ZodString;
4239
+ required: z.ZodBoolean;
4240
+ selectionMode: z.ZodOptional<z.ZodEnum<{
4241
+ single: "single";
4242
+ multiple: "multiple";
4243
+ }>>;
4244
+ inputPath: z.ZodString;
4245
+ verifyOnRun: z.ZodOptional<z.ZodBoolean>;
4246
+ }, z.core.$strip>;
3962
4247
  declare const ProspectingBuildTemplateStepSchema: z.ZodObject<{
3963
4248
  label: z.ZodString;
3964
4249
  description: z.ZodOptional<z.ZodString>;
@@ -3981,6 +4266,7 @@ declare const ProspectingBuildTemplateStepSchema: z.ZodObject<{
3981
4266
  "knowledge.reference": "knowledge.reference";
3982
4267
  "feature.dashboard": "feature.dashboard";
3983
4268
  "feature.calendar": "feature.calendar";
4269
+ "feature.business": "feature.business";
3984
4270
  "feature.sales": "feature.sales";
3985
4271
  "feature.crm": "feature.crm";
3986
4272
  "feature.finance": "feature.finance";
@@ -4040,11 +4326,65 @@ declare const ProspectingBuildTemplateStepSchema: z.ZodObject<{
4040
4326
  export: "export";
4041
4327
  }>>;
4042
4328
  stageKey: z.ZodString;
4329
+ recordEntity: z.ZodOptional<z.ZodEnum<{
4330
+ company: "company";
4331
+ contact: "contact";
4332
+ }>>;
4333
+ recordsStageKey: z.ZodOptional<z.ZodString>;
4334
+ recordSourceStageKey: z.ZodOptional<z.ZodString>;
4043
4335
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
4044
4336
  dependencyMode: z.ZodLiteral<"per-record-eligibility">;
4045
4337
  capabilityKey: z.ZodString;
4046
4338
  defaultBatchSize: z.ZodNumber;
4047
4339
  maxBatchSize: z.ZodNumber;
4340
+ recordColumns: z.ZodOptional<z.ZodObject<{
4341
+ company: z.ZodOptional<z.ZodArray<z.ZodObject<{
4342
+ key: z.ZodString;
4343
+ label: z.ZodString;
4344
+ path: z.ZodString;
4345
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
4346
+ renderType: z.ZodOptional<z.ZodEnum<{
4347
+ text: "text";
4348
+ badge: "badge";
4349
+ datetime: "datetime";
4350
+ count: "count";
4351
+ json: "json";
4352
+ }>>;
4353
+ badgeColor: z.ZodOptional<z.ZodString>;
4354
+ }, z.core.$strip>>>;
4355
+ contact: z.ZodOptional<z.ZodArray<z.ZodObject<{
4356
+ key: z.ZodString;
4357
+ label: z.ZodString;
4358
+ path: z.ZodString;
4359
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
4360
+ renderType: z.ZodOptional<z.ZodEnum<{
4361
+ text: "text";
4362
+ badge: "badge";
4363
+ datetime: "datetime";
4364
+ count: "count";
4365
+ json: "json";
4366
+ }>>;
4367
+ badgeColor: z.ZodOptional<z.ZodString>;
4368
+ }, z.core.$strip>>>;
4369
+ }, z.core.$strip>>;
4370
+ credentialRequirements: z.ZodOptional<z.ZodArray<z.ZodObject<{
4371
+ key: z.ZodString;
4372
+ provider: z.ZodString;
4373
+ credentialType: z.ZodEnum<{
4374
+ "api-key": "api-key";
4375
+ "api-key-secret": "api-key-secret";
4376
+ oauth: "oauth";
4377
+ "webhook-secret": "webhook-secret";
4378
+ }>;
4379
+ label: z.ZodString;
4380
+ required: z.ZodBoolean;
4381
+ selectionMode: z.ZodOptional<z.ZodEnum<{
4382
+ single: "single";
4383
+ multiple: "multiple";
4384
+ }>>;
4385
+ inputPath: z.ZodString;
4386
+ verifyOnRun: z.ZodOptional<z.ZodBoolean>;
4387
+ }, z.core.$strip>>>;
4048
4388
  }, z.core.$strip>;
4049
4389
  declare const ProspectingBuildTemplateSchema: z.ZodObject<{
4050
4390
  label: z.ZodString;
@@ -4068,6 +4408,7 @@ declare const ProspectingBuildTemplateSchema: z.ZodObject<{
4068
4408
  "knowledge.reference": "knowledge.reference";
4069
4409
  "feature.dashboard": "feature.dashboard";
4070
4410
  "feature.calendar": "feature.calendar";
4411
+ "feature.business": "feature.business";
4071
4412
  "feature.sales": "feature.sales";
4072
4413
  "feature.crm": "feature.crm";
4073
4414
  "feature.finance": "feature.finance";
@@ -4139,6 +4480,7 @@ declare const ProspectingBuildTemplateSchema: z.ZodObject<{
4139
4480
  "knowledge.reference": "knowledge.reference";
4140
4481
  "feature.dashboard": "feature.dashboard";
4141
4482
  "feature.calendar": "feature.calendar";
4483
+ "feature.business": "feature.business";
4142
4484
  "feature.sales": "feature.sales";
4143
4485
  "feature.crm": "feature.crm";
4144
4486
  "feature.finance": "feature.finance";
@@ -4198,14 +4540,70 @@ declare const ProspectingBuildTemplateSchema: z.ZodObject<{
4198
4540
  export: "export";
4199
4541
  }>>;
4200
4542
  stageKey: z.ZodString;
4543
+ recordEntity: z.ZodOptional<z.ZodEnum<{
4544
+ company: "company";
4545
+ contact: "contact";
4546
+ }>>;
4547
+ recordsStageKey: z.ZodOptional<z.ZodString>;
4548
+ recordSourceStageKey: z.ZodOptional<z.ZodString>;
4201
4549
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
4202
4550
  dependencyMode: z.ZodLiteral<"per-record-eligibility">;
4203
4551
  capabilityKey: z.ZodString;
4204
4552
  defaultBatchSize: z.ZodNumber;
4205
4553
  maxBatchSize: z.ZodNumber;
4554
+ recordColumns: z.ZodOptional<z.ZodObject<{
4555
+ company: z.ZodOptional<z.ZodArray<z.ZodObject<{
4556
+ key: z.ZodString;
4557
+ label: z.ZodString;
4558
+ path: z.ZodString;
4559
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
4560
+ renderType: z.ZodOptional<z.ZodEnum<{
4561
+ text: "text";
4562
+ badge: "badge";
4563
+ datetime: "datetime";
4564
+ count: "count";
4565
+ json: "json";
4566
+ }>>;
4567
+ badgeColor: z.ZodOptional<z.ZodString>;
4568
+ }, z.core.$strip>>>;
4569
+ contact: z.ZodOptional<z.ZodArray<z.ZodObject<{
4570
+ key: z.ZodString;
4571
+ label: z.ZodString;
4572
+ path: z.ZodString;
4573
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
4574
+ renderType: z.ZodOptional<z.ZodEnum<{
4575
+ text: "text";
4576
+ badge: "badge";
4577
+ datetime: "datetime";
4578
+ count: "count";
4579
+ json: "json";
4580
+ }>>;
4581
+ badgeColor: z.ZodOptional<z.ZodString>;
4582
+ }, z.core.$strip>>>;
4583
+ }, z.core.$strip>>;
4584
+ credentialRequirements: z.ZodOptional<z.ZodArray<z.ZodObject<{
4585
+ key: z.ZodString;
4586
+ provider: z.ZodString;
4587
+ credentialType: z.ZodEnum<{
4588
+ "api-key": "api-key";
4589
+ "api-key-secret": "api-key-secret";
4590
+ oauth: "oauth";
4591
+ "webhook-secret": "webhook-secret";
4592
+ }>;
4593
+ label: z.ZodString;
4594
+ required: z.ZodBoolean;
4595
+ selectionMode: z.ZodOptional<z.ZodEnum<{
4596
+ single: "single";
4597
+ multiple: "multiple";
4598
+ }>>;
4599
+ inputPath: z.ZodString;
4600
+ verifyOnRun: z.ZodOptional<z.ZodBoolean>;
4601
+ }, z.core.$strip>>>;
4206
4602
  }, z.core.$strip>>;
4207
4603
  }, z.core.$strip>;
4208
4604
  type ListBuilderStep = z.infer<typeof ProspectingBuildTemplateStepSchema>;
4605
+ type RecordColumnConfig = z.infer<typeof RecordColumnConfigSchema>;
4606
+ type CredentialRequirement = z.infer<typeof CredentialRequirementSchema>;
4209
4607
 
4210
4608
  /** One entry in the lead-gen stage catalog. */
4211
4609
  interface LeadGenStageCatalogEntry {
@@ -4219,6 +4617,15 @@ interface LeadGenStageCatalogEntry {
4219
4617
  order: number;
4220
4618
  /** Which entity's processing_state jsonb carries this stage status. */
4221
4619
  entity: 'company' | 'contact';
4620
+ /** Additional entities allowed to write/read this processing_state key. */
4621
+ additionalEntities?: Array<'company' | 'contact'>;
4622
+ /**
4623
+ * Optional read-side override for Records views when a company-scoped step
4624
+ * produces records on a different entity.
4625
+ */
4626
+ recordEntity?: 'company' | 'contact';
4627
+ /** Stage key to read from recordEntity.processing_state for Records views. */
4628
+ recordStageKey?: string;
4222
4629
  }
4223
4630
  /**
4224
4631
  * Canonical lead-gen processing stage catalog.
@@ -4255,6 +4662,9 @@ declare const DealSchemas: {
4255
4662
  stage: z.ZodOptional<z.ZodEnum<{
4256
4663
  [x: string]: string;
4257
4664
  }>>;
4665
+ list: z.ZodOptional<z.ZodString>;
4666
+ batch: z.ZodOptional<z.ZodString>;
4667
+ staleSince: z.ZodOptional<z.ZodString>;
4258
4668
  search: z.ZodOptional<z.ZodString>;
4259
4669
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
4260
4670
  offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
@@ -4279,8 +4689,8 @@ declare const DealSchemas: {
4279
4689
  title: z.ZodString;
4280
4690
  description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4281
4691
  kind: z.ZodOptional<z.ZodEnum<{
4282
- other: "other";
4283
4692
  email: "email";
4693
+ other: "other";
4284
4694
  call: "call";
4285
4695
  meeting: "meeting";
4286
4696
  }>>;
@@ -4331,6 +4741,7 @@ declare const DealSchemas: {
4331
4741
  data: z.ZodArray<z.ZodObject<{
4332
4742
  id: z.ZodString;
4333
4743
  organization_id: z.ZodString;
4744
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4334
4745
  contact_id: z.ZodNullable<z.ZodString>;
4335
4746
  contact_email: z.ZodString;
4336
4747
  pipeline_key: z.ZodString;
@@ -4450,9 +4861,46 @@ declare const DealSchemas: {
4450
4861
  body: z.ZodString;
4451
4862
  sentAt: z.ZodNullable<z.ZodString>;
4452
4863
  }, z.core.$strip>;
4864
+ DealLineageListRef: z.ZodObject<{
4865
+ id: z.ZodString;
4866
+ name: z.ZodString;
4867
+ status: z.ZodString;
4868
+ }, z.core.$strip>;
4869
+ DealLineageProjectRef: z.ZodObject<{
4870
+ id: z.ZodString;
4871
+ name: z.ZodString;
4872
+ kind: z.ZodString;
4873
+ status: z.ZodString;
4874
+ updatedAt: z.ZodString;
4875
+ }, z.core.$strip>;
4876
+ DealLineageClientRef: z.ZodObject<{
4877
+ id: z.ZodString;
4878
+ name: z.ZodString;
4879
+ status: z.ZodString;
4880
+ }, z.core.$strip>;
4881
+ DealLineage: z.ZodObject<{
4882
+ list: z.ZodNullable<z.ZodObject<{
4883
+ id: z.ZodString;
4884
+ name: z.ZodString;
4885
+ status: z.ZodString;
4886
+ }, z.core.$strip>>;
4887
+ projects: z.ZodArray<z.ZodObject<{
4888
+ id: z.ZodString;
4889
+ name: z.ZodString;
4890
+ kind: z.ZodString;
4891
+ status: z.ZodString;
4892
+ updatedAt: z.ZodString;
4893
+ }, z.core.$strip>>;
4894
+ client: z.ZodNullable<z.ZodObject<{
4895
+ id: z.ZodString;
4896
+ name: z.ZodString;
4897
+ status: z.ZodString;
4898
+ }, z.core.$strip>>;
4899
+ }, z.core.$strip>;
4453
4900
  DealDetailResponse: z.ZodObject<{
4454
4901
  id: z.ZodString;
4455
4902
  organization_id: z.ZodString;
4903
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4456
4904
  contact_id: z.ZodNullable<z.ZodString>;
4457
4905
  contact_email: z.ZodString;
4458
4906
  pipeline_key: z.ZodString;
@@ -4537,6 +4985,25 @@ declare const DealSchemas: {
4537
4985
  sentAt: z.ZodNullable<z.ZodString>;
4538
4986
  }, z.core.$strip>>;
4539
4987
  }, z.core.$strip>;
4988
+ lineage: z.ZodOptional<z.ZodObject<{
4989
+ list: z.ZodNullable<z.ZodObject<{
4990
+ id: z.ZodString;
4991
+ name: z.ZodString;
4992
+ status: z.ZodString;
4993
+ }, z.core.$strip>>;
4994
+ projects: z.ZodArray<z.ZodObject<{
4995
+ id: z.ZodString;
4996
+ name: z.ZodString;
4997
+ kind: z.ZodString;
4998
+ status: z.ZodString;
4999
+ updatedAt: z.ZodString;
5000
+ }, z.core.$strip>>;
5001
+ client: z.ZodNullable<z.ZodObject<{
5002
+ id: z.ZodString;
5003
+ name: z.ZodString;
5004
+ status: z.ZodString;
5005
+ }, z.core.$strip>>;
5006
+ }, z.core.$strip>>;
4540
5007
  }, z.core.$strip>;
4541
5008
  DealNoteResponse: z.ZodObject<{
4542
5009
  id: z.ZodString;
@@ -4563,8 +5030,8 @@ declare const DealSchemas: {
4563
5030
  title: z.ZodString;
4564
5031
  description: z.ZodNullable<z.ZodString>;
4565
5032
  kind: z.ZodEnum<{
4566
- other: "other";
4567
5033
  email: "email";
5034
+ other: "other";
4568
5035
  call: "call";
4569
5036
  meeting: "meeting";
4570
5037
  }>;
@@ -4583,8 +5050,8 @@ declare const DealSchemas: {
4583
5050
  title: z.ZodString;
4584
5051
  description: z.ZodNullable<z.ZodString>;
4585
5052
  kind: z.ZodEnum<{
4586
- other: "other";
4587
5053
  email: "email";
5054
+ other: "other";
4588
5055
  call: "call";
4589
5056
  meeting: "meeting";
4590
5057
  }>;
@@ -4622,11 +5089,65 @@ declare const BuildPlanSnapshotStepSchema: z.ZodObject<{
4622
5089
  export: "export";
4623
5090
  }>>;
4624
5091
  stageKey: z.ZodString;
5092
+ recordEntity: z.ZodOptional<z.ZodEnum<{
5093
+ company: "company";
5094
+ contact: "contact";
5095
+ }>>;
5096
+ recordsStageKey: z.ZodOptional<z.ZodString>;
5097
+ recordSourceStageKey: z.ZodOptional<z.ZodString>;
4625
5098
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
4626
5099
  dependencyMode: z.ZodLiteral<"per-record-eligibility">;
4627
5100
  capabilityKey: z.ZodString;
4628
5101
  defaultBatchSize: z.ZodNumber;
4629
5102
  maxBatchSize: z.ZodNumber;
5103
+ recordColumns: z.ZodOptional<z.ZodObject<{
5104
+ company: z.ZodOptional<z.ZodArray<z.ZodObject<{
5105
+ key: z.ZodString;
5106
+ label: z.ZodString;
5107
+ path: z.ZodString;
5108
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
5109
+ renderType: z.ZodOptional<z.ZodEnum<{
5110
+ text: "text";
5111
+ badge: "badge";
5112
+ datetime: "datetime";
5113
+ count: "count";
5114
+ json: "json";
5115
+ }>>;
5116
+ badgeColor: z.ZodOptional<z.ZodString>;
5117
+ }, z.core.$strip>>>;
5118
+ contact: z.ZodOptional<z.ZodArray<z.ZodObject<{
5119
+ key: z.ZodString;
5120
+ label: z.ZodString;
5121
+ path: z.ZodString;
5122
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
5123
+ renderType: z.ZodOptional<z.ZodEnum<{
5124
+ text: "text";
5125
+ badge: "badge";
5126
+ datetime: "datetime";
5127
+ count: "count";
5128
+ json: "json";
5129
+ }>>;
5130
+ badgeColor: z.ZodOptional<z.ZodString>;
5131
+ }, z.core.$strip>>>;
5132
+ }, z.core.$strip>>;
5133
+ credentialRequirements: z.ZodOptional<z.ZodArray<z.ZodObject<{
5134
+ key: z.ZodString;
5135
+ provider: z.ZodString;
5136
+ credentialType: z.ZodEnum<{
5137
+ "api-key": "api-key";
5138
+ "api-key-secret": "api-key-secret";
5139
+ oauth: "oauth";
5140
+ "webhook-secret": "webhook-secret";
5141
+ }>;
5142
+ label: z.ZodString;
5143
+ required: z.ZodBoolean;
5144
+ selectionMode: z.ZodOptional<z.ZodEnum<{
5145
+ single: "single";
5146
+ multiple: "multiple";
5147
+ }>>;
5148
+ inputPath: z.ZodString;
5149
+ verifyOnRun: z.ZodOptional<z.ZodBoolean>;
5150
+ }, z.core.$strip>>>;
4630
5151
  }, z.core.$strip>;
4631
5152
  type PipelineStage = z.infer<typeof PipelineStageSchema>;
4632
5153
  type ProcessingStageStatus = z.infer<typeof ProcessingStageStatusSchema>;
@@ -4746,11 +5267,16 @@ interface BuildPlanSnapshotStep {
4746
5267
  primaryEntity: BuildPlanSnapshotPrimaryEntity;
4747
5268
  outputs: BuildPlanSnapshotOutput[];
4748
5269
  stageKey: string;
5270
+ recordEntity?: BuildPlanSnapshotPrimaryEntity;
5271
+ recordsStageKey?: string;
5272
+ recordSourceStageKey?: string;
4749
5273
  dependsOn?: string[];
4750
5274
  dependencyMode: BuildPlanSnapshotDependencyMode;
4751
5275
  capabilityKey: string;
4752
5276
  defaultBatchSize: number;
4753
5277
  maxBatchSize: number;
5278
+ recordColumns?: Partial<Record<BuildPlanSnapshotPrimaryEntity, RecordColumnConfig[]>>;
5279
+ credentialRequirements?: CredentialRequirement[];
4754
5280
  }
4755
5281
  interface BuildPlanSnapshot {
4756
5282
  templateId: string;
@@ -5472,6 +5998,22 @@ interface ProjectDetail extends ProjectRow {
5472
5998
  name: string;
5473
5999
  domain: string | null;
5474
6000
  } | null;
6001
+ deal: ProjectSourceDealRef | null;
6002
+ client: ProjectClientRef | null;
6003
+ }
6004
+ interface ProjectSourceDealRef {
6005
+ id: string;
6006
+ clientId?: string | null;
6007
+ contactEmail: string;
6008
+ stageKey: string | null;
6009
+ stateKey: string | null;
6010
+ sourceListId: string | null;
6011
+ updatedAt: string;
6012
+ }
6013
+ interface ProjectClientRef {
6014
+ id: string;
6015
+ name: string;
6016
+ status: string;
5475
6017
  }
5476
6018
 
5477
6019
  declare const ActivityEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -7268,6 +7810,7 @@ declare const ProjectSchemas: {
7268
7810
  }>>;
7269
7811
  description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7270
7812
  deal_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7813
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7271
7814
  client_company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7272
7815
  start_date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7273
7816
  target_end_date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -7292,6 +7835,7 @@ declare const ProjectSchemas: {
7292
7835
  }>>;
7293
7836
  description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7294
7837
  deal_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7838
+ client_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7295
7839
  client_company_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7296
7840
  start_date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7297
7841
  target_end_date: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -7315,10 +7859,25 @@ declare const ProjectSchemas: {
7315
7859
  completed: "completed";
7316
7860
  }>>;
7317
7861
  search: z.ZodOptional<z.ZodString>;
7862
+ client_id: z.ZodOptional<z.ZodString>;
7318
7863
  }, z.core.$strict>;
7319
7864
  ProjectIdParams: z.ZodObject<{
7320
7865
  id: z.ZodString;
7321
7866
  }, z.core.$strip>;
7867
+ ProjectSourceDealRef: z.ZodObject<{
7868
+ id: z.ZodString;
7869
+ clientId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7870
+ contactEmail: z.ZodString;
7871
+ stageKey: z.ZodNullable<z.ZodString>;
7872
+ stateKey: z.ZodNullable<z.ZodString>;
7873
+ sourceListId: z.ZodNullable<z.ZodString>;
7874
+ updatedAt: z.ZodString;
7875
+ }, z.core.$strip>;
7876
+ ProjectClientRef: z.ZodObject<{
7877
+ id: z.ZodString;
7878
+ name: z.ZodString;
7879
+ status: z.ZodString;
7880
+ }, z.core.$strip>;
7322
7881
  CreateMilestoneRequest: z.ZodObject<{
7323
7882
  name: z.ZodString;
7324
7883
  status: z.ZodOptional<z.ZodEnum<{
@@ -8790,6 +9349,48 @@ type ToolingErrorType = 'service_unavailable' | 'permission_denied' | 'platform_
8790
9349
  */
8791
9350
  type IntegrationType = 'gmail' | 'google-sheets' | 'slack' | 'github' | 'linear' | 'attio' | 'airtable' | 'salesforce' | 'hubspot' | 'stripe' | 'twilio' | 'sendgrid' | 'mailgun' | 'zapier' | 'webhook' | 'apify' | 'instantly' | 'resend' | 'signature-api' | 'dropbox' | 'anymailfinder' | 'tomba' | 'millionverifier';
8792
9351
 
9352
+ declare const SystemEntrySchema: z.ZodObject<{
9353
+ id: z.ZodString;
9354
+ title: z.ZodString;
9355
+ description: z.ZodString;
9356
+ kind: z.ZodEnum<{
9357
+ platform: "platform";
9358
+ product: "product";
9359
+ operational: "operational";
9360
+ diagnostic: "diagnostic";
9361
+ }>;
9362
+ responsibleRoleId: z.ZodOptional<z.ZodString>;
9363
+ governedByKnowledge: z.ZodDefault<z.ZodArray<z.ZodString>>;
9364
+ drivesGoals: z.ZodDefault<z.ZodArray<z.ZodString>>;
9365
+ status: z.ZodEnum<{
9366
+ active: "active";
9367
+ deprecated: "deprecated";
9368
+ archived: "archived";
9369
+ }>;
9370
+ }, z.core.$strip>;
9371
+ declare const SystemsDomainSchema: z.ZodObject<{
9372
+ systems: z.ZodDefault<z.ZodArray<z.ZodObject<{
9373
+ id: z.ZodString;
9374
+ title: z.ZodString;
9375
+ description: z.ZodString;
9376
+ kind: z.ZodEnum<{
9377
+ platform: "platform";
9378
+ product: "product";
9379
+ operational: "operational";
9380
+ diagnostic: "diagnostic";
9381
+ }>;
9382
+ responsibleRoleId: z.ZodOptional<z.ZodString>;
9383
+ governedByKnowledge: z.ZodDefault<z.ZodArray<z.ZodString>>;
9384
+ drivesGoals: z.ZodDefault<z.ZodArray<z.ZodString>>;
9385
+ status: z.ZodEnum<{
9386
+ active: "active";
9387
+ deprecated: "deprecated";
9388
+ archived: "archived";
9389
+ }>;
9390
+ }, z.core.$strip>>>;
9391
+ }, z.core.$strip>;
9392
+ type SystemEntry = z.infer<typeof SystemEntrySchema>;
9393
+
8793
9394
  /**
8794
9395
  * Resource Registry type definitions
8795
9396
  */
@@ -8803,6 +9404,7 @@ type ResourceStatus$1 = 'dev' | 'prod';
8803
9404
  * Used as the discriminator field in ResourceDefinition
8804
9405
  */
8805
9406
  type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human';
9407
+ type ResourceSystemSummary = Pick<SystemEntry, 'id' | 'title' | 'description' | 'kind' | 'status'>;
8806
9408
  /**
8807
9409
  * Base interface for ALL platform resources
8808
9410
  * Shared by both executable (agents, workflows) and non-executable (triggers, integrations, etc.) resources
@@ -8828,6 +9430,12 @@ interface ResourceDefinition {
8828
9430
  sessionCapable?: boolean;
8829
9431
  /** Whether the resource is local (monorepo) or remote (externally deployed) */
8830
9432
  origin?: 'local' | 'remote';
9433
+ /** OM System membership, when backed by a Resource descriptor */
9434
+ systemId?: string;
9435
+ /** Display metadata for the owning OM System */
9436
+ system?: ResourceSystemSummary;
9437
+ /** Governance lifecycle status from the OM Resource descriptor */
9438
+ governanceStatus?: ResourceGovernanceStatus;
8831
9439
  /** Whether this resource is archived and should be excluded from registration and deployment */
8832
9440
  archived?: boolean;
8833
9441
  }
@@ -8944,6 +9552,10 @@ interface TriggerDefinition extends ResourceDefinition {
8944
9552
  interface IntegrationDefinition extends ResourceDefinition {
8945
9553
  /** Resource type discriminator (narrowed from base union) */
8946
9554
  type: 'integration';
9555
+ /** OM descriptor that owns canonical identity and governance metadata. */
9556
+ resource?: Extract<ResourceEntry, {
9557
+ kind: 'integration';
9558
+ }>;
8947
9559
  /** Integration provider type */
8948
9560
  provider: IntegrationType;
8949
9561
  /** References credentials table (e.g., 'shopify-prod', 'zendesk-api') */
@@ -9156,6 +9768,9 @@ interface CommandViewData {
9156
9768
  edges: CommandViewEdge[];
9157
9769
  }
9158
9770
 
9771
+ type OrganizationModelSystems = z.infer<typeof SystemsDomainSchema>;
9772
+ type OrganizationModelResources = z.infer<typeof ResourcesDomainSchema>;
9773
+
9159
9774
  declare const LinkSchema: z.ZodObject<{
9160
9775
  nodeId: z.ZodString;
9161
9776
  kind: z.ZodEnum<{
@@ -9171,8 +9786,8 @@ declare const LinkSchema: z.ZodObject<{
9171
9786
  type Link = z.infer<typeof LinkSchema>;
9172
9787
 
9173
9788
  declare const ResourceCategorySchema: z.ZodEnum<{
9174
- production: "production";
9175
9789
  diagnostic: "diagnostic";
9790
+ production: "production";
9176
9791
  internal: "internal";
9177
9792
  testing: "testing";
9178
9793
  }>;
@@ -9232,6 +9847,11 @@ interface SystemConfig {
9232
9847
  interface DeploymentSpec {
9233
9848
  /** Deployment version (semver) */
9234
9849
  version: string;
9850
+ /** Optional Organization Model governance catalog used for OM-code validation */
9851
+ organizationModel?: {
9852
+ systems?: OrganizationModelSystems;
9853
+ resources?: OrganizationModelResources;
9854
+ };
9235
9855
  /** Workflow definitions */
9236
9856
  workflows?: WorkflowDefinition[];
9237
9857
  /** Agent definitions */
@@ -9539,6 +10159,39 @@ declare class RegistryValidationError extends Error {
9539
10159
  readonly field: string | null;
9540
10160
  constructor(orgName: string, resourceId: string | null, field: string | null, message: string);
9541
10161
  }
10162
+ type ResourceValidatorMode = 'strict' | 'warn-only';
10163
+ type ResourceGovernanceValidationIssueType = 'missing-code-resource' | 'missing-om-resource' | 'type-mismatch' | 'system-mismatch' | 'missing-om-system' | 'raw-resource-id';
10164
+ interface ResourceGovernanceModel {
10165
+ systems?: {
10166
+ systems: SystemEntry[];
10167
+ };
10168
+ resources?: {
10169
+ entries: ResourceEntry[];
10170
+ };
10171
+ }
10172
+ interface ResourceGovernanceValidationIssue {
10173
+ type: ResourceGovernanceValidationIssueType;
10174
+ orgName: string;
10175
+ resourceId: string;
10176
+ message: string;
10177
+ }
10178
+ interface ResourceGovernanceValidationResult {
10179
+ valid: boolean;
10180
+ mode: ResourceValidatorMode;
10181
+ issues: ResourceGovernanceValidationIssue[];
10182
+ }
10183
+ interface ResourceGovernanceValidationOptions {
10184
+ mode?: ResourceValidatorMode;
10185
+ onWarning?: (issue: ResourceGovernanceValidationIssue) => void;
10186
+ }
10187
+ /**
10188
+ * Validates runtime resource definitions against OM Resources and Systems.
10189
+ *
10190
+ * This is the shared core entry point for SDK, CI, deploy, and ResourceRegistry.
10191
+ * Default mode is strict. ELEVASIS_RESOURCE_VALIDATOR=warn-only remains a
10192
+ * permanent emergency escape hatch unless an explicit mode is passed.
10193
+ */
10194
+ declare function validateResourceGovernance(orgName: string, deployment: DeploymentSpec, organizationModel?: ResourceGovernanceModel | undefined, options?: ResourceGovernanceValidationOptions): ResourceGovernanceValidationResult;
9542
10195
 
9543
10196
  /**
9544
10197
  * LLM Platform Tool Adapter
@@ -9624,6 +10277,7 @@ declare class ToolingError extends ExecutionError {
9624
10277
  // - interested (instantly-reply-handler.ts → contacts, initial reply transition)
9625
10278
  // prospecting/:
9626
10279
  // - populated (apify-acquire.ts, apify-scrape.ts → companies)
10280
+ // - crawled (apify-website-crawl.ts → companies)
9627
10281
  // - extracted (website-extract.ts → companies)
9628
10282
  // - discovered (email-discovery.ts, anymailfinder-enrich.ts → contacts)
9629
10283
  // - verified (email-verification.ts → contacts)
@@ -9761,5 +10415,5 @@ declare const ListBuilderStageKeySchema: z.ZodEnum<{
9761
10415
  }>;
9762
10416
  type ListBuilderStageKey = z.infer<typeof ListBuilderStageKeySchema>;
9763
10417
 
9764
- export { ActivityEventSchema, BuildPlanSnapshotStepSchema, ProspectingBuildTemplateSchema as BuildTemplateSchema, CRM_PIPELINE_DEFINITION, CrmStageKeySchema, CrmStateKeySchema, DEFAULT_CRM_ACTIONS, EmailSchema, ExecutionError, LEAD_GEN_STAGE_CATALOG, ListBuilderStageKeySchema, ProcessingStageStatusSchema, RegistryValidationError, ResourceRegistry, StepType, ToolingError, deriveActions };
10418
+ export { ActivityEventSchema, BuildPlanSnapshotStepSchema, ProspectingBuildTemplateSchema as BuildTemplateSchema, CRM_PIPELINE_DEFINITION, CrmStageKeySchema, CrmStateKeySchema, DEFAULT_CRM_ACTIONS, EmailSchema, ExecutionError, LEAD_GEN_STAGE_CATALOG, ListBuilderStageKeySchema, ProcessingStageStatusSchema, RegistryValidationError, ResourceRegistry, StepType, ToolingError, deriveActions, validateResourceGovernance };
9765
10419
  export type { AbsoluteScheduleConfig, AcqCompany, AcqContact, AcqDeal, AcqDealRow, AcqList, Action, ActionDef, ActivityEvent, 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, AppendRowsParams, AppendRowsResult, ApprovalToolMap, AttioToolMap, BatchUpdateParams, BatchUpdateResult, BuildPlanSnapshotStep, 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, CreatePaymentLinkParams, CreatePaymentLinkResult, CreateRecordParams, CreateRecordResult, CreateScheduleInput, CrmStageKey, CrmStateKey, CrmToolMap, DeleteDealParams, DeleteNoteParams, DeleteNoteResult, DeleteRecordParams, DeleteRecordResult, DeleteRowByValueParams, DeleteRowByValueResult, DeploymentSpec, 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, ListAttributesParams, ListAttributesResult, ListBuilderStageKey, ListBuilderStep, ListLeadsParams, ListLeadsResult, ListNotesParams, ListNotesResult, ListObjectsResult, ListPaymentLinksParams, ListPaymentLinksResult, ListToolMap, MarkProposalReviewedParams, MarkProposalSentParams, MethodEntry, MillionVerifierToolMap, ModelConfig, NextConfig, NotificationSDKInput, NotificationToolMap, PaginatedResult, PaginationParams, PdfToolMap, ProcessingStageStatus, ProjectsToolMap, QueryRecordsParams, QueryRecordsResult, ReadSheetParams, ReadSheetResult, Recipient, RecurringScheduleConfig, RelationshipDeclaration, RelativeScheduleConfig, RemoveFromSubsequenceParams, RemoveFromSubsequenceResult, ResendGetEmailParams, ResendGetEmailResult, ResendSendEmailParams, ResendSendEmailResult, ResendToolMap, ResourceCategory, ResourceDefinition, ResourceLink, 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, TaskSchedule, TaskScheduleConfig, TombaToolMap, Tool, ToolExecutionOptions, ToolMethodMap, ToolingErrorType, TransitionItemParams, TriggerConfig, TriggerDefinition, UpdateAttributeParams, UpdateAttributeResult, UpdateCloseLostReasonParams, UpdateCompanyParams, UpdateContactParams, UpdateDiscoveryDataParams, UpdateFeesParams, UpdateInterestStatusParams, UpdateInterestStatusResult, UpdateListParams, UpdatePaymentLinkParams, UpdatePaymentLinkResult, UpdateProposalDataParams, UpdateRecordParams, UpdateRecordResult, UpdateRowByValueParams, UpdateRowByValueResult, UploadFileParams, UploadFileResult, UpsertCompanyParams, UpsertContactParams, UpsertDealParams, UpsertRowParams, UpsertRowResult, VoidEnvelopeParams, VoidEnvelopeResult, WebhookProviderType, WebhookTriggerConfig, WorkflowConfig, WorkflowDefinition, WorkflowStep, WriteSheetParams, WriteSheetResult };