skedyul 1.4.2 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -2776,7 +2776,13 @@ function getBakedExecutableEnv() {
2776
2776
  }
2777
2777
  function buildToolExecutionEnv(requestEnv = {}) {
2778
2778
  const bakedEnv = getBakedExecutableEnv();
2779
- const merged = { ...bakedEnv };
2779
+ const merged = {};
2780
+ for (const [key, value] of Object.entries(process.env)) {
2781
+ if (value !== void 0) {
2782
+ merged[key] = value;
2783
+ }
2784
+ }
2785
+ Object.assign(merged, bakedEnv);
2780
2786
  for (const [key, value] of Object.entries(requestEnv)) {
2781
2787
  if (value !== void 0) {
2782
2788
  merged[key] = value;
@@ -3503,6 +3509,7 @@ function serializeConfig(config) {
3503
3509
  })) : [],
3504
3510
  provision: isProvisionConfig(config.provision) ? config.provision : void 0,
3505
3511
  agents: config.agents,
3512
+ events: config.events,
3506
3513
  queues: config.queues
3507
3514
  };
3508
3515
  }
@@ -6364,6 +6371,7 @@ function serializeResolvedConfig(config) {
6364
6371
  })) : [],
6365
6372
  provision: config.provision,
6366
6373
  agents: config.agents,
6374
+ events: config.events,
6367
6375
  queues: config.queues
6368
6376
  };
6369
6377
  }
@@ -7,6 +7,7 @@ import type { ToolRegistry, WebhookRegistry, ToolMetadata, WebhookMetadata } fro
7
7
  import type { ServerHooks } from '../types/handlers';
8
8
  import type { CoreApiConfig } from '../core/types';
9
9
  import type { EnvSchema, ComputeLayer, ModelDefinition, RelationshipDefinition, ChannelDefinition, WorkflowDefinition, PageDefinition, NavigationConfig, AgentDefinition, SignalDefinition } from './types';
10
+ import type { AppEventDefinition } from './types/app-event';
10
11
  import type { QueueRegistry, SerializableQueueConfig } from './queue-config';
11
12
  export type { QueueScope, QueueConfig, SerializableQueueConfig, QueueRegistry, } from './queue-config';
12
13
  /**
@@ -102,6 +103,8 @@ export interface SkedyulConfig {
102
103
  }>;
103
104
  /** Agent definitions - multi-tenant agents with tool bindings */
104
105
  agents?: AgentDefinition[];
106
+ /** App events emitted via event.create (catalog for UI + docs) */
107
+ events?: AppEventDefinition[];
105
108
  /** Build configuration for the integration */
106
109
  build?: BuildConfig;
107
110
  /** Rate-limit queue definitions for queuedFetch */
