@rudderhq/cli 0.7.3 → 0.7.4-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -65,6 +65,7 @@ var init_computer_use = __esm({
65
65
  COMPUTER_USE_MCP_TOOL_PREFIX = "rudder_computer_";
66
66
  COMPUTER_USE_ACTIONS = [
67
67
  "list_apps",
68
+ "launch_app",
68
69
  "list_windows",
69
70
  "get_app_state",
70
71
  "click",
@@ -103,6 +104,14 @@ var init_computer_use = __esm({
103
104
  });
104
105
  COMPUTER_USE_MCP_TOOLS = [
105
106
  tool("list_apps", "List running macOS applications. Use this to identify the exact target before observing it.", objectSchema({})),
107
+ tool("launch_app", "Launch an installed application without taking focus. Use the returned pid and window ID to observe it directly.", {
108
+ ...objectSchema({
109
+ name: { type: "string", description: "Exact installed application name." },
110
+ bundleId: { type: "string", description: "Exact application bundle identifier." },
111
+ newInstance: { type: "boolean", description: "Request a separate application instance when the platform supports it." }
112
+ }),
113
+ anyOf: [{ required: ["name"] }, { required: ["bundleId"] }]
114
+ }),
106
115
  tool("list_windows", "List windows for a running application.", objectSchema({
107
116
  ...targetProperties,
108
117
  onScreenOnly: { type: "boolean" }
@@ -182,6 +191,11 @@ var init_computer_use = __esm({
182
191
  }).strict();
183
192
  computerUseActionSchemas = {
184
193
  list_apps: z.object({}).strict(),
194
+ launch_app: z.object({
195
+ name: z.string().trim().min(1).max(300).optional(),
196
+ bundleId: z.string().trim().min(1).max(300).optional(),
197
+ newInstance: z.boolean().optional()
198
+ }).strict().refine((value) => value.name !== void 0 || value.bundleId !== void 0, { message: "Launch app requires a name or bundle ID." }),
185
199
  list_windows: appTargetSchema.extend({ onScreenOnly: z.boolean().optional() }).strict(),
186
200
  get_app_state: appTargetSchema.extend({
187
201
  includeScreenshot: z.boolean().optional(),
@@ -242,7 +256,7 @@ var init_computer_use = __esm({
242
256
  });
243
257
 
244
258
  // ../packages/shared/dist/constants.js
245
- 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_OREO_ICON_PREFIX, AGENT_OREO_SHAPE_IDS, AGENT_OREO_PALETTE_IDS, 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, RUDDER_AGENT_V1_MCP_TOOL_NAMES, RUDDER_BROWSER_MCP_TOOL_NAMES2, RUDDER_CORE_MCP_TOOL_NAMES2, CUSTOM_INTEGRATION_KINDS, CUSTOM_INTEGRATION_SCOPES, CUSTOM_INTEGRATION_STATUSES, CUSTOM_INTEGRATION_TOOL_STATUSES, CUSTOM_INTEGRATION_BINDING_STATUSES, CUSTOM_INTEGRATION_TOOL_CALL_STATUSES, MCP_CONNECTION_PROVIDERS, MCP_CONNECTION_TRANSPORTS, MCP_CONNECTION_SCOPES, MCP_CONNECTION_ACCESS_MODES, MCP_AGENT_ACCESS_MODES, MCP_CONNECTION_CANONICAL_STATES, MCP_PROVIDER_SCOPE_MODES, MCP_PROVIDER_CREDENTIAL_MODES, MCP_PROVIDER_ORGANIZATION_STATES, MCP_TOOL_CAPABILITY_CLASSES, MCP_CONNECTION_STATUSES, MCP_OAUTH_GRANT_STATUSES, MCP_AGENT_BINDING_STATUSES, MCP_OAUTH_SESSION_TTL_MS, MCP_PROVIDER_CATALOG, 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_OBJECTIVE_MODES, GOAL_EVALUATOR_KINDS, GOAL_CONTINUATION_KINDS, GOAL_ACTIVITY_KINDS, GOAL_FEEDBACK_KINDS, 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, AGENT_ISSUE_CREATION_REQUEST_STATUSES, INVITE_JOIN_TYPES, JOIN_REQUEST_TYPES, JOIN_REQUEST_STATUSES, PERMISSION_KEYS;
259
+ 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_OREO_ICON_PREFIX, AGENT_OREO_SHAPE_IDS, AGENT_OREO_PALETTE_IDS, 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, RUDDER_AGENT_V1_MCP_TOOL_NAMES, RUDDER_BROWSER_MCP_TOOL_NAMES2, RUDDER_CORE_MCP_TOOL_NAMES2, CUSTOM_INTEGRATION_KINDS, CUSTOM_INTEGRATION_SCOPES, CUSTOM_INTEGRATION_STATUSES, CUSTOM_INTEGRATION_TOOL_STATUSES, CUSTOM_INTEGRATION_BINDING_STATUSES, CUSTOM_INTEGRATION_TOOL_CALL_STATUSES, MCP_CONNECTION_PROVIDERS, MCP_CONNECTION_TRANSPORTS, MCP_CONNECTION_SCOPES, MCP_CONNECTION_ACCESS_MODES, MCP_AGENT_ACCESS_MODES, MCP_CONNECTION_CANONICAL_STATES, MCP_PROVIDER_SCOPE_MODES, MCP_PROVIDER_CREDENTIAL_MODES, MCP_PROVIDER_ORGANIZATION_STATES, MCP_TOOL_CAPABILITY_CLASSES, MCP_CONNECTION_STATUSES, MCP_OAUTH_GRANT_STATUSES, MCP_AGENT_BINDING_STATUSES, MCP_OAUTH_SESSION_TTL_MS, MCP_PROVIDER_CATALOG, 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_OBJECTIVE_MODES, GOAL_EVALUATOR_KINDS, GOAL_CONTINUATION_KINDS, GOAL_ACTIVITY_KINDS, GOAL_FEEDBACK_KINDS, 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, REQUEST_STATUSES, ASSISTANCE_REQUEST_RESOLUTIONS, 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, AGENT_ISSUE_CREATION_REQUEST_STATUSES, INVITE_JOIN_TYPES, JOIN_REQUEST_TYPES, JOIN_REQUEST_STATUSES, PERMISSION_KEYS;
246
260
  var init_constants = __esm({
247
261
  "../packages/shared/dist/constants.js"() {
248
262
  "use strict";
@@ -755,6 +769,8 @@ var init_constants = __esm({
755
769
  "agent_runtime",
756
770
  "goal_change"
757
771
  ];
772
+ REQUEST_STATUSES = ["open", "resolved", "cancelled", "superseded"];
773
+ ASSISTANCE_REQUEST_RESOLUTIONS = ["answered", "action_completed", "cannot_help"];
758
774
  SECRET_PROVIDERS = [
759
775
  "local_encrypted",
760
776
  "aws_secrets_manager",
@@ -3206,7 +3222,7 @@ var init_organization_portability = __esm({
3206
3222
 
3207
3223
  // ../packages/shared/dist/validators/organization-skill.js
3208
3224
  import { z as z18 } from "zod";
3209
- var organizationSkillSourceTypeSchema, organizationSkillTrustLevelSchema, organizationSkillCompatibilitySchema, organizationSkillSourceBadgeSchema, organizationSkillFileInventoryEntrySchema, organizationSkillSchema, organizationSkillListItemSchema, organizationSkillUsageAgentSchema, organizationSkillDetailSchema, organizationSkillUpdateStatusSchema, organizationSkillImportSchema, organizationSkillProjectScanRequestSchema, organizationSkillProjectScanSkippedSchema, organizationSkillProjectScanConflictSchema, organizationSkillProjectScanResultSchema, organizationSkillLocalScanRequestSchema, organizationSkillLocalScanSkippedSchema, organizationSkillLocalScanConflictSchema, organizationSkillLocalScanResultSchema, organizationSkillCreateSchema, organizationSkillFileDetailSchema, organizationSkillFileUpdateSchema;
3225
+ var organizationSkillSourceTypeSchema, organizationSkillTrustLevelSchema, organizationSkillCompatibilitySchema, organizationSkillSourceBadgeSchema, organizationSkillFileInventoryEntrySchema, organizationSkillSchema, organizationSkillListItemSchema, organizationSkillUsageAgentSchema, organizationSkillDetailSchema, organizationSkillUpdateStatusSchema, organizationSkillImportSchema, organizationSkillUploadSchema, organizationSkillProjectScanRequestSchema, organizationSkillProjectScanSkippedSchema, organizationSkillProjectScanConflictSchema, organizationSkillProjectScanResultSchema, organizationSkillLocalScanRequestSchema, organizationSkillLocalScanSkippedSchema, organizationSkillLocalScanConflictSchema, organizationSkillLocalScanResultSchema, organizationSkillCreateSchema, organizationSkillFileDetailSchema, organizationSkillFileUpdateSchema;
3210
3226
  var init_organization_skill = __esm({
3211
3227
  "../packages/shared/dist/validators/organization-skill.js"() {
3212
3228
  "use strict";
@@ -3282,6 +3298,12 @@ var init_organization_skill = __esm({
3282
3298
  organizationSkillImportSchema = z18.object({
3283
3299
  source: z18.string().min(1)
3284
3300
  });
3301
+ organizationSkillUploadSchema = z18.object({
3302
+ files: z18.array(z18.object({
3303
+ path: z18.string().min(1).max(512),
3304
+ content: z18.string().max(1048576)
3305
+ })).min(1).max(128)
3306
+ });
3285
3307
  organizationSkillProjectScanRequestSchema = z18.object({
3286
3308
  projectIds: z18.array(z18.string().uuid()).optional(),
3287
3309
  workspaceIds: z18.array(z18.string().uuid()).optional()
@@ -4217,8 +4239,29 @@ var init_approval = __esm({
4217
4239
  }
4218
4240
  });
4219
4241
 
4220
- // ../packages/shared/dist/validators/automation.js
4242
+ // ../packages/shared/dist/validators/request.js
4221
4243
  import { z as z29 } from "zod";
4244
+ var listRequestsQuerySchema, resolveAssistanceRequestSchema, cancelAssistanceRequestSchema;
4245
+ var init_request = __esm({
4246
+ "../packages/shared/dist/validators/request.js"() {
4247
+ "use strict";
4248
+ init_constants();
4249
+ listRequestsQuerySchema = z29.object({
4250
+ status: z29.enum(REQUEST_STATUSES).optional(),
4251
+ kind: z29.enum(["approval", "assistance"]).optional()
4252
+ });
4253
+ resolveAssistanceRequestSchema = z29.object({
4254
+ resolution: z29.enum(ASSISTANCE_REQUEST_RESOLUTIONS),
4255
+ response: z29.string().trim().min(1).max(2e4)
4256
+ });
4257
+ cancelAssistanceRequestSchema = z29.object({
4258
+ reason: z29.string().trim().min(1).max(2e3).optional()
4259
+ });
4260
+ }
4261
+ });
4262
+
4263
+ // ../packages/shared/dist/validators/automation.js
4264
+ import { z as z30 } from "zod";
4222
4265
  function normalizeAutomationInstructions(value) {
4223
4266
  const { instructions, ...rest } = value;
4224
4267
  return {
@@ -4237,28 +4280,28 @@ var init_automation = __esm({
4237
4280
  "use strict";
4238
4281
  init_constants();
4239
4282
  init_issue();
4240
- automationTextFieldSchema = z29.string().optional().nullable();
4241
- automationBodyFieldsSchema = z29.object({
4242
- projectId: z29.string().uuid().optional().nullable().default(null),
4243
- goalId: z29.string().uuid().optional().nullable(),
4244
- parentIssueId: z29.string().uuid().optional().nullable(),
4245
- title: z29.string().trim().min(1).max(200),
4283
+ automationTextFieldSchema = z30.string().optional().nullable();
4284
+ automationBodyFieldsSchema = z30.object({
4285
+ projectId: z30.string().uuid().optional().nullable().default(null),
4286
+ goalId: z30.string().uuid().optional().nullable(),
4287
+ parentIssueId: z30.string().uuid().optional().nullable(),
4288
+ title: z30.string().trim().min(1).max(200),
4246
4289
  instructions: automationTextFieldSchema,
4247
4290
  description: automationTextFieldSchema,
4248
- assigneeAgentId: z29.string().uuid(),
4291
+ assigneeAgentId: z30.string().uuid(),
4249
4292
  assigneeAgentRuntimeOverrides: issueAssigneeAdapterOverridesSchema.optional().nullable(),
4250
- priority: z29.enum(ISSUE_PRIORITIES).optional().default("medium"),
4251
- status: z29.enum(AUTOMATION_STATUSES).optional().default("active"),
4252
- concurrencyPolicy: z29.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
4253
- catchUpPolicy: z29.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
4254
- outputMode: z29.enum(AUTOMATION_OUTPUT_MODES).optional().default("track_issue"),
4255
- chatConversationId: z29.string().uuid().optional().nullable().default(null),
4256
- notifyOnIssueCreated: z29.boolean().optional().default(false)
4293
+ priority: z30.enum(ISSUE_PRIORITIES).optional().default("medium"),
4294
+ status: z30.enum(AUTOMATION_STATUSES).optional().default("active"),
4295
+ concurrencyPolicy: z30.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
4296
+ catchUpPolicy: z30.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
4297
+ outputMode: z30.enum(AUTOMATION_OUTPUT_MODES).optional().default("track_issue"),
4298
+ chatConversationId: z30.string().uuid().optional().nullable().default(null),
4299
+ notifyOnIssueCreated: z30.boolean().optional().default(false)
4257
4300
  });
4258
4301
  createAutomationSchema = automationBodyFieldsSchema.superRefine((value, ctx) => {
4259
4302
  if (value.chatConversationId) {
4260
4303
  ctx.addIssue({
4261
- code: z29.ZodIssueCode.custom,
4304
+ code: z30.ZodIssueCode.custom,
4262
4305
  path: ["chatConversationId"],
4263
4306
  message: "Chat output creates an automation-owned conversation; existing chats cannot be selected"
4264
4307
  });
@@ -4267,185 +4310,185 @@ var init_automation = __esm({
4267
4310
  updateAutomationSchema = automationBodyFieldsSchema.partial().superRefine((value, ctx) => {
4268
4311
  if (value.chatConversationId) {
4269
4312
  ctx.addIssue({
4270
- code: z29.ZodIssueCode.custom,
4313
+ code: z30.ZodIssueCode.custom,
4271
4314
  path: ["chatConversationId"],
4272
4315
  message: "Chat output creates an automation-owned conversation; existing chats cannot be selected"
4273
4316
  });
4274
4317
  }
4275
4318
  }).transform(normalizeAutomationInstructions).transform(normalizeAutomationNotifications);
4276
- baseTriggerSchema = z29.object({
4277
- label: z29.string().trim().max(120).optional().nullable(),
4278
- enabled: z29.boolean().optional().default(true)
4319
+ baseTriggerSchema = z30.object({
4320
+ label: z30.string().trim().max(120).optional().nullable(),
4321
+ enabled: z30.boolean().optional().default(true)
4279
4322
  });
4280
- createAutomationTriggerSchema = z29.discriminatedUnion("kind", [
4323
+ createAutomationTriggerSchema = z30.discriminatedUnion("kind", [
4281
4324
  baseTriggerSchema.extend({
4282
- kind: z29.literal("schedule"),
4283
- cronExpression: z29.string().trim().min(1),
4284
- timezone: z29.string().trim().min(1).default("UTC")
4325
+ kind: z30.literal("schedule"),
4326
+ cronExpression: z30.string().trim().min(1),
4327
+ timezone: z30.string().trim().min(1).default("UTC")
4285
4328
  }),
4286
4329
  baseTriggerSchema.extend({
4287
- kind: z29.literal("webhook"),
4288
- signingMode: z29.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().default("bearer"),
4289
- replayWindowSec: z29.number().int().min(30).max(86400).optional().default(300)
4330
+ kind: z30.literal("webhook"),
4331
+ signingMode: z30.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().default("bearer"),
4332
+ replayWindowSec: z30.number().int().min(30).max(86400).optional().default(300)
4290
4333
  }),
4291
4334
  baseTriggerSchema.extend({
4292
- kind: z29.literal("api")
4335
+ kind: z30.literal("api")
4293
4336
  })
4294
4337
  ]);
4295
- updateAutomationTriggerSchema = z29.object({
4296
- label: z29.string().trim().max(120).optional().nullable(),
4297
- enabled: z29.boolean().optional(),
4298
- cronExpression: z29.string().trim().min(1).optional().nullable(),
4299
- timezone: z29.string().trim().min(1).optional().nullable(),
4300
- signingMode: z29.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().nullable(),
4301
- replayWindowSec: z29.number().int().min(30).max(86400).optional().nullable()
4338
+ updateAutomationTriggerSchema = z30.object({
4339
+ label: z30.string().trim().max(120).optional().nullable(),
4340
+ enabled: z30.boolean().optional(),
4341
+ cronExpression: z30.string().trim().min(1).optional().nullable(),
4342
+ timezone: z30.string().trim().min(1).optional().nullable(),
4343
+ signingMode: z30.enum(AUTOMATION_TRIGGER_SIGNING_MODES).optional().nullable(),
4344
+ replayWindowSec: z30.number().int().min(30).max(86400).optional().nullable()
4302
4345
  });
4303
- runAutomationSchema = z29.object({
4304
- triggerId: z29.string().uuid().optional().nullable(),
4305
- payload: z29.record(z29.unknown()).optional().nullable(),
4306
- idempotencyKey: z29.string().trim().max(255).optional().nullable(),
4307
- source: z29.enum(["manual", "api"]).optional().default("manual")
4346
+ runAutomationSchema = z30.object({
4347
+ triggerId: z30.string().uuid().optional().nullable(),
4348
+ payload: z30.record(z30.unknown()).optional().nullable(),
4349
+ idempotencyKey: z30.string().trim().max(255).optional().nullable(),
4350
+ source: z30.enum(["manual", "api"]).optional().default("manual")
4308
4351
  });
4309
- rotateAutomationTriggerSecretSchema = z29.object({});
4352
+ rotateAutomationTriggerSecretSchema = z30.object({});
4310
4353
  }
4311
4354
  });
4312
4355
 
4313
4356
  // ../packages/shared/dist/validators/calendar.js
4314
- import { z as z30 } from "zod";
4357
+ import { z as z31 } from "zod";
4315
4358
  var nullableUuid, createCalendarSourceSchema, updateCalendarSourceSchema, calendarEventBaseSchema, createCalendarEventSchema, updateCalendarEventSchema, calendarEventListQuerySchema, googleCalendarSyncSchema, updateGoogleCalendarOAuthConfigSchema;
4316
4359
  var init_calendar = __esm({
4317
4360
  "../packages/shared/dist/validators/calendar.js"() {
4318
4361
  "use strict";
4319
4362
  init_constants();
4320
- nullableUuid = z30.string().uuid().optional().nullable();
4321
- createCalendarSourceSchema = z30.object({
4322
- type: z30.enum(CALENDAR_SOURCE_TYPES).optional().default("rudder_local"),
4323
- name: z30.string().trim().min(1).max(160),
4324
- ownerType: z30.enum(CALENDAR_OWNER_TYPES).optional().default("user"),
4325
- ownerUserId: z30.string().trim().min(1).optional().nullable(),
4363
+ nullableUuid = z31.string().uuid().optional().nullable();
4364
+ createCalendarSourceSchema = z31.object({
4365
+ type: z31.enum(CALENDAR_SOURCE_TYPES).optional().default("rudder_local"),
4366
+ name: z31.string().trim().min(1).max(160),
4367
+ ownerType: z31.enum(CALENDAR_OWNER_TYPES).optional().default("user"),
4368
+ ownerUserId: z31.string().trim().min(1).optional().nullable(),
4326
4369
  ownerAgentId: nullableUuid,
4327
- externalProvider: z30.string().trim().min(1).max(80).optional().nullable(),
4328
- externalCalendarId: z30.string().trim().min(1).max(512).optional().nullable(),
4329
- visibilityDefault: z30.enum(CALENDAR_VISIBILITIES).optional().default("full"),
4330
- status: z30.enum(CALENDAR_SOURCE_STATUSES).optional().default("active"),
4331
- syncCursorJson: z30.record(z30.unknown()).optional().nullable()
4370
+ externalProvider: z31.string().trim().min(1).max(80).optional().nullable(),
4371
+ externalCalendarId: z31.string().trim().min(1).max(512).optional().nullable(),
4372
+ visibilityDefault: z31.enum(CALENDAR_VISIBILITIES).optional().default("full"),
4373
+ status: z31.enum(CALENDAR_SOURCE_STATUSES).optional().default("active"),
4374
+ syncCursorJson: z31.record(z31.unknown()).optional().nullable()
4332
4375
  });
4333
4376
  updateCalendarSourceSchema = createCalendarSourceSchema.partial().extend({
4334
- lastSyncedAt: z30.coerce.date().optional().nullable()
4377
+ lastSyncedAt: z31.coerce.date().optional().nullable()
4335
4378
  });
4336
- calendarEventBaseSchema = z30.object({
4379
+ calendarEventBaseSchema = z31.object({
4337
4380
  sourceId: nullableUuid,
4338
- eventKind: z30.enum(CALENDAR_EVENT_KINDS),
4339
- eventStatus: z30.enum(CALENDAR_EVENT_STATUSES).optional().default("planned"),
4340
- ownerType: z30.enum(CALENDAR_OWNER_TYPES),
4341
- ownerUserId: z30.string().trim().min(1).optional().nullable(),
4381
+ eventKind: z31.enum(CALENDAR_EVENT_KINDS),
4382
+ eventStatus: z31.enum(CALENDAR_EVENT_STATUSES).optional().default("planned"),
4383
+ ownerType: z31.enum(CALENDAR_OWNER_TYPES),
4384
+ ownerUserId: z31.string().trim().min(1).optional().nullable(),
4342
4385
  ownerAgentId: nullableUuid,
4343
- title: z30.string().trim().min(1).max(240),
4344
- description: z30.string().optional().nullable(),
4345
- startAt: z30.coerce.date(),
4346
- endAt: z30.coerce.date(),
4347
- timezone: z30.string().trim().min(1).max(80).optional().default("UTC"),
4348
- allDay: z30.boolean().optional().default(false),
4349
- visibility: z30.enum(CALENDAR_VISIBILITIES).optional().default("full"),
4386
+ title: z31.string().trim().min(1).max(240),
4387
+ description: z31.string().optional().nullable(),
4388
+ startAt: z31.coerce.date(),
4389
+ endAt: z31.coerce.date(),
4390
+ timezone: z31.string().trim().min(1).max(80).optional().default("UTC"),
4391
+ allDay: z31.boolean().optional().default(false),
4392
+ visibility: z31.enum(CALENDAR_VISIBILITIES).optional().default("full"),
4350
4393
  issueId: nullableUuid,
4351
4394
  projectId: nullableUuid,
4352
4395
  goalId: nullableUuid,
4353
4396
  approvalId: nullableUuid,
4354
4397
  heartbeatRunId: nullableUuid,
4355
4398
  activityId: nullableUuid,
4356
- sourceMode: z30.enum(CALENDAR_SOURCE_MODES).optional().default("manual"),
4357
- externalProvider: z30.string().trim().min(1).max(80).optional().nullable(),
4358
- externalCalendarId: z30.string().trim().min(1).max(512).optional().nullable(),
4359
- externalEventId: z30.string().trim().min(1).max(512).optional().nullable(),
4360
- externalEtag: z30.string().trim().min(1).max(512).optional().nullable(),
4361
- externalUpdatedAt: z30.coerce.date().optional().nullable()
4399
+ sourceMode: z31.enum(CALENDAR_SOURCE_MODES).optional().default("manual"),
4400
+ externalProvider: z31.string().trim().min(1).max(80).optional().nullable(),
4401
+ externalCalendarId: z31.string().trim().min(1).max(512).optional().nullable(),
4402
+ externalEventId: z31.string().trim().min(1).max(512).optional().nullable(),
4403
+ externalEtag: z31.string().trim().min(1).max(512).optional().nullable(),
4404
+ externalUpdatedAt: z31.coerce.date().optional().nullable()
4362
4405
  });
4363
4406
  createCalendarEventSchema = calendarEventBaseSchema.refine((value) => value.endAt.getTime() > value.startAt.getTime(), { path: ["endAt"], message: "End time must be after start time" });
4364
4407
  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" });
4365
- calendarEventListQuerySchema = z30.object({
4366
- start: z30.coerce.date(),
4367
- end: z30.coerce.date(),
4368
- agentIds: z30.string().optional(),
4369
- sourceIds: z30.string().optional(),
4370
- eventKinds: z30.string().optional(),
4371
- statuses: z30.string().optional()
4408
+ calendarEventListQuerySchema = z31.object({
4409
+ start: z31.coerce.date(),
4410
+ end: z31.coerce.date(),
4411
+ agentIds: z31.string().optional(),
4412
+ sourceIds: z31.string().optional(),
4413
+ eventKinds: z31.string().optional(),
4414
+ statuses: z31.string().optional()
4372
4415
  }).refine((value) => value.end.getTime() > value.start.getTime(), { path: ["end"], message: "End time must be after start time" });
4373
- googleCalendarSyncSchema = z30.object({
4374
- sourceId: z30.string().uuid().optional().nullable()
4416
+ googleCalendarSyncSchema = z31.object({
4417
+ sourceId: z31.string().uuid().optional().nullable()
4375
4418
  });
4376
- updateGoogleCalendarOAuthConfigSchema = z30.object({
4377
- clientId: z30.string().trim().min(1).max(512).optional(),
4378
- clientSecret: z30.string().trim().min(1).max(2048).optional(),
4379
- clear: z30.boolean().optional().default(false)
4419
+ updateGoogleCalendarOAuthConfigSchema = z31.object({
4420
+ clientId: z31.string().trim().min(1).max(512).optional(),
4421
+ clientSecret: z31.string().trim().min(1).max(2048).optional(),
4422
+ clear: z31.boolean().optional().default(false)
4380
4423
  }).refine((value) => value.clear || value.clientId !== void 0 || value.clientSecret !== void 0, { message: "Provide credentials or clear the stored Google Calendar OAuth configuration" });
4381
4424
  }
4382
4425
  });
4383
4426
 
4384
4427
  // ../packages/shared/dist/validators/cost.js
4385
- import { z as z31 } from "zod";
4428
+ import { z as z32 } from "zod";
4386
4429
  var createCostEventSchema, updateBudgetSchema;
4387
4430
  var init_cost = __esm({
4388
4431
  "../packages/shared/dist/validators/cost.js"() {
4389
4432
  "use strict";
4390
4433
  init_constants();
4391
- createCostEventSchema = z31.object({
4392
- agentId: z31.string().uuid(),
4393
- issueId: z31.string().uuid().optional().nullable(),
4394
- projectId: z31.string().uuid().optional().nullable(),
4395
- goalId: z31.string().uuid().optional().nullable(),
4396
- heartbeatRunId: z31.string().uuid().optional().nullable(),
4397
- billingCode: z31.string().optional().nullable(),
4398
- provider: z31.string().min(1),
4399
- biller: z31.string().min(1).optional(),
4400
- billingType: z31.enum(BILLING_TYPES).optional().default("unknown"),
4401
- model: z31.string().min(1),
4402
- inputTokens: z31.number().int().nonnegative().optional().default(0),
4403
- cachedInputTokens: z31.number().int().nonnegative().optional().default(0),
4404
- outputTokens: z31.number().int().nonnegative().optional().default(0),
4405
- costCents: z31.number().int().nonnegative(),
4406
- occurredAt: z31.string().datetime()
4434
+ createCostEventSchema = z32.object({
4435
+ agentId: z32.string().uuid(),
4436
+ issueId: z32.string().uuid().optional().nullable(),
4437
+ projectId: z32.string().uuid().optional().nullable(),
4438
+ goalId: z32.string().uuid().optional().nullable(),
4439
+ heartbeatRunId: z32.string().uuid().optional().nullable(),
4440
+ billingCode: z32.string().optional().nullable(),
4441
+ provider: z32.string().min(1),
4442
+ biller: z32.string().min(1).optional(),
4443
+ billingType: z32.enum(BILLING_TYPES).optional().default("unknown"),
4444
+ model: z32.string().min(1),
4445
+ inputTokens: z32.number().int().nonnegative().optional().default(0),
4446
+ cachedInputTokens: z32.number().int().nonnegative().optional().default(0),
4447
+ outputTokens: z32.number().int().nonnegative().optional().default(0),
4448
+ costCents: z32.number().int().nonnegative(),
4449
+ occurredAt: z32.string().datetime()
4407
4450
  }).transform((value) => ({
4408
4451
  ...value,
4409
4452
  biller: value.biller ?? value.provider
4410
4453
  }));
4411
- updateBudgetSchema = z31.object({
4412
- budgetMonthlyCents: z31.number().int().nonnegative()
4454
+ updateBudgetSchema = z32.object({
4455
+ budgetMonthlyCents: z32.number().int().nonnegative()
4413
4456
  });
4414
4457
  }
4415
4458
  });
4416
4459
 
4417
4460
  // ../packages/shared/dist/validators/finance.js
4418
- import { z as z32 } from "zod";
4461
+ import { z as z33 } from "zod";
4419
4462
  var createFinanceEventSchema;
4420
4463
  var init_finance = __esm({
4421
4464
  "../packages/shared/dist/validators/finance.js"() {
4422
4465
  "use strict";
4423
4466
  init_constants();
4424
- createFinanceEventSchema = z32.object({
4425
- agentId: z32.string().uuid().optional().nullable(),
4426
- issueId: z32.string().uuid().optional().nullable(),
4427
- projectId: z32.string().uuid().optional().nullable(),
4428
- goalId: z32.string().uuid().optional().nullable(),
4429
- heartbeatRunId: z32.string().uuid().optional().nullable(),
4430
- costEventId: z32.string().uuid().optional().nullable(),
4431
- billingCode: z32.string().optional().nullable(),
4432
- description: z32.string().max(500).optional().nullable(),
4433
- eventKind: z32.enum(FINANCE_EVENT_KINDS),
4434
- direction: z32.enum(FINANCE_DIRECTIONS).optional().default("debit"),
4435
- biller: z32.string().min(1),
4436
- provider: z32.string().min(1).optional().nullable(),
4437
- executionAgentRuntimeType: z32.enum(AGENT_RUNTIME_TYPES).optional().nullable(),
4438
- pricingTier: z32.string().min(1).optional().nullable(),
4439
- region: z32.string().min(1).optional().nullable(),
4440
- model: z32.string().min(1).optional().nullable(),
4441
- quantity: z32.number().int().nonnegative().optional().nullable(),
4442
- unit: z32.enum(FINANCE_UNITS).optional().nullable(),
4443
- amountCents: z32.number().int().nonnegative(),
4444
- currency: z32.string().length(3).optional().default("USD"),
4445
- estimated: z32.boolean().optional().default(false),
4446
- externalInvoiceId: z32.string().optional().nullable(),
4447
- metadataJson: z32.record(z32.string(), z32.unknown()).optional().nullable(),
4448
- occurredAt: z32.string().datetime()
4467
+ createFinanceEventSchema = z33.object({
4468
+ agentId: z33.string().uuid().optional().nullable(),
4469
+ issueId: z33.string().uuid().optional().nullable(),
4470
+ projectId: z33.string().uuid().optional().nullable(),
4471
+ goalId: z33.string().uuid().optional().nullable(),
4472
+ heartbeatRunId: z33.string().uuid().optional().nullable(),
4473
+ costEventId: z33.string().uuid().optional().nullable(),
4474
+ billingCode: z33.string().optional().nullable(),
4475
+ description: z33.string().max(500).optional().nullable(),
4476
+ eventKind: z33.enum(FINANCE_EVENT_KINDS),
4477
+ direction: z33.enum(FINANCE_DIRECTIONS).optional().default("debit"),
4478
+ biller: z33.string().min(1),
4479
+ provider: z33.string().min(1).optional().nullable(),
4480
+ executionAgentRuntimeType: z33.enum(AGENT_RUNTIME_TYPES).optional().nullable(),
4481
+ pricingTier: z33.string().min(1).optional().nullable(),
4482
+ region: z33.string().min(1).optional().nullable(),
4483
+ model: z33.string().min(1).optional().nullable(),
4484
+ quantity: z33.number().int().nonnegative().optional().nullable(),
4485
+ unit: z33.enum(FINANCE_UNITS).optional().nullable(),
4486
+ amountCents: z33.number().int().nonnegative(),
4487
+ currency: z33.string().length(3).optional().default("USD"),
4488
+ estimated: z33.boolean().optional().default(false),
4489
+ externalInvoiceId: z33.string().optional().nullable(),
4490
+ metadataJson: z33.record(z33.string(), z33.unknown()).optional().nullable(),
4491
+ occurredAt: z33.string().datetime()
4449
4492
  }).transform((value) => ({
4450
4493
  ...value,
4451
4494
  currency: value.currency.toUpperCase()
@@ -4454,127 +4497,127 @@ var init_finance = __esm({
4454
4497
  });
4455
4498
 
4456
4499
  // ../packages/shared/dist/validators/asset.js
4457
- import { z as z33 } from "zod";
4500
+ import { z as z34 } from "zod";
4458
4501
  var createAssetImageMetadataSchema;
4459
4502
  var init_asset = __esm({
4460
4503
  "../packages/shared/dist/validators/asset.js"() {
4461
4504
  "use strict";
4462
- createAssetImageMetadataSchema = z33.object({
4463
- namespace: z33.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()
4505
+ createAssetImageMetadataSchema = z34.object({
4506
+ namespace: z34.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()
4464
4507
  });
4465
4508
  }
4466
4509
  });
4467
4510
 
4468
4511
  // ../packages/shared/dist/validators/access.js
4469
- import { z as z34 } from "zod";
4512
+ import { z as z35 } from "zod";
4470
4513
  var createCompanyInviteSchema, createOpenClawInvitePromptSchema, acceptInviteSchema, listJoinRequestsQuerySchema, claimJoinRequestApiKeySchema, boardCliAuthAccessLevelSchema, createCliAuthChallengeSchema, resolveCliAuthChallengeSchema, updateMemberPermissionsSchema, updateUserCompanyAccessSchema;
4471
4514
  var init_access = __esm({
4472
4515
  "../packages/shared/dist/validators/access.js"() {
4473
4516
  "use strict";
4474
4517
  init_constants();
4475
- createCompanyInviteSchema = z34.object({
4476
- allowedJoinTypes: z34.enum(INVITE_JOIN_TYPES).default("both"),
4477
- defaultsPayload: z34.record(z34.string(), z34.unknown()).optional().nullable(),
4478
- agentMessage: z34.string().max(4e3).optional().nullable()
4518
+ createCompanyInviteSchema = z35.object({
4519
+ allowedJoinTypes: z35.enum(INVITE_JOIN_TYPES).default("both"),
4520
+ defaultsPayload: z35.record(z35.string(), z35.unknown()).optional().nullable(),
4521
+ agentMessage: z35.string().max(4e3).optional().nullable()
4479
4522
  });
4480
- createOpenClawInvitePromptSchema = z34.object({
4481
- agentMessage: z34.string().max(4e3).optional().nullable()
4523
+ createOpenClawInvitePromptSchema = z35.object({
4524
+ agentMessage: z35.string().max(4e3).optional().nullable()
4482
4525
  });
4483
- acceptInviteSchema = z34.object({
4484
- requestType: z34.enum(JOIN_REQUEST_TYPES),
4485
- agentName: z34.string().min(1).max(120).optional(),
4486
- agentRuntimeType: z34.enum(AGENT_RUNTIME_TYPES).optional(),
4487
- capabilities: z34.string().max(4e3).optional().nullable(),
4488
- agentDefaultsPayload: z34.record(z34.string(), z34.unknown()).optional().nullable(),
4526
+ acceptInviteSchema = z35.object({
4527
+ requestType: z35.enum(JOIN_REQUEST_TYPES),
4528
+ agentName: z35.string().min(1).max(120).optional(),
4529
+ agentRuntimeType: z35.enum(AGENT_RUNTIME_TYPES).optional(),
4530
+ capabilities: z35.string().max(4e3).optional().nullable(),
4531
+ agentDefaultsPayload: z35.record(z35.string(), z35.unknown()).optional().nullable(),
4489
4532
  // OpenClaw join compatibility fields accepted at top level.
4490
- responsesWebhookUrl: z34.string().max(4e3).optional().nullable(),
4491
- responsesWebhookMethod: z34.string().max(32).optional().nullable(),
4492
- responsesWebhookHeaders: z34.record(z34.string(), z34.unknown()).optional().nullable(),
4493
- rudderApiUrl: z34.string().max(4e3).optional().nullable(),
4494
- webhookAuthHeader: z34.string().max(4e3).optional().nullable()
4533
+ responsesWebhookUrl: z35.string().max(4e3).optional().nullable(),
4534
+ responsesWebhookMethod: z35.string().max(32).optional().nullable(),
4535
+ responsesWebhookHeaders: z35.record(z35.string(), z35.unknown()).optional().nullable(),
4536
+ rudderApiUrl: z35.string().max(4e3).optional().nullable(),
4537
+ webhookAuthHeader: z35.string().max(4e3).optional().nullable()
4495
4538
  });
4496
- listJoinRequestsQuerySchema = z34.object({
4497
- status: z34.enum(JOIN_REQUEST_STATUSES).optional(),
4498
- requestType: z34.enum(JOIN_REQUEST_TYPES).optional()
4539
+ listJoinRequestsQuerySchema = z35.object({
4540
+ status: z35.enum(JOIN_REQUEST_STATUSES).optional(),
4541
+ requestType: z35.enum(JOIN_REQUEST_TYPES).optional()
4499
4542
  });
4500
- claimJoinRequestApiKeySchema = z34.object({
4501
- claimSecret: z34.string().min(16).max(256)
4543
+ claimJoinRequestApiKeySchema = z35.object({
4544
+ claimSecret: z35.string().min(16).max(256)
4502
4545
  });
4503
- boardCliAuthAccessLevelSchema = z34.enum([
4546
+ boardCliAuthAccessLevelSchema = z35.enum([
4504
4547
  "board",
4505
4548
  "instance_admin_required"
4506
4549
  ]);
4507
- createCliAuthChallengeSchema = z34.object({
4508
- command: z34.string().min(1).max(240),
4509
- clientName: z34.string().max(120).optional().nullable(),
4550
+ createCliAuthChallengeSchema = z35.object({
4551
+ command: z35.string().min(1).max(240),
4552
+ clientName: z35.string().max(120).optional().nullable(),
4510
4553
  requestedAccess: boardCliAuthAccessLevelSchema.default("board"),
4511
- requestedCompanyId: z34.string().uuid().optional().nullable()
4554
+ requestedCompanyId: z35.string().uuid().optional().nullable()
4512
4555
  });
4513
- resolveCliAuthChallengeSchema = z34.object({
4514
- token: z34.string().min(16).max(256)
4556
+ resolveCliAuthChallengeSchema = z35.object({
4557
+ token: z35.string().min(16).max(256)
4515
4558
  });
4516
- updateMemberPermissionsSchema = z34.object({
4517
- grants: z34.array(z34.object({
4518
- permissionKey: z34.enum(PERMISSION_KEYS),
4519
- scope: z34.record(z34.string(), z34.unknown()).optional().nullable()
4559
+ updateMemberPermissionsSchema = z35.object({
4560
+ grants: z35.array(z35.object({
4561
+ permissionKey: z35.enum(PERMISSION_KEYS),
4562
+ scope: z35.record(z35.string(), z35.unknown()).optional().nullable()
4520
4563
  }))
4521
4564
  });
4522
- updateUserCompanyAccessSchema = z34.object({
4523
- orgIds: z34.array(z34.string().uuid()).default([])
4565
+ updateUserCompanyAccessSchema = z35.object({
4566
+ orgIds: z35.array(z35.string().uuid()).default([])
4524
4567
  });
4525
4568
  }
4526
4569
  });
4527
4570
 
4528
4571
  // ../packages/shared/dist/validators/plugin-v1.js
4529
- import { z as z35 } from "zod";
4572
+ import { z as z36 } from "zod";
4530
4573
  var rudderPluginPackageFileSchema, inspectRudderPluginSchema, inspectRudderPluginArchiveSchema, configureRudderPluginMarketplaceSchema, installRudderPluginSchema, updateRudderPluginEnablementSchema, configureRudderPluginSkillsSchema, configureRudderPluginMcpSchema, customizeRudderPluginSkillSchema;
4531
4574
  var init_plugin_v1 = __esm({
4532
4575
  "../packages/shared/dist/validators/plugin-v1.js"() {
4533
4576
  "use strict";
4534
- rudderPluginPackageFileSchema = z35.object({
4535
- path: z35.string().min(1).max(1024),
4536
- content: z35.string().max(14e6),
4537
- encoding: z35.enum(["utf8", "base64"]).optional().default("utf8")
4577
+ rudderPluginPackageFileSchema = z36.object({
4578
+ path: z36.string().min(1).max(1024),
4579
+ content: z36.string().max(14e6),
4580
+ encoding: z36.enum(["utf8", "base64"]).optional().default("utf8")
4538
4581
  }).strict();
4539
- inspectRudderPluginSchema = z35.object({
4540
- sourceLabel: z35.string().trim().min(1).max(240),
4541
- sourceType: z35.literal("local_upload").optional().default("local_upload"),
4542
- files: z35.array(rudderPluginPackageFileSchema).min(1).max(500)
4582
+ inspectRudderPluginSchema = z36.object({
4583
+ sourceLabel: z36.string().trim().min(1).max(240),
4584
+ sourceType: z36.literal("local_upload").optional().default("local_upload"),
4585
+ files: z36.array(rudderPluginPackageFileSchema).min(1).max(500)
4543
4586
  }).strict();
4544
- inspectRudderPluginArchiveSchema = z35.object({
4545
- sourceLabel: z35.string().trim().min(1).max(240),
4546
- filename: z35.string().trim().min(1).max(240).refine((value) => /\.zip$/i.test(value), "Only ZIP Plugin archives are supported"),
4547
- content: z35.string().min(1).max(14e6),
4548
- encoding: z35.literal("base64")
4587
+ inspectRudderPluginArchiveSchema = z36.object({
4588
+ sourceLabel: z36.string().trim().min(1).max(240),
4589
+ filename: z36.string().trim().min(1).max(240).refine((value) => /\.zip$/i.test(value), "Only ZIP Plugin archives are supported"),
4590
+ content: z36.string().min(1).max(14e6),
4591
+ encoding: z36.literal("base64")
4549
4592
  }).strict();
4550
- configureRudderPluginMarketplaceSchema = z35.object({
4551
- sourceLabel: z35.string().trim().min(1).max(240),
4552
- files: z35.array(rudderPluginPackageFileSchema).min(1).max(500).optional(),
4553
- github: z35.object({
4554
- repository: z35.string().url().max(500),
4555
- commit: z35.string().regex(/^[0-9a-f]{40}$/i, "A full 40-character Git commit SHA is required")
4593
+ configureRudderPluginMarketplaceSchema = z36.object({
4594
+ sourceLabel: z36.string().trim().min(1).max(240),
4595
+ files: z36.array(rudderPluginPackageFileSchema).min(1).max(500).optional(),
4596
+ github: z36.object({
4597
+ repository: z36.string().url().max(500),
4598
+ commit: z36.string().regex(/^[0-9a-f]{40}$/i, "A full 40-character Git commit SHA is required")
4556
4599
  }).strict().optional()
4557
4600
  }).strict().superRefine((value, ctx) => {
4558
4601
  if (Boolean(value.files) === Boolean(value.github)) {
4559
- ctx.addIssue({ code: z35.ZodIssueCode.custom, message: "Provide exactly one local marketplace folder or pinned GitHub marketplace" });
4602
+ ctx.addIssue({ code: z36.ZodIssueCode.custom, message: "Provide exactly one local marketplace folder or pinned GitHub marketplace" });
4560
4603
  }
4561
4604
  });
4562
- installRudderPluginSchema = z35.object({
4563
- enabled: z35.boolean().optional().default(true),
4564
- confirmAccessExpansion: z35.boolean().optional().default(false),
4565
- skillConflictStrategy: z35.enum(["keep", "replace", "rename"]).optional()
4605
+ installRudderPluginSchema = z36.object({
4606
+ enabled: z36.boolean().optional().default(true),
4607
+ confirmAccessExpansion: z36.boolean().optional().default(false),
4608
+ skillConflictStrategy: z36.enum(["keep", "replace", "rename"]).optional()
4566
4609
  }).strict();
4567
- updateRudderPluginEnablementSchema = z35.object({
4568
- enabled: z35.boolean()
4610
+ updateRudderPluginEnablementSchema = z36.object({
4611
+ enabled: z36.boolean()
4569
4612
  }).strict();
4570
- configureRudderPluginSkillsSchema = z35.object({
4571
- agentIds: z35.array(z35.string().uuid()).max(100)
4613
+ configureRudderPluginSkillsSchema = z36.object({
4614
+ agentIds: z36.array(z36.string().uuid()).max(100)
4572
4615
  }).strict();
4573
- configureRudderPluginMcpSchema = z35.object({
4574
- componentId: z35.string().uuid()
4616
+ configureRudderPluginMcpSchema = z36.object({
4617
+ componentId: z36.string().uuid()
4575
4618
  }).strict();
4576
- customizeRudderPluginSkillSchema = z35.object({
4577
- componentId: z35.string().uuid()
4619
+ customizeRudderPluginSkillSchema = z36.object({
4620
+ componentId: z36.string().uuid()
4578
4621
  }).strict();
4579
4622
  }
4580
4623
  });
@@ -4607,6 +4650,7 @@ var init_validators = __esm({
4607
4650
  init_workspace_backup2();
4608
4651
  init_goal();
4609
4652
  init_approval();
4653
+ init_request();
4610
4654
  init_secret();
4611
4655
  init_automation();
4612
4656
  init_calendar();
@@ -4650,6 +4694,7 @@ var init_api = __esm({
4650
4694
  calendar: `${API_PREFIX}/calendar`,
4651
4695
  goals: `${API_PREFIX}/goals`,
4652
4696
  approvals: `${API_PREFIX}/approvals`,
4697
+ requests: `${API_PREFIX}/requests`,
4653
4698
  secrets: `${API_PREFIX}/secrets`,
4654
4699
  costs: `${API_PREFIX}/costs`,
4655
4700
  activity: `${API_PREFIX}/activity`,
@@ -4780,34 +4825,34 @@ var init_issue_activity = __esm({
4780
4825
  });
4781
4826
 
4782
4827
  // ../packages/shared/dist/config-schema.js
4783
- import { z as z36 } from "zod";
4828
+ import { z as z37 } from "zod";
4784
4829
  var DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES, configMetaSchema, llmConfigSchema, databaseBackupConfigSchema, databaseConfigSchema, loggingConfigSchema, serverConfigSchema, authConfigSchema, storageLocalDiskConfigSchema, storageS3ConfigSchema, storageConfigSchema, secretsLocalEncryptedConfigSchema, secretsConfigSchema, rudderConfigSchema;
4785
4830
  var init_config_schema = __esm({
4786
4831
  "../packages/shared/dist/config-schema.js"() {
4787
4832
  "use strict";
4788
4833
  init_constants();
4789
4834
  DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES = 256 * 1024 * 1024;
4790
- configMetaSchema = z36.object({
4791
- version: z36.literal(1),
4792
- updatedAt: z36.string(),
4793
- source: z36.enum(["onboard", "configure", "doctor"])
4835
+ configMetaSchema = z37.object({
4836
+ version: z37.literal(1),
4837
+ updatedAt: z37.string(),
4838
+ source: z37.enum(["onboard", "configure", "doctor"])
4794
4839
  });
4795
- llmConfigSchema = z36.object({
4796
- provider: z36.enum(["claude", "openai"]),
4797
- apiKey: z36.string().optional()
4840
+ llmConfigSchema = z37.object({
4841
+ provider: z37.enum(["claude", "openai"]),
4842
+ apiKey: z37.string().optional()
4798
4843
  });
4799
- databaseBackupConfigSchema = z36.object({
4800
- enabled: z36.boolean().default(true),
4801
- intervalMinutes: z36.number().int().min(1).max(7 * 24 * 60).default(60),
4802
- retentionDays: z36.number().int().min(1).max(3650).default(30),
4803
- maxEstimatedBytes: z36.number().int().min(1).default(DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES),
4804
- dir: z36.string().default("~/.rudder/instances/default/data/backups")
4844
+ databaseBackupConfigSchema = z37.object({
4845
+ enabled: z37.boolean().default(true),
4846
+ intervalMinutes: z37.number().int().min(1).max(7 * 24 * 60).default(60),
4847
+ retentionDays: z37.number().int().min(1).max(3650).default(30),
4848
+ maxEstimatedBytes: z37.number().int().min(1).default(DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES),
4849
+ dir: z37.string().default("~/.rudder/instances/default/data/backups")
4805
4850
  });
4806
- databaseConfigSchema = z36.object({
4807
- mode: z36.enum(["embedded-postgres", "postgres"]).default("embedded-postgres"),
4808
- connectionString: z36.string().optional(),
4809
- embeddedPostgresDataDir: z36.string().default("~/.rudder/instances/default/db"),
4810
- embeddedPostgresPort: z36.number().int().min(1).max(65535).default(54329),
4851
+ databaseConfigSchema = z37.object({
4852
+ mode: z37.enum(["embedded-postgres", "postgres"]).default("embedded-postgres"),
4853
+ connectionString: z37.string().optional(),
4854
+ embeddedPostgresDataDir: z37.string().default("~/.rudder/instances/default/db"),
4855
+ embeddedPostgresPort: z37.number().int().min(1).max(65535).default(54329),
4811
4856
  backup: databaseBackupConfigSchema.default({
4812
4857
  enabled: true,
4813
4858
  intervalMinutes: 60,
@@ -4816,35 +4861,35 @@ var init_config_schema = __esm({
4816
4861
  dir: "~/.rudder/instances/default/data/backups"
4817
4862
  })
4818
4863
  });
4819
- loggingConfigSchema = z36.object({
4820
- mode: z36.enum(["file", "cloud"]),
4821
- logDir: z36.string().default("~/.rudder/instances/default/logs")
4864
+ loggingConfigSchema = z37.object({
4865
+ mode: z37.enum(["file", "cloud"]),
4866
+ logDir: z37.string().default("~/.rudder/instances/default/logs")
4822
4867
  });
4823
- serverConfigSchema = z36.object({
4824
- deploymentMode: z36.enum(DEPLOYMENT_MODES).default("local_trusted"),
4825
- exposure: z36.enum(DEPLOYMENT_EXPOSURES).default("private"),
4826
- host: z36.string().default("127.0.0.1"),
4827
- port: z36.number().int().min(1).max(65535).default(3100),
4828
- allowedHostnames: z36.array(z36.string().min(1)).default([]),
4829
- serveUi: z36.boolean().default(true)
4868
+ serverConfigSchema = z37.object({
4869
+ deploymentMode: z37.enum(DEPLOYMENT_MODES).default("local_trusted"),
4870
+ exposure: z37.enum(DEPLOYMENT_EXPOSURES).default("private"),
4871
+ host: z37.string().default("127.0.0.1"),
4872
+ port: z37.number().int().min(1).max(65535).default(3100),
4873
+ allowedHostnames: z37.array(z37.string().min(1)).default([]),
4874
+ serveUi: z37.boolean().default(true)
4830
4875
  });
4831
- authConfigSchema = z36.object({
4832
- baseUrlMode: z36.enum(AUTH_BASE_URL_MODES).default("auto"),
4833
- publicBaseUrl: z36.string().url().optional(),
4834
- disableSignUp: z36.boolean().default(false)
4876
+ authConfigSchema = z37.object({
4877
+ baseUrlMode: z37.enum(AUTH_BASE_URL_MODES).default("auto"),
4878
+ publicBaseUrl: z37.string().url().optional(),
4879
+ disableSignUp: z37.boolean().default(false)
4835
4880
  });
4836
- storageLocalDiskConfigSchema = z36.object({
4837
- baseDir: z36.string().default("~/.rudder/instances/default/data/storage")
4881
+ storageLocalDiskConfigSchema = z37.object({
4882
+ baseDir: z37.string().default("~/.rudder/instances/default/data/storage")
4838
4883
  });
4839
- storageS3ConfigSchema = z36.object({
4840
- bucket: z36.string().min(1).default("rudder"),
4841
- region: z36.string().min(1).default("us-east-1"),
4842
- endpoint: z36.string().optional(),
4843
- prefix: z36.string().default(""),
4844
- forcePathStyle: z36.boolean().default(false)
4884
+ storageS3ConfigSchema = z37.object({
4885
+ bucket: z37.string().min(1).default("rudder"),
4886
+ region: z37.string().min(1).default("us-east-1"),
4887
+ endpoint: z37.string().optional(),
4888
+ prefix: z37.string().default(""),
4889
+ forcePathStyle: z37.boolean().default(false)
4845
4890
  });
4846
- storageConfigSchema = z36.object({
4847
- provider: z36.enum(STORAGE_PROVIDERS).default("local_disk"),
4891
+ storageConfigSchema = z37.object({
4892
+ provider: z37.enum(STORAGE_PROVIDERS).default("local_disk"),
4848
4893
  localDisk: storageLocalDiskConfigSchema.default({
4849
4894
  baseDir: "~/.rudder/instances/default/data/storage"
4850
4895
  }),
@@ -4855,17 +4900,17 @@ var init_config_schema = __esm({
4855
4900
  forcePathStyle: false
4856
4901
  })
4857
4902
  });
4858
- secretsLocalEncryptedConfigSchema = z36.object({
4859
- keyFilePath: z36.string().default("~/.rudder/instances/default/secrets/master.key")
4903
+ secretsLocalEncryptedConfigSchema = z37.object({
4904
+ keyFilePath: z37.string().default("~/.rudder/instances/default/secrets/master.key")
4860
4905
  });
4861
- secretsConfigSchema = z36.object({
4862
- provider: z36.enum(SECRET_PROVIDERS).default("local_encrypted"),
4863
- strictMode: z36.boolean().default(false),
4906
+ secretsConfigSchema = z37.object({
4907
+ provider: z37.enum(SECRET_PROVIDERS).default("local_encrypted"),
4908
+ strictMode: z37.boolean().default(false),
4864
4909
  localEncrypted: secretsLocalEncryptedConfigSchema.default({
4865
4910
  keyFilePath: "~/.rudder/instances/default/secrets/master.key"
4866
4911
  })
4867
4912
  });
4868
- rudderConfigSchema = z36.object({
4913
+ rudderConfigSchema = z37.object({
4869
4914
  $meta: configMetaSchema,
4870
4915
  llm: llmConfigSchema.optional(),
4871
4916
  database: databaseConfigSchema,
@@ -4898,7 +4943,7 @@ var init_config_schema = __esm({
4898
4943
  if (value.server.deploymentMode === "local_trusted") {
4899
4944
  if (value.server.exposure !== "private") {
4900
4945
  ctx.addIssue({
4901
- code: z36.ZodIssueCode.custom,
4946
+ code: z37.ZodIssueCode.custom,
4902
4947
  message: "server.exposure must be private when deploymentMode is local_trusted",
4903
4948
  path: ["server", "exposure"]
4904
4949
  });
@@ -4907,21 +4952,21 @@ var init_config_schema = __esm({
4907
4952
  }
4908
4953
  if (value.auth.baseUrlMode === "explicit" && !value.auth.publicBaseUrl) {
4909
4954
  ctx.addIssue({
4910
- code: z36.ZodIssueCode.custom,
4955
+ code: z37.ZodIssueCode.custom,
4911
4956
  message: "auth.publicBaseUrl is required when auth.baseUrlMode is explicit",
4912
4957
  path: ["auth", "publicBaseUrl"]
4913
4958
  });
4914
4959
  }
4915
4960
  if (value.server.exposure === "public" && value.auth.baseUrlMode !== "explicit") {
4916
4961
  ctx.addIssue({
4917
- code: z36.ZodIssueCode.custom,
4962
+ code: z37.ZodIssueCode.custom,
4918
4963
  message: "auth.baseUrlMode must be explicit when deploymentMode=authenticated and exposure=public",
4919
4964
  path: ["auth", "baseUrlMode"]
4920
4965
  });
4921
4966
  }
4922
4967
  if (value.server.exposure === "public" && !value.auth.publicBaseUrl) {
4923
4968
  ctx.addIssue({
4924
- code: z36.ZodIssueCode.custom,
4969
+ code: z37.ZodIssueCode.custom,
4925
4970
  message: "auth.publicBaseUrl is required when deploymentMode=authenticated and exposure=public",
4926
4971
  path: ["auth", "publicBaseUrl"]
4927
4972
  });
@@ -4965,6 +5010,7 @@ var init_dist = __esm({
4965
5010
  init_project_url_key();
4966
5011
  init_short_refs();
4967
5012
  init_token_usage();
5013
+ init_request();
4968
5014
  init_chat_transcript_visibility();
4969
5015
  init_issue_activity();
4970
5016
  init_config_schema();
@@ -9308,7 +9354,7 @@ var RUDDER_MCP_TOOL_DESCRIPTORS = [
9308
9354
  {
9309
9355
  "capabilityId": "issue.block",
9310
9356
  "name": "rudder_issue_block",
9311
- "description": "Mark an issue blocked with a required blocker comment, optionally uploading images.",
9357
+ "description": "Request human assistance after bounded recovery attempts; repeated matching claims are audited before the Issue becomes blocked.",
9312
9358
  "mutating": true,
9313
9359
  "requiresOrgId": false,
9314
9360
  "requiresAgentId": false,
@@ -11026,7 +11072,7 @@ var AGENT_CLI_CAPABILITIES = [
11026
11072
  id: "issue.block",
11027
11073
  command: "rudder issue block <issue> --comment-file <path> [--image <path>]",
11028
11074
  category: "issue",
11029
- description: "Mark an issue blocked with a required blocker comment, optionally uploading images.",
11075
+ description: "Request human assistance after bounded recovery attempts; repeated matching claims are audited before the Issue becomes blocked.",
11030
11076
  mutating: true,
11031
11077
  contract: "agent-v1",
11032
11078
  requiresOrgId: false,
@@ -14800,7 +14846,7 @@ var RUDDER_AGENT_HEARTBEAT_INSTRUCTION = [
14800
14846
  "4. Inspect your Rudder inbox. Prioritize reviewer rows in `in_review` or `blocked`, then assignee `in_progress`, then assignee `todo`. Do not look for unassigned work.",
14801
14847
  "5. For mention wakes, read the wake comment before acting. Mentions request attention; they do not transfer ownership unless the comment explicitly says so. If the issue is not assigned to you, including user-owned or unassigned issues, and the comment does not explicitly ask you to implement, modify files, close the issue, or take ownership, respond to the comment itself instead of executing the whole issue.",
14802
14848
  "6. Load compact issue context, do one bounded useful chunk, and preserve evidence.",
14803
- "7. Before exiting active work, leave exactly one durable signal: progress, done, blocked, explicit handoff, or structured review decision.",
14849
+ "7. Complete the real task. When an action fails, investigate and try a bounded materially different recovery path before requesting human help. Before exiting active work, leave exactly one durable signal: progress, done, a blocker claim with the exact human input/action required, explicit handoff, or structured review decision. Rudder audits repeated blocker claims; the first claim does not directly establish a blocked Issue.",
14804
14850
  "8. Treat passive follow-up as issue follow-up, not a fresh assignment.",
14805
14851
  "9. Treat review close-out follow-up as review follow-up; free-form accept/reject text is not a durable decision.",
14806
14852
  "",