@rudderhq/cli 0.3.5-canary.23 → 0.3.5-canary.25

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
@@ -114,7 +114,7 @@ var init_home = __esm({
114
114
  });
115
115
 
116
116
  // ../packages/shared/dist/constants.js
117
- 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, ORGANIZATION_RESOURCE_SOURCE_TYPES, PROJECT_RESOURCE_ATTACHMENT_ROLES, AUTOMATION_STATUSES, AUTOMATION_CONCURRENCY_POLICIES, AUTOMATION_CATCH_UP_POLICIES, AUTOMATION_OUTPUT_MODES, AUTOMATION_TRIGGER_SIGNING_MODES, PROJECT_COLORS, PROJECT_ICONS, 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;
117
+ 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, AGENT_INTEGRATION_PROVIDERS, AGENT_INTEGRATION_STATUSES, AGENT_INTEGRATION_TRANSPORTS, AGENT_INTEGRATION_PROVIDER_REGIONS, AGENT_INTEGRATION_CHAT_TYPES, AGENT_INTEGRATION_DROP_REASONS, AGENT_INTEGRATION_OUTBOUND_STATUSES, 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, ORGANIZATION_RESOURCE_SOURCE_TYPES, PROJECT_RESOURCE_ATTACHMENT_ROLES, AUTOMATION_STATUSES, AUTOMATION_CONCURRENCY_POLICIES, AUTOMATION_CATCH_UP_POLICIES, AUTOMATION_OUTPUT_MODES, AUTOMATION_TRIGGER_SIGNING_MODES, PROJECT_COLORS, PROJECT_ICONS, 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;
118
118
  var init_constants = __esm({
119
119
  "../packages/shared/dist/constants.js"() {
120
120
  "use strict";
@@ -220,6 +220,22 @@ var init_constants = __esm({
220
220
  "cancelled"
221
221
  ];
222
222
  ISSUE_PRIORITIES = ["critical", "high", "medium", "low"];
223
+ AGENT_INTEGRATION_PROVIDERS = ["feishu"];
224
+ AGENT_INTEGRATION_STATUSES = ["active", "revoked", "error"];
225
+ AGENT_INTEGRATION_TRANSPORTS = ["long_connection", "webhook"];
226
+ AGENT_INTEGRATION_PROVIDER_REGIONS = ["feishu_cn", "lark_global"];
227
+ AGENT_INTEGRATION_CHAT_TYPES = ["p2p", "group"];
228
+ AGENT_INTEGRATION_DROP_REASONS = [
229
+ "unbound_user",
230
+ "non_org_member",
231
+ "not_addressed_in_group",
232
+ "duplicate",
233
+ "revoked_installation",
234
+ "invalid_event",
235
+ "agent_unavailable",
236
+ "unsupported_message_type"
237
+ ];
238
+ AGENT_INTEGRATION_OUTBOUND_STATUSES = ["pending", "streaming", "final", "error"];
223
239
  CALENDAR_SOURCE_TYPES = ["rudder_local", "google_calendar", "agent_work", "system"];
224
240
  CALENDAR_OWNER_TYPES = ["user", "agent", "system"];
225
241
  CALENDAR_VISIBILITIES = ["full", "busy_only", "private"];
@@ -1750,8 +1766,37 @@ var init_agent = __esm({
1750
1766
  }
1751
1767
  });
1752
1768
 
1753
- // ../packages/shared/dist/validators/project.js
1769
+ // ../packages/shared/dist/validators/agent-integration.js
1754
1770
  import { z as z13 } from "zod";
1771
+ var agentIntegrationProviderSchema, agentIntegrationStatusSchema, agentIntegrationTransportSchema, agentIntegrationProviderRegionSchema, agentIntegrationChatTypeSchema, agentIntegrationDropReasonSchema, agentIntegrationOutboundStatusSchema, createAgentIntegrationSchema;
1772
+ var init_agent_integration = __esm({
1773
+ "../packages/shared/dist/validators/agent-integration.js"() {
1774
+ "use strict";
1775
+ init_constants();
1776
+ agentIntegrationProviderSchema = z13.enum(AGENT_INTEGRATION_PROVIDERS);
1777
+ agentIntegrationStatusSchema = z13.enum(AGENT_INTEGRATION_STATUSES);
1778
+ agentIntegrationTransportSchema = z13.enum(AGENT_INTEGRATION_TRANSPORTS);
1779
+ agentIntegrationProviderRegionSchema = z13.enum(AGENT_INTEGRATION_PROVIDER_REGIONS);
1780
+ agentIntegrationChatTypeSchema = z13.enum(AGENT_INTEGRATION_CHAT_TYPES);
1781
+ agentIntegrationDropReasonSchema = z13.enum(AGENT_INTEGRATION_DROP_REASONS);
1782
+ agentIntegrationOutboundStatusSchema = z13.enum(AGENT_INTEGRATION_OUTBOUND_STATUSES);
1783
+ createAgentIntegrationSchema = z13.object({
1784
+ agentId: z13.string().uuid(),
1785
+ provider: agentIntegrationProviderSchema.default("feishu"),
1786
+ transport: agentIntegrationTransportSchema.default("long_connection"),
1787
+ providerRegion: agentIntegrationProviderRegionSchema.default("feishu_cn"),
1788
+ appCredentialSecretId: z13.string().uuid(),
1789
+ externalAppId: z13.string().min(1),
1790
+ externalBotOpenId: z13.string().min(1).optional().nullable(),
1791
+ externalTenantKey: z13.string().min(1).optional().nullable(),
1792
+ installerUserId: z13.string().min(1).optional().nullable(),
1793
+ manageUrl: z13.string().url().optional().nullable()
1794
+ });
1795
+ }
1796
+ });
1797
+
1798
+ // ../packages/shared/dist/validators/project.js
1799
+ import { z as z14 } from "zod";
1755
1800
  function validateProjectWorkspace(value, ctx) {
1756
1801
  const sourceType = value.sourceType ?? "local_path";
1757
1802
  const hasCwd = typeof value.cwd === "string" && value.cwd.trim().length > 0;
@@ -1760,7 +1805,7 @@ function validateProjectWorkspace(value, ctx) {
1760
1805
  if (sourceType === "remote_managed") {
1761
1806
  if (!hasRemoteRef && !hasRepo) {
1762
1807
  ctx.addIssue({
1763
- code: z13.ZodIssueCode.custom,
1808
+ code: z14.ZodIssueCode.custom,
1764
1809
  message: "Remote-managed workspace requires remoteWorkspaceRef or repoUrl.",
1765
1810
  path: ["remoteWorkspaceRef"]
1766
1811
  });
@@ -1769,7 +1814,7 @@ function validateProjectWorkspace(value, ctx) {
1769
1814
  }
1770
1815
  if (!hasCwd && !hasRepo) {
1771
1816
  ctx.addIssue({
1772
- code: z13.ZodIssueCode.custom,
1817
+ code: z14.ZodIssueCode.custom,
1773
1818
  message: "Workspace requires at least one of cwd or repoUrl.",
1774
1819
  path: ["cwd"]
1775
1820
  });
@@ -1781,120 +1826,120 @@ var init_project = __esm({
1781
1826
  "use strict";
1782
1827
  init_constants();
1783
1828
  init_resource();
1784
- executionWorkspaceStrategySchema = z13.object({
1785
- type: z13.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
1786
- baseRef: z13.string().optional().nullable(),
1787
- branchTemplate: z13.string().optional().nullable(),
1788
- worktreeParentDir: z13.string().optional().nullable(),
1789
- provisionCommand: z13.string().optional().nullable(),
1790
- teardownCommand: z13.string().optional().nullable()
1829
+ executionWorkspaceStrategySchema = z14.object({
1830
+ type: z14.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
1831
+ baseRef: z14.string().optional().nullable(),
1832
+ branchTemplate: z14.string().optional().nullable(),
1833
+ worktreeParentDir: z14.string().optional().nullable(),
1834
+ provisionCommand: z14.string().optional().nullable(),
1835
+ teardownCommand: z14.string().optional().nullable()
1791
1836
  }).strict();
1792
- projectExecutionWorkspacePolicySchema = z13.object({
1793
- enabled: z13.boolean(),
1794
- defaultMode: z13.enum(["shared_workspace", "isolated_workspace", "operator_branch", "adapter_default"]).optional(),
1795
- allowIssueOverride: z13.boolean().optional(),
1796
- defaultProjectWorkspaceId: z13.string().uuid().optional().nullable(),
1837
+ projectExecutionWorkspacePolicySchema = z14.object({
1838
+ enabled: z14.boolean(),
1839
+ defaultMode: z14.enum(["shared_workspace", "isolated_workspace", "operator_branch", "adapter_default"]).optional(),
1840
+ allowIssueOverride: z14.boolean().optional(),
1841
+ defaultProjectWorkspaceId: z14.string().uuid().optional().nullable(),
1797
1842
  workspaceStrategy: executionWorkspaceStrategySchema.optional().nullable(),
1798
- workspaceRuntime: z13.record(z13.unknown()).optional().nullable(),
1799
- branchPolicy: z13.record(z13.unknown()).optional().nullable(),
1800
- pullRequestPolicy: z13.record(z13.unknown()).optional().nullable(),
1801
- runtimePolicy: z13.record(z13.unknown()).optional().nullable(),
1802
- cleanupPolicy: z13.record(z13.unknown()).optional().nullable()
1843
+ workspaceRuntime: z14.record(z14.unknown()).optional().nullable(),
1844
+ branchPolicy: z14.record(z14.unknown()).optional().nullable(),
1845
+ pullRequestPolicy: z14.record(z14.unknown()).optional().nullable(),
1846
+ runtimePolicy: z14.record(z14.unknown()).optional().nullable(),
1847
+ cleanupPolicy: z14.record(z14.unknown()).optional().nullable()
1803
1848
  }).strict();
1804
- projectWorkspaceSourceTypeSchema = z13.enum(["local_path", "git_repo", "remote_managed", "non_git_path"]);
1805
- projectWorkspaceVisibilitySchema = z13.enum(["default", "advanced"]);
1849
+ projectWorkspaceSourceTypeSchema = z14.enum(["local_path", "git_repo", "remote_managed", "non_git_path"]);
1850
+ projectWorkspaceVisibilitySchema = z14.enum(["default", "advanced"]);
1806
1851
  projectWorkspaceFields = {
1807
- name: z13.string().min(1).optional(),
1852
+ name: z14.string().min(1).optional(),
1808
1853
  sourceType: projectWorkspaceSourceTypeSchema.optional(),
1809
- cwd: z13.string().min(1).optional().nullable(),
1810
- repoUrl: z13.string().url().optional().nullable(),
1811
- repoRef: z13.string().optional().nullable(),
1812
- defaultRef: z13.string().optional().nullable(),
1854
+ cwd: z14.string().min(1).optional().nullable(),
1855
+ repoUrl: z14.string().url().optional().nullable(),
1856
+ repoRef: z14.string().optional().nullable(),
1857
+ defaultRef: z14.string().optional().nullable(),
1813
1858
  visibility: projectWorkspaceVisibilitySchema.optional(),
1814
- setupCommand: z13.string().optional().nullable(),
1815
- cleanupCommand: z13.string().optional().nullable(),
1816
- remoteProvider: z13.string().optional().nullable(),
1817
- remoteWorkspaceRef: z13.string().optional().nullable(),
1818
- sharedWorkspaceKey: z13.string().optional().nullable(),
1819
- metadata: z13.record(z13.unknown()).optional().nullable()
1859
+ setupCommand: z14.string().optional().nullable(),
1860
+ cleanupCommand: z14.string().optional().nullable(),
1861
+ remoteProvider: z14.string().optional().nullable(),
1862
+ remoteWorkspaceRef: z14.string().optional().nullable(),
1863
+ sharedWorkspaceKey: z14.string().optional().nullable(),
1864
+ metadata: z14.record(z14.unknown()).optional().nullable()
1820
1865
  };
1821
1866
  projectColorValues = new Set(PROJECT_COLORS);
1822
- legacyProjectColorSchema = z13.string().regex(/^#[0-9a-fA-F]{6}$/);
1823
- 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");
1824
- projectIconSchema = z13.enum(PROJECT_ICONS);
1825
- createProjectWorkspaceSchema = z13.object({
1867
+ legacyProjectColorSchema = z14.string().regex(/^#[0-9a-fA-F]{6}$/);
1868
+ projectColorSchema = z14.string().refine((value) => legacyProjectColorSchema.safeParse(value).success || projectColorValues.has(value), "Color must be a 6-digit hex value or a supported project gradient");
1869
+ projectIconSchema = z14.enum(PROJECT_ICONS);
1870
+ createProjectWorkspaceSchema = z14.object({
1826
1871
  ...projectWorkspaceFields,
1827
- isPrimary: z13.boolean().optional().default(false)
1872
+ isPrimary: z14.boolean().optional().default(false)
1828
1873
  }).superRefine(validateProjectWorkspace);
1829
- updateProjectWorkspaceSchema = z13.object({
1874
+ updateProjectWorkspaceSchema = z14.object({
1830
1875
  ...projectWorkspaceFields,
1831
- isPrimary: z13.boolean().optional()
1876
+ isPrimary: z14.boolean().optional()
1832
1877
  }).partial();
1833
1878
  projectFields = {
1834
1879
  /** @deprecated Use goalIds instead */
1835
- goalId: z13.string().uuid().optional().nullable(),
1836
- goalIds: z13.array(z13.string().uuid()).optional(),
1837
- name: z13.string().min(1),
1838
- description: z13.string().optional().nullable(),
1839
- status: z13.enum(PROJECT_STATUSES).optional().default("backlog"),
1840
- leadAgentId: z13.string().uuid().optional().nullable(),
1841
- targetDate: z13.string().optional().nullable(),
1880
+ goalId: z14.string().uuid().optional().nullable(),
1881
+ goalIds: z14.array(z14.string().uuid()).optional(),
1882
+ name: z14.string().min(1),
1883
+ description: z14.string().optional().nullable(),
1884
+ status: z14.enum(PROJECT_STATUSES).optional().default("backlog"),
1885
+ leadAgentId: z14.string().uuid().optional().nullable(),
1886
+ targetDate: z14.string().optional().nullable(),
1842
1887
  color: projectColorSchema.optional().nullable(),
1843
1888
  icon: projectIconSchema.optional().nullable(),
1844
1889
  executionWorkspacePolicy: projectExecutionWorkspacePolicySchema.optional().nullable(),
1845
- resourceAttachments: z13.array(projectResourceAttachmentInputSchema).optional(),
1846
- newResources: z13.array(createProjectInlineResourceSchema).optional(),
1847
- archivedAt: z13.string().datetime().optional().nullable()
1890
+ resourceAttachments: z14.array(projectResourceAttachmentInputSchema).optional(),
1891
+ newResources: z14.array(createProjectInlineResourceSchema).optional(),
1892
+ archivedAt: z14.string().datetime().optional().nullable()
1848
1893
  };
1849
- createProjectSchema = z13.object({
1894
+ createProjectSchema = z14.object({
1850
1895
  ...projectFields
1851
1896
  });
1852
- updateProjectSchema = z13.object(projectFields).partial();
1897
+ updateProjectSchema = z14.object(projectFields).partial();
1853
1898
  }
1854
1899
  });
1855
1900
 
1856
1901
  // ../packages/shared/dist/validators/issue.js
1857
- import { z as z14 } from "zod";
1902
+ import { z as z15 } from "zod";
1858
1903
  var runWorkspaceStrategySchema, issueRunWorkspaceSettingsSchema, issueAssigneeAdapterOverridesSchema, createIssueSchema, createIssueLabelSchema, updateIssueLabelSchema, updateIssueSchema, reorderIssueSchema, checkoutIssueSchema, addIssueCommentSchema, updateIssueCommentSchema, reportIssueCommitSchema, linkIssueApprovalSchema, createIssueAttachmentMetadataSchema, createIssueWorkspaceAttachmentSchema, ISSUE_DOCUMENT_FORMATS, issueDocumentFormatSchema, createLibraryDocumentSchema, updateLibraryDocumentSchema, restoreLibraryDocumentRevisionSchema;
1859
1904
  var init_issue = __esm({
1860
1905
  "../packages/shared/dist/validators/issue.js"() {
1861
1906
  "use strict";
1862
1907
  init_constants();
1863
- runWorkspaceStrategySchema = z14.object({
1864
- type: z14.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
1865
- baseRef: z14.string().optional().nullable(),
1866
- branchTemplate: z14.string().optional().nullable(),
1867
- worktreeParentDir: z14.string().optional().nullable(),
1868
- provisionCommand: z14.string().optional().nullable(),
1869
- teardownCommand: z14.string().optional().nullable()
1908
+ runWorkspaceStrategySchema = z15.object({
1909
+ type: z15.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
1910
+ baseRef: z15.string().optional().nullable(),
1911
+ branchTemplate: z15.string().optional().nullable(),
1912
+ worktreeParentDir: z15.string().optional().nullable(),
1913
+ provisionCommand: z15.string().optional().nullable(),
1914
+ teardownCommand: z15.string().optional().nullable()
1870
1915
  }).strict();
1871
- issueRunWorkspaceSettingsSchema = z14.object({
1872
- mode: z14.enum(["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]).optional(),
1916
+ issueRunWorkspaceSettingsSchema = z15.object({
1917
+ mode: z15.enum(["inherit", "shared_workspace", "isolated_workspace", "operator_branch", "reuse_existing", "agent_default"]).optional(),
1873
1918
  workspaceStrategy: runWorkspaceStrategySchema.optional().nullable(),
1874
- workspaceRuntime: z14.record(z14.unknown()).optional().nullable()
1919
+ workspaceRuntime: z15.record(z15.unknown()).optional().nullable()
1875
1920
  }).strict();
1876
- issueAssigneeAdapterOverridesSchema = z14.object({
1877
- agentRuntimeConfig: z14.record(z14.unknown()).optional(),
1878
- useProjectWorkspace: z14.boolean().optional()
1921
+ issueAssigneeAdapterOverridesSchema = z15.object({
1922
+ agentRuntimeConfig: z15.record(z15.unknown()).optional(),
1923
+ useProjectWorkspace: z15.boolean().optional()
1879
1924
  }).strict();
1880
- createIssueSchema = z14.object({
1881
- projectId: z14.string().uuid().optional().nullable(),
1882
- projectWorkspaceId: z14.string().uuid().optional().nullable(),
1883
- goalId: z14.string().uuid().optional().nullable(),
1884
- parentId: z14.string().uuid().optional().nullable(),
1885
- title: z14.string().min(1),
1886
- description: z14.string().optional().nullable(),
1887
- status: z14.enum(ISSUE_STATUSES).optional().default("backlog"),
1888
- priority: z14.enum(ISSUE_PRIORITIES).optional().default("medium"),
1889
- assigneeAgentId: z14.string().uuid().optional().nullable(),
1890
- assigneeUserId: z14.string().optional().nullable(),
1891
- reviewerAgentId: z14.string().uuid().optional().nullable(),
1892
- reviewerUserId: z14.string().optional().nullable(),
1893
- requestDepth: z14.number().int().nonnegative().optional().default(0),
1894
- billingCode: z14.string().optional().nullable(),
1925
+ createIssueSchema = z15.object({
1926
+ projectId: z15.string().uuid().optional().nullable(),
1927
+ projectWorkspaceId: z15.string().uuid().optional().nullable(),
1928
+ goalId: z15.string().uuid().optional().nullable(),
1929
+ parentId: z15.string().uuid().optional().nullable(),
1930
+ title: z15.string().min(1),
1931
+ description: z15.string().optional().nullable(),
1932
+ status: z15.enum(ISSUE_STATUSES).optional().default("backlog"),
1933
+ priority: z15.enum(ISSUE_PRIORITIES).optional().default("medium"),
1934
+ assigneeAgentId: z15.string().uuid().optional().nullable(),
1935
+ assigneeUserId: z15.string().optional().nullable(),
1936
+ reviewerAgentId: z15.string().uuid().optional().nullable(),
1937
+ reviewerUserId: z15.string().optional().nullable(),
1938
+ requestDepth: z15.number().int().nonnegative().optional().default(0),
1939
+ billingCode: z15.string().optional().nullable(),
1895
1940
  assigneeAgentRuntimeOverrides: issueAssigneeAdapterOverridesSchema.optional().nullable(),
1896
- runWorkspaceId: z14.string().uuid().optional().nullable(),
1897
- runWorkspacePreference: z14.enum([
1941
+ runWorkspaceId: z15.string().uuid().optional().nullable(),
1942
+ runWorkspacePreference: z15.enum([
1898
1943
  "inherit",
1899
1944
  "shared_workspace",
1900
1945
  "isolated_workspace",
@@ -1904,9 +1949,9 @@ var init_issue = __esm({
1904
1949
  ]).optional().nullable(),
1905
1950
  runWorkspaceSettings: issueRunWorkspaceSettingsSchema.optional().nullable(),
1906
1951
  /** @deprecated Use runWorkspaceId. */
1907
- executionWorkspaceId: z14.string().uuid().optional().nullable(),
1952
+ executionWorkspaceId: z15.string().uuid().optional().nullable(),
1908
1953
  /** @deprecated Use runWorkspacePreference. */
1909
- executionWorkspacePreference: z14.enum([
1954
+ executionWorkspacePreference: z15.enum([
1910
1955
  "inherit",
1911
1956
  "shared_workspace",
1912
1957
  "isolated_workspace",
@@ -1916,88 +1961,88 @@ var init_issue = __esm({
1916
1961
  ]).optional().nullable(),
1917
1962
  /** @deprecated Use runWorkspaceSettings. */
1918
1963
  executionWorkspaceSettings: issueRunWorkspaceSettingsSchema.optional().nullable(),
1919
- labelIds: z14.array(z14.string().uuid()).optional()
1964
+ labelIds: z15.array(z15.string().uuid()).optional()
1920
1965
  });
1921
- createIssueLabelSchema = z14.object({
1922
- name: z14.string().trim().min(1).max(48),
1923
- color: z14.string().regex(/^#(?:[0-9a-fA-F]{6})$/, "Color must be a 6-digit hex value")
1966
+ createIssueLabelSchema = z15.object({
1967
+ name: z15.string().trim().min(1).max(48),
1968
+ color: z15.string().regex(/^#(?:[0-9a-fA-F]{6})$/, "Color must be a 6-digit hex value")
1924
1969
  });
1925
1970
  updateIssueLabelSchema = createIssueLabelSchema.partial().refine((value) => value.name !== void 0 || value.color !== void 0, {
1926
1971
  message: "At least one label field must be provided"
1927
1972
  });
1928
1973
  updateIssueSchema = createIssueSchema.partial().extend({
1929
- comment: z14.string().min(1).optional(),
1930
- reopen: z14.boolean().optional(),
1931
- hiddenAt: z14.string().datetime().nullable().optional(),
1932
- reviewDecision: z14.enum(["approve", "request_changes", "needs_followup", "blocked"]).optional()
1933
- });
1934
- reorderIssueSchema = z14.object({
1935
- issueId: z14.string().uuid(),
1936
- targetStatus: z14.enum(ISSUE_STATUSES),
1937
- previousIssueId: z14.string().uuid().optional().nullable(),
1938
- nextIssueId: z14.string().uuid().optional().nullable(),
1939
- position: z14.enum(["start", "end"]).optional()
1974
+ comment: z15.string().min(1).optional(),
1975
+ reopen: z15.boolean().optional(),
1976
+ hiddenAt: z15.string().datetime().nullable().optional(),
1977
+ reviewDecision: z15.enum(["approve", "request_changes", "needs_followup", "blocked"]).optional()
1978
+ });
1979
+ reorderIssueSchema = z15.object({
1980
+ issueId: z15.string().uuid(),
1981
+ targetStatus: z15.enum(ISSUE_STATUSES),
1982
+ previousIssueId: z15.string().uuid().optional().nullable(),
1983
+ nextIssueId: z15.string().uuid().optional().nullable(),
1984
+ position: z15.enum(["start", "end"]).optional()
1940
1985
  }).refine((value) => !(value.previousIssueId && value.nextIssueId && value.previousIssueId === value.nextIssueId), {
1941
1986
  message: "previousIssueId and nextIssueId must be different"
1942
1987
  });
1943
- checkoutIssueSchema = z14.object({
1944
- agentId: z14.string().uuid(),
1945
- expectedStatuses: z14.array(z14.enum(ISSUE_STATUSES)).nonempty()
1988
+ checkoutIssueSchema = z15.object({
1989
+ agentId: z15.string().uuid(),
1990
+ expectedStatuses: z15.array(z15.enum(ISSUE_STATUSES)).nonempty()
1946
1991
  });
1947
- addIssueCommentSchema = z14.object({
1948
- body: z14.string().min(1),
1949
- reopen: z14.boolean().optional(),
1950
- interrupt: z14.boolean().optional()
1992
+ addIssueCommentSchema = z15.object({
1993
+ body: z15.string().min(1),
1994
+ reopen: z15.boolean().optional(),
1995
+ interrupt: z15.boolean().optional()
1951
1996
  });
1952
- updateIssueCommentSchema = z14.object({
1953
- body: z14.string().trim().min(1)
1997
+ updateIssueCommentSchema = z15.object({
1998
+ body: z15.string().trim().min(1)
1954
1999
  });
1955
- reportIssueCommitSchema = z14.object({
1956
- sha: z14.string().trim().regex(/^[0-9a-f]{7,64}$/i, "Commit SHA must be 7 to 64 hexadecimal characters"),
1957
- message: z14.string().trim().min(1).max(500),
1958
- branch: z14.string().trim().min(1).max(255).optional().nullable(),
1959
- repoPath: z14.string().trim().min(1).max(2048).optional().nullable(),
1960
- workspacePath: z14.string().trim().min(1).max(2048).optional().nullable(),
1961
- commitCount: z14.number().int().positive().max(1e3).optional()
2000
+ reportIssueCommitSchema = z15.object({
2001
+ sha: z15.string().trim().regex(/^[0-9a-f]{7,64}$/i, "Commit SHA must be 7 to 64 hexadecimal characters"),
2002
+ message: z15.string().trim().min(1).max(500),
2003
+ branch: z15.string().trim().min(1).max(255).optional().nullable(),
2004
+ repoPath: z15.string().trim().min(1).max(2048).optional().nullable(),
2005
+ workspacePath: z15.string().trim().min(1).max(2048).optional().nullable(),
2006
+ commitCount: z15.number().int().positive().max(1e3).optional()
1962
2007
  });
1963
- linkIssueApprovalSchema = z14.object({
1964
- approvalId: z14.string().uuid()
2008
+ linkIssueApprovalSchema = z15.object({
2009
+ approvalId: z15.string().uuid()
1965
2010
  });
1966
- createIssueAttachmentMetadataSchema = z14.object({
1967
- issueCommentId: z14.string().uuid().optional().nullable(),
1968
- usage: z14.enum(["issue", "description_inline", "document_inline", "comment_inline", "comment_attachment"]).optional()
2011
+ createIssueAttachmentMetadataSchema = z15.object({
2012
+ issueCommentId: z15.string().uuid().optional().nullable(),
2013
+ usage: z15.enum(["issue", "description_inline", "document_inline", "comment_inline", "comment_attachment"]).optional()
1969
2014
  });
1970
- createIssueWorkspaceAttachmentSchema = z14.object({
1971
- path: z14.string().trim().min(1).max(2048)
2015
+ createIssueWorkspaceAttachmentSchema = z15.object({
2016
+ path: z15.string().trim().min(1).max(2048)
1972
2017
  });
1973
2018
  ISSUE_DOCUMENT_FORMATS = ["markdown"];
1974
- issueDocumentFormatSchema = z14.enum(ISSUE_DOCUMENT_FORMATS);
1975
- createLibraryDocumentSchema = z14.object({
1976
- title: z14.string().trim().max(200).nullable().optional(),
2019
+ issueDocumentFormatSchema = z15.enum(ISSUE_DOCUMENT_FORMATS);
2020
+ createLibraryDocumentSchema = z15.object({
2021
+ title: z15.string().trim().max(200).nullable().optional(),
1977
2022
  format: issueDocumentFormatSchema.optional().default("markdown"),
1978
- body: z14.string().max(524288).optional().default(""),
1979
- changeSummary: z14.string().trim().max(500).nullable().optional()
2023
+ body: z15.string().max(524288).optional().default(""),
2024
+ changeSummary: z15.string().trim().max(500).nullable().optional()
1980
2025
  });
1981
- updateLibraryDocumentSchema = z14.object({
1982
- title: z14.string().trim().max(200).nullable().optional(),
2026
+ updateLibraryDocumentSchema = z15.object({
2027
+ title: z15.string().trim().max(200).nullable().optional(),
1983
2028
  format: issueDocumentFormatSchema.optional().default("markdown"),
1984
- body: z14.string().max(524288),
1985
- changeSummary: z14.string().trim().max(500).nullable().optional(),
1986
- baseRevisionId: z14.string().uuid().nullable().optional()
2029
+ body: z15.string().max(524288),
2030
+ changeSummary: z15.string().trim().max(500).nullable().optional(),
2031
+ baseRevisionId: z15.string().uuid().nullable().optional()
1987
2032
  });
1988
- restoreLibraryDocumentRevisionSchema = z14.object({
1989
- changeSummary: z14.string().trim().max(500).nullable().optional()
2033
+ restoreLibraryDocumentRevisionSchema = z15.object({
2034
+ changeSummary: z15.string().trim().max(500).nullable().optional()
1990
2035
  });
1991
2036
  }
1992
2037
  });
1993
2038
 
1994
2039
  // ../packages/shared/dist/validators/work-product.js
1995
- import { z as z15 } from "zod";
2040
+ import { z as z16 } from "zod";
1996
2041
  var issueWorkProductTypeSchema, issueWorkProductStatusSchema, issueWorkProductReviewStateSchema, createIssueWorkProductSchema, updateIssueWorkProductSchema;
1997
2042
  var init_work_product = __esm({
1998
2043
  "../packages/shared/dist/validators/work-product.js"() {
1999
2044
  "use strict";
2000
- issueWorkProductTypeSchema = z15.enum([
2045
+ issueWorkProductTypeSchema = z16.enum([
2001
2046
  "preview_url",
2002
2047
  "runtime_service",
2003
2048
  "pull_request",
@@ -2006,7 +2051,7 @@ var init_work_product = __esm({
2006
2051
  "artifact",
2007
2052
  "document"
2008
2053
  ]);
2009
- issueWorkProductStatusSchema = z15.enum([
2054
+ issueWorkProductStatusSchema = z16.enum([
2010
2055
  "active",
2011
2056
  "ready_for_review",
2012
2057
  "approved",
@@ -2017,125 +2062,125 @@ var init_work_product = __esm({
2017
2062
  "archived",
2018
2063
  "draft"
2019
2064
  ]);
2020
- issueWorkProductReviewStateSchema = z15.enum([
2065
+ issueWorkProductReviewStateSchema = z16.enum([
2021
2066
  "none",
2022
2067
  "needs_board_review",
2023
2068
  "approved",
2024
2069
  "changes_requested"
2025
2070
  ]);
2026
- createIssueWorkProductSchema = z15.object({
2027
- projectId: z15.string().uuid().optional().nullable(),
2028
- runWorkspaceId: z15.string().uuid().optional().nullable(),
2071
+ createIssueWorkProductSchema = z16.object({
2072
+ projectId: z16.string().uuid().optional().nullable(),
2073
+ runWorkspaceId: z16.string().uuid().optional().nullable(),
2029
2074
  /** @deprecated Use runWorkspaceId. */
2030
- executionWorkspaceId: z15.string().uuid().optional().nullable(),
2031
- runtimeServiceId: z15.string().uuid().optional().nullable(),
2075
+ executionWorkspaceId: z16.string().uuid().optional().nullable(),
2076
+ runtimeServiceId: z16.string().uuid().optional().nullable(),
2032
2077
  type: issueWorkProductTypeSchema,
2033
- provider: z15.string().min(1),
2034
- externalId: z15.string().optional().nullable(),
2035
- title: z15.string().min(1),
2036
- url: z15.string().url().optional().nullable(),
2078
+ provider: z16.string().min(1),
2079
+ externalId: z16.string().optional().nullable(),
2080
+ title: z16.string().min(1),
2081
+ url: z16.string().url().optional().nullable(),
2037
2082
  status: issueWorkProductStatusSchema.default("active"),
2038
2083
  reviewState: issueWorkProductReviewStateSchema.optional().default("none"),
2039
- isPrimary: z15.boolean().optional().default(false),
2040
- healthStatus: z15.enum(["unknown", "healthy", "unhealthy"]).optional().default("unknown"),
2041
- summary: z15.string().optional().nullable(),
2042
- metadata: z15.record(z15.unknown()).optional().nullable(),
2043
- createdByRunId: z15.string().uuid().optional().nullable()
2084
+ isPrimary: z16.boolean().optional().default(false),
2085
+ healthStatus: z16.enum(["unknown", "healthy", "unhealthy"]).optional().default("unknown"),
2086
+ summary: z16.string().optional().nullable(),
2087
+ metadata: z16.record(z16.unknown()).optional().nullable(),
2088
+ createdByRunId: z16.string().uuid().optional().nullable()
2044
2089
  });
2045
2090
  updateIssueWorkProductSchema = createIssueWorkProductSchema.partial();
2046
2091
  }
2047
2092
  });
2048
2093
 
2049
2094
  // ../packages/shared/dist/validators/execution-workspace.js
2050
- import { z as z16 } from "zod";
2095
+ import { z as z17 } from "zod";
2051
2096
  var runWorkspaceStatusSchema, updateRunWorkspaceSchema;
2052
2097
  var init_execution_workspace = __esm({
2053
2098
  "../packages/shared/dist/validators/execution-workspace.js"() {
2054
2099
  "use strict";
2055
- runWorkspaceStatusSchema = z16.enum([
2100
+ runWorkspaceStatusSchema = z17.enum([
2056
2101
  "active",
2057
2102
  "idle",
2058
2103
  "in_review",
2059
2104
  "archived",
2060
2105
  "cleanup_failed"
2061
2106
  ]);
2062
- updateRunWorkspaceSchema = z16.object({
2107
+ updateRunWorkspaceSchema = z17.object({
2063
2108
  status: runWorkspaceStatusSchema.optional(),
2064
- cleanupEligibleAt: z16.string().datetime().optional().nullable(),
2065
- cleanupReason: z16.string().optional().nullable(),
2066
- metadata: z16.record(z16.unknown()).optional().nullable()
2109
+ cleanupEligibleAt: z17.string().datetime().optional().nullable(),
2110
+ cleanupReason: z17.string().optional().nullable(),
2111
+ metadata: z17.record(z17.unknown()).optional().nullable()
2067
2112
  }).strict();
2068
2113
  }
2069
2114
  });
2070
2115
 
2071
2116
  // ../packages/shared/dist/validators/workspace-backup.js
2072
- import { z as z17 } from "zod";
2117
+ import { z as z18 } from "zod";
2073
2118
  var workspaceBackupTriggerSourceSchema, createWorkspaceBackupSchema, restoreWorkspaceBackupSchema;
2074
2119
  var init_workspace_backup2 = __esm({
2075
2120
  "../packages/shared/dist/validators/workspace-backup.js"() {
2076
2121
  "use strict";
2077
- workspaceBackupTriggerSourceSchema = z17.enum(["manual", "scheduled", "pre_restore"]);
2078
- createWorkspaceBackupSchema = z17.object({
2122
+ workspaceBackupTriggerSourceSchema = z18.enum(["manual", "scheduled", "pre_restore"]);
2123
+ createWorkspaceBackupSchema = z18.object({
2079
2124
  triggerSource: workspaceBackupTriggerSourceSchema.optional().default("manual")
2080
2125
  }).strict();
2081
- restoreWorkspaceBackupSchema = z17.object({
2082
- confirm: z17.literal(true)
2126
+ restoreWorkspaceBackupSchema = z18.object({
2127
+ confirm: z18.literal(true)
2083
2128
  }).strict();
2084
2129
  }
2085
2130
  });
2086
2131
 
2087
2132
  // ../packages/shared/dist/validators/goal.js
2088
- import { z as z18 } from "zod";
2133
+ import { z as z19 } from "zod";
2089
2134
  var createGoalSchema, updateGoalSchema;
2090
2135
  var init_goal = __esm({
2091
2136
  "../packages/shared/dist/validators/goal.js"() {
2092
2137
  "use strict";
2093
2138
  init_constants();
2094
- createGoalSchema = z18.object({
2095
- title: z18.string().min(1),
2096
- description: z18.string().optional().nullable(),
2097
- level: z18.enum(GOAL_LEVELS).optional().default("task"),
2098
- status: z18.enum(GOAL_STATUSES).optional().default("planned"),
2099
- parentId: z18.string().uuid().optional().nullable(),
2100
- ownerAgentId: z18.string().uuid().optional().nullable()
2139
+ createGoalSchema = z19.object({
2140
+ title: z19.string().min(1),
2141
+ description: z19.string().optional().nullable(),
2142
+ level: z19.enum(GOAL_LEVELS).optional().default("task"),
2143
+ status: z19.enum(GOAL_STATUSES).optional().default("planned"),
2144
+ parentId: z19.string().uuid().optional().nullable(),
2145
+ ownerAgentId: z19.string().uuid().optional().nullable()
2101
2146
  });
2102
2147
  updateGoalSchema = createGoalSchema.partial();
2103
2148
  }
2104
2149
  });
2105
2150
 
2106
2151
  // ../packages/shared/dist/validators/approval.js
2107
- import { z as z19 } from "zod";
2152
+ import { z as z20 } from "zod";
2108
2153
  var createApprovalSchema, resolveApprovalSchema, requestApprovalRevisionSchema, resubmitApprovalSchema, addApprovalCommentSchema;
2109
2154
  var init_approval = __esm({
2110
2155
  "../packages/shared/dist/validators/approval.js"() {
2111
2156
  "use strict";
2112
2157
  init_constants();
2113
- createApprovalSchema = z19.object({
2114
- type: z19.enum(APPROVAL_TYPES),
2115
- requestedByAgentId: z19.string().uuid().optional().nullable(),
2116
- payload: z19.record(z19.unknown()),
2117
- issueIds: z19.array(z19.string().uuid()).optional()
2158
+ createApprovalSchema = z20.object({
2159
+ type: z20.enum(APPROVAL_TYPES),
2160
+ requestedByAgentId: z20.string().uuid().optional().nullable(),
2161
+ payload: z20.record(z20.unknown()),
2162
+ issueIds: z20.array(z20.string().uuid()).optional()
2118
2163
  });
2119
- resolveApprovalSchema = z19.object({
2120
- decisionNote: z19.string().optional().nullable(),
2121
- decidedByUserId: z19.string().optional().default("board"),
2122
- payload: z19.record(z19.unknown()).optional()
2164
+ resolveApprovalSchema = z20.object({
2165
+ decisionNote: z20.string().optional().nullable(),
2166
+ decidedByUserId: z20.string().optional().default("board"),
2167
+ payload: z20.record(z20.unknown()).optional()
2123
2168
  });
2124
- requestApprovalRevisionSchema = z19.object({
2125
- decisionNote: z19.string().optional().nullable(),
2126
- decidedByUserId: z19.string().optional().default("board")
2169
+ requestApprovalRevisionSchema = z20.object({
2170
+ decisionNote: z20.string().optional().nullable(),
2171
+ decidedByUserId: z20.string().optional().default("board")
2127
2172
  });
2128
- resubmitApprovalSchema = z19.object({
2129
- payload: z19.record(z19.unknown()).optional()
2173
+ resubmitApprovalSchema = z20.object({
2174
+ payload: z20.record(z20.unknown()).optional()
2130
2175
  });
2131
- addApprovalCommentSchema = z19.object({
2132
- body: z19.string().min(1)
2176
+ addApprovalCommentSchema = z20.object({
2177
+ body: z20.string().min(1)
2133
2178
  });
2134
2179
  }
2135
2180
  });
2136
2181
 
2137
2182
  // ../packages/shared/dist/validators/automation.js
2138
- import { z as z20 } from "zod";
2183
+ import { z as z21 } from "zod";
2139
2184
  function normalizeAutomationInstructions(value) {
2140
2185
  const { instructions, ...rest } = value;
2141
2186
  return {
@@ -2153,27 +2198,27 @@ var init_automation = __esm({
2153
2198
  "../packages/shared/dist/validators/automation.js"() {
2154
2199
  "use strict";
2155
2200
  init_constants();
2156
- automationTextFieldSchema = z20.string().optional().nullable();
2157
- automationBodyFieldsSchema = z20.object({
2158
- projectId: z20.string().uuid().optional().nullable().default(null),
2159
- goalId: z20.string().uuid().optional().nullable(),
2160
- parentIssueId: z20.string().uuid().optional().nullable(),
2161
- title: z20.string().trim().min(1).max(200),
2201
+ automationTextFieldSchema = z21.string().optional().nullable();
2202
+ automationBodyFieldsSchema = z21.object({
2203
+ projectId: z21.string().uuid().optional().nullable().default(null),
2204
+ goalId: z21.string().uuid().optional().nullable(),
2205
+ parentIssueId: z21.string().uuid().optional().nullable(),
2206
+ title: z21.string().trim().min(1).max(200),
2162
2207
  instructions: automationTextFieldSchema,
2163
2208
  description: automationTextFieldSchema,
2164
- assigneeAgentId: z20.string().uuid(),
2165
- priority: z20.enum(ISSUE_PRIORITIES).optional().default("medium"),
2166
- status: z20.enum(AUTOMATION_STATUSES).optional().default("active"),
2167
- concurrencyPolicy: z20.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
2168
- catchUpPolicy: z20.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
2169
- outputMode: z20.enum(AUTOMATION_OUTPUT_MODES).optional().default("track_issue"),
2170
- chatConversationId: z20.string().uuid().optional().nullable().default(null),
2171
- notifyOnIssueCreated: z20.boolean().optional().default(false)
2209
+ assigneeAgentId: z21.string().uuid(),
2210
+ priority: z21.enum(ISSUE_PRIORITIES).optional().default("medium"),
2211
+ status: z21.enum(AUTOMATION_STATUSES).optional().default("active"),
2212
+ concurrencyPolicy: z21.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
2213
+ catchUpPolicy: z21.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
2214
+ outputMode: z21.enum(AUTOMATION_OUTPUT_MODES).optional().default("track_issue"),
2215
+ chatConversationId: z21.string().uuid().optional().nullable().default(null),
2216
+ notifyOnIssueCreated: z21.boolean().optional().default(false)
2172
2217
  });
2173
2218
  createAutomationSchema = automationBodyFieldsSchema.superRefine((value, ctx) => {
2174
2219
  if (value.chatConversationId) {
2175
2220
  ctx.addIssue({
2176
- code: z20.ZodIssueCode.custom,
2221
+ code: z21.ZodIssueCode.custom,
2177
2222
  path: ["chatConversationId"],
2178
2223
  message: "Chat output creates an automation-owned conversation; existing chats cannot be selected"
2179
2224
  });
@@ -2182,185 +2227,185 @@ var init_automation = __esm({
2182
2227
  updateAutomationSchema = automationBodyFieldsSchema.partial().superRefine((value, ctx) => {
2183
2228
  if (value.chatConversationId) {
2184
2229
  ctx.addIssue({
2185
- code: z20.ZodIssueCode.custom,
2230
+ code: z21.ZodIssueCode.custom,
2186
2231
  path: ["chatConversationId"],
2187
2232
  message: "Chat output creates an automation-owned conversation; existing chats cannot be selected"
2188
2233
  });
2189
2234
  }
2190
2235
  }).transform(normalizeAutomationInstructions).transform(normalizeAutomationNotifications);
2191
- baseTriggerSchema = z20.object({
2192
- label: z20.string().trim().max(120).optional().nullable(),
2193
- enabled: z20.boolean().optional().default(true)
2236
+ baseTriggerSchema = z21.object({
2237
+ label: z21.string().trim().max(120).optional().nullable(),
2238
+ enabled: z21.boolean().optional().default(true)
2194
2239
  });
2195
- createAutomationTriggerSchema = z20.discriminatedUnion("kind", [
2240
+ createAutomationTriggerSchema = z21.discriminatedUnion("kind", [
2196
2241
  baseTriggerSchema.extend({
2197
- kind: z20.literal("schedule"),
2198
- cronExpression: z20.string().trim().min(1),
2199
- timezone: z20.string().trim().min(1).default("UTC")
2242
+ kind: z21.literal("schedule"),
2243
+ cronExpression: z21.string().trim().min(1),
2244
+ timezone: z21.string().trim().min(1).default("UTC")
2200
2245
  }),
2201
2246
  baseTriggerSchema.extend({
2202
- kind: z20.literal("webhook"),
2203
- signingMode: z20.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().default("bearer"),
2204
- replayWindowSec: z20.number().int().min(30).max(86400).optional().default(300)
2247
+ kind: z21.literal("webhook"),
2248
+ signingMode: z21.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().default("bearer"),
2249
+ replayWindowSec: z21.number().int().min(30).max(86400).optional().default(300)
2205
2250
  }),
2206
2251
  baseTriggerSchema.extend({
2207
- kind: z20.literal("api")
2252
+ kind: z21.literal("api")
2208
2253
  })
2209
2254
  ]);
2210
- updateAutomationTriggerSchema = z20.object({
2211
- label: z20.string().trim().max(120).optional().nullable(),
2212
- enabled: z20.boolean().optional(),
2213
- cronExpression: z20.string().trim().min(1).optional().nullable(),
2214
- timezone: z20.string().trim().min(1).optional().nullable(),
2215
- signingMode: z20.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().nullable(),
2216
- replayWindowSec: z20.number().int().min(30).max(86400).optional().nullable()
2217
- });
2218
- runAutomationSchema = z20.object({
2219
- triggerId: z20.string().uuid().optional().nullable(),
2220
- payload: z20.record(z20.unknown()).optional().nullable(),
2221
- idempotencyKey: z20.string().trim().max(255).optional().nullable(),
2222
- source: z20.enum(["manual", "api"]).optional().default("manual")
2223
- });
2224
- rotateAutomationTriggerSecretSchema = z20.object({});
2255
+ updateAutomationTriggerSchema = z21.object({
2256
+ label: z21.string().trim().max(120).optional().nullable(),
2257
+ enabled: z21.boolean().optional(),
2258
+ cronExpression: z21.string().trim().min(1).optional().nullable(),
2259
+ timezone: z21.string().trim().min(1).optional().nullable(),
2260
+ signingMode: z21.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().nullable(),
2261
+ replayWindowSec: z21.number().int().min(30).max(86400).optional().nullable()
2262
+ });
2263
+ runAutomationSchema = z21.object({
2264
+ triggerId: z21.string().uuid().optional().nullable(),
2265
+ payload: z21.record(z21.unknown()).optional().nullable(),
2266
+ idempotencyKey: z21.string().trim().max(255).optional().nullable(),
2267
+ source: z21.enum(["manual", "api"]).optional().default("manual")
2268
+ });
2269
+ rotateAutomationTriggerSecretSchema = z21.object({});
2225
2270
  }
2226
2271
  });
2227
2272
 
2228
2273
  // ../packages/shared/dist/validators/calendar.js
2229
- import { z as z21 } from "zod";
2274
+ import { z as z22 } from "zod";
2230
2275
  var nullableUuid, createCalendarSourceSchema, updateCalendarSourceSchema, calendarEventBaseSchema, createCalendarEventSchema, updateCalendarEventSchema, calendarEventListQuerySchema, googleCalendarSyncSchema, updateGoogleCalendarOAuthConfigSchema;
2231
2276
  var init_calendar = __esm({
2232
2277
  "../packages/shared/dist/validators/calendar.js"() {
2233
2278
  "use strict";
2234
2279
  init_constants();
2235
- nullableUuid = z21.string().uuid().optional().nullable();
2236
- createCalendarSourceSchema = z21.object({
2237
- type: z21.enum(CALENDAR_SOURCE_TYPES).optional().default("rudder_local"),
2238
- name: z21.string().trim().min(1).max(160),
2239
- ownerType: z21.enum(CALENDAR_OWNER_TYPES).optional().default("user"),
2240
- ownerUserId: z21.string().trim().min(1).optional().nullable(),
2280
+ nullableUuid = z22.string().uuid().optional().nullable();
2281
+ createCalendarSourceSchema = z22.object({
2282
+ type: z22.enum(CALENDAR_SOURCE_TYPES).optional().default("rudder_local"),
2283
+ name: z22.string().trim().min(1).max(160),
2284
+ ownerType: z22.enum(CALENDAR_OWNER_TYPES).optional().default("user"),
2285
+ ownerUserId: z22.string().trim().min(1).optional().nullable(),
2241
2286
  ownerAgentId: nullableUuid,
2242
- externalProvider: z21.string().trim().min(1).max(80).optional().nullable(),
2243
- externalCalendarId: z21.string().trim().min(1).max(512).optional().nullable(),
2244
- visibilityDefault: z21.enum(CALENDAR_VISIBILITIES).optional().default("full"),
2245
- status: z21.enum(CALENDAR_SOURCE_STATUSES).optional().default("active"),
2246
- syncCursorJson: z21.record(z21.unknown()).optional().nullable()
2287
+ externalProvider: z22.string().trim().min(1).max(80).optional().nullable(),
2288
+ externalCalendarId: z22.string().trim().min(1).max(512).optional().nullable(),
2289
+ visibilityDefault: z22.enum(CALENDAR_VISIBILITIES).optional().default("full"),
2290
+ status: z22.enum(CALENDAR_SOURCE_STATUSES).optional().default("active"),
2291
+ syncCursorJson: z22.record(z22.unknown()).optional().nullable()
2247
2292
  });
2248
2293
  updateCalendarSourceSchema = createCalendarSourceSchema.partial().extend({
2249
- lastSyncedAt: z21.coerce.date().optional().nullable()
2294
+ lastSyncedAt: z22.coerce.date().optional().nullable()
2250
2295
  });
2251
- calendarEventBaseSchema = z21.object({
2296
+ calendarEventBaseSchema = z22.object({
2252
2297
  sourceId: nullableUuid,
2253
- eventKind: z21.enum(CALENDAR_EVENT_KINDS),
2254
- eventStatus: z21.enum(CALENDAR_EVENT_STATUSES).optional().default("planned"),
2255
- ownerType: z21.enum(CALENDAR_OWNER_TYPES),
2256
- ownerUserId: z21.string().trim().min(1).optional().nullable(),
2298
+ eventKind: z22.enum(CALENDAR_EVENT_KINDS),
2299
+ eventStatus: z22.enum(CALENDAR_EVENT_STATUSES).optional().default("planned"),
2300
+ ownerType: z22.enum(CALENDAR_OWNER_TYPES),
2301
+ ownerUserId: z22.string().trim().min(1).optional().nullable(),
2257
2302
  ownerAgentId: nullableUuid,
2258
- title: z21.string().trim().min(1).max(240),
2259
- description: z21.string().optional().nullable(),
2260
- startAt: z21.coerce.date(),
2261
- endAt: z21.coerce.date(),
2262
- timezone: z21.string().trim().min(1).max(80).optional().default("UTC"),
2263
- allDay: z21.boolean().optional().default(false),
2264
- visibility: z21.enum(CALENDAR_VISIBILITIES).optional().default("full"),
2303
+ title: z22.string().trim().min(1).max(240),
2304
+ description: z22.string().optional().nullable(),
2305
+ startAt: z22.coerce.date(),
2306
+ endAt: z22.coerce.date(),
2307
+ timezone: z22.string().trim().min(1).max(80).optional().default("UTC"),
2308
+ allDay: z22.boolean().optional().default(false),
2309
+ visibility: z22.enum(CALENDAR_VISIBILITIES).optional().default("full"),
2265
2310
  issueId: nullableUuid,
2266
2311
  projectId: nullableUuid,
2267
2312
  goalId: nullableUuid,
2268
2313
  approvalId: nullableUuid,
2269
2314
  heartbeatRunId: nullableUuid,
2270
2315
  activityId: nullableUuid,
2271
- sourceMode: z21.enum(CALENDAR_SOURCE_MODES).optional().default("manual"),
2272
- externalProvider: z21.string().trim().min(1).max(80).optional().nullable(),
2273
- externalCalendarId: z21.string().trim().min(1).max(512).optional().nullable(),
2274
- externalEventId: z21.string().trim().min(1).max(512).optional().nullable(),
2275
- externalEtag: z21.string().trim().min(1).max(512).optional().nullable(),
2276
- externalUpdatedAt: z21.coerce.date().optional().nullable()
2316
+ sourceMode: z22.enum(CALENDAR_SOURCE_MODES).optional().default("manual"),
2317
+ externalProvider: z22.string().trim().min(1).max(80).optional().nullable(),
2318
+ externalCalendarId: z22.string().trim().min(1).max(512).optional().nullable(),
2319
+ externalEventId: z22.string().trim().min(1).max(512).optional().nullable(),
2320
+ externalEtag: z22.string().trim().min(1).max(512).optional().nullable(),
2321
+ externalUpdatedAt: z22.coerce.date().optional().nullable()
2277
2322
  });
2278
2323
  createCalendarEventSchema = calendarEventBaseSchema.refine((value) => value.endAt.getTime() > value.startAt.getTime(), { path: ["endAt"], message: "End time must be after start time" });
2279
2324
  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" });
2280
- calendarEventListQuerySchema = z21.object({
2281
- start: z21.coerce.date(),
2282
- end: z21.coerce.date(),
2283
- agentIds: z21.string().optional(),
2284
- sourceIds: z21.string().optional(),
2285
- eventKinds: z21.string().optional(),
2286
- statuses: z21.string().optional()
2325
+ calendarEventListQuerySchema = z22.object({
2326
+ start: z22.coerce.date(),
2327
+ end: z22.coerce.date(),
2328
+ agentIds: z22.string().optional(),
2329
+ sourceIds: z22.string().optional(),
2330
+ eventKinds: z22.string().optional(),
2331
+ statuses: z22.string().optional()
2287
2332
  }).refine((value) => value.end.getTime() > value.start.getTime(), { path: ["end"], message: "End time must be after start time" });
2288
- googleCalendarSyncSchema = z21.object({
2289
- sourceId: z21.string().uuid().optional().nullable()
2333
+ googleCalendarSyncSchema = z22.object({
2334
+ sourceId: z22.string().uuid().optional().nullable()
2290
2335
  });
2291
- updateGoogleCalendarOAuthConfigSchema = z21.object({
2292
- clientId: z21.string().trim().min(1).max(512).optional(),
2293
- clientSecret: z21.string().trim().min(1).max(2048).optional(),
2294
- clear: z21.boolean().optional().default(false)
2336
+ updateGoogleCalendarOAuthConfigSchema = z22.object({
2337
+ clientId: z22.string().trim().min(1).max(512).optional(),
2338
+ clientSecret: z22.string().trim().min(1).max(2048).optional(),
2339
+ clear: z22.boolean().optional().default(false)
2295
2340
  }).refine((value) => value.clear || value.clientId !== void 0 || value.clientSecret !== void 0, { message: "Provide credentials or clear the stored Google Calendar OAuth configuration" });
2296
2341
  }
2297
2342
  });
2298
2343
 
2299
2344
  // ../packages/shared/dist/validators/cost.js
2300
- import { z as z22 } from "zod";
2345
+ import { z as z23 } from "zod";
2301
2346
  var createCostEventSchema, updateBudgetSchema;
2302
2347
  var init_cost = __esm({
2303
2348
  "../packages/shared/dist/validators/cost.js"() {
2304
2349
  "use strict";
2305
2350
  init_constants();
2306
- createCostEventSchema = z22.object({
2307
- agentId: z22.string().uuid(),
2308
- issueId: z22.string().uuid().optional().nullable(),
2309
- projectId: z22.string().uuid().optional().nullable(),
2310
- goalId: z22.string().uuid().optional().nullable(),
2311
- heartbeatRunId: z22.string().uuid().optional().nullable(),
2312
- billingCode: z22.string().optional().nullable(),
2313
- provider: z22.string().min(1),
2314
- biller: z22.string().min(1).optional(),
2315
- billingType: z22.enum(BILLING_TYPES).optional().default("unknown"),
2316
- model: z22.string().min(1),
2317
- inputTokens: z22.number().int().nonnegative().optional().default(0),
2318
- cachedInputTokens: z22.number().int().nonnegative().optional().default(0),
2319
- outputTokens: z22.number().int().nonnegative().optional().default(0),
2320
- costCents: z22.number().int().nonnegative(),
2321
- occurredAt: z22.string().datetime()
2351
+ createCostEventSchema = z23.object({
2352
+ agentId: z23.string().uuid(),
2353
+ issueId: z23.string().uuid().optional().nullable(),
2354
+ projectId: z23.string().uuid().optional().nullable(),
2355
+ goalId: z23.string().uuid().optional().nullable(),
2356
+ heartbeatRunId: z23.string().uuid().optional().nullable(),
2357
+ billingCode: z23.string().optional().nullable(),
2358
+ provider: z23.string().min(1),
2359
+ biller: z23.string().min(1).optional(),
2360
+ billingType: z23.enum(BILLING_TYPES).optional().default("unknown"),
2361
+ model: z23.string().min(1),
2362
+ inputTokens: z23.number().int().nonnegative().optional().default(0),
2363
+ cachedInputTokens: z23.number().int().nonnegative().optional().default(0),
2364
+ outputTokens: z23.number().int().nonnegative().optional().default(0),
2365
+ costCents: z23.number().int().nonnegative(),
2366
+ occurredAt: z23.string().datetime()
2322
2367
  }).transform((value) => ({
2323
2368
  ...value,
2324
2369
  biller: value.biller ?? value.provider
2325
2370
  }));
2326
- updateBudgetSchema = z22.object({
2327
- budgetMonthlyCents: z22.number().int().nonnegative()
2371
+ updateBudgetSchema = z23.object({
2372
+ budgetMonthlyCents: z23.number().int().nonnegative()
2328
2373
  });
2329
2374
  }
2330
2375
  });
2331
2376
 
2332
2377
  // ../packages/shared/dist/validators/finance.js
2333
- import { z as z23 } from "zod";
2378
+ import { z as z24 } from "zod";
2334
2379
  var createFinanceEventSchema;
2335
2380
  var init_finance = __esm({
2336
2381
  "../packages/shared/dist/validators/finance.js"() {
2337
2382
  "use strict";
2338
2383
  init_constants();
2339
- createFinanceEventSchema = z23.object({
2340
- agentId: z23.string().uuid().optional().nullable(),
2341
- issueId: z23.string().uuid().optional().nullable(),
2342
- projectId: z23.string().uuid().optional().nullable(),
2343
- goalId: z23.string().uuid().optional().nullable(),
2344
- heartbeatRunId: z23.string().uuid().optional().nullable(),
2345
- costEventId: z23.string().uuid().optional().nullable(),
2346
- billingCode: z23.string().optional().nullable(),
2347
- description: z23.string().max(500).optional().nullable(),
2348
- eventKind: z23.enum(FINANCE_EVENT_KINDS),
2349
- direction: z23.enum(FINANCE_DIRECTIONS).optional().default("debit"),
2350
- biller: z23.string().min(1),
2351
- provider: z23.string().min(1).optional().nullable(),
2352
- executionAgentRuntimeType: z23.enum(AGENT_RUNTIME_TYPES).optional().nullable(),
2353
- pricingTier: z23.string().min(1).optional().nullable(),
2354
- region: z23.string().min(1).optional().nullable(),
2355
- model: z23.string().min(1).optional().nullable(),
2356
- quantity: z23.number().int().nonnegative().optional().nullable(),
2357
- unit: z23.enum(FINANCE_UNITS).optional().nullable(),
2358
- amountCents: z23.number().int().nonnegative(),
2359
- currency: z23.string().length(3).optional().default("USD"),
2360
- estimated: z23.boolean().optional().default(false),
2361
- externalInvoiceId: z23.string().optional().nullable(),
2362
- metadataJson: z23.record(z23.string(), z23.unknown()).optional().nullable(),
2363
- occurredAt: z23.string().datetime()
2384
+ createFinanceEventSchema = z24.object({
2385
+ agentId: z24.string().uuid().optional().nullable(),
2386
+ issueId: z24.string().uuid().optional().nullable(),
2387
+ projectId: z24.string().uuid().optional().nullable(),
2388
+ goalId: z24.string().uuid().optional().nullable(),
2389
+ heartbeatRunId: z24.string().uuid().optional().nullable(),
2390
+ costEventId: z24.string().uuid().optional().nullable(),
2391
+ billingCode: z24.string().optional().nullable(),
2392
+ description: z24.string().max(500).optional().nullable(),
2393
+ eventKind: z24.enum(FINANCE_EVENT_KINDS),
2394
+ direction: z24.enum(FINANCE_DIRECTIONS).optional().default("debit"),
2395
+ biller: z24.string().min(1),
2396
+ provider: z24.string().min(1).optional().nullable(),
2397
+ executionAgentRuntimeType: z24.enum(AGENT_RUNTIME_TYPES).optional().nullable(),
2398
+ pricingTier: z24.string().min(1).optional().nullable(),
2399
+ region: z24.string().min(1).optional().nullable(),
2400
+ model: z24.string().min(1).optional().nullable(),
2401
+ quantity: z24.number().int().nonnegative().optional().nullable(),
2402
+ unit: z24.enum(FINANCE_UNITS).optional().nullable(),
2403
+ amountCents: z24.number().int().nonnegative(),
2404
+ currency: z24.string().length(3).optional().default("USD"),
2405
+ estimated: z24.boolean().optional().default(false),
2406
+ externalInvoiceId: z24.string().optional().nullable(),
2407
+ metadataJson: z24.record(z24.string(), z24.unknown()).optional().nullable(),
2408
+ occurredAt: z24.string().datetime()
2364
2409
  }).transform((value) => ({
2365
2410
  ...value,
2366
2411
  currency: value.currency.toUpperCase()
@@ -2369,79 +2414,79 @@ var init_finance = __esm({
2369
2414
  });
2370
2415
 
2371
2416
  // ../packages/shared/dist/validators/asset.js
2372
- import { z as z24 } from "zod";
2417
+ import { z as z25 } from "zod";
2373
2418
  var createAssetImageMetadataSchema;
2374
2419
  var init_asset = __esm({
2375
2420
  "../packages/shared/dist/validators/asset.js"() {
2376
2421
  "use strict";
2377
- createAssetImageMetadataSchema = z24.object({
2378
- namespace: z24.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()
2422
+ createAssetImageMetadataSchema = z25.object({
2423
+ namespace: z25.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()
2379
2424
  });
2380
2425
  }
2381
2426
  });
2382
2427
 
2383
2428
  // ../packages/shared/dist/validators/access.js
2384
- import { z as z25 } from "zod";
2429
+ import { z as z26 } from "zod";
2385
2430
  var createCompanyInviteSchema, createOpenClawInvitePromptSchema, acceptInviteSchema, listJoinRequestsQuerySchema, claimJoinRequestApiKeySchema, boardCliAuthAccessLevelSchema, createCliAuthChallengeSchema, resolveCliAuthChallengeSchema, updateMemberPermissionsSchema, updateUserCompanyAccessSchema;
2386
2431
  var init_access = __esm({
2387
2432
  "../packages/shared/dist/validators/access.js"() {
2388
2433
  "use strict";
2389
2434
  init_constants();
2390
- createCompanyInviteSchema = z25.object({
2391
- allowedJoinTypes: z25.enum(INVITE_JOIN_TYPES).default("both"),
2392
- defaultsPayload: z25.record(z25.string(), z25.unknown()).optional().nullable(),
2393
- agentMessage: z25.string().max(4e3).optional().nullable()
2394
- });
2395
- createOpenClawInvitePromptSchema = z25.object({
2396
- agentMessage: z25.string().max(4e3).optional().nullable()
2397
- });
2398
- acceptInviteSchema = z25.object({
2399
- requestType: z25.enum(JOIN_REQUEST_TYPES),
2400
- agentName: z25.string().min(1).max(120).optional(),
2401
- agentRuntimeType: z25.enum(AGENT_RUNTIME_TYPES).optional(),
2402
- capabilities: z25.string().max(4e3).optional().nullable(),
2403
- agentDefaultsPayload: z25.record(z25.string(), z25.unknown()).optional().nullable(),
2435
+ createCompanyInviteSchema = z26.object({
2436
+ allowedJoinTypes: z26.enum(INVITE_JOIN_TYPES).default("both"),
2437
+ defaultsPayload: z26.record(z26.string(), z26.unknown()).optional().nullable(),
2438
+ agentMessage: z26.string().max(4e3).optional().nullable()
2439
+ });
2440
+ createOpenClawInvitePromptSchema = z26.object({
2441
+ agentMessage: z26.string().max(4e3).optional().nullable()
2442
+ });
2443
+ acceptInviteSchema = z26.object({
2444
+ requestType: z26.enum(JOIN_REQUEST_TYPES),
2445
+ agentName: z26.string().min(1).max(120).optional(),
2446
+ agentRuntimeType: z26.enum(AGENT_RUNTIME_TYPES).optional(),
2447
+ capabilities: z26.string().max(4e3).optional().nullable(),
2448
+ agentDefaultsPayload: z26.record(z26.string(), z26.unknown()).optional().nullable(),
2404
2449
  // OpenClaw join compatibility fields accepted at top level.
2405
- responsesWebhookUrl: z25.string().max(4e3).optional().nullable(),
2406
- responsesWebhookMethod: z25.string().max(32).optional().nullable(),
2407
- responsesWebhookHeaders: z25.record(z25.string(), z25.unknown()).optional().nullable(),
2408
- rudderApiUrl: z25.string().max(4e3).optional().nullable(),
2409
- webhookAuthHeader: z25.string().max(4e3).optional().nullable()
2450
+ responsesWebhookUrl: z26.string().max(4e3).optional().nullable(),
2451
+ responsesWebhookMethod: z26.string().max(32).optional().nullable(),
2452
+ responsesWebhookHeaders: z26.record(z26.string(), z26.unknown()).optional().nullable(),
2453
+ rudderApiUrl: z26.string().max(4e3).optional().nullable(),
2454
+ webhookAuthHeader: z26.string().max(4e3).optional().nullable()
2410
2455
  });
2411
- listJoinRequestsQuerySchema = z25.object({
2412
- status: z25.enum(JOIN_REQUEST_STATUSES).optional(),
2413
- requestType: z25.enum(JOIN_REQUEST_TYPES).optional()
2456
+ listJoinRequestsQuerySchema = z26.object({
2457
+ status: z26.enum(JOIN_REQUEST_STATUSES).optional(),
2458
+ requestType: z26.enum(JOIN_REQUEST_TYPES).optional()
2414
2459
  });
2415
- claimJoinRequestApiKeySchema = z25.object({
2416
- claimSecret: z25.string().min(16).max(256)
2460
+ claimJoinRequestApiKeySchema = z26.object({
2461
+ claimSecret: z26.string().min(16).max(256)
2417
2462
  });
2418
- boardCliAuthAccessLevelSchema = z25.enum([
2463
+ boardCliAuthAccessLevelSchema = z26.enum([
2419
2464
  "board",
2420
2465
  "instance_admin_required"
2421
2466
  ]);
2422
- createCliAuthChallengeSchema = z25.object({
2423
- command: z25.string().min(1).max(240),
2424
- clientName: z25.string().max(120).optional().nullable(),
2467
+ createCliAuthChallengeSchema = z26.object({
2468
+ command: z26.string().min(1).max(240),
2469
+ clientName: z26.string().max(120).optional().nullable(),
2425
2470
  requestedAccess: boardCliAuthAccessLevelSchema.default("board"),
2426
- requestedCompanyId: z25.string().uuid().optional().nullable()
2471
+ requestedCompanyId: z26.string().uuid().optional().nullable()
2427
2472
  });
2428
- resolveCliAuthChallengeSchema = z25.object({
2429
- token: z25.string().min(16).max(256)
2473
+ resolveCliAuthChallengeSchema = z26.object({
2474
+ token: z26.string().min(16).max(256)
2430
2475
  });
2431
- updateMemberPermissionsSchema = z25.object({
2432
- grants: z25.array(z25.object({
2433
- permissionKey: z25.enum(PERMISSION_KEYS),
2434
- scope: z25.record(z25.string(), z25.unknown()).optional().nullable()
2476
+ updateMemberPermissionsSchema = z26.object({
2477
+ grants: z26.array(z26.object({
2478
+ permissionKey: z26.enum(PERMISSION_KEYS),
2479
+ scope: z26.record(z26.string(), z26.unknown()).optional().nullable()
2435
2480
  }))
2436
2481
  });
2437
- updateUserCompanyAccessSchema = z25.object({
2438
- orgIds: z25.array(z25.string().uuid()).default([])
2482
+ updateUserCompanyAccessSchema = z26.object({
2483
+ orgIds: z26.array(z26.string().uuid()).default([])
2439
2484
  });
2440
2485
  }
2441
2486
  });
2442
2487
 
2443
2488
  // ../packages/shared/dist/validators/plugin.js
2444
- import { z as z26 } from "zod";
2489
+ import { z as z27 } from "zod";
2445
2490
  function isValidCronExpression(expression) {
2446
2491
  const trimmed = expression.trim();
2447
2492
  if (!trimmed)
@@ -2456,79 +2501,79 @@ var init_plugin = __esm({
2456
2501
  "../packages/shared/dist/validators/plugin.js"() {
2457
2502
  "use strict";
2458
2503
  init_constants();
2459
- jsonSchemaSchema = z26.record(z26.unknown()).refine((val) => {
2504
+ jsonSchemaSchema = z27.record(z27.unknown()).refine((val) => {
2460
2505
  if (Object.keys(val).length === 0)
2461
2506
  return true;
2462
2507
  return typeof val.type === "string" || val.$ref !== void 0 || val.oneOf !== void 0 || val.anyOf !== void 0 || val.allOf !== void 0;
2463
2508
  }, { message: "Must be a valid JSON Schema object (requires at least a 'type', '$ref', or composition keyword)" });
2464
2509
  CRON_FIELD_PATTERN = /^(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?)(?:,(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?))*$/;
2465
- pluginJobDeclarationSchema = z26.object({
2466
- jobKey: z26.string().min(1),
2467
- displayName: z26.string().min(1),
2468
- description: z26.string().optional(),
2469
- schedule: z26.string().refine((val) => isValidCronExpression(val), { message: "schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')" }).optional()
2470
- });
2471
- pluginWebhookDeclarationSchema = z26.object({
2472
- endpointKey: z26.string().min(1),
2473
- displayName: z26.string().min(1),
2474
- description: z26.string().optional()
2475
- });
2476
- pluginToolDeclarationSchema = z26.object({
2477
- name: z26.string().min(1),
2478
- displayName: z26.string().min(1),
2479
- description: z26.string().min(1),
2510
+ pluginJobDeclarationSchema = z27.object({
2511
+ jobKey: z27.string().min(1),
2512
+ displayName: z27.string().min(1),
2513
+ description: z27.string().optional(),
2514
+ schedule: z27.string().refine((val) => isValidCronExpression(val), { message: "schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')" }).optional()
2515
+ });
2516
+ pluginWebhookDeclarationSchema = z27.object({
2517
+ endpointKey: z27.string().min(1),
2518
+ displayName: z27.string().min(1),
2519
+ description: z27.string().optional()
2520
+ });
2521
+ pluginToolDeclarationSchema = z27.object({
2522
+ name: z27.string().min(1),
2523
+ displayName: z27.string().min(1),
2524
+ description: z27.string().min(1),
2480
2525
  parametersSchema: jsonSchemaSchema
2481
2526
  });
2482
- pluginUiSlotDeclarationSchema = z26.object({
2483
- type: z26.enum(PLUGIN_UI_SLOT_TYPES),
2484
- id: z26.string().min(1),
2485
- displayName: z26.string().min(1),
2486
- exportName: z26.string().min(1),
2487
- entityTypes: z26.array(z26.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
2488
- routePath: z26.string().regex(/^[a-z0-9][a-z0-9-]*$/, {
2527
+ pluginUiSlotDeclarationSchema = z27.object({
2528
+ type: z27.enum(PLUGIN_UI_SLOT_TYPES),
2529
+ id: z27.string().min(1),
2530
+ displayName: z27.string().min(1),
2531
+ exportName: z27.string().min(1),
2532
+ entityTypes: z27.array(z27.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
2533
+ routePath: z27.string().regex(/^[a-z0-9][a-z0-9-]*$/, {
2489
2534
  message: "routePath must be a lowercase single-segment slug (letters, numbers, hyphens)"
2490
2535
  }).optional(),
2491
- order: z26.number().int().optional()
2536
+ order: z27.number().int().optional()
2492
2537
  }).superRefine((value, ctx) => {
2493
2538
  const entityScopedTypes = ["detailTab", "taskDetailView", "contextMenuItem", "commentAnnotation", "commentContextMenuItem", "projectSidebarItem"];
2494
2539
  if (entityScopedTypes.includes(value.type) && (!value.entityTypes || value.entityTypes.length === 0)) {
2495
2540
  ctx.addIssue({
2496
- code: z26.ZodIssueCode.custom,
2541
+ code: z27.ZodIssueCode.custom,
2497
2542
  message: `${value.type} slots require at least one entityType`,
2498
2543
  path: ["entityTypes"]
2499
2544
  });
2500
2545
  }
2501
2546
  if (value.type === "projectSidebarItem" && value.entityTypes && !value.entityTypes.includes("project")) {
2502
2547
  ctx.addIssue({
2503
- code: z26.ZodIssueCode.custom,
2548
+ code: z27.ZodIssueCode.custom,
2504
2549
  message: 'projectSidebarItem slots require entityTypes to include "project"',
2505
2550
  path: ["entityTypes"]
2506
2551
  });
2507
2552
  }
2508
2553
  if (value.type === "commentAnnotation" && value.entityTypes && !value.entityTypes.includes("comment")) {
2509
2554
  ctx.addIssue({
2510
- code: z26.ZodIssueCode.custom,
2555
+ code: z27.ZodIssueCode.custom,
2511
2556
  message: 'commentAnnotation slots require entityTypes to include "comment"',
2512
2557
  path: ["entityTypes"]
2513
2558
  });
2514
2559
  }
2515
2560
  if (value.type === "commentContextMenuItem" && value.entityTypes && !value.entityTypes.includes("comment")) {
2516
2561
  ctx.addIssue({
2517
- code: z26.ZodIssueCode.custom,
2562
+ code: z27.ZodIssueCode.custom,
2518
2563
  message: 'commentContextMenuItem slots require entityTypes to include "comment"',
2519
2564
  path: ["entityTypes"]
2520
2565
  });
2521
2566
  }
2522
2567
  if (value.routePath && value.type !== "page") {
2523
2568
  ctx.addIssue({
2524
- code: z26.ZodIssueCode.custom,
2569
+ code: z27.ZodIssueCode.custom,
2525
2570
  message: "routePath is only supported for page slots",
2526
2571
  path: ["routePath"]
2527
2572
  });
2528
2573
  }
2529
2574
  if (value.routePath && PLUGIN_RESERVED_COMPANY_ROUTE_SEGMENTS.includes(value.routePath)) {
2530
2575
  ctx.addIssue({
2531
- code: z26.ZodIssueCode.custom,
2576
+ code: z27.ZodIssueCode.custom,
2532
2577
  message: `routePath "${value.routePath}" is reserved by the host`,
2533
2578
  path: ["routePath"]
2534
2579
  });
@@ -2549,29 +2594,29 @@ var init_plugin = __esm({
2549
2594
  external: [],
2550
2595
  iframe: ["compact", "default", "wide", "full"]
2551
2596
  };
2552
- pluginLauncherActionDeclarationSchema = z26.object({
2553
- type: z26.enum(PLUGIN_LAUNCHER_ACTIONS),
2554
- target: z26.string().min(1),
2555
- params: z26.record(z26.unknown()).optional()
2597
+ pluginLauncherActionDeclarationSchema = z27.object({
2598
+ type: z27.enum(PLUGIN_LAUNCHER_ACTIONS),
2599
+ target: z27.string().min(1),
2600
+ params: z27.record(z27.unknown()).optional()
2556
2601
  }).superRefine((value, ctx) => {
2557
2602
  if (value.type === "performAction" && value.target.includes("/")) {
2558
2603
  ctx.addIssue({
2559
- code: z26.ZodIssueCode.custom,
2604
+ code: z27.ZodIssueCode.custom,
2560
2605
  message: "performAction launchers must target an action key, not a route or URL",
2561
2606
  path: ["target"]
2562
2607
  });
2563
2608
  }
2564
2609
  if (value.type === "navigate" && /^https?:\/\//.test(value.target)) {
2565
2610
  ctx.addIssue({
2566
- code: z26.ZodIssueCode.custom,
2611
+ code: z27.ZodIssueCode.custom,
2567
2612
  message: "navigate launchers must target a host route, not an absolute URL",
2568
2613
  path: ["target"]
2569
2614
  });
2570
2615
  }
2571
2616
  });
2572
- pluginLauncherRenderDeclarationSchema = z26.object({
2573
- environment: z26.enum(PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS),
2574
- bounds: z26.enum(PLUGIN_LAUNCHER_BOUNDS).optional()
2617
+ pluginLauncherRenderDeclarationSchema = z27.object({
2618
+ environment: z27.enum(PLUGIN_LAUNCHER_RENDER_ENVIRONMENTS),
2619
+ bounds: z27.enum(PLUGIN_LAUNCHER_BOUNDS).optional()
2575
2620
  }).superRefine((value, ctx) => {
2576
2621
  if (!value.bounds) {
2577
2622
  return;
@@ -2579,110 +2624,110 @@ var init_plugin = __esm({
2579
2624
  const supportedBounds = launcherBoundsByEnvironment[value.environment];
2580
2625
  if (!supportedBounds.includes(value.bounds)) {
2581
2626
  ctx.addIssue({
2582
- code: z26.ZodIssueCode.custom,
2627
+ code: z27.ZodIssueCode.custom,
2583
2628
  message: `bounds "${value.bounds}" is not supported for render environment "${value.environment}"`,
2584
2629
  path: ["bounds"]
2585
2630
  });
2586
2631
  }
2587
2632
  });
2588
- pluginLauncherDeclarationSchema = z26.object({
2589
- id: z26.string().min(1),
2590
- displayName: z26.string().min(1),
2591
- description: z26.string().optional(),
2592
- placementZone: z26.enum(PLUGIN_LAUNCHER_PLACEMENT_ZONES),
2593
- exportName: z26.string().min(1).optional(),
2594
- entityTypes: z26.array(z26.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
2595
- order: z26.number().int().optional(),
2633
+ pluginLauncherDeclarationSchema = z27.object({
2634
+ id: z27.string().min(1),
2635
+ displayName: z27.string().min(1),
2636
+ description: z27.string().optional(),
2637
+ placementZone: z27.enum(PLUGIN_LAUNCHER_PLACEMENT_ZONES),
2638
+ exportName: z27.string().min(1).optional(),
2639
+ entityTypes: z27.array(z27.enum(PLUGIN_UI_SLOT_ENTITY_TYPES)).optional(),
2640
+ order: z27.number().int().optional(),
2596
2641
  action: pluginLauncherActionDeclarationSchema,
2597
2642
  render: pluginLauncherRenderDeclarationSchema.optional()
2598
2643
  }).superRefine((value, ctx) => {
2599
2644
  if (entityScopedLauncherPlacementZones.some((zone) => zone === value.placementZone) && (!value.entityTypes || value.entityTypes.length === 0)) {
2600
2645
  ctx.addIssue({
2601
- code: z26.ZodIssueCode.custom,
2646
+ code: z27.ZodIssueCode.custom,
2602
2647
  message: `${value.placementZone} launchers require at least one entityType`,
2603
2648
  path: ["entityTypes"]
2604
2649
  });
2605
2650
  }
2606
2651
  if (value.placementZone === "projectSidebarItem" && value.entityTypes && !value.entityTypes.includes("project")) {
2607
2652
  ctx.addIssue({
2608
- code: z26.ZodIssueCode.custom,
2653
+ code: z27.ZodIssueCode.custom,
2609
2654
  message: 'projectSidebarItem launchers require entityTypes to include "project"',
2610
2655
  path: ["entityTypes"]
2611
2656
  });
2612
2657
  }
2613
2658
  if (value.action.type === "performAction" && value.render) {
2614
2659
  ctx.addIssue({
2615
- code: z26.ZodIssueCode.custom,
2660
+ code: z27.ZodIssueCode.custom,
2616
2661
  message: "performAction launchers cannot declare render hints",
2617
2662
  path: ["render"]
2618
2663
  });
2619
2664
  }
2620
2665
  if (["openModal", "openDrawer", "openPopover"].includes(value.action.type) && !value.render) {
2621
2666
  ctx.addIssue({
2622
- code: z26.ZodIssueCode.custom,
2667
+ code: z27.ZodIssueCode.custom,
2623
2668
  message: `${value.action.type} launchers require render metadata`,
2624
2669
  path: ["render"]
2625
2670
  });
2626
2671
  }
2627
2672
  if (value.action.type === "openModal" && value.render?.environment === "hostInline") {
2628
2673
  ctx.addIssue({
2629
- code: z26.ZodIssueCode.custom,
2674
+ code: z27.ZodIssueCode.custom,
2630
2675
  message: "openModal launchers cannot use the hostInline render environment",
2631
2676
  path: ["render", "environment"]
2632
2677
  });
2633
2678
  }
2634
2679
  if (value.action.type === "openDrawer" && value.render && !["hostOverlay", "iframe"].includes(value.render.environment)) {
2635
2680
  ctx.addIssue({
2636
- code: z26.ZodIssueCode.custom,
2681
+ code: z27.ZodIssueCode.custom,
2637
2682
  message: "openDrawer launchers must use hostOverlay or iframe render environments",
2638
2683
  path: ["render", "environment"]
2639
2684
  });
2640
2685
  }
2641
2686
  if (value.action.type === "openPopover" && value.render?.environment === "hostRoute") {
2642
2687
  ctx.addIssue({
2643
- code: z26.ZodIssueCode.custom,
2688
+ code: z27.ZodIssueCode.custom,
2644
2689
  message: "openPopover launchers cannot use the hostRoute render environment",
2645
2690
  path: ["render", "environment"]
2646
2691
  });
2647
2692
  }
2648
2693
  });
2649
- pluginManifestV1Schema = z26.object({
2650
- 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"),
2651
- apiVersion: z26.literal(1),
2652
- 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)"),
2653
- displayName: z26.string().min(1).max(100),
2654
- description: z26.string().min(1).max(500),
2655
- author: z26.string().min(1).max(200),
2656
- categories: z26.array(z26.enum(PLUGIN_CATEGORIES)).min(1),
2657
- 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(),
2658
- 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(),
2659
- capabilities: z26.array(z26.enum(PLUGIN_CAPABILITIES)).min(1),
2660
- entrypoints: z26.object({
2661
- worker: z26.string().min(1),
2662
- ui: z26.string().min(1).optional()
2694
+ pluginManifestV1Schema = z27.object({
2695
+ id: z27.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"),
2696
+ apiVersion: z27.literal(1),
2697
+ version: z27.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)"),
2698
+ displayName: z27.string().min(1).max(100),
2699
+ description: z27.string().min(1).max(500),
2700
+ author: z27.string().min(1).max(200),
2701
+ categories: z27.array(z27.enum(PLUGIN_CATEGORIES)).min(1),
2702
+ minimumHostVersion: z27.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(),
2703
+ minimumPaperclipVersion: z27.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(),
2704
+ capabilities: z27.array(z27.enum(PLUGIN_CAPABILITIES)).min(1),
2705
+ entrypoints: z27.object({
2706
+ worker: z27.string().min(1),
2707
+ ui: z27.string().min(1).optional()
2663
2708
  }),
2664
2709
  instanceConfigSchema: jsonSchemaSchema.optional(),
2665
- jobs: z26.array(pluginJobDeclarationSchema).optional(),
2666
- webhooks: z26.array(pluginWebhookDeclarationSchema).optional(),
2667
- tools: z26.array(pluginToolDeclarationSchema).optional(),
2668
- launchers: z26.array(pluginLauncherDeclarationSchema).optional(),
2669
- ui: z26.object({
2670
- slots: z26.array(pluginUiSlotDeclarationSchema).min(1).optional(),
2671
- launchers: z26.array(pluginLauncherDeclarationSchema).optional()
2710
+ jobs: z27.array(pluginJobDeclarationSchema).optional(),
2711
+ webhooks: z27.array(pluginWebhookDeclarationSchema).optional(),
2712
+ tools: z27.array(pluginToolDeclarationSchema).optional(),
2713
+ launchers: z27.array(pluginLauncherDeclarationSchema).optional(),
2714
+ ui: z27.object({
2715
+ slots: z27.array(pluginUiSlotDeclarationSchema).min(1).optional(),
2716
+ launchers: z27.array(pluginLauncherDeclarationSchema).optional()
2672
2717
  }).optional()
2673
2718
  }).superRefine((manifest, ctx) => {
2674
2719
  const hasUiSlots = (manifest.ui?.slots?.length ?? 0) > 0;
2675
2720
  const hasUiLaunchers = (manifest.ui?.launchers?.length ?? 0) > 0;
2676
2721
  if ((hasUiSlots || hasUiLaunchers) && !manifest.entrypoints.ui) {
2677
2722
  ctx.addIssue({
2678
- code: z26.ZodIssueCode.custom,
2723
+ code: z27.ZodIssueCode.custom,
2679
2724
  message: "entrypoints.ui is required when ui.slots or ui.launchers are declared",
2680
2725
  path: ["entrypoints", "ui"]
2681
2726
  });
2682
2727
  }
2683
2728
  if (manifest.minimumHostVersion && manifest.minimumPaperclipVersion && manifest.minimumHostVersion !== manifest.minimumPaperclipVersion) {
2684
2729
  ctx.addIssue({
2685
- code: z26.ZodIssueCode.custom,
2730
+ code: z27.ZodIssueCode.custom,
2686
2731
  message: "minimumHostVersion and minimumPaperclipVersion must match when both are declared",
2687
2732
  path: ["minimumHostVersion"]
2688
2733
  });
@@ -2690,7 +2735,7 @@ var init_plugin = __esm({
2690
2735
  if (manifest.tools && manifest.tools.length > 0) {
2691
2736
  if (!manifest.capabilities.includes("agent.tools.register")) {
2692
2737
  ctx.addIssue({
2693
- code: z26.ZodIssueCode.custom,
2738
+ code: z27.ZodIssueCode.custom,
2694
2739
  message: "Capability 'agent.tools.register' is required when tools are declared",
2695
2740
  path: ["capabilities"]
2696
2741
  });
@@ -2699,7 +2744,7 @@ var init_plugin = __esm({
2699
2744
  if (manifest.jobs && manifest.jobs.length > 0) {
2700
2745
  if (!manifest.capabilities.includes("jobs.schedule")) {
2701
2746
  ctx.addIssue({
2702
- code: z26.ZodIssueCode.custom,
2747
+ code: z27.ZodIssueCode.custom,
2703
2748
  message: "Capability 'jobs.schedule' is required when jobs are declared",
2704
2749
  path: ["capabilities"]
2705
2750
  });
@@ -2708,7 +2753,7 @@ var init_plugin = __esm({
2708
2753
  if (manifest.webhooks && manifest.webhooks.length > 0) {
2709
2754
  if (!manifest.capabilities.includes("webhooks.receive")) {
2710
2755
  ctx.addIssue({
2711
- code: z26.ZodIssueCode.custom,
2756
+ code: z27.ZodIssueCode.custom,
2712
2757
  message: "Capability 'webhooks.receive' is required when webhooks are declared",
2713
2758
  path: ["capabilities"]
2714
2759
  });
@@ -2719,7 +2764,7 @@ var init_plugin = __esm({
2719
2764
  const duplicates = jobKeys.filter((key, i) => jobKeys.indexOf(key) !== i);
2720
2765
  if (duplicates.length > 0) {
2721
2766
  ctx.addIssue({
2722
- code: z26.ZodIssueCode.custom,
2767
+ code: z27.ZodIssueCode.custom,
2723
2768
  message: `Duplicate job keys: ${[...new Set(duplicates)].join(", ")}`,
2724
2769
  path: ["jobs"]
2725
2770
  });
@@ -2730,7 +2775,7 @@ var init_plugin = __esm({
2730
2775
  const duplicates = endpointKeys.filter((key, i) => endpointKeys.indexOf(key) !== i);
2731
2776
  if (duplicates.length > 0) {
2732
2777
  ctx.addIssue({
2733
- code: z26.ZodIssueCode.custom,
2778
+ code: z27.ZodIssueCode.custom,
2734
2779
  message: `Duplicate webhook endpoint keys: ${[...new Set(duplicates)].join(", ")}`,
2735
2780
  path: ["webhooks"]
2736
2781
  });
@@ -2741,7 +2786,7 @@ var init_plugin = __esm({
2741
2786
  const duplicates = toolNames.filter((name, i) => toolNames.indexOf(name) !== i);
2742
2787
  if (duplicates.length > 0) {
2743
2788
  ctx.addIssue({
2744
- code: z26.ZodIssueCode.custom,
2789
+ code: z27.ZodIssueCode.custom,
2745
2790
  message: `Duplicate tool names: ${[...new Set(duplicates)].join(", ")}`,
2746
2791
  path: ["tools"]
2747
2792
  });
@@ -2753,7 +2798,7 @@ var init_plugin = __esm({
2753
2798
  const duplicates = slotIds.filter((id, i) => slotIds.indexOf(id) !== i);
2754
2799
  if (duplicates.length > 0) {
2755
2800
  ctx.addIssue({
2756
- code: z26.ZodIssueCode.custom,
2801
+ code: z27.ZodIssueCode.custom,
2757
2802
  message: `Duplicate UI slot ids: ${[...new Set(duplicates)].join(", ")}`,
2758
2803
  path: ["ui", "slots"]
2759
2804
  });
@@ -2769,50 +2814,50 @@ var init_plugin = __esm({
2769
2814
  const duplicates = launcherIds.filter((id, i) => launcherIds.indexOf(id) !== i);
2770
2815
  if (duplicates.length > 0) {
2771
2816
  ctx.addIssue({
2772
- code: z26.ZodIssueCode.custom,
2817
+ code: z27.ZodIssueCode.custom,
2773
2818
  message: `Duplicate launcher ids: ${[...new Set(duplicates)].join(", ")}`,
2774
2819
  path: manifest.ui?.launchers ? ["ui", "launchers"] : ["launchers"]
2775
2820
  });
2776
2821
  }
2777
2822
  }
2778
2823
  });
2779
- installPluginSchema = z26.object({
2780
- packageName: z26.string().min(1),
2781
- version: z26.string().min(1).optional(),
2824
+ installPluginSchema = z27.object({
2825
+ packageName: z27.string().min(1),
2826
+ version: z27.string().min(1).optional(),
2782
2827
  /** Set by loader for local-path installs so the worker can be resolved. */
2783
- packagePath: z26.string().min(1).optional()
2828
+ packagePath: z27.string().min(1).optional()
2784
2829
  });
2785
- upsertPluginConfigSchema = z26.object({
2786
- configJson: z26.record(z26.unknown())
2830
+ upsertPluginConfigSchema = z27.object({
2831
+ configJson: z27.record(z27.unknown())
2787
2832
  });
2788
- patchPluginConfigSchema = z26.object({
2789
- configJson: z26.record(z26.unknown())
2833
+ patchPluginConfigSchema = z27.object({
2834
+ configJson: z27.record(z27.unknown())
2790
2835
  });
2791
- updatePluginStatusSchema = z26.object({
2792
- status: z26.enum(PLUGIN_STATUSES),
2793
- lastError: z26.string().nullable().optional()
2836
+ updatePluginStatusSchema = z27.object({
2837
+ status: z27.enum(PLUGIN_STATUSES),
2838
+ lastError: z27.string().nullable().optional()
2794
2839
  });
2795
- uninstallPluginSchema = z26.object({
2796
- removeData: z26.boolean().optional().default(false)
2840
+ uninstallPluginSchema = z27.object({
2841
+ removeData: z27.boolean().optional().default(false)
2797
2842
  });
2798
- pluginStateScopeKeySchema = z26.object({
2799
- scopeKind: z26.enum(PLUGIN_STATE_SCOPE_KINDS),
2800
- scopeId: z26.string().min(1).optional(),
2801
- namespace: z26.string().min(1).optional(),
2802
- stateKey: z26.string().min(1)
2843
+ pluginStateScopeKeySchema = z27.object({
2844
+ scopeKind: z27.enum(PLUGIN_STATE_SCOPE_KINDS),
2845
+ scopeId: z27.string().min(1).optional(),
2846
+ namespace: z27.string().min(1).optional(),
2847
+ stateKey: z27.string().min(1)
2803
2848
  });
2804
- setPluginStateSchema = z26.object({
2805
- scopeKind: z26.enum(PLUGIN_STATE_SCOPE_KINDS),
2806
- scopeId: z26.string().min(1).optional(),
2807
- namespace: z26.string().min(1).optional(),
2808
- stateKey: z26.string().min(1),
2849
+ setPluginStateSchema = z27.object({
2850
+ scopeKind: z27.enum(PLUGIN_STATE_SCOPE_KINDS),
2851
+ scopeId: z27.string().min(1).optional(),
2852
+ namespace: z27.string().min(1).optional(),
2853
+ stateKey: z27.string().min(1),
2809
2854
  /** JSON-serializable value to store. */
2810
- value: z26.unknown()
2855
+ value: z27.unknown()
2811
2856
  });
2812
- listPluginStateSchema = z26.object({
2813
- scopeKind: z26.enum(PLUGIN_STATE_SCOPE_KINDS).optional(),
2814
- scopeId: z26.string().min(1).optional(),
2815
- namespace: z26.string().min(1).optional()
2857
+ listPluginStateSchema = z27.object({
2858
+ scopeKind: z27.enum(PLUGIN_STATE_SCOPE_KINDS).optional(),
2859
+ scopeId: z27.string().min(1).optional(),
2860
+ namespace: z27.string().min(1).optional()
2816
2861
  });
2817
2862
  }
2818
2863
  });
@@ -2831,6 +2876,7 @@ var init_validators = __esm({
2831
2876
  init_organization();
2832
2877
  init_resource();
2833
2878
  init_agent();
2879
+ init_agent_integration();
2834
2880
  init_project();
2835
2881
  init_issue();
2836
2882
  init_work_product();
@@ -2982,34 +3028,34 @@ var init_issue_activity = __esm({
2982
3028
  });
2983
3029
 
2984
3030
  // ../packages/shared/dist/config-schema.js
2985
- import { z as z27 } from "zod";
3031
+ import { z as z28 } from "zod";
2986
3032
  var DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES, configMetaSchema, llmConfigSchema, databaseBackupConfigSchema, databaseConfigSchema, loggingConfigSchema, serverConfigSchema, authConfigSchema, storageLocalDiskConfigSchema, storageS3ConfigSchema, storageConfigSchema, secretsLocalEncryptedConfigSchema, secretsConfigSchema, langfuseConfigSchema, rudderConfigSchema;
2987
3033
  var init_config_schema = __esm({
2988
3034
  "../packages/shared/dist/config-schema.js"() {
2989
3035
  "use strict";
2990
3036
  init_constants();
2991
3037
  DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES = 256 * 1024 * 1024;
2992
- configMetaSchema = z27.object({
2993
- version: z27.literal(1),
2994
- updatedAt: z27.string(),
2995
- source: z27.enum(["onboard", "configure", "doctor"])
2996
- });
2997
- llmConfigSchema = z27.object({
2998
- provider: z27.enum(["claude", "openai"]),
2999
- apiKey: z27.string().optional()
3000
- });
3001
- databaseBackupConfigSchema = z27.object({
3002
- enabled: z27.boolean().default(true),
3003
- intervalMinutes: z27.number().int().min(1).max(7 * 24 * 60).default(60),
3004
- retentionDays: z27.number().int().min(1).max(3650).default(30),
3005
- maxEstimatedBytes: z27.number().int().min(1).default(DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES),
3006
- dir: z27.string().default("~/.rudder/instances/default/data/backups")
3007
- });
3008
- databaseConfigSchema = z27.object({
3009
- mode: z27.enum(["embedded-postgres", "postgres"]).default("embedded-postgres"),
3010
- connectionString: z27.string().optional(),
3011
- embeddedPostgresDataDir: z27.string().default("~/.rudder/instances/default/db"),
3012
- embeddedPostgresPort: z27.number().int().min(1).max(65535).default(54329),
3038
+ configMetaSchema = z28.object({
3039
+ version: z28.literal(1),
3040
+ updatedAt: z28.string(),
3041
+ source: z28.enum(["onboard", "configure", "doctor"])
3042
+ });
3043
+ llmConfigSchema = z28.object({
3044
+ provider: z28.enum(["claude", "openai"]),
3045
+ apiKey: z28.string().optional()
3046
+ });
3047
+ databaseBackupConfigSchema = z28.object({
3048
+ enabled: z28.boolean().default(true),
3049
+ intervalMinutes: z28.number().int().min(1).max(7 * 24 * 60).default(60),
3050
+ retentionDays: z28.number().int().min(1).max(3650).default(30),
3051
+ maxEstimatedBytes: z28.number().int().min(1).default(DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES),
3052
+ dir: z28.string().default("~/.rudder/instances/default/data/backups")
3053
+ });
3054
+ databaseConfigSchema = z28.object({
3055
+ mode: z28.enum(["embedded-postgres", "postgres"]).default("embedded-postgres"),
3056
+ connectionString: z28.string().optional(),
3057
+ embeddedPostgresDataDir: z28.string().default("~/.rudder/instances/default/db"),
3058
+ embeddedPostgresPort: z28.number().int().min(1).max(65535).default(54329),
3013
3059
  backup: databaseBackupConfigSchema.default({
3014
3060
  enabled: true,
3015
3061
  intervalMinutes: 60,
@@ -3018,35 +3064,35 @@ var init_config_schema = __esm({
3018
3064
  dir: "~/.rudder/instances/default/data/backups"
3019
3065
  })
3020
3066
  });
3021
- loggingConfigSchema = z27.object({
3022
- mode: z27.enum(["file", "cloud"]),
3023
- logDir: z27.string().default("~/.rudder/instances/default/logs")
3024
- });
3025
- serverConfigSchema = z27.object({
3026
- deploymentMode: z27.enum(DEPLOYMENT_MODES).default("local_trusted"),
3027
- exposure: z27.enum(DEPLOYMENT_EXPOSURES).default("private"),
3028
- host: z27.string().default("127.0.0.1"),
3029
- port: z27.number().int().min(1).max(65535).default(3100),
3030
- allowedHostnames: z27.array(z27.string().min(1)).default([]),
3031
- serveUi: z27.boolean().default(true)
3032
- });
3033
- authConfigSchema = z27.object({
3034
- baseUrlMode: z27.enum(AUTH_BASE_URL_MODES).default("auto"),
3035
- publicBaseUrl: z27.string().url().optional(),
3036
- disableSignUp: z27.boolean().default(false)
3037
- });
3038
- storageLocalDiskConfigSchema = z27.object({
3039
- baseDir: z27.string().default("~/.rudder/instances/default/data/storage")
3040
- });
3041
- storageS3ConfigSchema = z27.object({
3042
- bucket: z27.string().min(1).default("rudder"),
3043
- region: z27.string().min(1).default("us-east-1"),
3044
- endpoint: z27.string().optional(),
3045
- prefix: z27.string().default(""),
3046
- forcePathStyle: z27.boolean().default(false)
3047
- });
3048
- storageConfigSchema = z27.object({
3049
- provider: z27.enum(STORAGE_PROVIDERS).default("local_disk"),
3067
+ loggingConfigSchema = z28.object({
3068
+ mode: z28.enum(["file", "cloud"]),
3069
+ logDir: z28.string().default("~/.rudder/instances/default/logs")
3070
+ });
3071
+ serverConfigSchema = z28.object({
3072
+ deploymentMode: z28.enum(DEPLOYMENT_MODES).default("local_trusted"),
3073
+ exposure: z28.enum(DEPLOYMENT_EXPOSURES).default("private"),
3074
+ host: z28.string().default("127.0.0.1"),
3075
+ port: z28.number().int().min(1).max(65535).default(3100),
3076
+ allowedHostnames: z28.array(z28.string().min(1)).default([]),
3077
+ serveUi: z28.boolean().default(true)
3078
+ });
3079
+ authConfigSchema = z28.object({
3080
+ baseUrlMode: z28.enum(AUTH_BASE_URL_MODES).default("auto"),
3081
+ publicBaseUrl: z28.string().url().optional(),
3082
+ disableSignUp: z28.boolean().default(false)
3083
+ });
3084
+ storageLocalDiskConfigSchema = z28.object({
3085
+ baseDir: z28.string().default("~/.rudder/instances/default/data/storage")
3086
+ });
3087
+ storageS3ConfigSchema = z28.object({
3088
+ bucket: z28.string().min(1).default("rudder"),
3089
+ region: z28.string().min(1).default("us-east-1"),
3090
+ endpoint: z28.string().optional(),
3091
+ prefix: z28.string().default(""),
3092
+ forcePathStyle: z28.boolean().default(false)
3093
+ });
3094
+ storageConfigSchema = z28.object({
3095
+ provider: z28.enum(STORAGE_PROVIDERS).default("local_disk"),
3050
3096
  localDisk: storageLocalDiskConfigSchema.default({
3051
3097
  baseDir: "~/.rudder/instances/default/data/storage"
3052
3098
  }),
@@ -3057,24 +3103,24 @@ var init_config_schema = __esm({
3057
3103
  forcePathStyle: false
3058
3104
  })
3059
3105
  });
3060
- secretsLocalEncryptedConfigSchema = z27.object({
3061
- keyFilePath: z27.string().default("~/.rudder/instances/default/secrets/master.key")
3106
+ secretsLocalEncryptedConfigSchema = z28.object({
3107
+ keyFilePath: z28.string().default("~/.rudder/instances/default/secrets/master.key")
3062
3108
  });
3063
- secretsConfigSchema = z27.object({
3064
- provider: z27.enum(SECRET_PROVIDERS).default("local_encrypted"),
3065
- strictMode: z27.boolean().default(false),
3109
+ secretsConfigSchema = z28.object({
3110
+ provider: z28.enum(SECRET_PROVIDERS).default("local_encrypted"),
3111
+ strictMode: z28.boolean().default(false),
3066
3112
  localEncrypted: secretsLocalEncryptedConfigSchema.default({
3067
3113
  keyFilePath: "~/.rudder/instances/default/secrets/master.key"
3068
3114
  })
3069
3115
  });
3070
- langfuseConfigSchema = z27.object({
3071
- enabled: z27.boolean().default(false),
3072
- baseUrl: z27.string().url().default("http://localhost:3000"),
3073
- publicKey: z27.string().optional(),
3074
- secretKey: z27.string().optional(),
3075
- environment: z27.string().optional()
3116
+ langfuseConfigSchema = z28.object({
3117
+ enabled: z28.boolean().default(false),
3118
+ baseUrl: z28.string().url().default("http://localhost:3000"),
3119
+ publicKey: z28.string().optional(),
3120
+ secretKey: z28.string().optional(),
3121
+ environment: z28.string().optional()
3076
3122
  });
3077
- rudderConfigSchema = z27.object({
3123
+ rudderConfigSchema = z28.object({
3078
3124
  $meta: configMetaSchema,
3079
3125
  llm: llmConfigSchema.optional(),
3080
3126
  database: databaseConfigSchema,
@@ -3108,7 +3154,7 @@ var init_config_schema = __esm({
3108
3154
  if (value.server.deploymentMode === "local_trusted") {
3109
3155
  if (value.server.exposure !== "private") {
3110
3156
  ctx.addIssue({
3111
- code: z27.ZodIssueCode.custom,
3157
+ code: z28.ZodIssueCode.custom,
3112
3158
  message: "server.exposure must be private when deploymentMode is local_trusted",
3113
3159
  path: ["server", "exposure"]
3114
3160
  });
@@ -3117,21 +3163,21 @@ var init_config_schema = __esm({
3117
3163
  }
3118
3164
  if (value.auth.baseUrlMode === "explicit" && !value.auth.publicBaseUrl) {
3119
3165
  ctx.addIssue({
3120
- code: z27.ZodIssueCode.custom,
3166
+ code: z28.ZodIssueCode.custom,
3121
3167
  message: "auth.publicBaseUrl is required when auth.baseUrlMode is explicit",
3122
3168
  path: ["auth", "publicBaseUrl"]
3123
3169
  });
3124
3170
  }
3125
3171
  if (value.server.exposure === "public" && value.auth.baseUrlMode !== "explicit") {
3126
3172
  ctx.addIssue({
3127
- code: z27.ZodIssueCode.custom,
3173
+ code: z28.ZodIssueCode.custom,
3128
3174
  message: "auth.baseUrlMode must be explicit when deploymentMode=authenticated and exposure=public",
3129
3175
  path: ["auth", "baseUrlMode"]
3130
3176
  });
3131
3177
  }
3132
3178
  if (value.server.exposure === "public" && !value.auth.publicBaseUrl) {
3133
3179
  ctx.addIssue({
3134
- code: z27.ZodIssueCode.custom,
3180
+ code: z28.ZodIssueCode.custom,
3135
3181
  message: "auth.publicBaseUrl is required when deploymentMode=authenticated and exposure=public",
3136
3182
  path: ["auth", "publicBaseUrl"]
3137
3183
  });