@@ -124,6 +127,8 @@ export interface SerializableSkedyulConfig {
124
127
  provision?: ProvisionConfig;
125
128
  /** Agent definitions (stored as-is) */
126
129
  agents?: AgentDefinition[];
130
+ /** App event catalog */
131
+ events?: AppEventDefinition[];
127
132
  /** Rate-limit queue definitions */
128
133
  queues?: Record<string, SerializableQueueConfig>;
129
134
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * App event definition for integration executable config.
3
+ *
4
+ * Events are emitted via event.create and subscribed to as
5
+ * `app.{appHandle}.{name}` (e.g. app.bft.member.updated).
6
+ */
7
+ export interface AppEventDefinition {
8
+ /** Event suffix after app handle, e.g. member.created */
9
+ name: string;
10
+ /** UI display label */
11
+ label: string;
12
+ /** Optional description for pickers and docs */
13
+ description?: string;
14
+ /** Optional grouping label (Members, Bookings, etc.) */
15
+ group?: string;
16
+ }
@@ -12,6 +12,7 @@ export * from './workflow';
12
12
  export * from './agent';
13
13
  export * from './webhook';
14
14
  export * from './signal';
15
+ export * from './app-event';
15
16
  export * from './navigation';
16
17
  export * from './context';
17
18
  export * from './form';
@@ -14,6 +14,8 @@ export interface NavigationItem {
14
14
  href: string;
15
15
  /** Optional Lucide icon name */
16
16
  icon?: string;
17
+ /** When true, item is omitted from rendered navigation (supports Liquid templates) */
18
+ hidden?: boolean | string;
17
19
  }
18
20
  /**
19
21
  * Navigation section with title and items.
@@ -167,7 +167,13 @@ function getBakedExecutableEnv() {
167
167
  }
168
168
  function buildToolExecutionEnv(requestEnv = {}) {
169
169
  const bakedEnv = getBakedExecutableEnv();
170
- const merged = { ...bakedEnv };
170
+ const merged = {};
171
+ for (const [key, value] of Object.entries(process.env)) {
172
+ if (value !== void 0) {
173
+ merged[key] = value;
174
+ }
175
+ }
176
+ Object.assign(merged, bakedEnv);
171
177
  for (const [key, value] of Object.entries(requestEnv)) {
172
178
  if (value !== void 0) {
173
179
  merged[key] = value;
@@ -926,6 +932,7 @@ function serializeConfig(config) {
926
932
  })) : [],
927
933
  provision: isProvisionConfig(config.provision) ? config.provision : void 0,
928
934
  agents: config.agents,
935
+ events: config.events,
929
936
  queues: config.queues
930
937
  };
931
938
  }
@@ -1483,6 +1483,21 @@ var AlertComponentDefinitionSchema = FormV2StylePropsSchema.extend({
1483
1483
  variant: z7.enum(["default", "destructive"]).optional()
1484
1484
  })
1485
1485
  });
1486
+ var EventWiringPanelComponentDefinitionSchema = FormV2StylePropsSchema.extend({
1487
+ component: z7.literal("EventWiringPanel"),
1488
+ props: z7.object({
1489
+ eventTypes: z7.array(
1490
+ z7.object({
1491
+ type: z7.string(),
1492
+ label: z7.string(),
1493
+ glofoxType: z7.string().optional(),
1494
+ description: z7.string().optional(),
1495
+ icon: z7.string().optional()
1496
+ })
1497
+ ),
1498
+ recommendedWorkflowHandle: z7.string().optional()
1499
+ })
1500
+ });
1486
1501
  var ModalFormDefinitionSchema = z7.object({
1487
1502
  header: PageFormHeaderSchema,
1488
1503
  handler: z7.string(),
@@ -1523,7 +1538,8 @@ var FormV2ComponentDefinitionSchema = z7.discriminatedUnion("component", [
1523
1538
  FileSettingComponentDefinitionSchema,
1524
1539
  ListComponentDefinitionSchema,
1525
1540
  EmptyFormComponentDefinitionSchema,
1526
- AlertComponentDefinitionSchema
1541
+ AlertComponentDefinitionSchema,
1542
+ EventWiringPanelComponentDefinitionSchema
1527
1543
  ]);
1528
1544
  var FormV2PropsDefinitionSchema = z7.object({
1529
1545
  formVersion: z7.literal("v2"),
@@ -1630,7 +1646,9 @@ var NavigationItemSchema = z7.object({
1630
1646
  /** URL href (supports Liquid templates with path_params and context) */
1631
1647
  href: z7.string(),
1632
1648
  /** Optional icon name */
1633
- icon: z7.string().optional()
1649
+ icon: z7.string().optional(),
1650
+ /** When true, item is omitted from rendered navigation (supports Liquid templates) */
1651
+ hidden: z7.union([z7.boolean(), z7.string()]).optional()
1634
1652
  });
