@rudderhq/cli 0.2.7-canary.0 → 0.2.7-canary.1

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.js CHANGED
@@ -10,11 +10,13 @@ var __export = (target, all) => {
10
10
  };
11
11
 
12
12
  // ../packages/shared/dist/constants.js
13
- var ORGANIZATION_STATUSES, DEPLOYMENT_MODES, DEPLOYMENT_EXPOSURES, AUTH_BASE_URL_MODES, AGENT_STATUSES, AGENT_RUNTIME_TYPES, AGENT_ROLES, AGENT_ICON_NAMES, AGENT_DICEBEAR_NOTIONISTS_ICON_PREFIX, AGENT_AVATAR_BACKGROUND_PRESET_IDS, ISSUE_STATUSES, ISSUE_PRIORITIES, CALENDAR_SOURCE_TYPES, CALENDAR_OWNER_TYPES, CALENDAR_VISIBILITIES, CALENDAR_SOURCE_STATUSES, CALENDAR_EVENT_KINDS, CALENDAR_EVENT_STATUSES, CALENDAR_SOURCE_MODES, CHAT_CONVERSATION_STATUSES, CHAT_ISSUE_CREATION_MODES, CHAT_MESSAGE_ROLES, CHAT_MESSAGE_KINDS, CHAT_MESSAGE_STATUSES, CHAT_CONTEXT_ENTITY_TYPES, GOAL_LEVELS, GOAL_STATUSES, PROJECT_STATUSES, ORGANIZATION_RESOURCE_KINDS, PROJECT_RESOURCE_ATTACHMENT_ROLES, AUTOMATION_STATUSES, AUTOMATION_CONCURRENCY_POLICIES, AUTOMATION_CATCH_UP_POLICIES, AUTOMATION_OUTPUT_MODES, AUTOMATION_TRIGGER_SIGNING_MODES, PROJECT_COLORS, APPROVAL_TYPES, SECRET_PROVIDERS, STORAGE_PROVIDERS, BILLING_TYPES, FINANCE_EVENT_KINDS, FINANCE_DIRECTIONS, FINANCE_UNITS, BUDGET_SCOPE_TYPES, BUDGET_METRICS, BUDGET_WINDOW_KINDS, BUDGET_INCIDENT_RESOLUTION_ACTIONS, INVITE_JOIN_TYPES, JOIN_REQUEST_TYPES, JOIN_REQUEST_STATUSES, PERMISSION_KEYS, PLUGIN_STATUSES, PLUGIN_CATEGORIES, PLUGIN_CAPABILITIES, PLUGIN_UI_SLOT_TYPES, PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS, PLUGIN_LAUNCHER_PLACEMENT_ZONES, PLUGIN_LAUNCHER_ACTIONS, PLUGIN_LAUNCHER_BOUNDS, PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS, PLUGIN_UI_SLOT_ENTITY_TYPES, PLUGIN_STATE_SCOPE_KINDS;
13
+ var ORGANIZATION_STATUSES, ORGANIZATION_INTELLIGENCE_PROFILE_PURPOSES, ORGANIZATION_INTELLIGENCE_PROFILE_STATUSES, DEPLOYMENT_MODES, DEPLOYMENT_EXPOSURES, AUTH_BASE_URL_MODES, AGENT_STATUSES, AGENT_RUNTIME_TYPES, AGENT_ROLES, AGENT_ICON_NAMES, AGENT_DICEBEAR_NOTIONISTS_ICON_PREFIX, AGENT_AVATAR_BACKGROUND_PRESET_IDS, ISSUE_STATUSES, ISSUE_PRIORITIES, CALENDAR_SOURCE_TYPES, CALENDAR_OWNER_TYPES, CALENDAR_VISIBILITIES, CALENDAR_SOURCE_STATUSES, CALENDAR_EVENT_KINDS, CALENDAR_EVENT_STATUSES, CALENDAR_SOURCE_MODES, CHAT_CONVERSATION_STATUSES, CHAT_ISSUE_CREATION_MODES, CHAT_MESSAGE_ROLES, CHAT_MESSAGE_KINDS, CHAT_MESSAGE_STATUSES, CHAT_CONTEXT_ENTITY_TYPES, GOAL_LEVELS, GOAL_STATUSES, PROJECT_STATUSES, ORGANIZATION_RESOURCE_KINDS, PROJECT_RESOURCE_ATTACHMENT_ROLES, AUTOMATION_STATUSES, AUTOMATION_CONCURRENCY_POLICIES, AUTOMATION_CATCH_UP_POLICIES, AUTOMATION_OUTPUT_MODES, AUTOMATION_TRIGGER_SIGNING_MODES, PROJECT_COLORS, APPROVAL_TYPES, SECRET_PROVIDERS, STORAGE_PROVIDERS, BILLING_TYPES, FINANCE_EVENT_KINDS, FINANCE_DIRECTIONS, FINANCE_UNITS, BUDGET_SCOPE_TYPES, BUDGET_METRICS, BUDGET_WINDOW_KINDS, BUDGET_INCIDENT_RESOLUTION_ACTIONS, INVITE_JOIN_TYPES, JOIN_REQUEST_TYPES, JOIN_REQUEST_STATUSES, PERMISSION_KEYS, PLUGIN_STATUSES, PLUGIN_CATEGORIES, PLUGIN_CAPABILITIES, PLUGIN_UI_SLOT_TYPES, PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS, PLUGIN_LAUNCHER_PLACEMENT_ZONES, PLUGIN_LAUNCHER_ACTIONS, PLUGIN_LAUNCHER_BOUNDS, PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS, PLUGIN_UI_SLOT_ENTITY_TYPES, PLUGIN_STATE_SCOPE_KINDS;
14
14
  var init_constants = __esm({
15
15
  "../packages/shared/dist/constants.js"() {
16
16
  "use strict";
17
17
  ORGANIZATION_STATUSES = ["active", "paused", "archived"];
18
+ ORGANIZATION_INTELLIGENCE_PROFILE_PURPOSES = ["lightweight", "reasoning"];
19
+ ORGANIZATION_INTELLIGENCE_PROFILE_STATUSES = ["configured", "disabled", "invalid"];
18
20
  DEPLOYMENT_MODES = ["local_trusted", "authenticated"];
19
21
  DEPLOYMENT_EXPOSURES = ["private", "public"];
20
22
  AUTH_BASE_URL_MODES = ["auto", "explicit"];
@@ -543,108 +545,266 @@ var init_organization = __esm({
543
545
  }
544
546
  });
545
547
 
546
- // ../packages/shared/dist/validators/resource.js
548
+ // ../packages/shared/dist/validators/secret.js
547
549
  import { z as z4 } from "zod";
550
+ var envBindingPlainSchema, envBindingSecretRefSchema, envBindingSchema, envConfigSchema, createSecretSchema, rotateSecretSchema, updateSecretSchema;
551
+ var init_secret = __esm({
552
+ "../packages/shared/dist/validators/secret.js"() {
553
+ "use strict";
554
+ init_constants();
555
+ envBindingPlainSchema = z4.object({
556
+ type: z4.literal("plain"),
557
+ value: z4.string()
558
+ });
559
+ envBindingSecretRefSchema = z4.object({
560
+ type: z4.literal("secret_ref"),
561
+ secretId: z4.string().uuid(),
562
+ version: z4.union([z4.literal("latest"), z4.number().int().positive()]).optional()
563
+ });
564
+ envBindingSchema = z4.union([
565
+ z4.string(),
566
+ envBindingPlainSchema,
567
+ envBindingSecretRefSchema
568
+ ]);
569
+ envConfigSchema = z4.record(envBindingSchema);
570
+ createSecretSchema = z4.object({
571
+ name: z4.string().min(1),
572
+ provider: z4.enum(SECRET_PROVIDERS).optional(),
573
+ value: z4.string().min(1),
574
+ description: z4.string().optional().nullable(),
575
+ externalRef: z4.string().optional().nullable()
576
+ });
577
+ rotateSecretSchema = z4.object({
578
+ value: z4.string().min(1),
579
+ externalRef: z4.string().optional().nullable()
580
+ });
581
+ updateSecretSchema = z4.object({
582
+ name: z4.string().min(1).optional(),
583
+ description: z4.string().optional().nullable(),
584
+ externalRef: z4.string().optional().nullable()
585
+ });
586
+ }
587
+ });
588
+
589
+ // ../packages/shared/dist/validators/model-fallbacks.js
590
+ import { z as z5 } from "zod";
591
+ function isRecord(value) {
592
+ return typeof value === "object" && value !== null && !Array.isArray(value);
593
+ }
594
+ function validateModelFallbacksConfig(value, ctx, pathPrefix) {
595
+ const fallbackModels = value.modelFallbacks;
596
+ if (fallbackModels === void 0)
597
+ return;
598
+ if (!Array.isArray(fallbackModels)) {
599
+ ctx.addIssue({
600
+ code: z5.ZodIssueCode.custom,
601
+ message: "modelFallbacks must be an array",
602
+ path: [...pathPrefix, "modelFallbacks"]
603
+ });
604
+ return;
605
+ }
606
+ fallbackModels.forEach((fallback, index) => {
607
+ if (typeof fallback === "string") {
608
+ if (fallback.trim().length === 0) {
609
+ ctx.addIssue({
610
+ code: z5.ZodIssueCode.custom,
611
+ message: "modelFallbacks string entries must be non-empty",
612
+ path: [...pathPrefix, "modelFallbacks", index]
613
+ });
614
+ }
615
+ return;
616
+ }
617
+ if (!isRecord(fallback)) {
618
+ ctx.addIssue({
619
+ code: z5.ZodIssueCode.custom,
620
+ message: "modelFallbacks entries must be strings or runtime/model objects",
621
+ path: [...pathPrefix, "modelFallbacks", index]
622
+ });
623
+ return;
624
+ }
625
+ if (typeof fallback.agentRuntimeType !== "string" || fallback.agentRuntimeType.trim().length === 0) {
626
+ ctx.addIssue({
627
+ code: z5.ZodIssueCode.custom,
628
+ message: "modelFallbacks entries must include agentRuntimeType",
629
+ path: [...pathPrefix, "modelFallbacks", index, "agentRuntimeType"]
630
+ });
631
+ } else if (!agentRuntimeTypes.has(fallback.agentRuntimeType)) {
632
+ ctx.addIssue({
633
+ code: z5.ZodIssueCode.custom,
634
+ message: "modelFallbacks entries must include a valid agentRuntimeType",
635
+ path: [...pathPrefix, "modelFallbacks", index, "agentRuntimeType"]
636
+ });
637
+ }
638
+ if (typeof fallback.model !== "string" || fallback.model.trim().length === 0) {
639
+ ctx.addIssue({
640
+ code: z5.ZodIssueCode.custom,
641
+ message: "modelFallbacks entries must include model",
642
+ path: [...pathPrefix, "modelFallbacks", index, "model"]
643
+ });
644
+ }
645
+ if (fallback.config !== void 0 && !isRecord(fallback.config)) {
646
+ ctx.addIssue({
647
+ code: z5.ZodIssueCode.custom,
648
+ message: "modelFallbacks entry config must be an object",
649
+ path: [...pathPrefix, "modelFallbacks", index, "config"]
650
+ });
651
+ } else if (isRecord(fallback.config) && fallback.config.env !== void 0) {
652
+ const parsed = envConfigSchema.safeParse(fallback.config.env);
653
+ if (!parsed.success) {
654
+ ctx.addIssue({
655
+ code: z5.ZodIssueCode.custom,
656
+ message: "modelFallbacks entry config.env must be a map of valid env bindings",
657
+ path: [...pathPrefix, "modelFallbacks", index, "config", "env"]
658
+ });
659
+ }
660
+ }
661
+ });
662
+ }
663
+ var agentRuntimeTypes;
664
+ var init_model_fallbacks = __esm({
665
+ "../packages/shared/dist/validators/model-fallbacks.js"() {
666
+ "use strict";
667
+ init_constants();
668
+ init_secret();
669
+ agentRuntimeTypes = new Set(AGENT_RUNTIME_TYPES);
670
+ }
671
+ });
672
+
673
+ // ../packages/shared/dist/validators/organization-intelligence-profile.js
674
+ import { z as z6 } from "zod";
675
+ var organizationIntelligenceProfilePurposeSchema, organizationIntelligenceProfileStatusSchema, organizationIntelligenceProfileConfigSchema, upsertOrganizationIntelligenceProfileSchema;
676
+ var init_organization_intelligence_profile = __esm({
677
+ "../packages/shared/dist/validators/organization-intelligence-profile.js"() {
678
+ "use strict";
679
+ init_constants();
680
+ init_secret();
681
+ init_model_fallbacks();
682
+ organizationIntelligenceProfilePurposeSchema = z6.enum(ORGANIZATION_INTELLIGENCE_PROFILE_PURPOSES);
683
+ organizationIntelligenceProfileStatusSchema = z6.enum(ORGANIZATION_INTELLIGENCE_PROFILE_STATUSES);
684
+ organizationIntelligenceProfileConfigSchema = z6.record(z6.unknown()).superRefine((value, ctx) => {
685
+ const envValue = value.env;
686
+ if (envValue !== void 0) {
687
+ const parsed = envConfigSchema.safeParse(envValue);
688
+ if (!parsed.success) {
689
+ ctx.addIssue({
690
+ code: z6.ZodIssueCode.custom,
691
+ message: "agentRuntimeConfig.env must be a map of valid env bindings",
692
+ path: ["env"]
693
+ });
694
+ }
695
+ }
696
+ validateModelFallbacksConfig(value, ctx, []);
697
+ });
698
+ upsertOrganizationIntelligenceProfileSchema = z6.object({
699
+ agentRuntimeType: z6.enum(AGENT_RUNTIME_TYPES),
700
+ agentRuntimeConfig: organizationIntelligenceProfileConfigSchema.default({}),
701
+ status: organizationIntelligenceProfileStatusSchema.optional().default("configured")
702
+ });
703
+ }
704
+ });
705
+
706
+ // ../packages/shared/dist/validators/resource.js
707
+ import { z as z7 } from "zod";
548
708
  var organizationResourceKindSchema, projectResourceAttachmentRoleSchema, createOrganizationResourceSchema, updateOrganizationResourceSchema, projectResourceAttachmentInputSchema, updateProjectResourceAttachmentSchema, createProjectInlineResourceSchema;
549
709
  var init_resource = __esm({
550
710
  "../packages/shared/dist/validators/resource.js"() {
551
711
  "use strict";
552
712
  init_constants();
553
- organizationResourceKindSchema = z4.enum(ORGANIZATION_RESOURCE_KINDS);
554
- projectResourceAttachmentRoleSchema = z4.enum(PROJECT_RESOURCE_ATTACHMENT_ROLES);
555
- createOrganizationResourceSchema = z4.object({
556
- name: z4.string().min(1),
713
+ organizationResourceKindSchema = z7.enum(ORGANIZATION_RESOURCE_KINDS);
714
+ projectResourceAttachmentRoleSchema = z7.enum(PROJECT_RESOURCE_ATTACHMENT_ROLES);
715
+ createOrganizationResourceSchema = z7.object({
716
+ name: z7.string().min(1),
557
717
  kind: organizationResourceKindSchema,
558
- locator: z4.string().min(1),
559
- description: z4.string().optional().nullable(),
560
- metadata: z4.record(z4.unknown()).optional().nullable()
718
+ locator: z7.string().min(1),
719
+ description: z7.string().optional().nullable(),
720
+ metadata: z7.record(z7.unknown()).optional().nullable()
561
721
  });
562
- updateOrganizationResourceSchema = z4.object({
563
- name: z4.string().min(1).optional(),
722
+ updateOrganizationResourceSchema = z7.object({
723
+ name: z7.string().min(1).optional(),
564
724
  kind: organizationResourceKindSchema.optional(),
565
- locator: z4.string().min(1).optional(),
566
- description: z4.string().optional().nullable(),
567
- metadata: z4.record(z4.unknown()).optional().nullable()
725
+ locator: z7.string().min(1).optional(),
726
+ description: z7.string().optional().nullable(),
727
+ metadata: z7.record(z7.unknown()).optional().nullable()
568
728
  }).strict();
569
- projectResourceAttachmentInputSchema = z4.object({
570
- resourceId: z4.string().uuid(),
729
+ projectResourceAttachmentInputSchema = z7.object({
730
+ resourceId: z7.string().uuid(),
571
731
  role: projectResourceAttachmentRoleSchema.optional(),
572
- note: z4.string().optional().nullable(),
573
- sortOrder: z4.number().int().nonnegative().optional()
732
+ note: z7.string().optional().nullable(),
733
+ sortOrder: z7.number().int().nonnegative().optional()
574
734
  }).strict();
575
- updateProjectResourceAttachmentSchema = z4.object({
735
+ updateProjectResourceAttachmentSchema = z7.object({
576
736
  role: projectResourceAttachmentRoleSchema.optional(),
577
- note: z4.string().optional().nullable(),
578
- sortOrder: z4.number().int().nonnegative().optional()
737
+ note: z7.string().optional().nullable(),
738
+ sortOrder: z7.number().int().nonnegative().optional()
579
739
  }).strict();
580
740
  createProjectInlineResourceSchema = createOrganizationResourceSchema.extend({
581
741
  role: projectResourceAttachmentRoleSchema.optional(),
582
- note: z4.string().optional().nullable(),
583
- sortOrder: z4.number().int().nonnegative().optional()
742
+ note: z7.string().optional().nullable(),
743
+ sortOrder: z7.number().int().nonnegative().optional()
584
744
  }).strict();
585
745
  }
586
746
  });
587
747
 
588
748
  // ../packages/shared/dist/validators/chat.js
589
- import { z as z5 } from "zod";
749
+ import { z as z8 } from "zod";
590
750
  var chatConversationStatusSchema, chatIssueCreationModeSchema, chatMessageRoleSchema, chatMessageKindSchema, chatMessageStatusSchema, chatContextEntityTypeSchema, createChatContextLinkSchema, createChatConversationSchema, setChatProjectContextSchema, updateChatConversationSchema, addChatMessageSchema, chatRichReferenceDisplaySchema, chatIssueIdentifierSchema, chatAskUserIdentifierSchema, chatAskUserOptionSchema, chatAskUserQuestionSchema, chatAskUserRequestSchema, chatIssueRichReferenceSchema, chatIssueCommentRichReferenceSchema, chatRichReferenceSchema, chatRichReferencesSchema, createChatAttachmentMetadataSchema, chatIssueProposalSchema, convertChatToIssueSchema, chatOperationProposalSchema, resolveChatOperationProposalSchema, updateChatConversationUserStateSchema;
591
751
  var init_chat = __esm({
592
752
  "../packages/shared/dist/validators/chat.js"() {
593
753
  "use strict";
594
754
  init_constants();
595
- chatConversationStatusSchema = z5.enum(CHAT_CONVERSATION_STATUSES);
596
- chatIssueCreationModeSchema = z5.enum(CHAT_ISSUE_CREATION_MODES);
597
- chatMessageRoleSchema = z5.enum(CHAT_MESSAGE_ROLES);
598
- chatMessageKindSchema = z5.enum(CHAT_MESSAGE_KINDS);
599
- chatMessageStatusSchema = z5.enum(CHAT_MESSAGE_STATUSES);
600
- chatContextEntityTypeSchema = z5.enum(CHAT_CONTEXT_ENTITY_TYPES);
601
- createChatContextLinkSchema = z5.object({
755
+ chatConversationStatusSchema = z8.enum(CHAT_CONVERSATION_STATUSES);
756
+ chatIssueCreationModeSchema = z8.enum(CHAT_ISSUE_CREATION_MODES);
757
+ chatMessageRoleSchema = z8.enum(CHAT_MESSAGE_ROLES);
758
+ chatMessageKindSchema = z8.enum(CHAT_MESSAGE_KINDS);
759
+ chatMessageStatusSchema = z8.enum(CHAT_MESSAGE_STATUSES);
760
+ chatContextEntityTypeSchema = z8.enum(CHAT_CONTEXT_ENTITY_TYPES);
761
+ createChatContextLinkSchema = z8.object({
602
762
  entityType: chatContextEntityTypeSchema,
603
- entityId: z5.string().min(1),
604
- metadata: z5.record(z5.unknown()).optional().nullable()
763
+ entityId: z8.string().min(1),
764
+ metadata: z8.record(z8.unknown()).optional().nullable()
605
765
  });
606
- createChatConversationSchema = z5.object({
607
- title: z5.string().trim().min(1).max(200).optional(),
608
- summary: z5.string().trim().max(5e3).optional().nullable(),
609
- preferredAgentId: z5.string().uuid().optional().nullable(),
766
+ createChatConversationSchema = z8.object({
767
+ title: z8.string().trim().min(1).max(200).optional(),
768
+ summary: z8.string().trim().max(5e3).optional().nullable(),
769
+ preferredAgentId: z8.string().uuid().optional().nullable(),
610
770
  issueCreationMode: chatIssueCreationModeSchema.optional(),
611
- planMode: z5.boolean().optional(),
612
- contextLinks: z5.array(createChatContextLinkSchema).optional().default([])
771
+ planMode: z8.boolean().optional(),
772
+ contextLinks: z8.array(createChatContextLinkSchema).optional().default([])
613
773
  });
614
- setChatProjectContextSchema = z5.object({
615
- projectId: z5.string().uuid().optional().nullable()
774
+ setChatProjectContextSchema = z8.object({
775
+ projectId: z8.string().uuid().optional().nullable()
616
776
  });
617
777
  updateChatConversationSchema = createChatConversationSchema.partial().extend({
618
778
  status: chatConversationStatusSchema.optional(),
619
- routedAgentId: z5.string().uuid().optional().nullable(),
620
- primaryIssueId: z5.string().uuid().optional().nullable(),
621
- resolvedAt: z5.string().datetime().optional().nullable()
622
- });
623
- addChatMessageSchema = z5.object({
624
- body: z5.string().trim().min(1).max(2e4),
625
- editUserMessageId: z5.string().uuid().optional().nullable()
626
- });
627
- chatRichReferenceDisplaySchema = z5.enum(["card", "inline"]);
628
- chatIssueIdentifierSchema = z5.string().trim().min(1).max(64).regex(/^[A-Z0-9][A-Z0-9-]*$/i);
629
- chatAskUserIdentifierSchema = z5.string().trim().min(1).max(64).regex(/^[a-zA-Z0-9_-]+$/);
630
- chatAskUserOptionSchema = z5.object({
779
+ routedAgentId: z8.string().uuid().optional().nullable(),
780
+ primaryIssueId: z8.string().uuid().optional().nullable(),
781
+ resolvedAt: z8.string().datetime().optional().nullable()
782
+ });
783
+ addChatMessageSchema = z8.object({
784
+ body: z8.string().trim().min(1).max(2e4),
785
+ editUserMessageId: z8.string().uuid().optional().nullable()
786
+ });
787
+ chatRichReferenceDisplaySchema = z8.enum(["card", "inline"]);
788
+ chatIssueIdentifierSchema = z8.string().trim().min(1).max(64).regex(/^[A-Z0-9][A-Z0-9-]*$/i);
789
+ chatAskUserIdentifierSchema = z8.string().trim().min(1).max(64).regex(/^[a-zA-Z0-9_-]+$/);
790
+ chatAskUserOptionSchema = z8.object({
631
791
  id: chatAskUserIdentifierSchema,
632
- label: z5.string().trim().min(1).max(80),
633
- description: z5.string().trim().min(1).max(220).optional(),
634
- recommended: z5.boolean().optional()
792
+ label: z8.string().trim().min(1).max(80),
793
+ description: z8.string().trim().min(1).max(220).optional(),
794
+ recommended: z8.boolean().optional()
635
795
  });
636
- chatAskUserQuestionSchema = z5.object({
796
+ chatAskUserQuestionSchema = z8.object({
637
797
  id: chatAskUserIdentifierSchema,
638
- header: z5.string().trim().min(1).max(32).optional(),
639
- question: z5.string().trim().min(1).max(240),
640
- options: z5.array(chatAskUserOptionSchema).min(2).max(3),
641
- allowFreeform: z5.boolean().optional()
798
+ header: z8.string().trim().min(1).max(32).optional(),
799
+ question: z8.string().trim().min(1).max(240),
800
+ options: z8.array(chatAskUserOptionSchema).min(2).max(3),
801
+ allowFreeform: z8.boolean().optional()
642
802
  }).superRefine((question, ctx) => {
643
803
  const optionIds = /* @__PURE__ */ new Set();
644
804
  question.options.forEach((option, index) => {
645
805
  if (optionIds.has(option.id)) {
646
806
  ctx.addIssue({
647
- code: z5.ZodIssueCode.custom,
807
+ code: z8.ZodIssueCode.custom,
648
808
  message: "Option ids must be unique within each question",
649
809
  path: ["options", index, "id"]
650
810
  });
@@ -653,14 +813,14 @@ var init_chat = __esm({
653
813
  optionIds.add(option.id);
654
814
  });
655
815
  });
656
- chatAskUserRequestSchema = z5.object({
657
- questions: z5.array(chatAskUserQuestionSchema).min(1).max(3)
816
+ chatAskUserRequestSchema = z8.object({
817
+ questions: z8.array(chatAskUserQuestionSchema).min(1).max(3)
658
818
  }).superRefine((request, ctx) => {
659
819
  const questionIds = /* @__PURE__ */ new Set();
660
820
  request.questions.forEach((question, index) => {
661
821
  if (questionIds.has(question.id)) {
662
822
  ctx.addIssue({
663
- code: z5.ZodIssueCode.custom,
823
+ code: z8.ZodIssueCode.custom,
664
824
  message: "Question ids must be unique within requestUserInput",
665
825
  path: ["questions", index, "id"]
666
826
  });
@@ -669,75 +829,75 @@ var init_chat = __esm({
669
829
  questionIds.add(question.id);
670
830
  });
671
831
  });
672
- chatIssueRichReferenceSchema = z5.object({
673
- type: z5.literal("issue"),
674
- issueId: z5.string().uuid().optional(),
832
+ chatIssueRichReferenceSchema = z8.object({
833
+ type: z8.literal("issue"),
834
+ issueId: z8.string().uuid().optional(),
675
835
  identifier: chatIssueIdentifierSchema.optional(),
676
836
  display: chatRichReferenceDisplaySchema.optional()
677
837
  }).refine((value) => Boolean(value.issueId || value.identifier), {
678
838
  message: "issueId or identifier is required"
679
839
  });
680
- chatIssueCommentRichReferenceSchema = z5.object({
681
- type: z5.literal("issue_comment"),
682
- issueId: z5.string().uuid().optional(),
840
+ chatIssueCommentRichReferenceSchema = z8.object({
841
+ type: z8.literal("issue_comment"),
842
+ issueId: z8.string().uuid().optional(),
683
843
  identifier: chatIssueIdentifierSchema.optional(),
684
- commentId: z5.string().uuid(),
844
+ commentId: z8.string().uuid(),
685
845
  display: chatRichReferenceDisplaySchema.optional()
686
846
  }).refine((value) => Boolean(value.issueId || value.identifier), {
687
847
  message: "issueId or identifier is required"
688
848
  });
689
- chatRichReferenceSchema = z5.union([
849
+ chatRichReferenceSchema = z8.union([
690
850
  chatIssueRichReferenceSchema,
691
851
  chatIssueCommentRichReferenceSchema
692
852
  ]);
693
- chatRichReferencesSchema = z5.array(chatRichReferenceSchema).max(5);
694
- createChatAttachmentMetadataSchema = z5.object({
695
- messageId: z5.string().uuid()
696
- });
697
- chatIssueProposalSchema = z5.object({
698
- title: z5.string().trim().min(1).max(200),
699
- description: z5.string().trim().min(1).max(2e4),
700
- priority: z5.enum(["critical", "high", "medium", "low"]).optional().default("medium"),
701
- projectId: z5.string().uuid().optional().nullable(),
702
- goalId: z5.string().uuid().optional().nullable(),
703
- parentId: z5.string().uuid().optional().nullable(),
704
- assigneeAgentId: z5.string().uuid().optional().nullable(),
705
- assigneeUserId: z5.string().trim().optional().nullable(),
706
- reviewerAgentId: z5.string().uuid().optional().nullable(),
707
- reviewerUserId: z5.string().trim().optional().nullable(),
708
- labelIds: z5.array(z5.string().uuid()).optional()
709
- });
710
- convertChatToIssueSchema = z5.object({
711
- messageId: z5.string().uuid().optional().nullable(),
853
+ chatRichReferencesSchema = z8.array(chatRichReferenceSchema).max(5);
854
+ createChatAttachmentMetadataSchema = z8.object({
855
+ messageId: z8.string().uuid()
856
+ });
857
+ chatIssueProposalSchema = z8.object({
858
+ title: z8.string().trim().min(1).max(200),
859
+ description: z8.string().trim().min(1).max(2e4),
860
+ priority: z8.enum(["critical", "high", "medium", "low"]).optional().default("medium"),
861
+ projectId: z8.string().uuid().optional().nullable(),
862
+ goalId: z8.string().uuid().optional().nullable(),
863
+ parentId: z8.string().uuid().optional().nullable(),
864
+ assigneeAgentId: z8.string().uuid().optional().nullable(),
865
+ assigneeUserId: z8.string().trim().optional().nullable(),
866
+ reviewerAgentId: z8.string().uuid().optional().nullable(),
867
+ reviewerUserId: z8.string().trim().optional().nullable(),
868
+ labelIds: z8.array(z8.string().uuid()).optional()
869
+ });
870
+ convertChatToIssueSchema = z8.object({
871
+ messageId: z8.string().uuid().optional().nullable(),
712
872
  proposal: chatIssueProposalSchema.optional()
713
873
  });
714
- chatOperationProposalSchema = z5.object({
715
- targetType: z5.enum(["organization", "agent"]),
716
- targetId: z5.string().min(1),
717
- summary: z5.string().trim().min(1).max(500),
718
- patch: z5.record(z5.unknown())
874
+ chatOperationProposalSchema = z8.object({
875
+ targetType: z8.enum(["organization", "agent"]),
876
+ targetId: z8.string().min(1),
877
+ summary: z8.string().trim().min(1).max(500),
878
+ patch: z8.record(z8.unknown())
719
879
  });
720
- resolveChatOperationProposalSchema = z5.object({
721
- action: z5.enum(["approve", "reject", "requestRevision"]),
722
- decisionNote: z5.string().trim().max(5e3).optional().nullable()
880
+ resolveChatOperationProposalSchema = z8.object({
881
+ action: z8.enum(["approve", "reject", "requestRevision"]),
882
+ decisionNote: z8.string().trim().max(5e3).optional().nullable()
723
883
  });
724
- updateChatConversationUserStateSchema = z5.object({
725
- pinned: z5.boolean().optional(),
726
- unread: z5.boolean().optional()
884
+ updateChatConversationUserStateSchema = z8.object({
885
+ pinned: z8.boolean().optional(),
886
+ unread: z8.boolean().optional()
727
887
  });
728
888
  }
729
889
  });
730
890
 
731
891
  // ../packages/shared/dist/validators/organization-skill.js
732
- import { z as z6 } from "zod";
892
+ import { z as z9 } from "zod";
733
893
  var organizationSkillSourceTypeSchema, organizationSkillTrustLevelSchema, organizationSkillCompatibilitySchema, organizationSkillSourceBadgeSchema, organizationSkillFileInventoryEntrySchema, organizationSkillSchema, organizationSkillListItemSchema, organizationSkillUsageAgentSchema, organizationSkillDetailSchema, organizationSkillUpdateStatusSchema, organizationSkillImportSchema, organizationSkillProjectScanRequestSchema, organizationSkillProjectScanSkippedSchema, organizationSkillProjectScanConflictSchema, organizationSkillProjectScanResultSchema, organizationSkillLocalScanRequestSchema, organizationSkillLocalScanSkippedSchema, organizationSkillLocalScanConflictSchema, organizationSkillLocalScanResultSchema, organizationSkillCreateSchema, organizationSkillFileDetailSchema, organizationSkillFileUpdateSchema;
734
894
  var init_organization_skill = __esm({
735
895
  "../packages/shared/dist/validators/organization-skill.js"() {
736
896
  "use strict";
737
- organizationSkillSourceTypeSchema = z6.enum(["local_path", "github", "url", "catalog", "skills_sh"]);
738
- organizationSkillTrustLevelSchema = z6.enum(["markdown_only", "assets", "scripts_executables"]);
739
- organizationSkillCompatibilitySchema = z6.enum(["compatible", "unknown", "invalid"]);
740
- organizationSkillSourceBadgeSchema = z6.enum([
897
+ organizationSkillSourceTypeSchema = z9.enum(["local_path", "github", "url", "catalog", "skills_sh"]);
898
+ organizationSkillTrustLevelSchema = z9.enum(["markdown_only", "assets", "scripts_executables"]);
899
+ organizationSkillCompatibilitySchema = z9.enum(["compatible", "unknown", "invalid"]);
900
+ organizationSkillSourceBadgeSchema = z9.enum([
741
901
  "rudder",
742
902
  "community",
743
903
  "github",
@@ -746,157 +906,157 @@ var init_organization_skill = __esm({
746
906
  "catalog",
747
907
  "skills_sh"
748
908
  ]);
749
- organizationSkillFileInventoryEntrySchema = z6.object({
750
- path: z6.string().min(1),
751
- kind: z6.enum(["skill", "markdown", "reference", "script", "asset", "other"])
752
- });
753
- organizationSkillSchema = z6.object({
754
- id: z6.string().uuid(),
755
- orgId: z6.string().uuid(),
756
- key: z6.string().min(1),
757
- slug: z6.string().min(1),
758
- name: z6.string().min(1),
759
- description: z6.string().nullable(),
760
- markdown: z6.string(),
909
+ organizationSkillFileInventoryEntrySchema = z9.object({
910
+ path: z9.string().min(1),
911
+ kind: z9.enum(["skill", "markdown", "reference", "script", "asset", "other"])
912
+ });
913
+ organizationSkillSchema = z9.object({
914
+ id: z9.string().uuid(),
915
+ orgId: z9.string().uuid(),
916
+ key: z9.string().min(1),
917
+ slug: z9.string().min(1),
918
+ name: z9.string().min(1),
919
+ description: z9.string().nullable(),
920
+ markdown: z9.string(),
761
921
  sourceType: organizationSkillSourceTypeSchema,
762
- sourceLocator: z6.string().nullable(),
763
- sourceRef: z6.string().nullable(),
922
+ sourceLocator: z9.string().nullable(),
923
+ sourceRef: z9.string().nullable(),
764
924
  trustLevel: organizationSkillTrustLevelSchema,
765
925
  compatibility: organizationSkillCompatibilitySchema,
766
- fileInventory: z6.array(organizationSkillFileInventoryEntrySchema).default([]),
767
- metadata: z6.record(z6.unknown()).nullable(),
768
- createdAt: z6.coerce.date(),
769
- updatedAt: z6.coerce.date()
926
+ fileInventory: z9.array(organizationSkillFileInventoryEntrySchema).default([]),
927
+ metadata: z9.record(z9.unknown()).nullable(),
928
+ createdAt: z9.coerce.date(),
929
+ updatedAt: z9.coerce.date()
770
930
  });
771
931
  organizationSkillListItemSchema = organizationSkillSchema.extend({
772
- attachedAgentCount: z6.number().int().nonnegative(),
773
- editable: z6.boolean(),
774
- editableReason: z6.string().nullable(),
775
- sourceLabel: z6.string().nullable(),
932
+ attachedAgentCount: z9.number().int().nonnegative(),
933
+ editable: z9.boolean(),
934
+ editableReason: z9.string().nullable(),
935
+ sourceLabel: z9.string().nullable(),
776
936
  sourceBadge: organizationSkillSourceBadgeSchema,
777
- sourcePath: z6.string().nullable(),
778
- workspaceEditPath: z6.string().nullable()
937
+ sourcePath: z9.string().nullable(),
938
+ workspaceEditPath: z9.string().nullable()
779
939
  });
780
- organizationSkillUsageAgentSchema = z6.object({
781
- id: z6.string().uuid(),
782
- name: z6.string().min(1),
783
- urlKey: z6.string().min(1),
784
- agentRuntimeType: z6.string().min(1),
785
- desired: z6.boolean(),
786
- actualState: z6.string().nullable()
940
+ organizationSkillUsageAgentSchema = z9.object({
941
+ id: z9.string().uuid(),
942
+ name: z9.string().min(1),
943
+ urlKey: z9.string().min(1),
944
+ agentRuntimeType: z9.string().min(1),
945
+ desired: z9.boolean(),
946
+ actualState: z9.string().nullable()
787
947
  });
788
948
  organizationSkillDetailSchema = organizationSkillSchema.extend({
789
- attachedAgentCount: z6.number().int().nonnegative(),
790
- usedByAgents: z6.array(organizationSkillUsageAgentSchema).default([]),
791
- editable: z6.boolean(),
792
- editableReason: z6.string().nullable(),
793
- sourceLabel: z6.string().nullable(),
949
+ attachedAgentCount: z9.number().int().nonnegative(),
950
+ usedByAgents: z9.array(organizationSkillUsageAgentSchema).default([]),
951
+ editable: z9.boolean(),
952
+ editableReason: z9.string().nullable(),
953
+ sourceLabel: z9.string().nullable(),
794
954
  sourceBadge: organizationSkillSourceBadgeSchema,
795
- sourcePath: z6.string().nullable(),
796
- workspaceEditPath: z6.string().nullable()
797
- });
798
- organizationSkillUpdateStatusSchema = z6.object({
799
- supported: z6.boolean(),
800
- reason: z6.string().nullable(),
801
- trackingRef: z6.string().nullable(),
802
- currentRef: z6.string().nullable(),
803
- latestRef: z6.string().nullable(),
804
- hasUpdate: z6.boolean()
805
- });
806
- organizationSkillImportSchema = z6.object({
807
- source: z6.string().min(1)
808
- });
809
- organizationSkillProjectScanRequestSchema = z6.object({
810
- projectIds: z6.array(z6.string().uuid()).optional(),
811
- workspaceIds: z6.array(z6.string().uuid()).optional()
812
- });
813
- organizationSkillProjectScanSkippedSchema = z6.object({
814
- projectId: z6.string().uuid(),
815
- projectName: z6.string().min(1),
816
- workspaceId: z6.string().uuid().nullable(),
817
- workspaceName: z6.string().nullable(),
818
- path: z6.string().nullable(),
819
- reason: z6.string().min(1)
820
- });
821
- organizationSkillProjectScanConflictSchema = z6.object({
822
- slug: z6.string().min(1),
823
- key: z6.string().min(1),
824
- projectId: z6.string().uuid(),
825
- projectName: z6.string().min(1),
826
- workspaceId: z6.string().uuid(),
827
- workspaceName: z6.string().min(1),
828
- path: z6.string().min(1),
829
- existingSkillId: z6.string().uuid(),
830
- existingSkillKey: z6.string().min(1),
831
- existingSourceLocator: z6.string().nullable(),
832
- reason: z6.string().min(1)
833
- });
834
- organizationSkillProjectScanResultSchema = z6.object({
835
- scannedProjects: z6.number().int().nonnegative(),
836
- scannedWorkspaces: z6.number().int().nonnegative(),
837
- discovered: z6.number().int().nonnegative(),
838
- imported: z6.array(organizationSkillSchema),
839
- updated: z6.array(organizationSkillSchema),
840
- skipped: z6.array(organizationSkillProjectScanSkippedSchema),
841
- conflicts: z6.array(organizationSkillProjectScanConflictSchema),
842
- warnings: z6.array(z6.string())
843
- });
844
- organizationSkillLocalScanRequestSchema = z6.object({
845
- roots: z6.array(z6.string().min(1)).optional()
846
- });
847
- organizationSkillLocalScanSkippedSchema = z6.object({
848
- root: z6.string().min(1),
849
- path: z6.string().nullable(),
850
- reason: z6.string().min(1)
851
- });
852
- organizationSkillLocalScanConflictSchema = z6.object({
853
- root: z6.string().min(1),
854
- path: z6.string().min(1),
855
- slug: z6.string().min(1),
856
- key: z6.string().min(1),
857
- existingSkillId: z6.string().uuid(),
858
- existingSkillKey: z6.string().min(1),
859
- existingSourceLocator: z6.string().nullable(),
860
- reason: z6.string().min(1)
861
- });
862
- organizationSkillLocalScanResultSchema = z6.object({
863
- scannedRoots: z6.number().int().nonnegative(),
864
- discovered: z6.number().int().nonnegative(),
865
- imported: z6.array(organizationSkillSchema),
866
- updated: z6.array(organizationSkillSchema),
867
- skipped: z6.array(organizationSkillLocalScanSkippedSchema),
868
- conflicts: z6.array(organizationSkillLocalScanConflictSchema),
869
- warnings: z6.array(z6.string())
870
- });
871
- organizationSkillCreateSchema = z6.object({
872
- name: z6.string().min(1),
873
- slug: z6.string().min(1).nullable().optional(),
874
- description: z6.string().nullable().optional(),
875
- markdown: z6.string().nullable().optional()
876
- });
877
- organizationSkillFileDetailSchema = z6.object({
878
- skillId: z6.string().uuid(),
879
- path: z6.string().min(1),
880
- kind: z6.enum(["skill", "markdown", "reference", "script", "asset", "other"]),
881
- content: z6.string(),
882
- language: z6.string().nullable(),
883
- markdown: z6.boolean(),
884
- editable: z6.boolean()
885
- });
886
- organizationSkillFileUpdateSchema = z6.object({
887
- path: z6.string().min(1),
888
- content: z6.string()
955
+ sourcePath: z9.string().nullable(),
956
+ workspaceEditPath: z9.string().nullable()
957
+ });
958
+ organizationSkillUpdateStatusSchema = z9.object({
959
+ supported: z9.boolean(),
960
+ reason: z9.string().nullable(),
961
+ trackingRef: z9.string().nullable(),
962
+ currentRef: z9.string().nullable(),
963
+ latestRef: z9.string().nullable(),
964
+ hasUpdate: z9.boolean()
965
+ });
966
+ organizationSkillImportSchema = z9.object({
967
+ source: z9.string().min(1)
968
+ });
969
+ organizationSkillProjectScanRequestSchema = z9.object({
970
+ projectIds: z9.array(z9.string().uuid()).optional(),
971
+ workspaceIds: z9.array(z9.string().uuid()).optional()
972
+ });
973
+ organizationSkillProjectScanSkippedSchema = z9.object({
974
+ projectId: z9.string().uuid(),
975
+ projectName: z9.string().min(1),
976
+ workspaceId: z9.string().uuid().nullable(),
977
+ workspaceName: z9.string().nullable(),
978
+ path: z9.string().nullable(),
979
+ reason: z9.string().min(1)
980
+ });
981
+ organizationSkillProjectScanConflictSchema = z9.object({
982
+ slug: z9.string().min(1),
983
+ key: z9.string().min(1),
984
+ projectId: z9.string().uuid(),
985
+ projectName: z9.string().min(1),
986
+ workspaceId: z9.string().uuid(),
987
+ workspaceName: z9.string().min(1),
988
+ path: z9.string().min(1),
989
+ existingSkillId: z9.string().uuid(),
990
+ existingSkillKey: z9.string().min(1),
991
+ existingSourceLocator: z9.string().nullable(),
992
+ reason: z9.string().min(1)
993
+ });
994
+ organizationSkillProjectScanResultSchema = z9.object({
995
+ scannedProjects: z9.number().int().nonnegative(),
996
+ scannedWorkspaces: z9.number().int().nonnegative(),
997
+ discovered: z9.number().int().nonnegative(),
998
+ imported: z9.array(organizationSkillSchema),
999
+ updated: z9.array(organizationSkillSchema),
1000
+ skipped: z9.array(organizationSkillProjectScanSkippedSchema),
1001
+ conflicts: z9.array(organizationSkillProjectScanConflictSchema),
1002
+ warnings: z9.array(z9.string())
1003
+ });
1004
+ organizationSkillLocalScanRequestSchema = z9.object({
1005
+ roots: z9.array(z9.string().min(1)).optional()
1006
+ });
1007
+ organizationSkillLocalScanSkippedSchema = z9.object({
1008
+ root: z9.string().min(1),
1009
+ path: z9.string().nullable(),
1010
+ reason: z9.string().min(1)
1011
+ });
1012
+ organizationSkillLocalScanConflictSchema = z9.object({
1013
+ root: z9.string().min(1),
1014
+ path: z9.string().min(1),
1015
+ slug: z9.string().min(1),
1016
+ key: z9.string().min(1),
1017
+ existingSkillId: z9.string().uuid(),
1018
+ existingSkillKey: z9.string().min(1),
1019
+ existingSourceLocator: z9.string().nullable(),
1020
+ reason: z9.string().min(1)
1021
+ });
1022
+ organizationSkillLocalScanResultSchema = z9.object({
1023
+ scannedRoots: z9.number().int().nonnegative(),
1024
+ discovered: z9.number().int().nonnegative(),
1025
+ imported: z9.array(organizationSkillSchema),
1026
+ updated: z9.array(organizationSkillSchema),
1027
+ skipped: z9.array(organizationSkillLocalScanSkippedSchema),
1028
+ conflicts: z9.array(organizationSkillLocalScanConflictSchema),
1029
+ warnings: z9.array(z9.string())
1030
+ });
1031
+ organizationSkillCreateSchema = z9.object({
1032
+ name: z9.string().min(1),
1033
+ slug: z9.string().min(1).nullable().optional(),
1034
+ description: z9.string().nullable().optional(),
1035
+ markdown: z9.string().nullable().optional()
1036
+ });
1037
+ organizationSkillFileDetailSchema = z9.object({
1038
+ skillId: z9.string().uuid(),
1039
+ path: z9.string().min(1),
1040
+ kind: z9.enum(["skill", "markdown", "reference", "script", "asset", "other"]),
1041
+ content: z9.string(),
1042
+ language: z9.string().nullable(),
1043
+ markdown: z9.boolean(),
1044
+ editable: z9.boolean()
1045
+ });
1046
+ organizationSkillFileUpdateSchema = z9.object({
1047
+ path: z9.string().min(1),
1048
+ content: z9.string()
889
1049
  });
890
1050
  }
891
1051
  });
892
1052
 
893
1053
  // ../packages/shared/dist/validators/adapter-skills.js
894
- import { z as z7 } from "zod";
1054
+ import { z as z10 } from "zod";
895
1055
  var agentSkillStateSchema, agentSkillOriginSchema, agentSkillSourceClassSchema, agentSkillSyncModeSchema, agentSkillEntrySchema, agentSkillSnapshotSchema, agentSkillSyncSchema, agentSkillEnableSchema;
896
1056
  var init_adapter_skills = __esm({
897
1057
  "../packages/shared/dist/validators/adapter-skills.js"() {
898
1058
  "use strict";
899
- agentSkillStateSchema = z7.enum([
1059
+ agentSkillStateSchema = z10.enum([
900
1060
  "available",
901
1061
  "configured",
902
1062
  "installed",
@@ -904,405 +1064,280 @@ var init_adapter_skills = __esm({
904
1064
  "stale",
905
1065
  "external"
906
1066
  ]);
907
- agentSkillOriginSchema = z7.preprocess((value) => {
1067
+ agentSkillOriginSchema = z10.preprocess((value) => {
908
1068
  if (value === "company_managed")
909
1069
  return "organization_managed";
910
1070
  return value;
911
- }, z7.enum([
1071
+ }, z10.enum([
912
1072
  "organization_managed",
913
1073
  "user_installed",
914
1074
  "external_unknown"
915
1075
  ]));
916
- agentSkillSourceClassSchema = z7.enum([
1076
+ agentSkillSourceClassSchema = z10.enum([
917
1077
  "bundled",
918
1078
  "organization",
919
1079
  "agent_home",
920
1080
  "global",
921
1081
  "adapter_home"
922
1082
  ]);
923
- agentSkillSyncModeSchema = z7.enum([
1083
+ agentSkillSyncModeSchema = z10.enum([
924
1084
  "unsupported",
925
1085
  "persistent",
926
1086
  "ephemeral"
927
1087
  ]);
928
- agentSkillEntrySchema = z7.object({
929
- key: z7.string().min(1),
930
- selectionKey: z7.string().min(1),
931
- runtimeName: z7.string().min(1).nullable(),
932
- description: z7.string().nullable().optional(),
933
- desired: z7.boolean(),
934
- configurable: z7.boolean(),
935
- alwaysEnabled: z7.boolean(),
936
- managed: z7.boolean(),
1088
+ agentSkillEntrySchema = z10.object({
1089
+ key: z10.string().min(1),
1090
+ selectionKey: z10.string().min(1),
1091
+ runtimeName: z10.string().min(1).nullable(),
1092
+ description: z10.string().nullable().optional(),
1093
+ desired: z10.boolean(),
1094
+ configurable: z10.boolean(),
1095
+ alwaysEnabled: z10.boolean(),
1096
+ managed: z10.boolean(),
937
1097
  state: agentSkillStateSchema,
938
1098
  sourceClass: agentSkillSourceClassSchema,
939
1099
  origin: agentSkillOriginSchema.optional(),
940
- originLabel: z7.string().nullable().optional(),
941
- locationLabel: z7.string().nullable().optional(),
942
- readOnly: z7.boolean().optional(),
943
- sourcePath: z7.string().nullable().optional(),
944
- targetPath: z7.string().nullable().optional(),
945
- workspaceEditPath: z7.string().nullable().optional(),
946
- detail: z7.string().nullable().optional()
947
- });
948
- agentSkillSnapshotSchema = z7.object({
949
- agentRuntimeType: z7.string().min(1),
950
- supported: z7.boolean(),
1100
+ originLabel: z10.string().nullable().optional(),
1101
+ locationLabel: z10.string().nullable().optional(),
1102
+ readOnly: z10.boolean().optional(),
1103
+ sourcePath: z10.string().nullable().optional(),
1104
+ targetPath: z10.string().nullable().optional(),
1105
+ workspaceEditPath: z10.string().nullable().optional(),
1106
+ detail: z10.string().nullable().optional()
1107
+ });
1108
+ agentSkillSnapshotSchema = z10.object({
1109
+ agentRuntimeType: z10.string().min(1),
1110
+ supported: z10.boolean(),
951
1111
  mode: agentSkillSyncModeSchema,
952
- desiredSkills: z7.array(z7.string().min(1)),
953
- entries: z7.array(agentSkillEntrySchema),
954
- warnings: z7.array(z7.string())
1112
+ desiredSkills: z10.array(z10.string().min(1)),
1113
+ entries: z10.array(agentSkillEntrySchema),
1114
+ warnings: z10.array(z10.string())
955
1115
  });
956
- agentSkillSyncSchema = z7.object({
957
- desiredSkills: z7.array(z7.string().min(1))
1116
+ agentSkillSyncSchema = z10.object({
1117
+ desiredSkills: z10.array(z10.string().min(1))
958
1118
  });
959
- agentSkillEnableSchema = z7.object({
960
- skills: z7.array(z7.string().min(1)).min(1)
1119
+ agentSkillEnableSchema = z10.object({
1120
+ skills: z10.array(z10.string().min(1)).min(1)
961
1121
  });
962
1122
  }
963
1123
  });
964
1124
 
965
1125
  // ../packages/shared/dist/validators/organization-portability.js
966
- import { z as z8 } from "zod";
1126
+ import { z as z11 } from "zod";
967
1127
  var portabilityIncludeSchema, portabilityEnvInputSchema, portabilityFileEntrySchema, portabilityOrganizationManifestEntrySchema, portabilitySidebarOrderSchema, portabilityAgentManifestEntrySchema, portabilitySkillManifestEntrySchema, portabilityProjectManifestEntrySchema, portabilityIssueAutomationTriggerManifestEntrySchema, portabilityIssueAutomationManifestEntrySchema, portabilityIssueManifestEntrySchema, portabilityManifestSchema, portabilitySourceSchema, portabilityTargetSchema, portabilityAgentSelectionSchema, portabilityCollisionStrategySchema, organizationPortabilityExportSchema, organizationPortabilityPreviewSchema, portabilityAdapterOverrideSchema, organizationPortabilityImportSchema;
968
1128
  var init_organization_portability = __esm({
969
1129
  "../packages/shared/dist/validators/organization-portability.js"() {
970
1130
  "use strict";
971
- portabilityIncludeSchema = z8.object({
972
- organization: z8.boolean().optional(),
973
- agents: z8.boolean().optional(),
974
- projects: z8.boolean().optional(),
975
- issues: z8.boolean().optional(),
976
- skills: z8.boolean().optional()
1131
+ portabilityIncludeSchema = z11.object({
1132
+ organization: z11.boolean().optional(),
1133
+ agents: z11.boolean().optional(),
1134
+ projects: z11.boolean().optional(),
1135
+ issues: z11.boolean().optional(),
1136
+ skills: z11.boolean().optional()
977
1137
  }).partial();
978
- portabilityEnvInputSchema = z8.object({
979
- key: z8.string().min(1),
980
- description: z8.string().nullable(),
981
- agentSlug: z8.string().min(1).nullable(),
982
- kind: z8.enum(["secret", "plain"]),
983
- requirement: z8.enum(["required", "optional"]),
984
- defaultValue: z8.string().nullable(),
985
- portability: z8.enum(["portable", "system_dependent"])
986
- });
987
- portabilityFileEntrySchema = z8.union([
988
- z8.string(),
989
- z8.object({
990
- encoding: z8.literal("base64"),
991
- data: z8.string(),
992
- contentType: z8.string().min(1).optional().nullable()
1138
+ portabilityEnvInputSchema = z11.object({
1139
+ key: z11.string().min(1),
1140
+ description: z11.string().nullable(),
1141
+ agentSlug: z11.string().min(1).nullable(),
1142
+ kind: z11.enum(["secret", "plain"]),
1143
+ requirement: z11.enum(["required", "optional"]),
1144
+ defaultValue: z11.string().nullable(),
1145
+ portability: z11.enum(["portable", "system_dependent"])
1146
+ });
1147
+ portabilityFileEntrySchema = z11.union([
1148
+ z11.string(),
1149
+ z11.object({
1150
+ encoding: z11.literal("base64"),
1151
+ data: z11.string(),
1152
+ contentType: z11.string().min(1).optional().nullable()
993
1153
  })
994
1154
  ]);
995
- portabilityOrganizationManifestEntrySchema = z8.object({
996
- path: z8.string().min(1),
997
- name: z8.string().min(1),
998
- description: z8.string().nullable(),
999
- brandColor: z8.string().nullable(),
1000
- logoPath: z8.string().nullable(),
1001
- requireBoardApprovalForNewAgents: z8.boolean()
1002
- });
1003
- portabilitySidebarOrderSchema = z8.object({
1004
- agents: z8.array(z8.string().min(1)).default([]),
1005
- projects: z8.array(z8.string().min(1)).default([])
1006
- });
1007
- portabilityAgentManifestEntrySchema = z8.object({
1008
- slug: z8.string().min(1),
1009
- name: z8.string().min(1),
1010
- path: z8.string().min(1),
1011
- skills: z8.array(z8.string().min(1)).default([]),
1012
- role: z8.string().min(1),
1013
- title: z8.string().nullable(),
1014
- icon: z8.string().nullable(),
1015
- capabilities: z8.string().nullable(),
1016
- reportsToSlug: z8.string().min(1).nullable(),
1017
- agentRuntimeType: z8.string().min(1),
1018
- agentRuntimeConfig: z8.record(z8.unknown()),
1019
- runtimeConfig: z8.record(z8.unknown()),
1020
- permissions: z8.record(z8.unknown()),
1021
- budgetMonthlyCents: z8.number().int().nonnegative(),
1022
- metadata: z8.record(z8.unknown()).nullable()
1023
- });
1024
- portabilitySkillManifestEntrySchema = z8.object({
1025
- key: z8.string().min(1),
1026
- slug: z8.string().min(1),
1027
- name: z8.string().min(1),
1028
- path: z8.string().min(1),
1029
- description: z8.string().nullable(),
1030
- sourceType: z8.string().min(1),
1031
- sourceLocator: z8.string().nullable(),
1032
- sourceRef: z8.string().nullable(),
1033
- trustLevel: z8.string().nullable(),
1034
- compatibility: z8.string().nullable(),
1035
- metadata: z8.record(z8.unknown()).nullable(),
1036
- fileInventory: z8.array(z8.object({
1037
- path: z8.string().min(1),
1038
- kind: z8.string().min(1)
1155
+ portabilityOrganizationManifestEntrySchema = z11.object({
1156
+ path: z11.string().min(1),
1157
+ name: z11.string().min(1),
1158
+ description: z11.string().nullable(),
1159
+ brandColor: z11.string().nullable(),
1160
+ logoPath: z11.string().nullable(),
1161
+ requireBoardApprovalForNewAgents: z11.boolean()
1162
+ });
1163
+ portabilitySidebarOrderSchema = z11.object({
1164
+ agents: z11.array(z11.string().min(1)).default([]),
1165
+ projects: z11.array(z11.string().min(1)).default([])
1166
+ });
1167
+ portabilityAgentManifestEntrySchema = z11.object({
1168
+ slug: z11.string().min(1),
1169
+ name: z11.string().min(1),
1170
+ path: z11.string().min(1),
1171
+ skills: z11.array(z11.string().min(1)).default([]),
1172
+ role: z11.string().min(1),
1173
+ title: z11.string().nullable(),
1174
+ icon: z11.string().nullable(),
1175
+ capabilities: z11.string().nullable(),
1176
+ reportsToSlug: z11.string().min(1).nullable(),
1177
+ agentRuntimeType: z11.string().min(1),
1178
+ agentRuntimeConfig: z11.record(z11.unknown()),
1179
+ runtimeConfig: z11.record(z11.unknown()),
1180
+ permissions: z11.record(z11.unknown()),
1181
+ budgetMonthlyCents: z11.number().int().nonnegative(),
1182
+ metadata: z11.record(z11.unknown()).nullable()
1183
+ });
1184
+ portabilitySkillManifestEntrySchema = z11.object({
1185
+ key: z11.string().min(1),
1186
+ slug: z11.string().min(1),
1187
+ name: z11.string().min(1),
1188
+ path: z11.string().min(1),
1189
+ description: z11.string().nullable(),
1190
+ sourceType: z11.string().min(1),
1191
+ sourceLocator: z11.string().nullable(),
1192
+ sourceRef: z11.string().nullable(),
1193
+ trustLevel: z11.string().nullable(),
1194
+ compatibility: z11.string().nullable(),
1195
+ metadata: z11.record(z11.unknown()).nullable(),
1196
+ fileInventory: z11.array(z11.object({
1197
+ path: z11.string().min(1),
1198
+ kind: z11.string().min(1)
1039
1199
  })).default([])
1040
1200
  });
1041
- portabilityProjectManifestEntrySchema = z8.object({
1042
- slug: z8.string().min(1),
1043
- name: z8.string().min(1),
1044
- path: z8.string().min(1),
1045
- description: z8.string().nullable(),
1046
- ownerAgentSlug: z8.string().min(1).nullable(),
1047
- leadAgentSlug: z8.string().min(1).nullable(),
1048
- targetDate: z8.string().nullable(),
1049
- color: z8.string().nullable(),
1050
- status: z8.string().nullable(),
1051
- executionWorkspacePolicy: z8.record(z8.unknown()).nullable(),
1052
- workspaces: z8.array(z8.object({
1053
- key: z8.string().min(1),
1054
- name: z8.string().min(1),
1055
- sourceType: z8.string().nullable(),
1056
- repoUrl: z8.string().nullable(),
1057
- repoRef: z8.string().nullable(),
1058
- defaultRef: z8.string().nullable(),
1059
- visibility: z8.string().nullable(),
1060
- setupCommand: z8.string().nullable(),
1061
- cleanupCommand: z8.string().nullable(),
1062
- metadata: z8.record(z8.unknown()).nullable(),
1063
- isPrimary: z8.boolean()
1201
+ portabilityProjectManifestEntrySchema = z11.object({
1202
+ slug: z11.string().min(1),
1203
+ name: z11.string().min(1),
1204
+ path: z11.string().min(1),
1205
+ description: z11.string().nullable(),
1206
+ ownerAgentSlug: z11.string().min(1).nullable(),
1207
+ leadAgentSlug: z11.string().min(1).nullable(),
1208
+ targetDate: z11.string().nullable(),
1209
+ color: z11.string().nullable(),
1210
+ status: z11.string().nullable(),
1211
+ executionWorkspacePolicy: z11.record(z11.unknown()).nullable(),
1212
+ workspaces: z11.array(z11.object({
1213
+ key: z11.string().min(1),
1214
+ name: z11.string().min(1),
1215
+ sourceType: z11.string().nullable(),
1216
+ repoUrl: z11.string().nullable(),
1217
+ repoRef: z11.string().nullable(),
1218
+ defaultRef: z11.string().nullable(),
1219
+ visibility: z11.string().nullable(),
1220
+ setupCommand: z11.string().nullable(),
1221
+ cleanupCommand: z11.string().nullable(),
1222
+ metadata: z11.record(z11.unknown()).nullable(),
1223
+ isPrimary: z11.boolean()
1064
1224
  })).default([]),
1065
- metadata: z8.record(z8.unknown()).nullable()
1066
- });
1067
- portabilityIssueAutomationTriggerManifestEntrySchema = z8.object({
1068
- kind: z8.string().min(1),
1069
- label: z8.string().nullable(),
1070
- enabled: z8.boolean(),
1071
- cronExpression: z8.string().nullable(),
1072
- timezone: z8.string().nullable(),
1073
- signingMode: z8.string().nullable(),
1074
- replayWindowSec: z8.number().int().nullable()
1075
- });
1076
- portabilityIssueAutomationManifestEntrySchema = z8.object({
1077
- concurrencyPolicy: z8.string().nullable(),
1078
- catchUpPolicy: z8.string().nullable(),
1079
- triggers: z8.array(portabilityIssueAutomationTriggerManifestEntrySchema).default([])
1080
- });
1081
- portabilityIssueManifestEntrySchema = z8.object({
1082
- slug: z8.string().min(1),
1083
- identifier: z8.string().min(1).nullable(),
1084
- title: z8.string().min(1),
1085
- path: z8.string().min(1),
1086
- projectSlug: z8.string().min(1).nullable(),
1087
- projectWorkspaceKey: z8.string().min(1).nullable(),
1088
- assigneeAgentSlug: z8.string().min(1).nullable(),
1089
- description: z8.string().nullable(),
1090
- recurring: z8.boolean().default(false),
1225
+ metadata: z11.record(z11.unknown()).nullable()
1226
+ });
1227
+ portabilityIssueAutomationTriggerManifestEntrySchema = z11.object({
1228
+ kind: z11.string().min(1),
1229
+ label: z11.string().nullable(),
1230
+ enabled: z11.boolean(),
1231
+ cronExpression: z11.string().nullable(),
1232
+ timezone: z11.string().nullable(),
1233
+ signingMode: z11.string().nullable(),
1234
+ replayWindowSec: z11.number().int().nullable()
1235
+ });
1236
+ portabilityIssueAutomationManifestEntrySchema = z11.object({
1237
+ concurrencyPolicy: z11.string().nullable(),
1238
+ catchUpPolicy: z11.string().nullable(),
1239
+ triggers: z11.array(portabilityIssueAutomationTriggerManifestEntrySchema).default([])
1240
+ });
1241
+ portabilityIssueManifestEntrySchema = z11.object({
1242
+ slug: z11.string().min(1),
1243
+ identifier: z11.string().min(1).nullable(),
1244
+ title: z11.string().min(1),
1245
+ path: z11.string().min(1),
1246
+ projectSlug: z11.string().min(1).nullable(),
1247
+ projectWorkspaceKey: z11.string().min(1).nullable(),
1248
+ assigneeAgentSlug: z11.string().min(1).nullable(),
1249
+ description: z11.string().nullable(),
1250
+ recurring: z11.boolean().default(false),
1091
1251
  automation: portabilityIssueAutomationManifestEntrySchema.nullable(),
1092
- legacyRecurrence: z8.record(z8.unknown()).nullable(),
1093
- status: z8.string().nullable(),
1094
- priority: z8.string().nullable(),
1095
- labelIds: z8.array(z8.string().min(1)).default([]),
1096
- billingCode: z8.string().nullable(),
1097
- executionWorkspaceSettings: z8.record(z8.unknown()).nullable(),
1098
- assigneeAgentRuntimeOverrides: z8.record(z8.unknown()).nullable(),
1099
- metadata: z8.record(z8.unknown()).nullable()
1100
- });
1101
- portabilityManifestSchema = z8.object({
1102
- schemaVersion: z8.number().int().positive(),
1103
- generatedAt: z8.string().datetime(),
1104
- source: z8.object({
1105
- orgId: z8.string().uuid(),
1106
- organizationName: z8.string().min(1)
1252
+ legacyRecurrence: z11.record(z11.unknown()).nullable(),
1253
+ status: z11.string().nullable(),
1254
+ priority: z11.string().nullable(),
1255
+ labelIds: z11.array(z11.string().min(1)).default([]),
1256
+ billingCode: z11.string().nullable(),
1257
+ executionWorkspaceSettings: z11.record(z11.unknown()).nullable(),
1258
+ assigneeAgentRuntimeOverrides: z11.record(z11.unknown()).nullable(),
1259
+ metadata: z11.record(z11.unknown()).nullable()
1260
+ });
1261
+ portabilityManifestSchema = z11.object({
1262
+ schemaVersion: z11.number().int().positive(),
1263
+ generatedAt: z11.string().datetime(),
1264
+ source: z11.object({
1265
+ orgId: z11.string().uuid(),
1266
+ organizationName: z11.string().min(1)
1107
1267
  }).nullable(),
1108
- includes: z8.object({
1109
- organization: z8.boolean(),
1110
- agents: z8.boolean(),
1111
- projects: z8.boolean(),
1112
- issues: z8.boolean(),
1113
- skills: z8.boolean()
1268
+ includes: z11.object({
1269
+ organization: z11.boolean(),
1270
+ agents: z11.boolean(),
1271
+ projects: z11.boolean(),
1272
+ issues: z11.boolean(),
1273
+ skills: z11.boolean()
1114
1274
  }),
1115
1275
  organization: portabilityOrganizationManifestEntrySchema.nullable(),
1116
1276
  sidebar: portabilitySidebarOrderSchema.nullable(),
1117
- agents: z8.array(portabilityAgentManifestEntrySchema),
1118
- skills: z8.array(portabilitySkillManifestEntrySchema).default([]),
1119
- projects: z8.array(portabilityProjectManifestEntrySchema).default([]),
1120
- issues: z8.array(portabilityIssueManifestEntrySchema).default([]),
1121
- envInputs: z8.array(portabilityEnvInputSchema).default([])
1122
- });
1123
- portabilitySourceSchema = z8.discriminatedUnion("type", [
1124
- z8.object({
1125
- type: z8.literal("inline"),
1126
- rootPath: z8.string().min(1).optional().nullable(),
1127
- files: z8.record(portabilityFileEntrySchema)
1277
+ agents: z11.array(portabilityAgentManifestEntrySchema),
1278
+ skills: z11.array(portabilitySkillManifestEntrySchema).default([]),
1279
+ projects: z11.array(portabilityProjectManifestEntrySchema).default([]),
1280
+ issues: z11.array(portabilityIssueManifestEntrySchema).default([]),
1281
+ envInputs: z11.array(portabilityEnvInputSchema).default([])
1282
+ });
1283
+ portabilitySourceSchema = z11.discriminatedUnion("type", [
1284
+ z11.object({
1285
+ type: z11.literal("inline"),
1286
+ rootPath: z11.string().min(1).optional().nullable(),
1287
+ files: z11.record(portabilityFileEntrySchema)
1128
1288
  }),
1129
- z8.object({
1130
- type: z8.literal("github"),
1131
- url: z8.string().url()
1289
+ z11.object({
1290
+ type: z11.literal("github"),
1291
+ url: z11.string().url()
1132
1292
  })
1133
1293
  ]);
1134
- portabilityTargetSchema = z8.discriminatedUnion("mode", [
1135
- z8.object({
1136
- mode: z8.literal("new_organization"),
1137
- newOrganizationName: z8.string().min(1).optional().nullable()
1294
+ portabilityTargetSchema = z11.discriminatedUnion("mode", [
1295
+ z11.object({
1296
+ mode: z11.literal("new_organization"),
1297
+ newOrganizationName: z11.string().min(1).optional().nullable()
1138
1298
  }),
1139
- z8.object({
1140
- mode: z8.literal("existing_organization"),
1141
- orgId: z8.string().uuid()
1299
+ z11.object({
1300
+ mode: z11.literal("existing_organization"),
1301
+ orgId: z11.string().uuid()
1142
1302
  })
1143
1303
  ]);
1144
- portabilityAgentSelectionSchema = z8.union([
1145
- z8.literal("all"),
1146
- z8.array(z8.string().min(1))
1304
+ portabilityAgentSelectionSchema = z11.union([
1305
+ z11.literal("all"),
1306
+ z11.array(z11.string().min(1))
1147
1307
  ]);
1148
- portabilityCollisionStrategySchema = z8.enum(["rename", "skip", "replace"]);
1149
- organizationPortabilityExportSchema = z8.object({
1308
+ portabilityCollisionStrategySchema = z11.enum(["rename", "skip", "replace"]);
1309
+ organizationPortabilityExportSchema = z11.object({
1150
1310
  include: portabilityIncludeSchema.optional(),
1151
- agents: z8.array(z8.string().min(1)).optional(),
1152
- skills: z8.array(z8.string().min(1)).optional(),
1153
- projects: z8.array(z8.string().min(1)).optional(),
1154
- issues: z8.array(z8.string().min(1)).optional(),
1155
- projectIssues: z8.array(z8.string().min(1)).optional(),
1156
- selectedFiles: z8.array(z8.string().min(1)).optional(),
1157
- expandReferencedSkills: z8.boolean().optional(),
1311
+ agents: z11.array(z11.string().min(1)).optional(),
1312
+ skills: z11.array(z11.string().min(1)).optional(),
1313
+ projects: z11.array(z11.string().min(1)).optional(),
1314
+ issues: z11.array(z11.string().min(1)).optional(),
1315
+ projectIssues: z11.array(z11.string().min(1)).optional(),
1316
+ selectedFiles: z11.array(z11.string().min(1)).optional(),
1317
+ expandReferencedSkills: z11.boolean().optional(),
1158
1318
  sidebarOrder: portabilitySidebarOrderSchema.partial().optional()
1159
1319
  });
1160
- organizationPortabilityPreviewSchema = z8.object({
1320
+ organizationPortabilityPreviewSchema = z11.object({
1161
1321
  source: portabilitySourceSchema,
1162
1322
  include: portabilityIncludeSchema.optional(),
1163
1323
  target: portabilityTargetSchema,
1164
1324
  agents: portabilityAgentSelectionSchema.optional(),
1165
1325
  collisionStrategy: portabilityCollisionStrategySchema.optional(),
1166
- nameOverrides: z8.record(z8.string().min(1), z8.string().min(1)).optional(),
1167
- selectedFiles: z8.array(z8.string().min(1)).optional()
1326
+ nameOverrides: z11.record(z11.string().min(1), z11.string().min(1)).optional(),
1327
+ selectedFiles: z11.array(z11.string().min(1)).optional()
1168
1328
  });
1169
- portabilityAdapterOverrideSchema = z8.object({
1170
- agentRuntimeType: z8.string().min(1),
1171
- agentRuntimeConfig: z8.record(z8.unknown()).optional()
1329
+ portabilityAdapterOverrideSchema = z11.object({
1330
+ agentRuntimeType: z11.string().min(1),
1331
+ agentRuntimeConfig: z11.record(z11.unknown()).optional()
1172
1332
  });
1173
1333
  organizationPortabilityImportSchema = organizationPortabilityPreviewSchema.extend({
1174
- agentRuntimeOverrides: z8.record(z8.string().min(1), portabilityAdapterOverrideSchema).optional()
1334
+ agentRuntimeOverrides: z11.record(z11.string().min(1), portabilityAdapterOverrideSchema).optional()
1175
1335
  });
1176
1336
  }
1177
1337
  });
1178
1338
 
1179
- // ../packages/shared/dist/validators/secret.js
1180
- import { z as z9 } from "zod";
1181
- var envBindingPlainSchema, envBindingSecretRefSchema, envBindingSchema, envConfigSchema, createSecretSchema, rotateSecretSchema, updateSecretSchema;
1182
- var init_secret = __esm({
1183
- "../packages/shared/dist/validators/secret.js"() {
1184
- "use strict";
1185
- init_constants();
1186
- envBindingPlainSchema = z9.object({
1187
- type: z9.literal("plain"),
1188
- value: z9.string()
1189
- });
1190
- envBindingSecretRefSchema = z9.object({
1191
- type: z9.literal("secret_ref"),
1192
- secretId: z9.string().uuid(),
1193
- version: z9.union([z9.literal("latest"), z9.number().int().positive()]).optional()
1194
- });
1195
- envBindingSchema = z9.union([
1196
- z9.string(),
1197
- envBindingPlainSchema,
1198
- envBindingSecretRefSchema
1199
- ]);
1200
- envConfigSchema = z9.record(envBindingSchema);
1201
- createSecretSchema = z9.object({
1202
- name: z9.string().min(1),
1203
- provider: z9.enum(SECRET_PROVIDERS).optional(),
1204
- value: z9.string().min(1),
1205
- description: z9.string().optional().nullable(),
1206
- externalRef: z9.string().optional().nullable()
1207
- });
1208
- rotateSecretSchema = z9.object({
1209
- value: z9.string().min(1),
1210
- externalRef: z9.string().optional().nullable()
1211
- });
1212
- updateSecretSchema = z9.object({
1213
- name: z9.string().min(1).optional(),
1214
- description: z9.string().optional().nullable(),
1215
- externalRef: z9.string().optional().nullable()
1216
- });
1217
- }
1218
- });
1219
-
1220
- // ../packages/shared/dist/validators/model-fallbacks.js
1221
- import { z as z10 } from "zod";
1222
- function isRecord(value) {
1223
- return typeof value === "object" && value !== null && !Array.isArray(value);
1224
- }
1225
- function validateModelFallbacksConfig(value, ctx, pathPrefix) {
1226
- const fallbackModels = value.modelFallbacks;
1227
- if (fallbackModels === void 0)
1228
- return;
1229
- if (!Array.isArray(fallbackModels)) {
1230
- ctx.addIssue({
1231
- code: z10.ZodIssueCode.custom,
1232
- message: "modelFallbacks must be an array",
1233
- path: [...pathPrefix, "modelFallbacks"]
1234
- });
1235
- return;
1236
- }
1237
- fallbackModels.forEach((fallback, index) => {
1238
- if (typeof fallback === "string") {
1239
- if (fallback.trim().length === 0) {
1240
- ctx.addIssue({
1241
- code: z10.ZodIssueCode.custom,
1242
- message: "modelFallbacks string entries must be non-empty",
1243
- path: [...pathPrefix, "modelFallbacks", index]
1244
- });
1245
- }
1246
- return;
1247
- }
1248
- if (!isRecord(fallback)) {
1249
- ctx.addIssue({
1250
- code: z10.ZodIssueCode.custom,
1251
- message: "modelFallbacks entries must be strings or runtime/model objects",
1252
- path: [...pathPrefix, "modelFallbacks", index]
1253
- });
1254
- return;
1255
- }
1256
- if (typeof fallback.agentRuntimeType !== "string" || fallback.agentRuntimeType.trim().length === 0) {
1257
- ctx.addIssue({
1258
- code: z10.ZodIssueCode.custom,
1259
- message: "modelFallbacks entries must include agentRuntimeType",
1260
- path: [...pathPrefix, "modelFallbacks", index, "agentRuntimeType"]
1261
- });
1262
- } else if (!agentRuntimeTypes.has(fallback.agentRuntimeType)) {
1263
- ctx.addIssue({
1264
- code: z10.ZodIssueCode.custom,
1265
- message: "modelFallbacks entries must include a valid agentRuntimeType",
1266
- path: [...pathPrefix, "modelFallbacks", index, "agentRuntimeType"]
1267
- });
1268
- }
1269
- if (typeof fallback.model !== "string" || fallback.model.trim().length === 0) {
1270
- ctx.addIssue({
1271
- code: z10.ZodIssueCode.custom,
1272
- message: "modelFallbacks entries must include model",
1273
- path: [...pathPrefix, "modelFallbacks", index, "model"]
1274
- });
1275
- }
1276
- if (fallback.config !== void 0 && !isRecord(fallback.config)) {
1277
- ctx.addIssue({
1278
- code: z10.ZodIssueCode.custom,
1279
- message: "modelFallbacks entry config must be an object",
1280
- path: [...pathPrefix, "modelFallbacks", index, "config"]
1281
- });
1282
- } else if (isRecord(fallback.config) && fallback.config.env !== void 0) {
1283
- const parsed = envConfigSchema.safeParse(fallback.config.env);
1284
- if (!parsed.success) {
1285
- ctx.addIssue({
1286
- code: z10.ZodIssueCode.custom,
1287
- message: "modelFallbacks entry config.env must be a map of valid env bindings",
1288
- path: [...pathPrefix, "modelFallbacks", index, "config", "env"]
1289
- });
1290
- }
1291
- }
1292
- });
1293
- }
1294
- var agentRuntimeTypes;
1295
- var init_model_fallbacks = __esm({
1296
- "../packages/shared/dist/validators/model-fallbacks.js"() {
1297
- "use strict";
1298
- init_constants();
1299
- init_secret();
1300
- agentRuntimeTypes = new Set(AGENT_RUNTIME_TYPES);
1301
- }
1302
- });
1303
-
1304
1339
  // ../packages/shared/dist/validators/agent.js
1305
- import { z as z11 } from "zod";
1340
+ import { z as z12 } from "zod";
1306
1341
  var agentPermissionsSchema, agentInstructionsBundleModeSchema, updateAgentInstructionsBundleSchema, upsertAgentInstructionsFileSchema, agentRuntimeConfigSchema, optionalAgentNameSchema, uploadedAgentIconSchema, diceBearNotionistsAgentIconSchema, agentIconSchema, createAgentSchema, createAgentHireSchema, updateAgentSchema, updateAgentInstructionsPathSchema, createAgentKeySchema, wakeAgentSchema, resetAgentSessionSchema, testAgentRuntimeEnvironmentSchema, updateAgentPermissionsSchema;
1307
1342
  var init_agent = __esm({
1308
1343
  "../packages/shared/dist/validators/agent.js"() {
@@ -1310,28 +1345,28 @@ var init_agent = __esm({
1310
1345
  init_constants();
1311
1346
  init_secret();
1312
1347
  init_model_fallbacks();
1313
- agentPermissionsSchema = z11.object({
1314
- canCreateAgents: z11.boolean().optional().default(false)
1348
+ agentPermissionsSchema = z12.object({
1349
+ canCreateAgents: z12.boolean().optional().default(false)
1315
1350
  });
1316
- agentInstructionsBundleModeSchema = z11.enum(["managed", "external"]);
1317
- updateAgentInstructionsBundleSchema = z11.object({
1351
+ agentInstructionsBundleModeSchema = z12.enum(["managed", "external"]);
1352
+ updateAgentInstructionsBundleSchema = z12.object({
1318
1353
  mode: agentInstructionsBundleModeSchema.optional(),
1319
- rootPath: z11.string().trim().min(1).nullable().optional(),
1320
- entryFile: z11.string().trim().min(1).optional(),
1321
- clearLegacyPromptTemplate: z11.boolean().optional().default(false)
1354
+ rootPath: z12.string().trim().min(1).nullable().optional(),
1355
+ entryFile: z12.string().trim().min(1).optional(),
1356
+ clearLegacyPromptTemplate: z12.boolean().optional().default(false)
1322
1357
  });
1323
- upsertAgentInstructionsFileSchema = z11.object({
1324
- path: z11.string().trim().min(1),
1325
- content: z11.string(),
1326
- clearLegacyPromptTemplate: z11.boolean().optional().default(false)
1358
+ upsertAgentInstructionsFileSchema = z12.object({
1359
+ path: z12.string().trim().min(1),
1360
+ content: z12.string(),
1361
+ clearLegacyPromptTemplate: z12.boolean().optional().default(false)
1327
1362
  });
1328
- agentRuntimeConfigSchema = z11.record(z11.unknown()).superRefine((value, ctx) => {
1363
+ agentRuntimeConfigSchema = z12.record(z12.unknown()).superRefine((value, ctx) => {
1329
1364
  const envValue = value.env;
1330
1365
  if (envValue !== void 0) {
1331
1366
  const parsed = envConfigSchema.safeParse(envValue);
1332
1367
  if (!parsed.success) {
1333
1368
  ctx.addIssue({
1334
- code: z11.ZodIssueCode.custom,
1369
+ code: z12.ZodIssueCode.custom,
1335
1370
  message: "agentRuntimeConfig.env must be a map of valid env bindings",
1336
1371
  path: ["env"]
1337
1372
  });
@@ -1339,79 +1374,79 @@ var init_agent = __esm({
1339
1374
  }
1340
1375
  validateModelFallbacksConfig(value, ctx, []);
1341
1376
  });
1342
- optionalAgentNameSchema = z11.preprocess((value) => {
1377
+ optionalAgentNameSchema = z12.preprocess((value) => {
1343
1378
  if (typeof value !== "string")
1344
1379
  return value;
1345
1380
  const trimmed = value.trim();
1346
1381
  return trimmed.length > 0 ? trimmed : void 0;
1347
- }, z11.string().trim().min(1).optional());
1348
- uploadedAgentIconSchema = z11.string().regex(new RegExp(`^asset:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?:\\?bg=(?:${AGENT_AVATAR_BACKGROUND_PRESET_IDS.join("|")}))?$`, "i"), "Invalid uploaded avatar reference");
1349
- diceBearNotionistsAgentIconSchema = z11.string().regex(new RegExp(`^${AGENT_DICEBEAR_NOTIONISTS_ICON_PREFIX}[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?:\\?bg=(?:${AGENT_AVATAR_BACKGROUND_PRESET_IDS.join("|")}))?$`, "i"), "Invalid DiceBear avatar reference");
1350
- agentIconSchema = z11.preprocess((value) => {
1382
+ }, z12.string().trim().min(1).optional());
1383
+ uploadedAgentIconSchema = z12.string().regex(new RegExp(`^asset:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?:\\?bg=(?:${AGENT_AVATAR_BACKGROUND_PRESET_IDS.join("|")}))?$`, "i"), "Invalid uploaded avatar reference");
1384
+ diceBearNotionistsAgentIconSchema = z12.string().regex(new RegExp(`^${AGENT_DICEBEAR_NOTIONISTS_ICON_PREFIX}[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?:\\?bg=(?:${AGENT_AVATAR_BACKGROUND_PRESET_IDS.join("|")}))?$`, "i"), "Invalid DiceBear avatar reference");
1385
+ agentIconSchema = z12.preprocess((value) => {
1351
1386
  if (typeof value !== "string")
1352
1387
  return value;
1353
1388
  const trimmed = value.trim();
1354
1389
  return trimmed.length > 0 ? trimmed : null;
1355
- }, z11.union([
1356
- z11.enum(AGENT_ICON_NAMES),
1390
+ }, z12.union([
1391
+ z12.enum(AGENT_ICON_NAMES),
1357
1392
  uploadedAgentIconSchema,
1358
1393
  diceBearNotionistsAgentIconSchema
1359
1394
  ]).nullable());
1360
- createAgentSchema = z11.object({
1395
+ createAgentSchema = z12.object({
1361
1396
  name: optionalAgentNameSchema,
1362
- role: z11.enum(AGENT_ROLES).optional().default("general"),
1363
- title: z11.string().optional().nullable(),
1397
+ role: z12.enum(AGENT_ROLES).optional().default("general"),
1398
+ title: z12.string().optional().nullable(),
1364
1399
  icon: agentIconSchema.optional(),
1365
- reportsTo: z11.string().uuid().optional().nullable(),
1366
- capabilities: z11.string().optional().nullable(),
1367
- desiredSkills: z11.array(z11.string().min(1)).optional(),
1368
- agentRuntimeType: z11.enum(AGENT_RUNTIME_TYPES).optional().default("process"),
1400
+ reportsTo: z12.string().uuid().optional().nullable(),
1401
+ capabilities: z12.string().optional().nullable(),
1402
+ desiredSkills: z12.array(z12.string().min(1)).optional(),
1403
+ agentRuntimeType: z12.enum(AGENT_RUNTIME_TYPES).optional().default("process"),
1369
1404
  agentRuntimeConfig: agentRuntimeConfigSchema.optional().default({}),
1370
- runtimeConfig: z11.record(z11.unknown()).optional().default({}),
1371
- budgetMonthlyCents: z11.number().int().nonnegative().optional().default(0),
1405
+ runtimeConfig: z12.record(z12.unknown()).optional().default({}),
1406
+ budgetMonthlyCents: z12.number().int().nonnegative().optional().default(0),
1372
1407
  permissions: agentPermissionsSchema.optional(),
1373
- metadata: z11.record(z11.unknown()).optional().nullable()
1408
+ metadata: z12.record(z12.unknown()).optional().nullable()
1374
1409
  });
1375
1410
  createAgentHireSchema = createAgentSchema.extend({
1376
- sourceIssueId: z11.string().uuid().optional().nullable(),
1377
- sourceIssueIds: z11.array(z11.string().uuid()).optional()
1411
+ sourceIssueId: z12.string().uuid().optional().nullable(),
1412
+ sourceIssueIds: z12.array(z12.string().uuid()).optional()
1378
1413
  });
1379
1414
  updateAgentSchema = createAgentSchema.omit({ permissions: true }).partial().extend({
1380
- permissions: z11.never().optional(),
1381
- replaceAgentRuntimeConfig: z11.boolean().optional(),
1382
- status: z11.enum(AGENT_STATUSES).optional(),
1383
- spentMonthlyCents: z11.number().int().nonnegative().optional()
1384
- });
1385
- updateAgentInstructionsPathSchema = z11.object({
1386
- path: z11.string().trim().min(1).nullable(),
1387
- agentRuntimeConfigKey: z11.string().trim().min(1).optional()
1388
- });
1389
- createAgentKeySchema = z11.object({
1390
- name: z11.string().min(1).default("default")
1391
- });
1392
- wakeAgentSchema = z11.object({
1393
- source: z11.enum(["timer", "assignment", "review", "on_demand", "automation"]).optional().default("on_demand"),
1394
- triggerDetail: z11.enum(["manual", "ping", "callback", "system"]).optional(),
1395
- reason: z11.string().optional().nullable(),
1396
- payload: z11.record(z11.unknown()).optional().nullable(),
1397
- idempotencyKey: z11.string().optional().nullable(),
1398
- forceFreshSession: z11.preprocess((value) => value === null ? void 0 : value, z11.boolean().optional().default(false))
1399
- });
1400
- resetAgentSessionSchema = z11.object({
1401
- taskKey: z11.string().min(1).optional().nullable()
1402
- });
1403
- testAgentRuntimeEnvironmentSchema = z11.object({
1415
+ permissions: z12.never().optional(),
1416
+ replaceAgentRuntimeConfig: z12.boolean().optional(),
1417
+ status: z12.enum(AGENT_STATUSES).optional(),
1418
+ spentMonthlyCents: z12.number().int().nonnegative().optional()
1419
+ });
1420
+ updateAgentInstructionsPathSchema = z12.object({
1421
+ path: z12.string().trim().min(1).nullable(),
1422
+ agentRuntimeConfigKey: z12.string().trim().min(1).optional()
1423
+ });
1424
+ createAgentKeySchema = z12.object({
1425
+ name: z12.string().min(1).default("default")
1426
+ });
1427
+ wakeAgentSchema = z12.object({
1428
+ source: z12.enum(["timer", "assignment", "review", "on_demand", "automation"]).optional().default("on_demand"),
1429
+ triggerDetail: z12.enum(["manual", "ping", "callback", "system"]).optional(),
1430
+ reason: z12.string().optional().nullable(),
1431
+ payload: z12.record(z12.unknown()).optional().nullable(),
1432
+ idempotencyKey: z12.string().optional().nullable(),
1433
+ forceFreshSession: z12.preprocess((value) => value === null ? void 0 : value, z12.boolean().optional().default(false))
1434
+ });
1435
+ resetAgentSessionSchema = z12.object({
1436
+ taskKey: z12.string().min(1).optional().nullable()
1437
+ });
1438
+ testAgentRuntimeEnvironmentSchema = z12.object({
1404
1439
  agentRuntimeConfig: agentRuntimeConfigSchema.optional().default({})
1405
1440
  });
1406
- updateAgentPermissionsSchema = z11.object({
1407
- canCreateAgents: z11.boolean(),
1408
- canAssignTasks: z11.boolean()
1441
+ updateAgentPermissionsSchema = z12.object({
1442
+ canCreateAgents: z12.boolean(),
1443
+ canAssignTasks: z12.boolean()
1409
1444
  });
1410
1445
  }
1411
1446
  });
1412
1447
 
1413
1448
  // ../packages/shared/dist/validators/project.js
1414
- import { z as z12 } from "zod";
1449
+ import { z as z13 } from "zod";
1415
1450
  function validateProjectWorkspace(value, ctx) {
1416
1451
  const sourceType = value.sourceType ?? "local_path";
1417
1452
  const hasCwd = typeof value.cwd === "string" && value.cwd.trim().length > 0;
@@ -1420,7 +1455,7 @@ function validateProjectWorkspace(value, ctx) {
1420
1455
  if (sourceType === "remote_managed") {
1421
1456
  if (!hasRemoteRef && !hasRepo) {
1422
1457
  ctx.addIssue({
1423
- code: z12.ZodIssueCode.custom,
1458
+ code: z13.ZodIssueCode.custom,
1424
1459
  message: "Remote-managed workspace requires remoteWorkspaceRef or repoUrl.",
1425
1460
  path: ["remoteWorkspaceRef"]
1426
1461
  });
@@ -1429,7 +1464,7 @@ function validateProjectWorkspace(value, ctx) {
1429
1464
  }
1430
1465
  if (!hasCwd && !hasRepo) {
1431
1466
  ctx.addIssue({
1432
- code: z12.ZodIssueCode.custom,
1467
+ code: z13.ZodIssueCode.custom,
1433
1468
  message: "Workspace requires at least one of cwd or repoUrl.",
1434
1469
  path: ["cwd"]
1435
1470
  });
@@ -1441,118 +1476,118 @@ var init_project = __esm({
1441
1476
  "use strict";
1442
1477
  init_constants();
1443
1478
  init_resource();
1444
- executionWorkspaceStrategySchema = z12.object({
1445
- type: z12.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
1446
- baseRef: z12.string().optional().nullable(),
1447
- branchTemplate: z12.string().optional().nullable(),
1448
- worktreeParentDir: z12.string().optional().nullable(),
1449
- provisionCommand: z12.string().optional().nullable(),
1450
- teardownCommand: z12.string().optional().nullable()
1479
+ executionWorkspaceStrategySchema = z13.object({
1480
+ type: z13.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
1481
+ baseRef: z13.string().optional().nullable(),
1482
+ branchTemplate: z13.string().optional().nullable(),
1483
+ worktreeParentDir: z13.string().optional().nullable(),
1484
+ provisionCommand: z13.string().optional().nullable(),
1485
+ teardownCommand: z13.string().optional().nullable()
1451
1486
  }).strict();
1452
- projectExecutionWorkspacePolicySchema = z12.object({
1453
- enabled: z12.boolean(),
1454
- defaultMode: z12.enum(["shared_workspace", "isolated_workspace", "operator_branch", "adapter_default"]).optional(),
1455
- allowIssueOverride: z12.boolean().optional(),
1456
- defaultProjectWorkspaceId: z12.string().uuid().optional().nullable(),
1487
+ projectExecutionWorkspacePolicySchema = z13.object({
1488
+ enabled: z13.boolean(),
1489
+ defaultMode: z13.enum(["shared_workspace", "isolated_workspace", "operator_branch", "adapter_default"]).optional(),
1490
+ allowIssueOverride: z13.boolean().optional(),
1491
+ defaultProjectWorkspaceId: z13.string().uuid().optional().nullable(),
1457
1492
  workspaceStrategy: executionWorkspaceStrategySchema.optional().nullable(),
1458
- workspaceRuntime: z12.record(z12.unknown()).optional().nullable(),
1459
- branchPolicy: z12.record(z12.unknown()).optional().nullable(),
1460
- pullRequestPolicy: z12.record(z12.unknown()).optional().nullable(),
1461
- runtimePolicy: z12.record(z12.unknown()).optional().nullable(),
1462
- cleanupPolicy: z12.record(z12.unknown()).optional().nullable()
1493
+ workspaceRuntime: z13.record(z13.unknown()).optional().nullable(),
1494
+ branchPolicy: z13.record(z13.unknown()).optional().nullable(),
1495
+ pullRequestPolicy: z13.record(z13.unknown()).optional().nullable(),
1496
+ runtimePolicy: z13.record(z13.unknown()).optional().nullable(),
1497
+ cleanupPolicy: z13.record(z13.unknown()).optional().nullable()
1463
1498
  }).strict();
1464
- projectWorkspaceSourceTypeSchema = z12.enum(["local_path", "git_repo", "remote_managed", "non_git_path"]);
1465
- projectWorkspaceVisibilitySchema = z12.enum(["default", "advanced"]);
1499
+ projectWorkspaceSourceTypeSchema = z13.enum(["local_path", "git_repo", "remote_managed", "non_git_path"]);
1500
+ projectWorkspaceVisibilitySchema = z13.enum(["default", "advanced"]);
1466
1501
  projectWorkspaceFields = {
1467
- name: z12.string().min(1).optional(),
1502
+ name: z13.string().min(1).optional(),
1468
1503
  sourceType: projectWorkspaceSourceTypeSchema.optional(),
1469
- cwd: z12.string().min(1).optional().nullable(),
1470
- repoUrl: z12.string().url().optional().nullable(),
1471
- repoRef: z12.string().optional().nullable(),
1472
- defaultRef: z12.string().optional().nullable(),
1504
+ cwd: z13.string().min(1).optional().nullable(),
1505
+ repoUrl: z13.string().url().optional().nullable(),
1506
+ repoRef: z13.string().optional().nullable(),
1507
+ defaultRef: z13.string().optional().nullable(),
1473
1508
  visibility: projectWorkspaceVisibilitySchema.optional(),
1474
- setupCommand: z12.string().optional().nullable(),
1475
- cleanupCommand: z12.string().optional().nullable(),
1476
- remoteProvider: z12.string().optional().nullable(),
1477
- remoteWorkspaceRef: z12.string().optional().nullable(),
1478
- sharedWorkspaceKey: z12.string().optional().nullable(),
1479
- metadata: z12.record(z12.unknown()).optional().nullable()
1509
+ setupCommand: z13.string().optional().nullable(),
1510
+ cleanupCommand: z13.string().optional().nullable(),
1511
+ remoteProvider: z13.string().optional().nullable(),
1512
+ remoteWorkspaceRef: z13.string().optional().nullable(),
1513
+ sharedWorkspaceKey: z13.string().optional().nullable(),
1514
+ metadata: z13.record(z13.unknown()).optional().nullable()
1480
1515
  };
1481
1516
  projectColorValues = new Set(PROJECT_COLORS);
1482
- legacyProjectColorSchema = z12.string().regex(/^#[0-9a-fA-F]{6}$/);
1483
- projectColorSchema = z12.string().refine((value) => legacyProjectColorSchema.safeParse(value).success || projectColorValues.has(value), "Color must be a 6-digit hex value or a supported project gradient");
1484
- createProjectWorkspaceSchema = z12.object({
1517
+ legacyProjectColorSchema = z13.string().regex(/^#[0-9a-fA-F]{6}$/);
1518
+ projectColorSchema = z13.string().refine((value) => legacyProjectColorSchema.safeParse(value).success || projectColorValues.has(value), "Color must be a 6-digit hex value or a supported project gradient");
1519
+ createProjectWorkspaceSchema = z13.object({
1485
1520
  ...projectWorkspaceFields,
1486
- isPrimary: z12.boolean().optional().default(false)
1521
+ isPrimary: z13.boolean().optional().default(false)
1487
1522
  }).superRefine(validateProjectWorkspace);
1488
- updateProjectWorkspaceSchema = z12.object({
1523
+ updateProjectWorkspaceSchema = z13.object({
1489
1524
  ...projectWorkspaceFields,
1490
- isPrimary: z12.boolean().optional()
1525
+ isPrimary: z13.boolean().optional()
1491
1526
  }).partial();
1492
1527
  projectFields = {
1493
1528
  /** @deprecated Use goalIds instead */
1494
- goalId: z12.string().uuid().optional().nullable(),
1495
- goalIds: z12.array(z12.string().uuid()).optional(),
1496
- name: z12.string().min(1),
1497
- description: z12.string().optional().nullable(),
1498
- status: z12.enum(PROJECT_STATUSES).optional().default("backlog"),
1499
- leadAgentId: z12.string().uuid().optional().nullable(),
1500
- targetDate: z12.string().optional().nullable(),
1529
+ goalId: z13.string().uuid().optional().nullable(),
1530
+ goalIds: z13.array(z13.string().uuid()).optional(),
1531
+ name: z13.string().min(1),
1532
+ description: z13.string().optional().nullable(),
1533
+ status: z13.enum(PROJECT_STATUSES).optional().default("backlog"),
1534
+ leadAgentId: z13.string().uuid().optional().nullable(),
1535
+ targetDate: z13.string().optional().nullable(),
1501
1536
  color: projectColorSchema.optional().nullable(),
1502
1537
  executionWorkspacePolicy: projectExecutionWorkspacePolicySchema.optional().nullable(),
1503
- resourceAttachments: z12.array(projectResourceAttachmentInputSchema).optional(),
1504
- newResources: z12.array(createProjectInlineResourceSchema).optional(),
1505
- archivedAt: z12.string().datetime().optional().nullable()
1538
+ resourceAttachments: z13.array(projectResourceAttachmentInputSchema).optional(),
1539
+ newResources: z13.array(createProjectInlineResourceSchema).optional(),
1540
+ archivedAt: z13.string().datetime().optional().nullable()
1506
1541
  };
1507
- createProjectSchema = z12.object({
1542
+ createProjectSchema = z13.object({
1508
1543
  ...projectFields
1509
1544
  });
1510
- updateProjectSchema = z12.object(projectFields).partial();
1545
+ updateProjectSchema = z13.object(projectFields).partial();
1511
1546
  }
1512
1547
  });
1513
1548
 
1514
1549
  // ../packages/shared/dist/validators/issue.js
1515
- import { z as z13 } from "zod";
1550
+ import { z as z14 } from "zod";
1516
1551
  var executionWorkspaceStrategySchema2, issueExecutionWorkspaceSettingsSchema, issueAssigneeAdapterOverridesSchema, createIssueSchema, createIssueLabelSchema, updateIssueLabelSchema, updateIssueSchema, reorderIssueSchema, checkoutIssueSchema, addIssueCommentSchema, reportIssueCommitSchema, linkIssueApprovalSchema, createIssueAttachmentMetadataSchema, createIssueWorkspaceAttachmentSchema, ISSUE_DOCUMENT_FORMATS, issueDocumentFormatSchema, issueDocumentKeySchema, upsertIssueDocumentSchema;
1517
1552
  var init_issue = __esm({
1518
1553
  "../packages/shared/dist/validators/issue.js"() {
1519
1554
  "use strict";
1520
1555
  init_constants();
1521
- executionWorkspaceStrategySchema2 = z13.object({
1522
- type: z13.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
1523
- baseRef: z13.string().optional().nullable(),
1524
- branchTemplate: z13.string().optional().nullable(),
1525
- worktreeParentDir: z13.string().optional().nullable(),
1526
- provisionCommand: z13.string().optional().nullable(),
1527
- teardownCommand: z13.string().optional().nullable()
1556
+ executionWorkspaceStrategySchema2 = z14.object({
1557
+ type: z14.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
1558
+ baseRef: z14.string().optional().nullable(),
1559
+ branchTemplate: z14.string().optional().nullable(),
1560
+ worktreeParentDir: z14.string().optional().nullable(),
1561
+ provisionCommand: z14.string().optional().nullable(),
1562
+ teardownCommand: z14.string().optional().nullable()
1528
1563
  }).strict();
1529
- issueExecutionWorkspaceSettingsSchema = z13.object({
1530
- mode: z13.enum(["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]).optional(),
1564
+ issueExecutionWorkspaceSettingsSchema = z14.object({
1565
+ mode: z14.enum(["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]).optional(),
1531
1566
  workspaceStrategy: executionWorkspaceStrategySchema2.optional().nullable(),
1532
- workspaceRuntime: z13.record(z13.unknown()).optional().nullable()
1567
+ workspaceRuntime: z14.record(z14.unknown()).optional().nullable()
1533
1568
  }).strict();
1534
- issueAssigneeAdapterOverridesSchema = z13.object({
1535
- agentRuntimeConfig: z13.record(z13.unknown()).optional(),
1536
- useProjectWorkspace: z13.boolean().optional()
1569
+ issueAssigneeAdapterOverridesSchema = z14.object({
1570
+ agentRuntimeConfig: z14.record(z14.unknown()).optional(),
1571
+ useProjectWorkspace: z14.boolean().optional()
1537
1572
  }).strict();
1538
- createIssueSchema = z13.object({
1539
- projectId: z13.string().uuid().optional().nullable(),
1540
- projectWorkspaceId: z13.string().uuid().optional().nullable(),
1541
- goalId: z13.string().uuid().optional().nullable(),
1542
- parentId: z13.string().uuid().optional().nullable(),
1543
- title: z13.string().min(1),
1544
- description: z13.string().optional().nullable(),
1545
- status: z13.enum(ISSUE_STATUSES).optional().default("backlog"),
1546
- priority: z13.enum(ISSUE_PRIORITIES).optional().default("medium"),
1547
- assigneeAgentId: z13.string().uuid().optional().nullable(),
1548
- assigneeUserId: z13.string().optional().nullable(),
1549
- reviewerAgentId: z13.string().uuid().optional().nullable(),
1550
- reviewerUserId: z13.string().optional().nullable(),
1551
- requestDepth: z13.number().int().nonnegative().optional().default(0),
1552
- billingCode: z13.string().optional().nullable(),
1573
+ createIssueSchema = z14.object({
1574
+ projectId: z14.string().uuid().optional().nullable(),
1575
+ projectWorkspaceId: z14.string().uuid().optional().nullable(),
1576
+ goalId: z14.string().uuid().optional().nullable(),
1577
+ parentId: z14.string().uuid().optional().nullable(),
1578
+ title: z14.string().min(1),
1579
+ description: z14.string().optional().nullable(),
1580
+ status: z14.enum(ISSUE_STATUSES).optional().default("backlog"),
1581
+ priority: z14.enum(ISSUE_PRIORITIES).optional().default("medium"),
1582
+ assigneeAgentId: z14.string().uuid().optional().nullable(),
1583
+ assigneeUserId: z14.string().optional().nullable(),
1584
+ reviewerAgentId: z14.string().uuid().optional().nullable(),
1585
+ reviewerUserId: z14.string().optional().nullable(),
1586
+ requestDepth: z14.number().int().nonnegative().optional().default(0),
1587
+ billingCode: z14.string().optional().nullable(),
1553
1588
  assigneeAgentRuntimeOverrides: issueAssigneeAdapterOverridesSchema.optional().nullable(),
1554
- executionWorkspaceId: z13.string().uuid().optional().nullable(),
1555
- executionWorkspacePreference: z13.enum([
1589
+ executionWorkspaceId: z14.string().uuid().optional().nullable(),
1590
+ executionWorkspacePreference: z14.enum([
1556
1591
  "inherit",
1557
1592
  "shared_workspace",
1558
1593
  "isolated_workspace",
@@ -1561,77 +1596,77 @@ var init_issue = __esm({
1561
1596
  "agent_default"
1562
1597
  ]).optional().nullable(),
1563
1598
  executionWorkspaceSettings: issueExecutionWorkspaceSettingsSchema.optional().nullable(),
1564
- labelIds: z13.array(z13.string().uuid()).optional()
1599
+ labelIds: z14.array(z14.string().uuid()).optional()
1565
1600
  });
1566
- createIssueLabelSchema = z13.object({
1567
- name: z13.string().trim().min(1).max(48),
1568
- color: z13.string().regex(/^#(?:[0-9a-fA-F]{6})$/, "Color must be a 6-digit hex value")
1601
+ createIssueLabelSchema = z14.object({
1602
+ name: z14.string().trim().min(1).max(48),
1603
+ color: z14.string().regex(/^#(?:[0-9a-fA-F]{6})$/, "Color must be a 6-digit hex value")
1569
1604
  });
1570
1605
  updateIssueLabelSchema = createIssueLabelSchema.partial().refine((value) => value.name !== void 0 || value.color !== void 0, {
1571
1606
  message: "At least one label field must be provided"
1572
1607
  });
1573
1608
  updateIssueSchema = createIssueSchema.partial().extend({
1574
- comment: z13.string().min(1).optional(),
1575
- reopen: z13.boolean().optional(),
1576
- hiddenAt: z13.string().datetime().nullable().optional(),
1577
- reviewDecision: z13.enum(["approve", "request_changes", "needs_followup", "blocked"]).optional()
1578
- });
1579
- reorderIssueSchema = z13.object({
1580
- issueId: z13.string().uuid(),
1581
- targetStatus: z13.enum(ISSUE_STATUSES),
1582
- previousIssueId: z13.string().uuid().optional().nullable(),
1583
- nextIssueId: z13.string().uuid().optional().nullable(),
1584
- position: z13.enum(["start", "end"]).optional()
1609
+ comment: z14.string().min(1).optional(),
1610
+ reopen: z14.boolean().optional(),
1611
+ hiddenAt: z14.string().datetime().nullable().optional(),
1612
+ reviewDecision: z14.enum(["approve", "request_changes", "needs_followup", "blocked"]).optional()
1613
+ });
1614
+ reorderIssueSchema = z14.object({
1615
+ issueId: z14.string().uuid(),
1616
+ targetStatus: z14.enum(ISSUE_STATUSES),
1617
+ previousIssueId: z14.string().uuid().optional().nullable(),
1618
+ nextIssueId: z14.string().uuid().optional().nullable(),
1619
+ position: z14.enum(["start", "end"]).optional()
1585
1620
  }).refine((value) => !(value.previousIssueId && value.nextIssueId && value.previousIssueId === value.nextIssueId), {
1586
1621
  message: "previousIssueId and nextIssueId must be different"
1587
1622
  });
1588
- checkoutIssueSchema = z13.object({
1589
- agentId: z13.string().uuid(),
1590
- expectedStatuses: z13.array(z13.enum(ISSUE_STATUSES)).nonempty()
1623
+ checkoutIssueSchema = z14.object({
1624
+ agentId: z14.string().uuid(),
1625
+ expectedStatuses: z14.array(z14.enum(ISSUE_STATUSES)).nonempty()
1591
1626
  });
1592
- addIssueCommentSchema = z13.object({
1593
- body: z13.string().min(1),
1594
- reopen: z13.boolean().optional(),
1595
- interrupt: z13.boolean().optional()
1627
+ addIssueCommentSchema = z14.object({
1628
+ body: z14.string().min(1),
1629
+ reopen: z14.boolean().optional(),
1630
+ interrupt: z14.boolean().optional()
1596
1631
  });
1597
- reportIssueCommitSchema = z13.object({
1598
- sha: z13.string().trim().regex(/^[0-9a-f]{7,64}$/i, "Commit SHA must be 7 to 64 hexadecimal characters"),
1599
- message: z13.string().trim().min(1).max(500),
1600
- branch: z13.string().trim().min(1).max(255).optional().nullable(),
1601
- repoPath: z13.string().trim().min(1).max(2048).optional().nullable(),
1602
- workspacePath: z13.string().trim().min(1).max(2048).optional().nullable(),
1603
- commitCount: z13.number().int().positive().max(1e3).optional()
1632
+ reportIssueCommitSchema = z14.object({
1633
+ sha: z14.string().trim().regex(/^[0-9a-f]{7,64}$/i, "Commit SHA must be 7 to 64 hexadecimal characters"),
1634
+ message: z14.string().trim().min(1).max(500),
1635
+ branch: z14.string().trim().min(1).max(255).optional().nullable(),
1636
+ repoPath: z14.string().trim().min(1).max(2048).optional().nullable(),
1637
+ workspacePath: z14.string().trim().min(1).max(2048).optional().nullable(),
1638
+ commitCount: z14.number().int().positive().max(1e3).optional()
1604
1639
  });
1605
- linkIssueApprovalSchema = z13.object({
1606
- approvalId: z13.string().uuid()
1640
+ linkIssueApprovalSchema = z14.object({
1641
+ approvalId: z14.string().uuid()
1607
1642
  });
1608
- createIssueAttachmentMetadataSchema = z13.object({
1609
- issueCommentId: z13.string().uuid().optional().nullable(),
1610
- usage: z13.enum(["issue", "description_inline", "document_inline", "comment_inline", "comment_attachment"]).optional()
1643
+ createIssueAttachmentMetadataSchema = z14.object({
1644
+ issueCommentId: z14.string().uuid().optional().nullable(),
1645
+ usage: z14.enum(["issue", "description_inline", "document_inline", "comment_inline", "comment_attachment"]).optional()
1611
1646
  });
1612
- createIssueWorkspaceAttachmentSchema = z13.object({
1613
- path: z13.string().trim().min(1).max(2048)
1647
+ createIssueWorkspaceAttachmentSchema = z14.object({
1648
+ path: z14.string().trim().min(1).max(2048)
1614
1649
  });
1615
1650
  ISSUE_DOCUMENT_FORMATS = ["markdown"];
1616
- issueDocumentFormatSchema = z13.enum(ISSUE_DOCUMENT_FORMATS);
1617
- issueDocumentKeySchema = z13.string().trim().min(1).max(64).regex(/^[a-z0-9][a-z0-9_-]*$/, "Document key must be lowercase letters, numbers, _ or -");
1618
- upsertIssueDocumentSchema = z13.object({
1619
- title: z13.string().trim().max(200).nullable().optional(),
1651
+ issueDocumentFormatSchema = z14.enum(ISSUE_DOCUMENT_FORMATS);
1652
+ issueDocumentKeySchema = z14.string().trim().min(1).max(64).regex(/^[a-z0-9][a-z0-9_-]*$/, "Document key must be lowercase letters, numbers, _ or -");
1653
+ upsertIssueDocumentSchema = z14.object({
1654
+ title: z14.string().trim().max(200).nullable().optional(),
1620
1655
  format: issueDocumentFormatSchema,
1621
- body: z13.string().max(524288),
1622
- changeSummary: z13.string().trim().max(500).nullable().optional(),
1623
- baseRevisionId: z13.string().uuid().nullable().optional()
1656
+ body: z14.string().max(524288),
1657
+ changeSummary: z14.string().trim().max(500).nullable().optional(),
1658
+ baseRevisionId: z14.string().uuid().nullable().optional()
1624
1659
  });
1625
1660
  }
1626
1661
  });
1627
1662
 
1628
1663
  // ../packages/shared/dist/validators/work-product.js
1629
- import { z as z14 } from "zod";
1664
+ import { z as z15 } from "zod";
1630
1665
  var issueWorkProductTypeSchema, issueWorkProductStatusSchema, issueWorkProductReviewStateSchema, createIssueWorkProductSchema, updateIssueWorkProductSchema;
1631
1666
  var init_work_product = __esm({
1632
1667
  "../packages/shared/dist/validators/work-product.js"() {
1633
1668
  "use strict";
1634
- issueWorkProductTypeSchema = z14.enum([
1669
+ issueWorkProductTypeSchema = z15.enum([
1635
1670
  "preview_url",
1636
1671
  "runtime_service",
1637
1672
  "pull_request",
@@ -1640,7 +1675,7 @@ var init_work_product = __esm({
1640
1675
  "artifact",
1641
1676
  "document"
1642
1677
  ]);
1643
- issueWorkProductStatusSchema = z14.enum([
1678
+ issueWorkProductStatusSchema = z15.enum([
1644
1679
  "active",
1645
1680
  "ready_for_review",
1646
1681
  "approved",
@@ -1651,317 +1686,317 @@ var init_work_product = __esm({
1651
1686
  "archived",
1652
1687
  "draft"
1653
1688
  ]);
1654
- issueWorkProductReviewStateSchema = z14.enum([
1689
+ issueWorkProductReviewStateSchema = z15.enum([
1655
1690
  "none",
1656
1691
  "needs_board_review",
1657
1692
  "approved",
1658
1693
  "changes_requested"
1659
1694
  ]);
1660
- createIssueWorkProductSchema = z14.object({
1661
- projectId: z14.string().uuid().optional().nullable(),
1662
- executionWorkspaceId: z14.string().uuid().optional().nullable(),
1663
- runtimeServiceId: z14.string().uuid().optional().nullable(),
1695
+ createIssueWorkProductSchema = z15.object({
1696
+ projectId: z15.string().uuid().optional().nullable(),
1697
+ executionWorkspaceId: z15.string().uuid().optional().nullable(),
1698
+ runtimeServiceId: z15.string().uuid().optional().nullable(),
1664
1699
  type: issueWorkProductTypeSchema,
1665
- provider: z14.string().min(1),
1666
- externalId: z14.string().optional().nullable(),
1667
- title: z14.string().min(1),
1668
- url: z14.string().url().optional().nullable(),
1700
+ provider: z15.string().min(1),
1701
+ externalId: z15.string().optional().nullable(),
1702
+ title: z15.string().min(1),
1703
+ url: z15.string().url().optional().nullable(),
1669
1704
  status: issueWorkProductStatusSchema.default("active"),
1670
1705
  reviewState: issueWorkProductReviewStateSchema.optional().default("none"),
1671
- isPrimary: z14.boolean().optional().default(false),
1672
- healthStatus: z14.enum(["unknown", "healthy", "unhealthy"]).optional().default("unknown"),
1673
- summary: z14.string().optional().nullable(),
1674
- metadata: z14.record(z14.unknown()).optional().nullable(),
1675
- createdByRunId: z14.string().uuid().optional().nullable()
1706
+ isPrimary: z15.boolean().optional().default(false),
1707
+ healthStatus: z15.enum(["unknown", "healthy", "unhealthy"]).optional().default("unknown"),
1708
+ summary: z15.string().optional().nullable(),
1709
+ metadata: z15.record(z15.unknown()).optional().nullable(),
1710
+ createdByRunId: z15.string().uuid().optional().nullable()
1676
1711
  });
1677
1712
  updateIssueWorkProductSchema = createIssueWorkProductSchema.partial();
1678
1713
  }
1679
1714
  });
1680
1715
 
1681
1716
  // ../packages/shared/dist/validators/execution-workspace.js
1682
- import { z as z15 } from "zod";
1717
+ import { z as z16 } from "zod";
1683
1718
  var executionWorkspaceStatusSchema, updateExecutionWorkspaceSchema;
1684
1719
  var init_execution_workspace = __esm({
1685
1720
  "../packages/shared/dist/validators/execution-workspace.js"() {
1686
1721
  "use strict";
1687
- executionWorkspaceStatusSchema = z15.enum([
1722
+ executionWorkspaceStatusSchema = z16.enum([
1688
1723
  "active",
1689
1724
  "idle",
1690
1725
  "in_review",
1691
1726
  "archived",
1692
1727
  "cleanup_failed"
1693
1728
  ]);
1694
- updateExecutionWorkspaceSchema = z15.object({
1729
+ updateExecutionWorkspaceSchema = z16.object({
1695
1730
  status: executionWorkspaceStatusSchema.optional(),
1696
- cleanupEligibleAt: z15.string().datetime().optional().nullable(),
1697
- cleanupReason: z15.string().optional().nullable(),
1698
- metadata: z15.record(z15.unknown()).optional().nullable()
1731
+ cleanupEligibleAt: z16.string().datetime().optional().nullable(),
1732
+ cleanupReason: z16.string().optional().nullable(),
1733
+ metadata: z16.record(z16.unknown()).optional().nullable()
1699
1734
  }).strict();
1700
1735
  }
1701
1736
  });
1702
1737
 
1703
1738
  // ../packages/shared/dist/validators/workspace-backup.js
1704
- import { z as z16 } from "zod";
1739
+ import { z as z17 } from "zod";
1705
1740
  var workspaceBackupTriggerSourceSchema, createWorkspaceBackupSchema, restoreWorkspaceBackupSchema;
1706
1741
  var init_workspace_backup2 = __esm({
1707
1742
  "../packages/shared/dist/validators/workspace-backup.js"() {
1708
1743
  "use strict";
1709
- workspaceBackupTriggerSourceSchema = z16.enum(["manual", "scheduled", "pre_restore"]);
1710
- createWorkspaceBackupSchema = z16.object({
1744
+ workspaceBackupTriggerSourceSchema = z17.enum(["manual", "scheduled", "pre_restore"]);
1745
+ createWorkspaceBackupSchema = z17.object({
1711
1746
  triggerSource: workspaceBackupTriggerSourceSchema.optional().default("manual")
1712
1747
  }).strict();
1713
- restoreWorkspaceBackupSchema = z16.object({
1714
- confirm: z16.literal(true)
1748
+ restoreWorkspaceBackupSchema = z17.object({
1749
+ confirm: z17.literal(true)
1715
1750
  }).strict();
1716
1751
  }
1717
1752
  });
1718
1753
 
1719
1754
  // ../packages/shared/dist/validators/goal.js
1720
- import { z as z17 } from "zod";
1755
+ import { z as z18 } from "zod";
1721
1756
  var createGoalSchema, updateGoalSchema;
1722
1757
  var init_goal = __esm({
1723
1758
  "../packages/shared/dist/validators/goal.js"() {
1724
1759
  "use strict";
1725
1760
  init_constants();
1726
- createGoalSchema = z17.object({
1727
- title: z17.string().min(1),
1728
- description: z17.string().optional().nullable(),
1729
- level: z17.enum(GOAL_LEVELS).optional().default("task"),
1730
- status: z17.enum(GOAL_STATUSES).optional().default("planned"),
1731
- parentId: z17.string().uuid().optional().nullable(),
1732
- ownerAgentId: z17.string().uuid().optional().nullable()
1761
+ createGoalSchema = z18.object({
1762
+ title: z18.string().min(1),
1763
+ description: z18.string().optional().nullable(),
1764
+ level: z18.enum(GOAL_LEVELS).optional().default("task"),
1765
+ status: z18.enum(GOAL_STATUSES).optional().default("planned"),
1766
+ parentId: z18.string().uuid().optional().nullable(),
1767
+ ownerAgentId: z18.string().uuid().optional().nullable()
1733
1768
  });
1734
1769
  updateGoalSchema = createGoalSchema.partial();
1735
1770
  }
1736
1771
  });
1737
1772
 
1738
1773
  // ../packages/shared/dist/validators/approval.js
1739
- import { z as z18 } from "zod";
1774
+ import { z as z19 } from "zod";
1740
1775
  var createApprovalSchema, resolveApprovalSchema, requestApprovalRevisionSchema, resubmitApprovalSchema, addApprovalCommentSchema;
1741
1776
  var init_approval = __esm({
1742
1777
  "../packages/shared/dist/validators/approval.js"() {
1743
1778
  "use strict";
1744
1779
  init_constants();
1745
- createApprovalSchema = z18.object({
1746
- type: z18.enum(APPROVAL_TYPES),
1747
- requestedByAgentId: z18.string().uuid().optional().nullable(),
1748
- payload: z18.record(z18.unknown()),
1749
- issueIds: z18.array(z18.string().uuid()).optional()
1780
+ createApprovalSchema = z19.object({
1781
+ type: z19.enum(APPROVAL_TYPES),
1782
+ requestedByAgentId: z19.string().uuid().optional().nullable(),
1783
+ payload: z19.record(z19.unknown()),
1784
+ issueIds: z19.array(z19.string().uuid()).optional()
1750
1785
  });
1751
- resolveApprovalSchema = z18.object({
1752
- decisionNote: z18.string().optional().nullable(),
1753
- decidedByUserId: z18.string().optional().default("board"),
1754
- payload: z18.record(z18.unknown()).optional()
1786
+ resolveApprovalSchema = z19.object({
1787
+ decisionNote: z19.string().optional().nullable(),
1788
+ decidedByUserId: z19.string().optional().default("board"),
1789
+ payload: z19.record(z19.unknown()).optional()
1755
1790
  });
1756
- requestApprovalRevisionSchema = z18.object({
1757
- decisionNote: z18.string().optional().nullable(),
1758
- decidedByUserId: z18.string().optional().default("board")
1791
+ requestApprovalRevisionSchema = z19.object({
1792
+ decisionNote: z19.string().optional().nullable(),
1793
+ decidedByUserId: z19.string().optional().default("board")
1759
1794
  });
1760
- resubmitApprovalSchema = z18.object({
1761
- payload: z18.record(z18.unknown()).optional()
1795
+ resubmitApprovalSchema = z19.object({
1796
+ payload: z19.record(z19.unknown()).optional()
1762
1797
  });
1763
- addApprovalCommentSchema = z18.object({
1764
- body: z18.string().min(1)
1798
+ addApprovalCommentSchema = z19.object({
1799
+ body: z19.string().min(1)
1765
1800
  });
1766
1801
  }
1767
1802
  });
1768
1803
 
1769
1804
  // ../packages/shared/dist/validators/automation.js
1770
- import { z as z19 } from "zod";
1805
+ import { z as z20 } from "zod";
1771
1806
  var automationBodySchema, updateAutomationSchema, baseTriggerSchema, createAutomationTriggerSchema, updateAutomationTriggerSchema, runAutomationSchema, rotateAutomationTriggerSecretSchema;
1772
1807
  var init_automation = __esm({
1773
1808
  "../packages/shared/dist/validators/automation.js"() {
1774
1809
  "use strict";
1775
1810
  init_constants();
1776
- automationBodySchema = z19.object({
1777
- projectId: z19.string().uuid().optional().nullable().default(null),
1778
- goalId: z19.string().uuid().optional().nullable(),
1779
- parentIssueId: z19.string().uuid().optional().nullable(),
1780
- title: z19.string().trim().min(1).max(200),
1781
- description: z19.string().optional().nullable(),
1782
- assigneeAgentId: z19.string().uuid(),
1783
- priority: z19.enum(ISSUE_PRIORITIES).optional().default("medium"),
1784
- status: z19.enum(AUTOMATION_STATUSES).optional().default("active"),
1785
- concurrencyPolicy: z19.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
1786
- catchUpPolicy: z19.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
1787
- outputMode: z19.enum(AUTOMATION_OUTPUT_MODES).optional().default("track_issue"),
1788
- chatConversationId: z19.string().uuid().optional().nullable().default(null),
1789
- allowAssigneeChatMismatch: z19.boolean().optional().default(false)
1811
+ automationBodySchema = z20.object({
1812
+ projectId: z20.string().uuid().optional().nullable().default(null),
1813
+ goalId: z20.string().uuid().optional().nullable(),
1814
+ parentIssueId: z20.string().uuid().optional().nullable(),
1815
+ title: z20.string().trim().min(1).max(200),
1816
+ description: z20.string().optional().nullable(),
1817
+ assigneeAgentId: z20.string().uuid(),
1818
+ priority: z20.enum(ISSUE_PRIORITIES).optional().default("medium"),
1819
+ status: z20.enum(AUTOMATION_STATUSES).optional().default("active"),
1820
+ concurrencyPolicy: z20.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
1821
+ catchUpPolicy: z20.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
1822
+ outputMode: z20.enum(AUTOMATION_OUTPUT_MODES).optional().default("track_issue"),
1823
+ chatConversationId: z20.string().uuid().optional().nullable().default(null),
1824
+ allowAssigneeChatMismatch: z20.boolean().optional().default(false)
1790
1825
  });
1791
1826
  updateAutomationSchema = automationBodySchema.partial();
1792
- baseTriggerSchema = z19.object({
1793
- label: z19.string().trim().max(120).optional().nullable(),
1794
- enabled: z19.boolean().optional().default(true)
1827
+ baseTriggerSchema = z20.object({
1828
+ label: z20.string().trim().max(120).optional().nullable(),
1829
+ enabled: z20.boolean().optional().default(true)
1795
1830
  });
1796
- createAutomationTriggerSchema = z19.discriminatedUnion("kind", [
1831
+ createAutomationTriggerSchema = z20.discriminatedUnion("kind", [
1797
1832
  baseTriggerSchema.extend({
1798
- kind: z19.literal("schedule"),
1799
- cronExpression: z19.string().trim().min(1),
1800
- timezone: z19.string().trim().min(1).default("UTC")
1833
+ kind: z20.literal("schedule"),
1834
+ cronExpression: z20.string().trim().min(1),
1835
+ timezone: z20.string().trim().min(1).default("UTC")
1801
1836
  }),
1802
1837
  baseTriggerSchema.extend({
1803
- kind: z19.literal("webhook"),
1804
- signingMode: z19.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().default("bearer"),
1805
- replayWindowSec: z19.number().int().min(30).max(86400).optional().default(300)
1838
+ kind: z20.literal("webhook"),
1839
+ signingMode: z20.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().default("bearer"),
1840
+ replayWindowSec: z20.number().int().min(30).max(86400).optional().default(300)
1806
1841
  }),
1807
1842
  baseTriggerSchema.extend({
1808
- kind: z19.literal("api")
1843
+ kind: z20.literal("api")
1809
1844
  })
1810
1845
  ]);
1811
- updateAutomationTriggerSchema = z19.object({
1812
- label: z19.string().trim().max(120).optional().nullable(),
1813
- enabled: z19.boolean().optional(),
1814
- cronExpression: z19.string().trim().min(1).optional().nullable(),
1815
- timezone: z19.string().trim().min(1).optional().nullable(),
1816
- signingMode: z19.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().nullable(),
1817
- replayWindowSec: z19.number().int().min(30).max(86400).optional().nullable()
1818
- });
1819
- runAutomationSchema = z19.object({
1820
- triggerId: z19.string().uuid().optional().nullable(),
1821
- payload: z19.record(z19.unknown()).optional().nullable(),
1822
- idempotencyKey: z19.string().trim().max(255).optional().nullable(),
1823
- source: z19.enum(["manual", "api"]).optional().default("manual")
1824
- });
1825
- rotateAutomationTriggerSecretSchema = z19.object({});
1846
+ updateAutomationTriggerSchema = z20.object({
1847
+ label: z20.string().trim().max(120).optional().nullable(),
1848
+ enabled: z20.boolean().optional(),
1849
+ cronExpression: z20.string().trim().min(1).optional().nullable(),
1850
+ timezone: z20.string().trim().min(1).optional().nullable(),
1851
+ signingMode: z20.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().nullable(),
1852
+ replayWindowSec: z20.number().int().min(30).max(86400).optional().nullable()
1853
+ });
1854
+ runAutomationSchema = z20.object({
1855
+ triggerId: z20.string().uuid().optional().nullable(),
1856
+ payload: z20.record(z20.unknown()).optional().nullable(),
1857
+ idempotencyKey: z20.string().trim().max(255).optional().nullable(),
1858
+ source: z20.enum(["manual", "api"]).optional().default("manual")
1859
+ });
1860
+ rotateAutomationTriggerSecretSchema = z20.object({});
1826
1861
  }
1827
1862
  });
1828
1863
 
1829
1864
  // ../packages/shared/dist/validators/calendar.js
1830
- import { z as z20 } from "zod";
1865
+ import { z as z21 } from "zod";
1831
1866
  var nullableUuid, createCalendarSourceSchema, updateCalendarSourceSchema, calendarEventBaseSchema, createCalendarEventSchema, updateCalendarEventSchema, calendarEventListQuerySchema, googleCalendarSyncSchema, updateGoogleCalendarOAuthConfigSchema;
1832
1867
  var init_calendar = __esm({
1833
1868
  "../packages/shared/dist/validators/calendar.js"() {
1834
1869
  "use strict";
1835
1870
  init_constants();
1836
- nullableUuid = z20.string().uuid().optional().nullable();
1837
- createCalendarSourceSchema = z20.object({
1838
- type: z20.enum(CALENDAR_SOURCE_TYPES).optional().default("rudder_local"),
1839
- name: z20.string().trim().min(1).max(160),
1840
- ownerType: z20.enum(CALENDAR_OWNER_TYPES).optional().default("user"),
1841
- ownerUserId: z20.string().trim().min(1).optional().nullable(),
1871
+ nullableUuid = z21.string().uuid().optional().nullable();
1872
+ createCalendarSourceSchema = z21.object({
1873
+ type: z21.enum(CALENDAR_SOURCE_TYPES).optional().default("rudder_local"),
1874
+ name: z21.string().trim().min(1).max(160),
1875
+ ownerType: z21.enum(CALENDAR_OWNER_TYPES).optional().default("user"),
1876
+ ownerUserId: z21.string().trim().min(1).optional().nullable(),
1842
1877
  ownerAgentId: nullableUuid,
1843
- externalProvider: z20.string().trim().min(1).max(80).optional().nullable(),
1844
- externalCalendarId: z20.string().trim().min(1).max(512).optional().nullable(),
1845
- visibilityDefault: z20.enum(CALENDAR_VISIBILITIES).optional().default("full"),
1846
- status: z20.enum(CALENDAR_SOURCE_STATUSES).optional().default("active"),
1847
- syncCursorJson: z20.record(z20.unknown()).optional().nullable()
1878
+ externalProvider: z21.string().trim().min(1).max(80).optional().nullable(),
1879
+ externalCalendarId: z21.string().trim().min(1).max(512).optional().nullable(),
1880
+ visibilityDefault: z21.enum(CALENDAR_VISIBILITIES).optional().default("full"),
1881
+ status: z21.enum(CALENDAR_SOURCE_STATUSES).optional().default("active"),
1882
+ syncCursorJson: z21.record(z21.unknown()).optional().nullable()
1848
1883
  });
1849
1884
  updateCalendarSourceSchema = createCalendarSourceSchema.partial().extend({
1850
- lastSyncedAt: z20.coerce.date().optional().nullable()
1885
+ lastSyncedAt: z21.coerce.date().optional().nullable()
1851
1886
  });
1852
- calendarEventBaseSchema = z20.object({
1887
+ calendarEventBaseSchema = z21.object({
1853
1888
  sourceId: nullableUuid,
1854
- eventKind: z20.enum(CALENDAR_EVENT_KINDS),
1855
- eventStatus: z20.enum(CALENDAR_EVENT_STATUSES).optional().default("planned"),
1856
- ownerType: z20.enum(CALENDAR_OWNER_TYPES),
1857
- ownerUserId: z20.string().trim().min(1).optional().nullable(),
1889
+ eventKind: z21.enum(CALENDAR_EVENT_KINDS),
1890
+ eventStatus: z21.enum(CALENDAR_EVENT_STATUSES).optional().default("planned"),
1891
+ ownerType: z21.enum(CALENDAR_OWNER_TYPES),
1892
+ ownerUserId: z21.string().trim().min(1).optional().nullable(),
1858
1893
  ownerAgentId: nullableUuid,
1859
- title: z20.string().trim().min(1).max(240),
1860
- description: z20.string().optional().nullable(),
1861
- startAt: z20.coerce.date(),
1862
- endAt: z20.coerce.date(),
1863
- timezone: z20.string().trim().min(1).max(80).optional().default("UTC"),
1864
- allDay: z20.boolean().optional().default(false),
1865
- visibility: z20.enum(CALENDAR_VISIBILITIES).optional().default("full"),
1894
+ title: z21.string().trim().min(1).max(240),
1895
+ description: z21.string().optional().nullable(),
1896
+ startAt: z21.coerce.date(),
1897
+ endAt: z21.coerce.date(),
1898
+ timezone: z21.string().trim().min(1).max(80).optional().default("UTC"),
1899
+ allDay: z21.boolean().optional().default(false),
1900
+ visibility: z21.enum(CALENDAR_VISIBILITIES).optional().default("full"),
1866
1901
  issueId: nullableUuid,
1867
1902
  projectId: nullableUuid,
1868
1903
  goalId: nullableUuid,
1869
1904
  approvalId: nullableUuid,
1870
1905
  heartbeatRunId: nullableUuid,
1871
1906
  activityId: nullableUuid,
1872
- sourceMode: z20.enum(CALENDAR_SOURCE_MODES).optional().default("manual"),
1873
- externalProvider: z20.string().trim().min(1).max(80).optional().nullable(),
1874
- externalCalendarId: z20.string().trim().min(1).max(512).optional().nullable(),
1875
- externalEventId: z20.string().trim().min(1).max(512).optional().nullable(),
1876
- externalEtag: z20.string().trim().min(1).max(512).optional().nullable(),
1877
- externalUpdatedAt: z20.coerce.date().optional().nullable()
1907
+ sourceMode: z21.enum(CALENDAR_SOURCE_MODES).optional().default("manual"),
1908
+ externalProvider: z21.string().trim().min(1).max(80).optional().nullable(),
1909
+ externalCalendarId: z21.string().trim().min(1).max(512).optional().nullable(),
1910
+ externalEventId: z21.string().trim().min(1).max(512).optional().nullable(),
1911
+ externalEtag: z21.string().trim().min(1).max(512).optional().nullable(),
1912
+ externalUpdatedAt: z21.coerce.date().optional().nullable()
1878
1913
  });
1879
1914
  createCalendarEventSchema = calendarEventBaseSchema.refine((value) => value.endAt.getTime() > value.startAt.getTime(), { path: ["endAt"], message: "End time must be after start time" });
1880
1915
  updateCalendarEventSchema = calendarEventBaseSchema.partial().refine((value) => value.startAt === void 0 || value.endAt === void 0 || value.endAt.getTime() > value.startAt.getTime(), { path: ["endAt"], message: "End time must be after start time" });
1881
- calendarEventListQuerySchema = z20.object({
1882
- start: z20.coerce.date(),
1883
- end: z20.coerce.date(),
1884
- agentIds: z20.string().optional(),
1885
- sourceIds: z20.string().optional(),
1886
- eventKinds: z20.string().optional(),
1887
- statuses: z20.string().optional()
1916
+ calendarEventListQuerySchema = z21.object({
1917
+ start: z21.coerce.date(),
1918
+ end: z21.coerce.date(),
1919
+ agentIds: z21.string().optional(),
1920
+ sourceIds: z21.string().optional(),
1921
+ eventKinds: z21.string().optional(),
1922
+ statuses: z21.string().optional()
1888
1923
  }).refine((value) => value.end.getTime() > value.start.getTime(), { path: ["end"], message: "End time must be after start time" });
1889
- googleCalendarSyncSchema = z20.object({
1890
- sourceId: z20.string().uuid().optional().nullable()
1924
+ googleCalendarSyncSchema = z21.object({
1925
+ sourceId: z21.string().uuid().optional().nullable()
1891
1926
  });
1892
- updateGoogleCalendarOAuthConfigSchema = z20.object({
1893
- clientId: z20.string().trim().min(1).max(512).optional(),
1894
- clientSecret: z20.string().trim().min(1).max(2048).optional(),
1895
- clear: z20.boolean().optional().default(false)
1927
+ updateGoogleCalendarOAuthConfigSchema = z21.object({
1928
+ clientId: z21.string().trim().min(1).max(512).optional(),
1929
+ clientSecret: z21.string().trim().min(1).max(2048).optional(),
1930
+ clear: z21.boolean().optional().default(false)
1896
1931
  }).refine((value) => value.clear || value.clientId !== void 0 || value.clientSecret !== void 0, { message: "Provide credentials or clear the stored Google Calendar OAuth configuration" });
1897
1932
  }
1898
1933
  });
1899
1934
 
1900
1935
  // ../packages/shared/dist/validators/cost.js
1901
- import { z as z21 } from "zod";
1936
+ import { z as z22 } from "zod";
1902
1937
  var createCostEventSchema, updateBudgetSchema;
1903
1938
  var init_cost = __esm({
1904
1939
  "../packages/shared/dist/validators/cost.js"() {
1905
1940
  "use strict";
1906
1941
  init_constants();
1907
- createCostEventSchema = z21.object({
1908
- agentId: z21.string().uuid(),
1909
- issueId: z21.string().uuid().optional().nullable(),
1910
- projectId: z21.string().uuid().optional().nullable(),
1911
- goalId: z21.string().uuid().optional().nullable(),
1912
- heartbeatRunId: z21.string().uuid().optional().nullable(),
1913
- billingCode: z21.string().optional().nullable(),
1914
- provider: z21.string().min(1),
1915
- biller: z21.string().min(1).optional(),
1916
- billingType: z21.enum(BILLING_TYPES).optional().default("unknown"),
1917
- model: z21.string().min(1),
1918
- inputTokens: z21.number().int().nonnegative().optional().default(0),
1919
- cachedInputTokens: z21.number().int().nonnegative().optional().default(0),
1920
- outputTokens: z21.number().int().nonnegative().optional().default(0),
1921
- costCents: z21.number().int().nonnegative(),
1922
- occurredAt: z21.string().datetime()
1942
+ createCostEventSchema = z22.object({
1943
+ agentId: z22.string().uuid(),
1944
+ issueId: z22.string().uuid().optional().nullable(),
1945
+ projectId: z22.string().uuid().optional().nullable(),
1946
+ goalId: z22.string().uuid().optional().nullable(),
1947
+ heartbeatRunId: z22.string().uuid().optional().nullable(),
1948
+ billingCode: z22.string().optional().nullable(),
1949
+ provider: z22.string().min(1),
1950
+ biller: z22.string().min(1).optional(),
1951
+ billingType: z22.enum(BILLING_TYPES).optional().default("unknown"),
1952
+ model: z22.string().min(1),
1953
+ inputTokens: z22.number().int().nonnegative().optional().default(0),
1954
+ cachedInputTokens: z22.number().int().nonnegative().optional().default(0),
1955
+ outputTokens: z22.number().int().nonnegative().optional().default(0),
1956
+ costCents: z22.number().int().nonnegative(),
1957
+ occurredAt: z22.string().datetime()
1923
1958
  }).transform((value) => ({
1924
1959
  ...value,
1925
1960
  biller: value.biller ?? value.provider
1926
1961
  }));
1927
- updateBudgetSchema = z21.object({
1928
- budgetMonthlyCents: z21.number().int().nonnegative()
1962
+ updateBudgetSchema = z22.object({
1963
+ budgetMonthlyCents: z22.number().int().nonnegative()
1929
1964
  });
1930
1965
  }
1931
1966
  });
1932
1967
 
1933
1968
  // ../packages/shared/dist/validators/finance.js
1934
- import { z as z22 } from "zod";
1969
+ import { z as z23 } from "zod";
1935
1970
  var createFinanceEventSchema;
1936
1971
  var init_finance = __esm({
1937
1972
  "../packages/shared/dist/validators/finance.js"() {
1938
1973
  "use strict";
1939
1974
  init_constants();
1940
- createFinanceEventSchema = z22.object({
1941
- agentId: z22.string().uuid().optional().nullable(),
1942
- issueId: z22.string().uuid().optional().nullable(),
1943
- projectId: z22.string().uuid().optional().nullable(),
1944
- goalId: z22.string().uuid().optional().nullable(),
1945
- heartbeatRunId: z22.string().uuid().optional().nullable(),
1946
- costEventId: z22.string().uuid().optional().nullable(),
1947
- billingCode: z22.string().optional().nullable(),
1948
- description: z22.string().max(500).optional().nullable(),
1949
- eventKind: z22.enum(FINANCE_EVENT_KINDS),
1950
- direction: z22.enum(FINANCE_DIRECTIONS).optional().default("debit"),
1951
- biller: z22.string().min(1),
1952
- provider: z22.string().min(1).optional().nullable(),
1953
- executionAgentRuntimeType: z22.enum(AGENT_RUNTIME_TYPES).optional().nullable(),
1954
- pricingTier: z22.string().min(1).optional().nullable(),
1955
- region: z22.string().min(1).optional().nullable(),
1956
- model: z22.string().min(1).optional().nullable(),
1957
- quantity: z22.number().int().nonnegative().optional().nullable(),
1958
- unit: z22.enum(FINANCE_UNITS).optional().nullable(),
1959
- amountCents: z22.number().int().nonnegative(),
1960
- currency: z22.string().length(3).optional().default("USD"),
1961
- estimated: z22.boolean().optional().default(false),
1962
- externalInvoiceId: z22.string().optional().nullable(),
1963
- metadataJson: z22.record(z22.string(), z22.unknown()).optional().nullable(),
1964
- occurredAt: z22.string().datetime()
1975
+ createFinanceEventSchema = z23.object({
1976
+ agentId: z23.string().uuid().optional().nullable(),
1977
+ issueId: z23.string().uuid().optional().nullable(),
1978
+ projectId: z23.string().uuid().optional().nullable(),
1979
+ goalId: z23.string().uuid().optional().nullable(),
1980
+ heartbeatRunId: z23.string().uuid().optional().nullable(),
1981
+ costEventId: z23.string().uuid().optional().nullable(),
1982
+ billingCode: z23.string().optional().nullable(),
1983
+ description: z23.string().max(500).optional().nullable(),
1984
+ eventKind: z23.enum(FINANCE_EVENT_KINDS),
1985
+ direction: z23.enum(FINANCE_DIRECTIONS).optional().default("debit"),
1986
+ biller: z23.string().min(1),
1987
+ provider: z23.string().min(1).optional().nullable(),
1988
+ executionAgentRuntimeType: z23.enum(AGENT_RUNTIME_TYPES).optional().nullable(),
1989
+ pricingTier: z23.string().min(1).optional().nullable(),
1990
+ region: z23.string().min(1).optional().nullable(),
1991
+ model: z23.string().min(1).optional().nullable(),
1992
+ quantity: z23.number().int().nonnegative().optional().nullable(),
1993
+ unit: z23.enum(FINANCE_UNITS).optional().nullable(),
1994
+ amountCents: z23.number().int().nonnegative(),
1995
+ currency: z23.string().length(3).optional().default("USD"),
1996
+ estimated: z23.boolean().optional().default(false),
1997
+ externalInvoiceId: z23.string().optional().nullable(),
1998
+ metadataJson: z23.record(z23.string(), z23.unknown()).optional().nullable(),
1999
+ occurredAt: z23.string().datetime()
1965
2000
  }).transform((value) => ({
1966
2001
  ...value,
1967
2002
  currency: value.currency.toUpperCase()
@@ -1970,79 +2005,79 @@ var init_finance = __esm({
1970
2005
  });
1971
2006
 
1972
2007
  // ../packages/shared/dist/validators/asset.js
1973
- import { z as z23 } from "zod";
2008
+ import { z as z24 } from "zod";
1974
2009
  var createAssetImageMetadataSchema;
1975
2010
  var init_asset = __esm({
1976
2011
  "../packages/shared/dist/validators/asset.js"() {
1977
2012
  "use strict";
1978
- createAssetImageMetadataSchema = z23.object({
1979
- namespace: z23.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()
2013
+ createAssetImageMetadataSchema = z24.object({
2014
+ namespace: z24.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()
1980
2015
  });
1981
2016
  }
1982
2017
  });
1983
2018
 
1984
2019
  // ../packages/shared/dist/validators/access.js
1985
- import { z as z24 } from "zod";
2020
+ import { z as z25 } from "zod";
1986
2021
  var createCompanyInviteSchema, createOpenClawInvitePromptSchema, acceptInviteSchema, listJoinRequestsQuerySchema, claimJoinRequestApiKeySchema, boardCliAuthAccessLevelSchema, createCliAuthChallengeSchema, resolveCliAuthChallengeSchema, updateMemberPermissionsSchema, updateUserCompanyAccessSchema;
1987
2022
  var init_access = __esm({
1988
2023
  "../packages/shared/dist/validators/access.js"() {
1989
2024
  "use strict";
1990
2025
  init_constants();
1991
- createCompanyInviteSchema = z24.object({
1992
- allowedJoinTypes: z24.enum(INVITE_JOIN_TYPES).default("both"),
1993
- defaultsPayload: z24.record(z24.string(), z24.unknown()).optional().nullable(),
1994
- agentMessage: z24.string().max(4e3).optional().nullable()
1995
- });
1996
- createOpenClawInvitePromptSchema = z24.object({
1997
- agentMessage: z24.string().max(4e3).optional().nullable()
1998
- });
1999
- acceptInviteSchema = z24.object({
2000
- requestType: z24.enum(JOIN_REQUEST_TYPES),
2001
- agentName: z24.string().min(1).max(120).optional(),
2002
- agentRuntimeType: z24.enum(AGENT_RUNTIME_TYPES).optional(),
2003
- capabilities: z24.string().max(4e3).optional().nullable(),
2004
- agentDefaultsPayload: z24.record(z24.string(), z24.unknown()).optional().nullable(),
2026
+ createCompanyInviteSchema = z25.object({
2027
+ allowedJoinTypes: z25.enum(INVITE_JOIN_TYPES).default("both"),
2028
+ defaultsPayload: z25.record(z25.string(), z25.unknown()).optional().nullable(),
2029
+ agentMessage: z25.string().max(4e3).optional().nullable()
2030
+ });
2031
+ createOpenClawInvitePromptSchema = z25.object({
2032
+ agentMessage: z25.string().max(4e3).optional().nullable()
2033
+ });
2034
+ acceptInviteSchema = z25.object({
2035
+ requestType: z25.enum(JOIN_REQUEST_TYPES),
2036
+ agentName: z25.string().min(1).max(120).optional(),
2037
+ agentRuntimeType: z25.enum(AGENT_RUNTIME_TYPES).optional(),
2038
+ capabilities: z25.string().max(4e3).optional().nullable(),
2039
+ agentDefaultsPayload: z25.record(z25.string(), z25.unknown()).optional().nullable(),
2005
2040
  // OpenClaw join compatibility fields accepted at top level.
2006
- responsesWebhookUrl: z24.string().max(4e3).optional().nullable(),
2007
- responsesWebhookMethod: z24.string().max(32).optional().nullable(),
2008
- responsesWebhookHeaders: z24.record(z24.string(), z24.unknown()).optional().nullable(),
2009
- rudderApiUrl: z24.string().max(4e3).optional().nullable(),
2010
- webhookAuthHeader: z24.string().max(4e3).optional().nullable()
2041
+ responsesWebhookUrl: z25.string().max(4e3).optional().nullable(),
2042
+ responsesWebhookMethod: z25.string().max(32).optional().nullable(),
2043
+ responsesWebhookHeaders: z25.record(z25.string(), z25.unknown()).optional().nullable(),
2044
+ rudderApiUrl: z25.string().max(4e3).optional().nullable(),
2045
+ webhookAuthHeader: z25.string().max(4e3).optional().nullable()
2011
2046
  });
2012
- listJoinRequestsQuerySchema = z24.object({
2013
- status: z24.enum(JOIN_REQUEST_STATUSES).optional(),
2014
- requestType: z24.enum(JOIN_REQUEST_TYPES).optional()
2047
+ listJoinRequestsQuerySchema = z25.object({
2048
+ status: z25.enum(JOIN_REQUEST_STATUSES).optional(),
2049
+ requestType: z25.enum(JOIN_REQUEST_TYPES).optional()
2015
2050
  });
2016
- claimJoinRequestApiKeySchema = z24.object({
2017
- claimSecret: z24.string().min(16).max(256)
2051
+ claimJoinRequestApiKeySchema = z25.object({
2052
+ claimSecret: z25.string().min(16).max(256)
2018
2053
  });
2019
- boardCliAuthAccessLevelSchema = z24.enum([
2054
+ boardCliAuthAccessLevelSchema = z25.enum([
2020
2055
  "board",
2021
2056
  "instance_admin_required"
2022
2057
  ]);
2023
- createCliAuthChallengeSchema = z24.object({
2024
- command: z24.string().min(1).max(240),
2025
- clientName: z24.string().max(120).optional().nullable(),
2058
+ createCliAuthChallengeSchema = z25.object({
2059
+ command: z25.string().min(1).max(240),
2060
+ clientName: z25.string().max(120).optional().nullable(),
2026
2061
  requestedAccess: boardCliAuthAccessLevelSchema.default("board"),
2027
- requestedCompanyId: z24.string().uuid().optional().nullable()
2062
+ requestedCompanyId: z25.string().uuid().optional().nullable()
2028
2063
  });
2029
- resolveCliAuthChallengeSchema = z24.object({
2030
- token: z24.string().min(16).max(256)
2064
+ resolveCliAuthChallengeSchema = z25.object({
2065
+ token: z25.string().min(16).max(256)
2031
2066
  });
2032
- updateMemberPermissionsSchema = z24.object({
2033
- grants: z24.array(z24.object({
2034
- permissionKey: z24.enum(PERMISSION_KEYS),
2035
- scope: z24.record(z24.string(), z24.unknown()).optional().nullable()
2067
+ updateMemberPermissionsSchema = z25.object({
2068
+ grants: z25.array(z25.object({
2069
+ permissionKey: z25.enum(PERMISSION_KEYS),
2070
+ scope: z25.record(z25.string(), z25.unknown()).optional().nullable()
2036
2071
  }))
2037
2072
  });
2038
- updateUserCompanyAccessSchema = z24.object({
2039
- orgIds: z24.array(z24.string().uuid()).default([])
2073
+ updateUserCompanyAccessSchema = z25.object({
2074
+ orgIds: z25.array(z25.string().uuid()).default([])
2040
2075
  });
2041
2076
  }
2042
2077
  });
2043
2078
 
2044
2079
  // ../packages/shared/dist/validators/plugin.js
2045
- import { z as z25 } from "zod";
2080
+ import { z as z26 } from "zod";
2046
2081
  function isValidCronExpression(expression) {
2047
2082
  const trimmed = expression.trim();
2048
2083
  if (!trimmed)
@@ -2057,79 +2092,79 @@ var init_plugin = __esm({
2057
2092
  "../packages/shared/dist/validators/plugin.js"() {
2058
2093
  "use strict";
2059
2094
  init_constants();
2060
- jsonSchemaSchema = z25.record(z25.unknown()).refine((val) => {
2095
+ jsonSchemaSchema = z26.record(z26.unknown()).refine((val) => {
2061
2096
  if (Object.keys(val).length === 0)
2062
2097
  return true;
2063
2098
  return typeof val.type === "string" || val.$ref !== void 0 || val.oneOf !== void 0 || val.anyOf !== void 0 || val.allOf !== void 0;
2064
2099
  }, { message: "Must be a valid JSON Schema object (requires at least a 'type', '$ref', or composition keyword)" });
2065
2100
  CRON_FIELD_PATTERN = /^(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?)(?:,(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?))*$/;
2066
- pluginJobDeclarationSchema = z25.object({
2067
- jobKey: z25.string().min(1),
2068
- displayName: z25.string().min(1),
2069
- description: z25.string().optional(),
2070
- schedule: z25.string().refine((val) => isValidCronExpression(val), { message: "schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')" }).optional()
2071
- });
2072
- pluginWebhookDeclarationSchema = z25.object({
2073
- endpointKey: z25.string().min(1),
2074
- displayName: z25.string().min(1),
2075
- description: z25.string().optional()
2076
- });
2077
- pluginToolDeclarationSchema = z25.object({
2078
- name: z25.string().min(1),
2079
- displayName: z25.string().min(1),
2080
- description: z25.string().min(1),
2101
+ pluginJobDeclarationSchema = z26.object({
2102
+ jobKey: z26.string().min(1),
2103
+ displayName: z26.string().min(1),
2104
+ description: z26.string().optional(),
2105
+ schedule: z26.string().refine((val) => isValidCronExpression(val), { message: "schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')" }).optional()
2106
+ });
2107
+ pluginWebhookDeclarationSchema = z26.object({
2108
+ endpointKey: z26.string().min(1),
2109
+ displayName: z26.string().min(1),
2110
+ description: z26.string().optional()
2111
+ });
2112
+ pluginToolDeclarationSchema = z26.object({
2113
+ name: z26.string().min(1),
2114
+ displayName: z26.string().min(1),
2115
+ description: z26.string().min(1),
2081
2116
  parametersSchema: jsonSchemaSchema
2082
2117
  });
2083
- pluginUiSlotDeclarationSchema = z25.object({
2084
- type: z25.enum(PLUGIN_UI_SLOT_TYPES),
2085
- id: z25.string().min(1),
2086
- displayName: z25.string().min(1),
2087
- exportName: z25.string().min(1),
2088
- entityTypes: z25.array(z25.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
2089
- routePath: z25.string().regex(/^[a-z0-9][a-z0-9-]*$/, {
2118
+ pluginUiSlotDeclarationSchema = z26.object({
2119
+ type: z26.enum(PLUGIN_UI_SLOT_TYPES),
2120
+ id: z26.string().min(1),
2121
+ displayName: z26.string().min(1),
2122
+ exportName: z26.string().min(1),
2123
+ entityTypes: z26.array(z26.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
2124
+ routePath: z26.string().regex(/^[a-z0-9][a-z0-9-]*$/, {
2090
2125
  message: "routePath must be a lowercase single-segment slug (letters, numbers, hyphens)"
2091
2126
  }).optional(),
2092
- order: z25.number().int().optional()
2127
+ order: z26.number().int().optional()
2093
2128
  }).superRefine((value, ctx) => {
2094
2129
  const entityScopedTypes = ["detailTab", "taskDetailView", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "projectSidebarItem"];
2095
2130
  if (entityScopedTypes.includes(value.type) && (!value.entityTypes || value.entityTypes.length === 0)) {
2096
2131
  ctx.addIssue({
2097
- code: z25.ZodIssueCode.custom,
2132
+ code: z26.ZodIssueCode.custom,
2098
2133
  message: `${value.type} slots require at least one entityType`,
2099
2134
  path: ["entityTypes"]
2100
2135
  });
2101
2136
  }
2102
2137
  if (value.type === "projectSidebarItem" && value.entityTypes && !value.entityTypes.includes("project")) {
2103
2138
  ctx.addIssue({
2104
- code: z25.ZodIssueCode.custom,
2139
+ code: z26.ZodIssueCode.custom,
2105
2140
  message: 'projectSidebarItem slots require entityTypes to include "project"',
2106
2141
  path: ["entityTypes"]
2107
2142
  });
2108
2143
  }
2109
2144
  if (value.type === "commentAnnotation" && value.entityTypes && !value.entityTypes.includes("comment")) {
2110
2145
  ctx.addIssue({
2111
- code: z25.ZodIssueCode.custom,
2146
+ code: z26.ZodIssueCode.custom,
2112
2147
  message: 'commentAnnotation slots require entityTypes to include "comment"',
2113
2148
  path: ["entityTypes"]
2114
2149
  });
2115
2150
  }
2116
2151
  if (value.type === "commentContextMenuItem" && value.entityTypes && !value.entityTypes.includes("comment")) {
2117
2152
  ctx.addIssue({
2118
- code: z25.ZodIssueCode.custom,
2153
+ code: z26.ZodIssueCode.custom,
2119
2154
  message: 'commentContextMenuItem slots require entityTypes to include "comment"',
2120
2155
  path: ["entityTypes"]
2121
2156
  });
2122
2157
  }
2123
2158
  if (value.routePath && value.type !== "page") {
2124
2159
  ctx.addIssue({
2125
- code: z25.ZodIssueCode.custom,
2160
+ code: z26.ZodIssueCode.custom,
2126
2161
  message: "routePath is only supported for page slots",
2127
2162
  path: ["routePath"]
2128
2163
  });
2129
2164
  }
2130
2165
  if (value.routePath && PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS.includes(value.routePath)) {
2131
2166
  ctx.addIssue({
2132
- code: z25.ZodIssueCode.custom,
2167
+ code: z26.ZodIssueCode.custom,
2133
2168
  message: `routePath "${value.routePath}" is reserved by the host`,
2134
2169
  path: ["routePath"]
2135
2170
  });
@@ -2150,29 +2185,29 @@ var init_plugin = __esm({
2150
2185
  external: [],
2151
2186
  iframe: ["compact", "default", "wide", "full"]
2152
2187
  };
2153
- pluginLauncherActionDeclarationSchema = z25.object({
2154
- type: z25.enum(PLUGIN_LAUNCHER_ACTIONS),
2155
- target: z25.string().min(1),
2156
- params: z25.record(z25.unknown()).optional()
2188
+ pluginLauncherActionDeclarationSchema = z26.object({
2189
+ type: z26.enum(PLUGIN_LAUNCHER_ACTIONS),
2190
+ target: z26.string().min(1),
2191
+ params: z26.record(z26.unknown()).optional()
2157
2192
  }).superRefine((value, ctx) => {
2158
2193
  if (value.type === "performAction" && value.target.includes("/")) {
2159
2194
  ctx.addIssue({
2160
- code: z25.ZodIssueCode.custom,
2195
+ code: z26.ZodIssueCode.custom,
2161
2196
  message: "performAction launchers must target an action key, not a route or URL",
2162
2197
  path: ["target"]
2163
2198
  });
2164
2199
  }
2165
2200
  if (value.type === "navigate" && /^https?:\/\//.test(value.target)) {
2166
2201
  ctx.addIssue({
2167
- code: z25.ZodIssueCode.custom,
2202
+ code: z26.ZodIssueCode.custom,
2168
2203
  message: "navigate launchers must target a host route, not an absolute URL",
2169
2204
  path: ["target"]
2170
2205
  });
2171
2206
  }
2172
2207
  });
2173
- pluginLauncherRenderDeclarationSchema = z25.object({
2174
- environment: z25.enum(PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS),
2175
- bounds: z25.enum(PLUGIN_LAUNCHER_BOUNDS).optional()
2208
+ pluginLauncherRenderDeclarationSchema = z26.object({
2209
+ environment: z26.enum(PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS),
2210
+ bounds: z26.enum(PLUGIN_LAUNCHER_BOUNDS).optional()
2176
2211
  }).superRefine((value, ctx) => {
2177
2212
  if (!value.bounds) {
2178
2213
  return;
@@ -2180,110 +2215,110 @@ var init_plugin = __esm({
2180
2215
  const supportedBounds = launcherBoundsByEnvironment[value.environment];
2181
2216
  if (!supportedBounds.includes(value.bounds)) {
2182
2217
  ctx.addIssue({
2183
- code: z25.ZodIssueCode.custom,
2218
+ code: z26.ZodIssueCode.custom,
2184
2219
  message: `bounds "${value.bounds}" is not supported for render environment "${value.environment}"`,
2185
2220
  path: ["bounds"]
2186
2221
  });
2187
2222
  }
2188
2223
  });
2189
- pluginLauncherDeclarationSchema = z25.object({
2190
- id: z25.string().min(1),
2191
- displayName: z25.string().min(1),
2192
- description: z25.string().optional(),
2193
- placementZone: z25.enum(PLUGIN_LAUNCHER_PLACEMENT_ZONES),
2194
- exportName: z25.string().min(1).optional(),
2195
- entityTypes: z25.array(z25.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
2196
- order: z25.number().int().optional(),
2224
+ pluginLauncherDeclarationSchema = z26.object({
2225
+ id: z26.string().min(1),
2226
+ displayName: z26.string().min(1),
2227
+ description: z26.string().optional(),
2228
+ placementZone: z26.enum(PLUGIN_LAUNCHER_PLACEMENT_ZONES),
2229
+ exportName: z26.string().min(1).optional(),
2230
+ entityTypes: z26.array(z26.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
2231
+ order: z26.number().int().optional(),
2197
2232
  action: pluginLauncherActionDeclarationSchema,
2198
2233
  render: pluginLauncherRenderDeclarationSchema.optional()
2199
2234
  }).superRefine((value, ctx) => {
2200
2235
  if (entityScopedLauncherPlacementZones.some((zone) => zone === value.placementZone) && (!value.entityTypes || value.entityTypes.length === 0)) {
2201
2236
  ctx.addIssue({
2202
- code: z25.ZodIssueCode.custom,
2237
+ code: z26.ZodIssueCode.custom,
2203
2238
  message: `${value.placementZone} launchers require at least one entityType`,
2204
2239
  path: ["entityTypes"]
2205
2240
  });
2206
2241
  }
2207
2242
  if (value.placementZone === "projectSidebarItem" && value.entityTypes && !value.entityTypes.includes("project")) {
2208
2243
  ctx.addIssue({
2209
- code: z25.ZodIssueCode.custom,
2244
+ code: z26.ZodIssueCode.custom,
2210
2245
  message: 'projectSidebarItem launchers require entityTypes to include "project"',
2211
2246
  path: ["entityTypes"]
2212
2247
  });
2213
2248
  }
2214
2249
  if (value.action.type === "performAction" && value.render) {
2215
2250
  ctx.addIssue({
2216
- code: z25.ZodIssueCode.custom,
2251
+ code: z26.ZodIssueCode.custom,
2217
2252
  message: "performAction launchers cannot declare render hints",
2218
2253
  path: ["render"]
2219
2254
  });
2220
2255
  }
2221
2256
  if (["openModal", "openDrawer", "openPopover"].includes(value.action.type) && !value.render) {
2222
2257
  ctx.addIssue({
2223
- code: z25.ZodIssueCode.custom,
2258
+ code: z26.ZodIssueCode.custom,
2224
2259
  message: `${value.action.type} launchers require render metadata`,
2225
2260
  path: ["render"]
2226
2261
  });
2227
2262
  }
2228
2263
  if (value.action.type === "openModal" && value.render?.environment === "hostInline") {
2229
2264
  ctx.addIssue({
2230
- code: z25.ZodIssueCode.custom,
2265
+ code: z26.ZodIssueCode.custom,
2231
2266
  message: "openModal launchers cannot use the hostInline render environment",
2232
2267
  path: ["render", "environment"]
2233
2268
  });
2234
2269
  }
2235
2270
  if (value.action.type === "openDrawer" && value.render && !["hostOverlay", "iframe"].includes(value.render.environment)) {
2236
2271
  ctx.addIssue({
2237
- code: z25.ZodIssueCode.custom,
2272
+ code: z26.ZodIssueCode.custom,
2238
2273
  message: "openDrawer launchers must use hostOverlay or iframe render environments",
2239
2274
  path: ["render", "environment"]
2240
2275
  });
2241
2276
  }
2242
2277
  if (value.action.type === "openPopover" && value.render?.environment === "hostRoute") {
2243
2278
  ctx.addIssue({
2244
- code: z25.ZodIssueCode.custom,
2279
+ code: z26.ZodIssueCode.custom,
2245
2280
  message: "openPopover launchers cannot use the hostRoute render environment",
2246
2281
  path: ["render", "environment"]
2247
2282
  });
2248
2283
  }
2249
2284
  });
2250
- pluginManifestV1Schema = z25.object({
2251
- id: z25.string().min(1).regex(/^[a-z0-9][a-z0-9._-]*$/, "Plugin id must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores"),
2252
- apiVersion: z25.literal(1),
2253
- version: z25.string().min(1).regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "Version must follow semver (e.g. 1.0.0 or 1.0.0-beta.1)"),
2254
- displayName: z25.string().min(1).max(100),
2255
- description: z25.string().min(1).max(500),
2256
- author: z25.string().min(1).max(200),
2257
- categories: z25.array(z25.enum(PLUGIN_CATEGORIES)).min(1),
2258
- minimumHostVersion: z25.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "minimumHostVersion must follow semver (e.g. 1.0.0)").optional(),
2259
- minimumPaperclipVersion: z25.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "minimumPaperclipVersion must follow semver (e.g. 1.0.0)").optional(),
2260
- capabilities: z25.array(z25.enum(PLUGIN_CAPABILITIES)).min(1),
2261
- entrypoints: z25.object({
2262
- worker: z25.string().min(1),
2263
- ui: z25.string().min(1).optional()
2285
+ pluginManifestV1Schema = z26.object({
2286
+ id: z26.string().min(1).regex(/^[a-z0-9][a-z0-9._-]*$/, "Plugin id must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores"),
2287
+ apiVersion: z26.literal(1),
2288
+ version: z26.string().min(1).regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "Version must follow semver (e.g. 1.0.0 or 1.0.0-beta.1)"),
2289
+ displayName: z26.string().min(1).max(100),
2290
+ description: z26.string().min(1).max(500),
2291
+ author: z26.string().min(1).max(200),
2292
+ categories: z26.array(z26.enum(PLUGIN_CATEGORIES)).min(1),
2293
+ minimumHostVersion: z26.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "minimumHostVersion must follow semver (e.g. 1.0.0)").optional(),
2294
+ minimumPaperclipVersion: z26.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/, "minimumPaperclipVersion must follow semver (e.g. 1.0.0)").optional(),
2295
+ capabilities: z26.array(z26.enum(PLUGIN_CAPABILITIES)).min(1),
2296
+ entrypoints: z26.object({
2297
+ worker: z26.string().min(1),
2298
+ ui: z26.string().min(1).optional()
2264
2299
  }),
2265
2300
  instanceConfigSchema: jsonSchemaSchema.optional(),
2266
- jobs: z25.array(pluginJobDeclarationSchema).optional(),
2267
- webhooks: z25.array(pluginWebhookDeclarationSchema).optional(),
2268
- tools: z25.array(pluginToolDeclarationSchema).optional(),
2269
- launchers: z25.array(pluginLauncherDeclarationSchema).optional(),
2270
- ui: z25.object({
2271
- slots: z25.array(pluginUiSlotDeclarationSchema).min(1).optional(),
2272
- launchers: z25.array(pluginLauncherDeclarationSchema).optional()
2301
+ jobs: z26.array(pluginJobDeclarationSchema).optional(),
2302
+ webhooks: z26.array(pluginWebhookDeclarationSchema).optional(),
2303
+ tools: z26.array(pluginToolDeclarationSchema).optional(),
2304
+ launchers: z26.array(pluginLauncherDeclarationSchema).optional(),
2305
+ ui: z26.object({
2306
+ slots: z26.array(pluginUiSlotDeclarationSchema).min(1).optional(),
2307
+ launchers: z26.array(pluginLauncherDeclarationSchema).optional()
2273
2308
  }).optional()
2274
2309
  }).superRefine((manifest, ctx) => {
2275
2310
  const hasUiSlots = (manifest.ui?.slots?.length ?? 0) > 0;
2276
2311
  const hasUiLaunchers = (manifest.ui?.launchers?.length ?? 0) > 0;
2277
2312
  if ((hasUiSlots || hasUiLaunchers) && !manifest.entrypoints.ui) {
2278
2313
  ctx.addIssue({
2279
- code: z25.ZodIssueCode.custom,
2314
+ code: z26.ZodIssueCode.custom,
2280
2315
  message: "entrypoints.ui is required when ui.slots or ui.launchers are declared",
2281
2316
  path: ["entrypoints", "ui"]
2282
2317
  });
2283
2318
  }
2284
2319
  if (manifest.minimumHostVersion && manifest.minimumPaperclipVersion && manifest.minimumHostVersion !== manifest.minimumPaperclipVersion) {
2285
2320
  ctx.addIssue({
2286
- code: z25.ZodIssueCode.custom,
2321
+ code: z26.ZodIssueCode.custom,
2287
2322
  message: "minimumHostVersion and minimumPaperclipVersion must match when both are declared",
2288
2323
  path: ["minimumHostVersion"]
2289
2324
  });
@@ -2291,7 +2326,7 @@ var init_plugin = __esm({
2291
2326
  if (manifest.tools && manifest.tools.length > 0) {
2292
2327
  if (!manifest.capabilities.includes("agent.tools.register")) {
2293
2328
  ctx.addIssue({
2294
- code: z25.ZodIssueCode.custom,
2329
+ code: z26.ZodIssueCode.custom,
2295
2330
  message: "Capability 'agent.tools.register' is required when tools are declared",
2296
2331
  path: ["capabilities"]
2297
2332
  });
@@ -2300,7 +2335,7 @@ var init_plugin = __esm({
2300
2335
  if (manifest.jobs && manifest.jobs.length > 0) {
2301
2336
  if (!manifest.capabilities.includes("jobs.schedule")) {
2302
2337
  ctx.addIssue({
2303
- code: z25.ZodIssueCode.custom,
2338
+ code: z26.ZodIssueCode.custom,
2304
2339
  message: "Capability 'jobs.schedule' is required when jobs are declared",
2305
2340
  path: ["capabilities"]
2306
2341
  });
@@ -2309,7 +2344,7 @@ var init_plugin = __esm({
2309
2344
  if (manifest.webhooks && manifest.webhooks.length > 0) {
2310
2345
  if (!manifest.capabilities.includes("webhooks.receive")) {
2311
2346
  ctx.addIssue({
2312
- code: z25.ZodIssueCode.custom,
2347
+ code: z26.ZodIssueCode.custom,
2313
2348
  message: "Capability 'webhooks.receive' is required when webhooks are declared",
2314
2349
  path: ["capabilities"]
2315
2350
  });
@@ -2320,7 +2355,7 @@ var init_plugin = __esm({
2320
2355
  const duplicates = jobKeys.filter((key, i) => jobKeys.indexOf(key) !== i);
2321
2356
  if (duplicates.length > 0) {
2322
2357
  ctx.addIssue({
2323
- code: z25.ZodIssueCode.custom,
2358
+ code: z26.ZodIssueCode.custom,
2324
2359
  message: `Duplicate job keys: ${[...new Set(duplicates)].join(", ")}`,
2325
2360
  path: ["jobs"]
2326
2361
  });
@@ -2331,7 +2366,7 @@ var init_plugin = __esm({
2331
2366
  const duplicates = endpointKeys.filter((key, i) => endpointKeys.indexOf(key) !== i);
2332
2367
  if (duplicates.length > 0) {
2333
2368
  ctx.addIssue({
2334
- code: z25.ZodIssueCode.custom,
2369
+ code: z26.ZodIssueCode.custom,
2335
2370
  message: `Duplicate webhook endpoint keys: ${[...new Set(duplicates)].join(", ")}`,
2336
2371
  path: ["webhooks"]
2337
2372
  });
@@ -2342,7 +2377,7 @@ var init_plugin = __esm({
2342
2377
  const duplicates = toolNames.filter((name, i) => toolNames.indexOf(name) !== i);
2343
2378
  if (duplicates.length > 0) {
2344
2379
  ctx.addIssue({
2345
- code: z25.ZodIssueCode.custom,
2380
+ code: z26.ZodIssueCode.custom,
2346
2381
  message: `Duplicate tool names: ${[...new Set(duplicates)].join(", ")}`,
2347
2382
  path: ["tools"]
2348
2383
  });
@@ -2354,7 +2389,7 @@ var init_plugin = __esm({
2354
2389
  const duplicates = slotIds.filter((id, i) => slotIds.indexOf(id) !== i);
2355
2390
  if (duplicates.length > 0) {
2356
2391
  ctx.addIssue({
2357
- code: z25.ZodIssueCode.custom,
2392
+ code: z26.ZodIssueCode.custom,
2358
2393
  message: `Duplicate UI slot ids: ${[...new Set(duplicates)].join(", ")}`,
2359
2394
  path: ["ui", "slots"]
2360
2395
  });
@@ -2370,50 +2405,50 @@ var init_plugin = __esm({
2370
2405
  const duplicates = launcherIds.filter((id, i) => launcherIds.indexOf(id) !== i);
2371
2406
  if (duplicates.length > 0) {
2372
2407
  ctx.addIssue({
2373
- code: z25.ZodIssueCode.custom,
2408
+ code: z26.ZodIssueCode.custom,
2374
2409
  message: `Duplicate launcher ids: ${[...new Set(duplicates)].join(", ")}`,
2375
2410
  path: manifest.ui?.launchers ? ["ui", "launchers"] : ["launchers"]
2376
2411
  });
2377
2412
  }
2378
2413
  }
2379
2414
  });
2380
- installPluginSchema = z25.object({
2381
- packageName: z25.string().min(1),
2382
- version: z25.string().min(1).optional(),
2415
+ installPluginSchema = z26.object({
2416
+ packageName: z26.string().min(1),
2417
+ version: z26.string().min(1).optional(),
2383
2418
  /** Set by loader for local-path installs so the worker can be resolved. */
2384
- packagePath: z25.string().min(1).optional()
2419
+ packagePath: z26.string().min(1).optional()
2385
2420
  });
2386
- upsertPluginConfigSchema = z25.object({
2387
- configJson: z25.record(z25.unknown())
2421
+ upsertPluginConfigSchema = z26.object({
2422
+ configJson: z26.record(z26.unknown())
2388
2423
  });
2389
- patchPluginConfigSchema = z25.object({
2390
- configJson: z25.record(z25.unknown())
2424
+ patchPluginConfigSchema = z26.object({
2425
+ configJson: z26.record(z26.unknown())
2391
2426
  });
2392
- updatePluginStatusSchema = z25.object({
2393
- status: z25.enum(PLUGIN_STATUSES),
2394
- lastError: z25.string().nullable().optional()
2427
+ updatePluginStatusSchema = z26.object({
2428
+ status: z26.enum(PLUGIN_STATUSES),
2429
+ lastError: z26.string().nullable().optional()
2395
2430
  });
2396
- uninstallPluginSchema = z25.object({
2397
- removeData: z25.boolean().optional().default(false)
2431
+ uninstallPluginSchema = z26.object({
2432
+ removeData: z26.boolean().optional().default(false)
2398
2433
  });
2399
- pluginStateScopeKeySchema = z25.object({
2400
- scopeKind: z25.enum(PLUGIN_STATE_SCOPE_KINDS),
2401
- scopeId: z25.string().min(1).optional(),
2402
- namespace: z25.string().min(1).optional(),
2403
- stateKey: z25.string().min(1)
2434
+ pluginStateScopeKeySchema = z26.object({
2435
+ scopeKind: z26.enum(PLUGIN_STATE_SCOPE_KINDS),
2436
+ scopeId: z26.string().min(1).optional(),
2437
+ namespace: z26.string().min(1).optional(),
2438
+ stateKey: z26.string().min(1)
2404
2439
  });
2405
- setPluginStateSchema = z25.object({
2406
- scopeKind: z25.enum(PLUGIN_STATE_SCOPE_KINDS),
2407
- scopeId: z25.string().min(1).optional(),
2408
- namespace: z25.string().min(1).optional(),
2409
- stateKey: z25.string().min(1),
2440
+ setPluginStateSchema = z26.object({
2441
+ scopeKind: z26.enum(PLUGIN_STATE_SCOPE_KINDS),
2442
+ scopeId: z26.string().min(1).optional(),
2443
+ namespace: z26.string().min(1).optional(),
2444
+ stateKey: z26.string().min(1),
2410
2445
  /** JSON-serializable value to store. */
2411
- value: z25.unknown()
2446
+ value: z26.unknown()
2412
2447
  });
2413
- listPluginStateSchema = z25.object({
2414
- scopeKind: z25.enum(PLUGIN_STATE_SCOPE_KINDS).optional(),
2415
- scopeId: z25.string().min(1).optional(),
2416
- namespace: z25.string().min(1).optional()
2448
+ listPluginStateSchema = z26.object({
2449
+ scopeKind: z26.enum(PLUGIN_STATE_SCOPE_KINDS).optional(),
2450
+ scopeId: z26.string().min(1).optional(),
2451
+ namespace: z26.string().min(1).optional()
2417
2452
  });
2418
2453
  }
2419
2454
  });
@@ -2425,6 +2460,7 @@ var init_validators = __esm({
2425
2460
  init_instance();
2426
2461
  init_budget();
2427
2462
  init_organization();
2463
+ init_organization_intelligence_profile();
2428
2464
  init_resource();
2429
2465
  init_chat();
2430
2466
  init_organization_skill();
@@ -2545,32 +2581,32 @@ var init_project_mentions = __esm({
2545
2581
  });
2546
2582
 
2547
2583
  // ../packages/shared/dist/config-schema.js
2548
- import { z as z26 } from "zod";
2584
+ import { z as z27 } from "zod";
2549
2585
  var configMetaSchema, llmConfigSchema, databaseBackupConfigSchema, databaseConfigSchema, loggingConfigSchema, serverConfigSchema, authConfigSchema, storageLocalDiskConfigSchema, storageS3ConfigSchema, storageConfigSchema, secretsLocalEncryptedConfigSchema, secretsConfigSchema, langfuseConfigSchema, rudderConfigSchema;
2550
2586
  var init_config_schema = __esm({
2551
2587
  "../packages/shared/dist/config-schema.js"() {
2552
2588
  "use strict";
2553
2589
  init_constants();
2554
- configMetaSchema = z26.object({
2555
- version: z26.literal(1),
2556
- updatedAt: z26.string(),
2557
- source: z26.enum(["onboard", "configure", "doctor"])
2558
- });
2559
- llmConfigSchema = z26.object({
2560
- provider: z26.enum(["claude", "openai"]),
2561
- apiKey: z26.string().optional()
2562
- });
2563
- databaseBackupConfigSchema = z26.object({
2564
- enabled: z26.boolean().default(true),
2565
- intervalMinutes: z26.number().int().min(1).max(7 * 24 * 60).default(60),
2566
- retentionDays: z26.number().int().min(1).max(3650).default(30),
2567
- dir: z26.string().default("~/.rudder/instances/default/data/backups")
2568
- });
2569
- databaseConfigSchema = z26.object({
2570
- mode: z26.enum(["embedded-postgres", "postgres"]).default("embedded-postgres"),
2571
- connectionString: z26.string().optional(),
2572
- embeddedPostgresDataDir: z26.string().default("~/.rudder/instances/default/db"),
2573
- embeddedPostgresPort: z26.number().int().min(1).max(65535).default(54329),
2590
+ configMetaSchema = z27.object({
2591
+ version: z27.literal(1),
2592
+ updatedAt: z27.string(),
2593
+ source: z27.enum(["onboard", "configure", "doctor"])
2594
+ });
2595
+ llmConfigSchema = z27.object({
2596
+ provider: z27.enum(["claude", "openai"]),
2597
+ apiKey: z27.string().optional()
2598
+ });
2599
+ databaseBackupConfigSchema = z27.object({
2600
+ enabled: z27.boolean().default(true),
2601
+ intervalMinutes: z27.number().int().min(1).max(7 * 24 * 60).default(60),
2602
+ retentionDays: z27.number().int().min(1).max(3650).default(30),
2603
+ dir: z27.string().default("~/.rudder/instances/default/data/backups")
2604
+ });
2605
+ databaseConfigSchema = z27.object({
2606
+ mode: z27.enum(["embedded-postgres", "postgres"]).default("embedded-postgres"),
2607
+ connectionString: z27.string().optional(),
2608
+ embeddedPostgresDataDir: z27.string().default("~/.rudder/instances/default/db"),
2609
+ embeddedPostgresPort: z27.number().int().min(1).max(65535).default(54329),
2574
2610
  backup: databaseBackupConfigSchema.default({
2575
2611
  enabled: true,
2576
2612
  intervalMinutes: 60,
@@ -2578,35 +2614,35 @@ var init_config_schema = __esm({
2578
2614
  dir: "~/.rudder/instances/default/data/backups"
2579
2615
  })
2580
2616
  });
2581
- loggingConfigSchema = z26.object({
2582
- mode: z26.enum(["file", "cloud"]),
2583
- logDir: z26.string().default("~/.rudder/instances/default/logs")
2584
- });
2585
- serverConfigSchema = z26.object({
2586
- deploymentMode: z26.enum(DEPLOYMENT_MODES).default("local_trusted"),
2587
- exposure: z26.enum(DEPLOYMENT_EXPOSURES).default("private"),
2588
- host: z26.string().default("127.0.0.1"),
2589
- port: z26.number().int().min(1).max(65535).default(3100),
2590
- allowedHostnames: z26.array(z26.string().min(1)).default([]),
2591
- serveUi: z26.boolean().default(true)
2592
- });
2593
- authConfigSchema = z26.object({
2594
- baseUrlMode: z26.enum(AUTH_BASE_URL_MODES).default("auto"),
2595
- publicBaseUrl: z26.string().url().optional(),
2596
- disableSignUp: z26.boolean().default(false)
2597
- });
2598
- storageLocalDiskConfigSchema = z26.object({
2599
- baseDir: z26.string().default("~/.rudder/instances/default/data/storage")
2600
- });
2601
- storageS3ConfigSchema = z26.object({
2602
- bucket: z26.string().min(1).default("rudder"),
2603
- region: z26.string().min(1).default("us-east-1"),
2604
- endpoint: z26.string().optional(),
2605
- prefix: z26.string().default(""),
2606
- forcePathStyle: z26.boolean().default(false)
2607
- });
2608
- storageConfigSchema = z26.object({
2609
- provider: z26.enum(STORAGE_PROVIDERS).default("local_disk"),
2617
+ loggingConfigSchema = z27.object({
2618
+ mode: z27.enum(["file", "cloud"]),
2619
+ logDir: z27.string().default("~/.rudder/instances/default/logs")
2620
+ });
2621
+ serverConfigSchema = z27.object({
2622
+ deploymentMode: z27.enum(DEPLOYMENT_MODES).default("local_trusted"),
2623
+ exposure: z27.enum(DEPLOYMENT_EXPOSURES).default("private"),
2624
+ host: z27.string().default("127.0.0.1"),
2625
+ port: z27.number().int().min(1).max(65535).default(3100),
2626
+ allowedHostnames: z27.array(z27.string().min(1)).default([]),
2627
+ serveUi: z27.boolean().default(true)
2628
+ });
2629
+ authConfigSchema = z27.object({
2630
+ baseUrlMode: z27.enum(AUTH_BASE_URL_MODES).default("auto"),
2631
+ publicBaseUrl: z27.string().url().optional(),
2632
+ disableSignUp: z27.boolean().default(false)
2633
+ });
2634
+ storageLocalDiskConfigSchema = z27.object({
2635
+ baseDir: z27.string().default("~/.rudder/instances/default/data/storage")
2636
+ });
2637
+ storageS3ConfigSchema = z27.object({
2638
+ bucket: z27.string().min(1).default("rudder"),
2639
+ region: z27.string().min(1).default("us-east-1"),
2640
+ endpoint: z27.string().optional(),
2641
+ prefix: z27.string().default(""),
2642
+ forcePathStyle: z27.boolean().default(false)
2643
+ });
2644
+ storageConfigSchema = z27.object({
2645
+ provider: z27.enum(STORAGE_PROVIDERS).default("local_disk"),
2610
2646
  localDisk: storageLocalDiskConfigSchema.default({
2611
2647
  baseDir: "~/.rudder/instances/default/data/storage"
2612
2648
  }),
@@ -2617,24 +2653,24 @@ var init_config_schema = __esm({
2617
2653
  forcePathStyle: false
2618
2654
  })
2619
2655
  });
2620
- secretsLocalEncryptedConfigSchema = z26.object({
2621
- keyFilePath: z26.string().default("~/.rudder/instances/default/secrets/master.key")
2656
+ secretsLocalEncryptedConfigSchema = z27.object({
2657
+ keyFilePath: z27.string().default("~/.rudder/instances/default/secrets/master.key")
2622
2658
  });
2623
- secretsConfigSchema = z26.object({
2624
- provider: z26.enum(SECRET_PROVIDERS).default("local_encrypted"),
2625
- strictMode: z26.boolean().default(false),
2659
+ secretsConfigSchema = z27.object({
2660
+ provider: z27.enum(SECRET_PROVIDERS).default("local_encrypted"),
2661
+ strictMode: z27.boolean().default(false),
2626
2662
  localEncrypted: secretsLocalEncryptedConfigSchema.default({
2627
2663
  keyFilePath: "~/.rudder/instances/default/secrets/master.key"
2628
2664
  })
2629
2665
  });
2630
- langfuseConfigSchema = z26.object({
2631
- enabled: z26.boolean().default(false),
2632
- baseUrl: z26.string().url().default("http://localhost:3000"),
2633
- publicKey: z26.string().optional(),
2634
- secretKey: z26.string().optional(),
2635
- environment: z26.string().optional()
2666
+ langfuseConfigSchema = z27.object({
2667
+ enabled: z27.boolean().default(false),
2668
+ baseUrl: z27.string().url().default("http://localhost:3000"),
2669
+ publicKey: z27.string().optional(),
2670
+ secretKey: z27.string().optional(),
2671
+ environment: z27.string().optional()
2636
2672
  });
2637
- rudderConfigSchema = z26.object({
2673
+ rudderConfigSchema = z27.object({
2638
2674
  $meta: configMetaSchema,
2639
2675
  llm: llmConfigSchema.optional(),
2640
2676
  database: databaseConfigSchema,
@@ -2668,7 +2704,7 @@ var init_config_schema = __esm({
2668
2704
  if (value.server.deploymentMode === "local_trusted") {
2669
2705
  if (value.server.exposure !== "private") {
2670
2706
  ctx.addIssue({
2671
- code: z26.ZodIssueCode.custom,
2707
+ code: z27.ZodIssueCode.custom,
2672
2708
  message: "server.exposure must be private when deploymentMode is local_trusted",
2673
2709
  path: ["server", "exposure"]
2674
2710
  });
@@ -2677,21 +2713,21 @@ var init_config_schema = __esm({
2677
2713
  }
2678
2714
  if (value.auth.baseUrlMode === "explicit" && !value.auth.publicBaseUrl) {
2679
2715
  ctx.addIssue({
2680
- code: z26.ZodIssueCode.custom,
2716
+ code: z27.ZodIssueCode.custom,
2681
2717
  message: "auth.publicBaseUrl is required when auth.baseUrlMode is explicit",
2682
2718
  path: ["auth", "publicBaseUrl"]
2683
2719
  });
2684
2720
  }
2685
2721
  if (value.server.exposure === "public" && value.auth.baseUrlMode !== "explicit") {
2686
2722
  ctx.addIssue({
2687
- code: z26.ZodIssueCode.custom,
2723
+ code: z27.ZodIssueCode.custom,
2688
2724
  message: "auth.baseUrlMode must be explicit when deploymentMode=authenticated and exposure=public",
2689
2725
  path: ["auth", "baseUrlMode"]
2690
2726
  });
2691
2727
  }
2692
2728
  if (value.server.exposure === "public" && !value.auth.publicBaseUrl) {
2693
2729
  ctx.addIssue({
2694
- code: z26.ZodIssueCode.custom,
2730
+ code: z27.ZodIssueCode.custom,
2695
2731
  message: "auth.publicBaseUrl is required when deploymentMode=authenticated and exposure=public",
2696
2732
  path: ["auth", "publicBaseUrl"]
2697
2733
  });