1635
1653
  var NavigationSectionSchema = z7.object({
1636
1654
  /** Section title (supports Liquid templates) */
@@ -1984,7 +2002,13 @@ function getBakedExecutableEnv() {
1984
2002
  }
1985
2003
  function buildToolExecutionEnv(requestEnv = {}) {
1986
2004
  const bakedEnv = getBakedExecutableEnv();
1987
- const merged = { ...bakedEnv };
2005
+ const merged = {};
2006
+ for (const [key, value] of Object.entries(process.env)) {
2007
+ if (value !== void 0) {
2008
+ merged[key] = value;
2009
+ }
2010
+ }
2011
+ Object.assign(merged, bakedEnv);
1988
2012
  for (const [key, value] of Object.entries(requestEnv)) {
1989
2013
  if (value !== void 0) {
1990
2014
  merged[key] = value;
@@ -3970,6 +3994,7 @@ function serializeConfig(config) {
3970
3994
  })) : [],
3971
3995
  provision: isProvisionConfig(config.provision) ? config.provision : void 0,
3972
3996
  agents: config.agents,
3997
+ events: config.events,
3973
3998
  queues: config.queues
3974
3999
  };
3975
4000
  }
@@ -7455,6 +7480,7 @@ export {
7455
7480
  EventSubscriptionSchema,
7456
7481
  EventTypeSchema,
7457
7482
  EventWaitSchema,
7483
+ EventWiringPanelComponentDefinitionSchema,
7458
7484
  EventsConfigSchema,
7459
7485
  ExternalDataCacheSchema,
7460
7486
  ExternalMemoryConfigSchema2 as ExternalMemoryConfigSchema,
package/dist/index.js CHANGED
@@ -89,6 +89,7 @@ __export(index_exports, {
89
89
  EventSubscriptionSchema: () => EventSubscriptionSchema,
90
90
  EventTypeSchema: () => EventTypeSchema,
91
91
  EventWaitSchema: () => EventWaitSchema,
92
+ EventWiringPanelComponentDefinitionSchema: () => EventWiringPanelComponentDefinitionSchema,
92
93
  EventsConfigSchema: () => EventsConfigSchema,
93
94
  ExternalDataCacheSchema: () => ExternalDataCacheSchema,
94
95
  ExternalMemoryConfigSchema: () => ExternalMemoryConfigSchema2,
@@ -1809,6 +1810,21 @@ var AlertComponentDefinitionSchema = FormV2StylePropsSchema.extend({
1809
1810
  variant: import_v47.z.enum(["default", "destructive"]).optional()
1810
1811
  })
1811
1812
  });
1813
+ var EventWiringPanelComponentDefinitionSchema = FormV2StylePropsSchema.extend({
1814
+ component: import_v47.z.literal("EventWiringPanel"),
1815
+ props: import_v47.z.object({
1816
+ eventTypes: import_v47.z.array(
1817
+ import_v47.z.object({
1818
+ type: import_v47.z.string(),
1819
+ label: import_v47.z.string(),
1820
+ glofoxType: import_v47.z.string().optional(),
1821
+ description: import_v47.z.string().optional(),
1822
+ icon: import_v47.z.string().optional()
1823
+ })
1824
+ ),
1825
+ recommendedWorkflowHandle: import_v47.z.string().optional()
1826
+ })
1827
+ });
1812
1828
  var ModalFormDefinitionSchema = import_v47.z.object({
1813
1829
  header: PageFormHeaderSchema,
1814
1830
  handler: import_v47.z.string(),
@@ -1849,7 +1865,8 @@ var FormV2ComponentDefinitionSchema = import_v47.z.discriminatedUnion("component
1849
1865
  FileSettingComponentDefinitionSchema,
1850
1866
  ListComponentDefinitionSchema,
1851
1867
  EmptyFormComponentDefinitionSchema,
1852
- AlertComponentDefinitionSchema
1868
+ AlertComponentDefinitionSchema,
1869
+ EventWiringPanelComponentDefinitionSchema
1853
1870
  ]);
1854
1871
  var FormV2PropsDefinitionSchema = import_v47.z.object({
1855
1872
  formVersion: import_v47.z.literal("v2"),
@@ -1956,7 +1973,9 @@ var NavigationItemSchema = import_v47.z.object({
1956
1973
  /** URL href (supports Liquid templates with path_params and context) */
1957
1974
  href: import_v47.z.string(),
1958
1975
  /** Optional icon name */
1959
- icon: import_v47.z.string().optional()
1976
+ icon: import_v47.z.string().optional(),
1977
+ /** When true, item is omitted from rendered navigation (supports Liquid templates) */
1978
+ hidden: import_v47.z.union([import_v47.z.boolean(), import_v47.z.string()]).optional()
1960
1979
  });
1961
1980
  var NavigationSectionSchema = import_v47.z.object({
1962
1981
  /** Section title (supports Liquid templates) */
@@ -2310,7 +2329,13 @@ function getBakedExecutableEnv() {
2310
2329
  }
2311
2330
  function buildToolExecutionEnv(requestEnv = {}) {
2312
2331
  const bakedEnv = getBakedExecutableEnv();
2313
- const merged = { ...bakedEnv };
2332
+ const merged = {};
2333
+ for (const [key, value] of Object.entries(process.env)) {
2334
+ if (value !== void 0) {
2335
+ merged[key] = value;
2336
+ }
2337
+ }
2338
+ Object.assign(merged, bakedEnv);
2314
2339
  for (const [key, value] of Object.entries(requestEnv)) {
2315
2340
  if (value !== void 0) {
2316
2341
  merged[key] = value;
@@ -4296,6 +4321,7 @@ function serializeConfig(config) {
4296
4321
  })) : [],
4297
4322
  provision: isProvisionConfig(config.provision) ? config.provision : void 0,
4298
4323
  agents: config.agents,
4324
+ events: config.events,
4299
4325
  queues: config.queues
4300
4326
  };
4301
4327
  }
@@ -7782,6 +7808,7 @@ var index_default = { z: import_v413.z };
7782
7808
  EventSubscriptionSchema,
7783
7809
  EventTypeSchema,
7784
7810
  EventWaitSchema,
7811
+ EventWiringPanelComponentDefinitionSchema,
7785
7812
  EventsConfigSchema,
7786
7813
  ExternalDataCacheSchema,
7787
7814
  ExternalMemoryConfigSchema,
package/dist/schemas.d.ts CHANGED
@@ -901,6 +901,25 @@ export declare const AlertComponentDefinitionSchema: z.ZodObject<{
901
901
  }>>;
902
902
  }, z.core.$strip>;
903
903
  }, z.core.$strip>;
904
+ /** Event wiring overview for app install pages */
905
+ export declare const EventWiringPanelComponentDefinitionSchema: z.ZodObject<{
906
+ id: z.ZodString;
907
+ row: z.ZodNumber;
908
+ col: z.ZodNumber;
909
+ className: z.ZodOptional<z.ZodString>;
910
+ hidden: z.ZodOptional<z.ZodBoolean>;
911
+ component: z.ZodLiteral<"EventWiringPanel">;
912
+ props: z.ZodObject<{
913
+ eventTypes: z.ZodArray<z.ZodObject<{
914
+ type: z.ZodString;
915
+ label: z.ZodString;
916
+ glofoxType: z.ZodOptional<z.ZodString>;
917
+ description: z.ZodOptional<z.ZodString>;
918
+ icon: z.ZodOptional<z.ZodString>;
919
+ }, z.core.$strip>>;
920
+ recommendedWorkflowHandle: z.ZodOptional<z.ZodString>;
921
+ }, z.core.$strip>;
922
+ }, z.core.$strip>;
904
923
  /** Forward declaration for FieldSetting with modalForm */
905
924
  export type FormV2ComponentDefinition = z.infer<typeof FormV2ComponentDefinitionSchema>;
906
925
  /** Modal form definition for nested forms */
@@ -1248,6 +1267,23 @@ export declare const FormV2ComponentDefinitionSchema: z.ZodDiscriminatedUnion<[z
1248
1267
  destructive: "destructive";
1249
1268
  }>>;
1250
1269
  }, z.core.$strip>;
1270
+ }, z.core.$strip>, z.ZodObject<{
1271
+ id: z.ZodString;
1272
+ row: z.ZodNumber;
1273
+ col: z.ZodNumber;
1274
+ className: z.ZodOptional<z.ZodString>;
1275
+ hidden: z.ZodOptional<z.ZodBoolean>;
1276
+ component: z.ZodLiteral<"EventWiringPanel">;
1277
+ props: z.ZodObject<{
1278
+ eventTypes: z.ZodArray<z.ZodObject<{
1279
+ type: z.ZodString;
1280
+ label: z.ZodString;
1281
+ glofoxType: z.ZodOptional<z.ZodString>;
1282
+ description: z.ZodOptional<z.ZodString>;
1283
+ icon: z.ZodOptional<z.ZodString>;
1284
+ }, z.core.$strip>>;
1285
+ recommendedWorkflowHandle: z.ZodOptional<z.ZodString>;
1286
+ }, z.core.$strip>;
1251
1287
  }, z.core.$strip>], "component">;
1252
1288
  /** FormV2 props definition */
1253
1289
  export declare const FormV2PropsDefinitionSchema: z.ZodObject<{
@@ -1530,6 +1566,23 @@ export declare const FormV2PropsDefinitionSchema: z.ZodObject<{
1530
1566
  destructive: "destructive";
1531
1567
  }>>;
1532
1568
  }, z.core.$strip>;
1569
+ }, z.core.$strip>, z.ZodObject<{
1570
+ id: z.ZodString;
1571
+ row: z.ZodNumber;
1572
+ col: z.ZodNumber;
1573
+ className: z.ZodOptional<z.ZodString>;
1574
+ hidden: z.ZodOptional<z.ZodBoolean>;
1575
+ component: z.ZodLiteral<"EventWiringPanel">;
1576
+ props: z.ZodObject<{
1577
+ eventTypes: z.ZodArray<z.ZodObject<{
1578
+ type: z.ZodString;
1579
+ label: z.ZodString;
1580
+ glofoxType: z.ZodOptional<z.ZodString>;
1581
+ description: z.ZodOptional<z.ZodString>;
1582
+ icon: z.ZodOptional<z.ZodString>;
1583
+ }, z.core.$strip>>;
1584
+ recommendedWorkflowHandle: z.ZodOptional<z.ZodString>;
1585
+ }, z.core.$strip>;
1533
1586
  }, z.core.$strip>], "component">>;
1534
1587
  layout: z.ZodObject<{
1535
1588
  type: z.ZodLiteral<"form">;
@@ -1853,6 +1906,23 @@ export declare const CardBlockDefinitionSchema: z.ZodObject<{
1853
1906
  destructive: "destructive";
1854
1907
  }>>;
1855
1908
  }, z.core.$strip>;
1909
+ }, z.core.$strip>, z.ZodObject<{
1910
+ id: z.ZodString;
1911
+ row: z.ZodNumber;
1912
+ col: z.ZodNumber;
1913
+ className: z.ZodOptional<z.ZodString>;
1914
+ hidden: z.ZodOptional<z.ZodBoolean>;
1915
+ component: z.ZodLiteral<"EventWiringPanel">;
1916
+ props: z.ZodObject<{
1917
+ eventTypes: z.ZodArray<z.ZodObject<{
1918
+ type: z.ZodString;
1919
+ label: z.ZodString;
1920
+ glofoxType: z.ZodOptional<z.ZodString>;
1921
+ description: z.ZodOptional<z.ZodString>;
1922
+ icon: z.ZodOptional<z.ZodString>;
1923
+ }, z.core.$strip>>;
1924
+ recommendedWorkflowHandle: z.ZodOptional<z.ZodString>;
1925
+ }, z.core.$strip>;
1856
1926
  }, z.core.$strip>], "component">>;
1857
1927
  layout: z.ZodObject<{
1858
1928
  type: z.ZodLiteral<"form">;
@@ -2280,6 +2350,23 @@ export declare const PageBlockDefinitionSchema: z.ZodUnion<readonly [z.ZodObject
2280
2350
  destructive: "destructive";
2281
2351
  }>>;
2282
2352
  }, z.core.$strip>;
2353
+ }, z.core.$strip>, z.ZodObject<{
2354
+ id: z.ZodString;
2355
+ row: z.ZodNumber;
2356
+ col: z.ZodNumber;
2357
+ className: z.ZodOptional<z.ZodString>;
2358
+ hidden: z.ZodOptional<z.ZodBoolean>;
2359
+ component: z.ZodLiteral<"EventWiringPanel">;
2360
+ props: z.ZodObject<{
2361
+ eventTypes: z.ZodArray<z.ZodObject<{
2362
+ type: z.ZodString;
2363
+ label: z.ZodString;
2364
+ glofoxType: z.ZodOptional<z.ZodString>;
2365
+ description: z.ZodOptional<z.ZodString>;
2366
+ icon: z.ZodOptional<z.ZodString>;
2367
+ }, z.core.$strip>>;
2368
+ recommendedWorkflowHandle: z.ZodOptional<z.ZodString>;
2369
+ }, z.core.$strip>;
2283
2370
  }, z.core.$strip>], "component">>;
2284
2371
  layout: z.ZodObject<{
2285
2372
  type: z.ZodLiteral<"form">;
@@ -2429,6 +2516,7 @@ export declare const NavigationItemSchema: z.ZodObject<{
2429
2516
  label: z.ZodString;
2430
2517
  href: z.ZodString;
2431
2518
  icon: z.ZodOptional<z.ZodString>;
2519
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
2432
2520
  }, z.core.$strip>;
2433
2521
  /** Navigation section with title and items */
2434
2522
  export declare const NavigationSectionSchema: z.ZodObject<{
@@ -2437,6 +2525,7 @@ export declare const NavigationSectionSchema: z.ZodObject<{
2437
2525
  label: z.ZodString;
2438
2526
  href: z.ZodString;
2439
2527
  icon: z.ZodOptional<z.ZodString>;
2528
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
2440
2529
  }, z.core.$strip>>;
2441
2530
  }, z.core.$strip>;
2442
2531
  /** Sidebar navigation configuration */
@@ -2447,6 +2536,7 @@ export declare const NavigationSidebarSchema: z.ZodObject<{
2447
2536
  label: z.ZodString;
2448
2537
  href: z.ZodString;
2449
2538
  icon: z.ZodOptional<z.ZodString>;
2539
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
2450
2540
  }, z.core.$strip>>;
2451
2541
  }, z.core.$strip>>;
2452
2542
  }, z.core.$strip>;
@@ -2471,6 +2561,7 @@ export declare const NavigationConfigSchema: z.ZodObject<{
2471
2561
  label: z.ZodString;
2472
2562
  href: z.ZodString;
2473
2563
  icon: z.ZodOptional<z.ZodString>;
2564
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
2474
2565
  }, z.core.$strip>>;
2475
2566
  }, z.core.$strip>>;
2476
2567
  }, z.core.$strip>>;
@@ -2510,6 +2601,7 @@ export declare const PageDefinitionSchema: z.ZodObject<{
2510
2601
  label: z.ZodString;
2511
2602
  href: z.ZodString;
2512
2603
  icon: z.ZodOptional<z.ZodString>;
2604
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
2513
2605
  }, z.core.$strip>>;
2514
2606
  }, z.core.$strip>>;
2515
2607
  }, z.core.$strip>>;
@@ -2808,6 +2900,23 @@ export declare const PageDefinitionSchema: z.ZodObject<{
2808
2900
  destructive: "destructive";
2809
2901
  }>>;
2810
2902
  }, z.core.$strip>;
2903
+ }, z.core.$strip>, z.ZodObject<{
2904
+ id: z.ZodString;
2905
+ row: z.ZodNumber;
2906
+ col: z.ZodNumber;
2907
+ className: z.ZodOptional<z.ZodString>;
2908
+ hidden: z.ZodOptional<z.ZodBoolean>;
2909
+ component: z.ZodLiteral<"EventWiringPanel">;
2910
+ props: z.ZodObject<{
2911
+ eventTypes: z.ZodArray<z.ZodObject<{
2912
+ type: z.ZodString;
2913
+ label: z.ZodString;
2914
+ glofoxType: z.ZodOptional<z.ZodString>;
2915
+ description: z.ZodOptional<z.ZodString>;
2916
+ icon: z.ZodOptional<z.ZodString>;
2917
+ }, z.core.$strip>>;
2918
+ recommendedWorkflowHandle: z.ZodOptional<z.ZodString>;
2919
+ }, z.core.$strip>;
2811
2920
  }, z.core.$strip>], "component">>;
2812
2921
  layout: z.ZodObject<{
2813
2922
  type: z.ZodLiteral<"form">;
@@ -3344,6 +3453,7 @@ export declare const ProvisionConfigSchema: z.ZodObject<{
3344
3453
  label: z.ZodString;
3345
3454
  href: z.ZodString;
3346
3455
  icon: z.ZodOptional<z.ZodString>;
3456
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
3347
3457
  }, z.core.$strip>>;
3348
3458
  }, z.core.$strip>>;
3349
3459
  }, z.core.$strip>>;
@@ -3377,6 +3487,7 @@ export declare const ProvisionConfigSchema: z.ZodObject<{
3377
3487
  label: z.ZodString;
3378
3488
  href: z.ZodString;
3379
3489
  icon: z.ZodOptional<z.ZodString>;
3490
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
3380
3491
  }, z.core.$strip>>;
3381
3492
  }, z.core.$strip>>;
3382
3493
  }, z.core.$strip>>;
@@ -3675,6 +3786,23 @@ export declare const ProvisionConfigSchema: z.ZodObject<{
3675
3786
  destructive: "destructive";
3676
3787
  }>>;
3677
3788
  }, z.core.$strip>;
3789
+ }, z.core.$strip>, z.ZodObject<{
3790
+ id: z.ZodString;
3791
+ row: z.ZodNumber;
3792
+ col: z.ZodNumber;
3793
+ className: z.ZodOptional<z.ZodString>;
3794
+ hidden: z.ZodOptional<z.ZodBoolean>;
3795
+ component: z.ZodLiteral<"EventWiringPanel">;
3796
+ props: z.ZodObject<{
3797
+ eventTypes: z.ZodArray<z.ZodObject<{
3798
+ type: z.ZodString;
3799
+ label: z.ZodString;
3800
+ glofoxType: z.ZodOptional<z.ZodString>;
3801
+ description: z.ZodOptional<z.ZodString>;
3802
+ icon: z.ZodOptional<z.ZodString>;
3803
+ }, z.core.$strip>>;
3804
+ recommendedWorkflowHandle: z.ZodOptional<z.ZodString>;
3805
+ }, z.core.$strip>;
3678
3806
  }, z.core.$strip>], "component">>;
3679
3807
  layout: z.ZodObject<{
3680
3808
  type: z.ZodLiteral<"form">;
@@ -4048,6 +4176,7 @@ export declare const SkedyulConfigSchema: z.ZodObject<{
4048
4176
  label: z.ZodString;
4049
4177
  href: z.ZodString;
4050
4178
  icon: z.ZodOptional<z.ZodString>;
4179
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
4051
4180
  }, z.core.$strip>>;
4052
4181
  }, z.core.$strip>>;
4053
4182
  }, z.core.$strip>>;
@@ -4081,6 +4210,7 @@ export declare const SkedyulConfigSchema: z.ZodObject<{
4081
4210
  label: z.ZodString;
4082
4211
  href: z.ZodString;
4083
4212
  icon: z.ZodOptional<z.ZodString>;
4213
+ hidden: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
4084
4214
  }, z.core.$strip>>;
4085
4215
  }, z.core.$strip>>;
4086
4216
  }, z.core.$strip>>;
@@ -4379,6 +4509,23 @@ export declare const SkedyulConfigSchema: z.ZodObject<{
4379
4509
  destructive: "destructive";
4380
4510
  }>>;
4381
4511
  }, z.core.$strip>;
4512
+ }, z.core.$strip>, z.ZodObject<{
4513
+ id: z.ZodString;
4514
+ row: z.ZodNumber;
4515
+ col: z.ZodNumber;
4516
+ className: z.ZodOptional<z.ZodString>;
4517
+ hidden: z.ZodOptional<z.ZodBoolean>;
4518
+ component: z.ZodLiteral<"EventWiringPanel">;
4519
+ props: z.ZodObject<{
4520
+ eventTypes: z.ZodArray<z.ZodObject<{
4521
+ type: z.ZodString;
4522
+ label: z.ZodString;
4523
+ glofoxType: z.ZodOptional<z.ZodString>;
4524
+ description: z.ZodOptional<z.ZodString>;
4525
+ icon: z.ZodOptional<z.ZodString>;
4526
+ }, z.core.$strip>>;
4527
+ recommendedWorkflowHandle: z.ZodOptional<z.ZodString>;
4528
+ }, z.core.$strip>;
4382
4529
  }, z.core.$strip>], "component">>;
4383
4530
  layout: z.ZodObject<{
4384
4531
  type: z.ZodLiteral<"form">;
@@ -11,8 +11,12 @@ export declare function parseNumberEnv(value?: string): number | null;
11
11
  */
12
12
  export declare function getBakedExecutableEnv(): Record<string, string>;
13
13
  /**
14
- * Env exposed to tool handlers: per-request values from the platform win over baked secrets.
15
- * Avoids leaking unrelated keys left in process.env during local `dev serve`.
14
+ * Env exposed to tool handlers.
15
+ *
16
+ * Layering (lowest → highest priority):
17
+ * 1. process.env — container-local values (`dev serve` loads provision secrets here)
18
+ * 2. MCP_ENV_JSON / MCP_ENV — baked secrets in deployed containers
19
+ * 3. requestEnv — per-request runtime values from the platform (token, API URL)
16
20
  */
17
21
  export declare function buildToolExecutionEnv(requestEnv?: Record<string, string | undefined>): Record<string, string | undefined>;
18
22
  /**
package/dist/server.js CHANGED
@@ -167,7 +167,13 @@ function getBakedExecutableEnv() {
167
167
  }
168
168
  function buildToolExecutionEnv(requestEnv = {}) {
169
169
  const bakedEnv = getBakedExecutableEnv();
170
- const merged = { ...bakedEnv };
170
+ const merged = {};
171
+ for (const [key, value] of Object.entries(process.env)) {
172
+ if (value !== void 0) {
173
+ merged[key] = value;
174
+ }
175
+ }
176
+ Object.assign(merged, bakedEnv);
171
177
  for (const [key, value] of Object.entries(requestEnv)) {
172
178
  if (value !== void 0) {
173
179
  merged[key] = value;
@@ -926,6 +932,7 @@ function serializeConfig(config) {
926
932
  })) : [],
927
933
  provision: isProvisionConfig(config.provision) ? config.provision : void 0,
928
934
  agents: config.agents,
935
+ events: config.events,
929
936
  queues: config.queues
930
937
  };
931
938
  }
@@ -128,7 +128,13 @@ function getBakedExecutableEnv() {
128
128
  }
129
129
  function buildToolExecutionEnv(requestEnv = {}) {
130
130
  const bakedEnv = getBakedExecutableEnv();
131
- const merged = { ...bakedEnv };
131
+ const merged = {};
132
+ for (const [key, value] of Object.entries(process.env)) {
133
+ if (value !== void 0) {
134
+ merged[key] = value;
135
+ }
136
+ }
137
+ Object.assign(merged, bakedEnv);
132
138
  for (const [key, value] of Object.entries(requestEnv)) {
133
139
  if (value !== void 0) {
134
140
  merged[key] = value;
@@ -887,6 +893,7 @@ function serializeConfig(config) {
887
893
  })) : [],
888
894
  provision: isProvisionConfig(config.provision) ? config.provision : void 0,
889
895
  agents: config.agents,
896
+ events: config.events,
890
897
  queues: config.queues
891
898
  };
892
899
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skedyul",
3
- "version": "1.4.2",
3
+ "version": "1.4.5",
4
4
  "description": "The Skedyul SDK for Node.js",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",