{"version":3,"sources":["../../src/shared/expression.zod.ts","../../src/shared/lazy-schema.ts","../../src/shared/identifiers.zod.ts","../../src/automation/webhook.zod.ts","../../src/shared/connector-auth.zod.ts","../../src/shared/mapping.zod.ts","../../src/integration/connector.zod.ts","../../src/integration/connector/saas.zod.ts","../../src/integration/connector/database.zod.ts","../../src/integration/connector/file-storage.zod.ts","../../src/integration/connector/message-queue.zod.ts","../../src/integration/connector/github.zod.ts","../../src/integration/connector/vercel.zod.ts"],"names":["z","FieldMappingSchema"],"mappings":"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","file":"index.mjs","sourcesContent":["// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * # Expression Protocol\n *\n * Canonical wire format for all \"expression\"-shaped metadata across ObjectStack\n * (formula fields, predicates, conditions, criteria, visibility rules, seed\n * dynamic values, …).\n *\n * The persisted form is `{ dialect, source }` (and, after `objectstack\n * compile` normalization, `{ dialect, ast }`). String-only shorthand is\n * accepted at *input* time for developer ergonomics; build emits the canonical\n * envelope.\n *\n * ## Dialects\n *\n * | dialect | engine | use |\n * |:---|:---|:---|\n * | `cel`   | `@objectstack/formula` (cel-js + ObjectStack stdlib) | formulas, predicates, seed dynamic values |\n * | `js`    | sandboxed L2 hook bodies (`isolated-vm` / `quickjs`) | mapping, hook bodies |\n * | `cron`  | `cron-parser` | job schedules |\n *\n * SQL fragments (analytics joins, partial indexes) are intentionally **not**\n * routed through this schema — they stay driver-native because their security\n * posture and portability story differ.\n *\n * @see content/docs/concepts/north-star.mdx §8 \"No private expression DSL\"\n */\n\n/** Supported expression dialects. */\nexport const ExpressionDialect = z.enum(['cel', 'js', 'cron', 'template']);\nexport type ExpressionDialect = z.infer<typeof ExpressionDialect>;\n\n/**\n * Authorship metadata for an expression. Optional but encouraged for AI-\n * generated artifacts so audit/explanation tooling has something to render.\n */\nexport const ExpressionMetaSchema = z.object({\n  /** Human-readable rationale (often AI-emitted). */\n  rationale: z.string().optional(),\n  /** Identifier of the agent / tool that produced this expression. */\n  generatedBy: z.string().optional(),\n});\nexport type ExpressionMeta = z.infer<typeof ExpressionMetaSchema>;\n\n/**\n * Canonical Expression envelope.\n *\n * Phase 1 (M9.1): `source` is the canonical persisted form. `ast` is reserved\n * and accepted as opaque structured value — `objectstack compile` will fill it\n * in M9.2 with the engine's parsed AST so the artifact carries an AST-only\n * representation.\n *\n * Phase 2 (M9.2+): `ast` becomes required in build output; `source` is kept\n * only for round-trip / debug.\n */\nexport const ExpressionSchema = z.object({\n  /** Which engine evaluates `source` / `ast`. */\n  dialect: ExpressionDialect,\n  /** Surface syntax. Required while `ast` is not yet populated. */\n  source: z.string().min(1).optional(),\n  /**\n   * Engine-native AST. Opaque at the spec layer; each engine validates its own\n   * shape. For `dialect: 'cel'` this is the cel-js parsed AST node.\n   */\n  ast: z.unknown().optional(),\n  /** Optional authorship metadata. */\n  meta: ExpressionMetaSchema.optional(),\n}).refine(e => e.source !== undefined || e.ast !== undefined, {\n  message: 'Expression requires at least one of `source` or `ast`',\n});\nexport type Expression = z.infer<typeof ExpressionSchema>;\n\n/**\n * Author-time input shape: a bare string is shorthand for `{ dialect: 'cel',\n * source }`. Engines that need other dialects must use the full envelope.\n *\n * Build (`objectstack compile`) normalizes this union to `Expression` so the\n * persisted artifact never contains the bare-string form.\n */\nexport const ExpressionInputSchema = z.union([\n  z.string().min(1).transform((source): Expression => ({ dialect: 'cel', source })),\n  ExpressionSchema,\n]);\nexport type ExpressionInput = z.input<typeof ExpressionInputSchema>;\n\n/**\n * Cron-typed input shape: a bare string is shorthand for `{ dialect: 'cron',\n * source }` (not `cel`). Use this for `schedule` / `cronExpression` fields so\n * authors can write `'0 9 * * 1-5'` without manually wrapping.\n */\nexport const CronExpressionInputSchema = z.union([\n  z.string().min(1).transform((source): Expression => ({ dialect: 'cron', source })),\n  ExpressionSchema,\n]);\nexport type CronExpressionInput = z.input<typeof CronExpressionInputSchema>;\n\n/**\n * Template-typed input shape: a bare string is shorthand for\n * `{ dialect: 'template', source }`. Use this for notification subjects/bodies,\n * titleFormat, prompt templates — anything with `{{var}}` interpolation.\n */\nexport const TemplateExpressionInputSchema = z.union([\n  z.string().min(1).transform((source): Expression => ({ dialect: 'template', source })),\n  ExpressionSchema,\n]);\nexport type TemplateExpressionInput = z.input<typeof TemplateExpressionInputSchema>;\n\n/**\n * Predicate — an Expression whose evaluation is expected to be boolean.\n * Spec layer cannot enforce return type at parse time; this alias exists for\n * intent documentation and future runtime type-check wiring.\n */\nexport const PredicateSchema = ExpressionSchema;\nexport type Predicate = z.infer<typeof PredicateSchema>;\n\nexport const PredicateInputSchema = ExpressionInputSchema;\nexport type PredicateInput = z.input<typeof PredicateInputSchema>;\n\n/**\n * Construct an Expression literal from a CEL source string. Used by DX\n * shorthand (`cel\\`...\\``) and by codegen tools.\n */\nexport function expression(source: string, dialect: ExpressionDialect = 'cel', meta?: ExpressionMeta): Expression {\n  return { dialect, source, ...(meta ? { meta } : {}) };\n}\n\n/**\n * Tagged-template helpers for inline expression authoring.\n *\n * ```ts\n * import { cel, F, P } from '@objectstack/spec';\n *\n * const f = { formula: F`record.amount * 0.1` };\n * const v = { visible: P`record.status == \"open\"` };\n * const d = { close_date: cel`now() + duration(\"P30D\")` };\n * ```\n *\n * Each helper produces an {@link Expression} envelope with `dialect: 'cel'`\n * and the rendered template string as `source`. The CLI `objectstack compile`\n * step (M9.2) parses these into ASTs at build time so the persisted artifact\n * is dialect-AST only.\n */\nfunction renderTemplate(strings: TemplateStringsArray, values: readonly unknown[]): string {\n  if (values.length === 0) return strings[0] ?? '';\n  let out = strings[0] ?? '';\n  for (let i = 0; i < values.length; i++) {\n    const v = values[i];\n    // Inline literal substitution. Strings get JSON-escaped so `${name}` for\n    // `name = 'O\\'Brien'` produces a valid CEL string literal. Numbers and\n    // booleans render as their toString. Anything exotic should be passed via\n    // the variable scope (record/input) rather than interpolated.\n    if (typeof v === 'string') out += JSON.stringify(v);\n    else if (typeof v === 'number' || typeof v === 'boolean') out += String(v);\n    else if (v === null || v === undefined) out += 'null';\n    else out += JSON.stringify(v);\n    out += strings[i + 1] ?? '';\n  }\n  return out;\n}\n\n/** Tagged template — produces a CEL Expression envelope. */\nexport function cel(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n  return { dialect: 'cel', source: renderTemplate(strings, values) };\n}\n\n/** Formula alias of {@link cel} — semantic shorthand for computed-field formulas. */\nexport const F = cel;\n\n/** Predicate alias of {@link cel} — semantic shorthand for boolean conditions. */\nexport const P = cel;\n\n/**\n * Tagged template — produces a Mustache-template Expression envelope. Use for\n * notification subjects, prompt bodies, titleFormat strings, etc. Variable\n * scope is the same as CEL (`{{record.x}}`, `{{os.user.id}}`).\n */\nexport function tmpl(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n  // Templates do not get JSON.stringify on substitution — interpolation happens\n  // at evaluate time via `{{path}}` markers, so we keep raw substitutions here.\n  let out = strings[0] ?? '';\n  for (let i = 0; i < values.length; i++) {\n    out += String(values[i]);\n    out += strings[i + 1] ?? '';\n  }\n  return { dialect: 'template', source: out };\n}\n\n/** Tagged template — produces a cron Expression envelope. */\nexport function cron(strings: TemplateStringsArray, ...values: unknown[]): Expression {\n  let out = strings[0] ?? '';\n  for (let i = 0; i < values.length; i++) {\n    out += String(values[i]);\n    out += strings[i + 1] ?? '';\n  }\n  return { dialect: 'cron', source: out };\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport type { z } from 'zod';\n\n/**\n * Wrap a Zod schema constructor so its body is only evaluated on first use.\n *\n * Why: building Zod schemas at module-load creates millions of closures that\n * dominate dev-server RSS even though most schemas are never parsed in a\n * given session. Wrapping the constructor in a Proxy defers allocation until\n * the first property access (`.parse`, `.shape`, `._def`, etc.) and reuses\n * a single cached instance thereafter.\n *\n * Type system: the returned Proxy is structurally indistinguishable from the\n * underlying ZodType, so `z.infer<typeof X>` and `.parse()` callers do not\n * need to change.\n *\n * Emergency rollback: set `OS_EAGER_SCHEMAS=1` to evaluate the\n * factory immediately and bypass the Proxy entirely.\n */\nexport function lazySchema<T extends z.ZodTypeAny>(factory: () => T): T {\n  if (typeof process !== 'undefined' && process.env?.OS_EAGER_SCHEMAS === '1') {\n    return factory();\n  }\n\n  let cached: T | undefined;\n  const resolve = (): T => {\n    if (cached === undefined) cached = factory();\n    return cached;\n  };\n\n  const target = function lazyZod() {} as unknown as T;\n\n  const proxy = new Proxy(target as object, {\n    get(_t, prop) {\n      const real = resolve() as unknown as Record<PropertyKey, unknown>;\n      const value = real[prop];\n      if (typeof value === 'function') {\n        return (value as (...a: unknown[]) => unknown).bind(real);\n      }\n      return value;\n    },\n    set(_t, prop, value) {\n      const real = resolve() as unknown as Record<PropertyKey, unknown>;\n      real[prop] = value;\n      return true;\n    },\n    has(_t, prop) {\n      return prop in (resolve() as object);\n    },\n    ownKeys() {\n      return Reflect.ownKeys(resolve() as object);\n    },\n    getOwnPropertyDescriptor(_t, prop) {\n      return Reflect.getOwnPropertyDescriptor(resolve() as object, prop);\n    },\n    getPrototypeOf() {\n      return Reflect.getPrototypeOf(resolve() as object);\n    },\n  });\n\n  return proxy as T;\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * System Identifier Schema\n * \n * Universal naming convention for all machine identifiers (API Names) in ObjectStack.\n * Enforces lowercase with underscores or dots to ensure:\n * - Cross-platform compatibility (case-insensitive filesystems)\n * - URL-friendliness (no encoding needed)\n * - Database consistency (no collation issues)\n * - Security (no case-sensitivity bugs in permission checks)\n * \n * **Applies to all metadata that acts as a machine identifier:**\n * - Object names (tables/collections)\n * - Field names\n * - Role names\n * - Permission set names\n * - Action/trigger names\n * - Event keys\n * - App IDs\n * - Menu/page IDs\n * - Select option values\n * - Workflow names\n * - Webhook names\n * \n * **Naming Convention Summary:**\n * | Type | Pattern | Example |\n * |------|---------|---------|\n * | Machine ID | snake_case | `crm_account`, `btn_submit`, `role_admin` |\n * | Event keys | dot.notation | `user.login`, `order.created` |\n * | Labels | Any case | `Client Account`, `Submit Form` |\n * \n * @example Valid identifiers\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * - 'order.created' (for events)\n * - 'api_v2_endpoint'\n * \n * @example Invalid identifiers (will be rejected)\n * - 'Account' (uppercase)\n * - 'CrmAccount' (camelCase)\n * - 'crm-account' (kebab-case - use underscore instead)\n * - 'user profile' (spaces)\n */\nimport { lazySchema } from './lazy-schema';\nexport const SystemIdentifierSchema = lazySchema(() => z\n  .string()\n  .min(2, { message: 'System identifier must be at least 2 characters' })\n  .regex(/^[a-z][a-z0-9_.]*$/, {\n    message:\n      'System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., \"user_profile\" or \"order.created\")',\n  })\n  .describe('System identifier (lowercase with underscores or dots)'));\n\n/**\n * Strict Snake Case Identifier\n * \n * More restrictive than SystemIdentifierSchema - only allows underscores (no dots).\n * Use this for identifiers that should NOT contain dots (e.g., database table/column names).\n * \n * @example Valid\n * - 'account'\n * - 'crm_account'\n * - 'user_profile'\n * \n * @example Invalid\n * - 'user.profile' (dots not allowed)\n * - 'UserProfile' (uppercase)\n */\nexport const SnakeCaseIdentifierSchema = lazySchema(() => z\n  .string()\n  .min(2, { message: 'Identifier must be at least 2 characters' })\n  .regex(/^[a-z][a-z0-9_]*$/, {\n    message:\n      'Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., \"user_profile\")',\n  })\n  .describe('Snake case identifier (lowercase with underscores only)'));\n\n/**\n * Event Name Identifier\n * \n * Specialized identifier for event names that encourages dot notation.\n * Used in event-driven systems, message queues, and webhooks.\n * \n * Pattern: `namespace.action` or `entity.event_type`\n * \n * @example Valid\n * - 'user.created'\n * - 'order.paid'\n * - 'user.login_success'\n * - 'alarm.high_cpu'\n * \n * @example Invalid\n * - 'UserCreated' (camelCase)\n * - 'user_created' (should use dots for namespacing)\n */\nexport const EventNameSchema = lazySchema(() => z\n  .string()\n  .min(3, { message: 'Event name must be at least 3 characters' })\n  .regex(/^[a-z][a-z0-9_.]*$/, {\n    message:\n      'Event name must be lowercase with dots for namespacing (e.g., \"user.created\", \"order.paid\")',\n  })\n  .describe('Event name (lowercase with dot notation for namespacing)'));\n\n/**\n * Type Exports\n */\nexport type SystemIdentifier = z.infer<typeof SystemIdentifierSchema>;\nexport type SnakeCaseIdentifier = z.infer<typeof SnakeCaseIdentifierSchema>;\nexport type EventName = z.infer<typeof EventNameSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { SnakeCaseIdentifierSchema } from '../shared/identifiers.zod';\n\n/**\n * Webhook Trigger Event\n * When should this webhook fire?\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const WebhookTriggerType = z.enum([\n  'create', \n  'update', \n  'delete', \n  'undelete',\n  'api' // Manually triggered\n]);\n\n/**\n * CANONICAL WEBHOOK DEFINITION\n * \n * This is the single source of truth for webhook configuration across ObjectStack.\n * All other protocols (workflow, connector, etc.) should import and reference this schema.\n * \n * Webhook Protocol - Outbound HTTP Integration\n * Push data to external URLs when events occur in the system.\n * \n * **NAMING CONVENTION:**\n * Webhook names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good webhook names\n * - 'stripe_payment_sync'\n * - 'slack_notification'\n * - 'crm_lead_export'\n * \n * @example Bad webhook names (will be rejected)\n * - 'StripePaymentSync' (PascalCase)\n * - 'slackNotification' (camelCase)\n * \n * @example Basic webhook configuration\n * ```typescript\n * const webhook: Webhook = {\n *   name: 'slack_notification',\n *   label: 'Slack Order Notification',\n *   object: 'order',\n *   triggers: ['create', 'update'],\n *   url: 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX',\n *   method: 'POST',\n *   headers: { 'Content-Type': 'application/json' },\n *   authentication: {\n *     type: 'bearer',\n *     credentials: { token: process.env.SLACK_TOKEN }\n *   },\n *   retryPolicy: {\n *     maxRetries: 3,\n *     backoffStrategy: 'exponential'\n *   }\n * }\n * ```\n */\nexport const WebhookSchema = lazySchema(() => z.object({\n  name: SnakeCaseIdentifierSchema.describe('Webhook unique name (lowercase snake_case)'),\n  label: z.string().optional().describe('Human-readable webhook label'),\n  \n  /** Scope */\n  object: z.string().optional().describe('Object to listen to (optional for manual webhooks)'),\n  triggers: z.array(WebhookTriggerType).optional().describe('Events that trigger execution'),\n  \n  /** Target */\n  url: z.string().url().describe('External webhook endpoint URL'),\n  method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']).default('POST').describe('HTTP method'),\n  \n  /** Headers */\n  headers: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers'),\n  \n  /** Body/Payload */\n  body: z.unknown().optional().describe('Request body payload (if not using default record data)'),\n  \n  /** Payload Configuration */\n  payloadFields: z.array(z.string()).optional().describe('Fields to include. Empty = All'),\n  includeSession: z.boolean().default(false).describe('Include user session info'),\n  \n  /** Authentication */\n  authentication: z.object({\n    type: z.enum(['none', 'bearer', 'basic', 'api-key']).describe('Authentication type'),\n    credentials: z.record(z.string(), z.string()).optional().describe('Authentication credentials'),\n  }).optional().describe('Authentication configuration'),\n  \n  /** Retry Policy */\n  retryPolicy: z.object({\n    maxRetries: z.number().int().min(0).max(10).default(3).describe('Maximum retry attempts'),\n    backoffStrategy: z.enum(['exponential', 'linear', 'fixed']).default('exponential').describe('Backoff strategy'),\n    initialDelayMs: z.number().int().min(100).default(1000).describe('Initial retry delay in milliseconds'),\n    maxDelayMs: z.number().int().min(1000).default(60000).describe('Maximum retry delay in milliseconds'),\n  }).optional().describe('Retry policy configuration'),\n  \n  /** Timeout */\n  timeoutMs: z.number().int().min(1000).max(300000).default(30000).describe('Request timeout in milliseconds'),\n  \n  /** Security */\n  secret: z.string().optional().describe('Signing secret for HMAC signature verification'),\n  \n  /** Status */\n  isActive: z.boolean().default(true).describe('Whether webhook is active'),\n  \n  /** Metadata */\n  description: z.string().optional().describe('Webhook description'),\n  tags: z.array(z.string()).optional().describe('Tags for organization'),\n}));\n\n/**\n * Webhook Receiver Schema (Inbound)\n * Handling incoming HTTP hooks from Stripe, Slack, etc.\n * \n * **NAMING CONVENTION:**\n * Webhook receiver names are machine identifiers and must be lowercase snake_case.\n * \n * @example Good names\n * - 'stripe_webhook_handler'\n * - 'github_events'\n * - 'twilio_status_callback'\n * \n * @example Bad names (will be rejected)\n * - 'StripeWebhookHandler' (PascalCase)\n */\nexport const WebhookReceiverSchema = lazySchema(() => z.object({\n  name: SnakeCaseIdentifierSchema.describe('Webhook receiver unique name (lowercase snake_case)'),\n  path: z.string().describe('URL Path (e.g. /webhooks/stripe)'),\n  \n  /** Verification */\n  verificationType: z.enum(['none', 'header_token', 'hmac', 'ip_whitelist']).default('none'),\n  verificationParams: z.object({\n    header: z.string().optional(),\n    secret: z.string().optional(),\n    ips: z.array(z.string()).optional()\n  }).optional(),\n  \n  /** Action */\n  action: z.enum(['trigger_flow', 'script', 'upsert_record']).default('trigger_flow'),\n  target: z.string().describe('Flow ID or Script name'),\n}));\n\nexport type Webhook = z.infer<typeof WebhookSchema>;\n/** Authoring input for {@link Webhook} — defaulted fields are optional. */\nexport type WebhookInput = z.input<typeof WebhookSchema>;\nexport type WebhookReceiver = z.infer<typeof WebhookReceiverSchema>;\n\n/**\n * Type-safe factory for an outbound webhook. Validates at authoring time via\n * `.parse()` and accepts input-shape config (optional defaults, CEL\n * shorthand) — preferred over a bare `: Webhook` literal.\n */\nexport function defineWebhook(config: z.input<typeof WebhookSchema>): Webhook {\n  return WebhookSchema.parse(config);\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\n\n/**\n * SHARED CONNECTOR AUTHENTICATION SCHEMAS\n * These schemas are used by connectors and integrations for external auth.\n * They define \"How we authenticate TO other systems\", not \"How users authenticate TO us\".\n */\n\n/**\n * OAuth2 Authentication Schema\n */\nimport { lazySchema } from './lazy-schema';\nexport const ConnectorOAuth2Schema = lazySchema(() => z.object({\n  type: z.literal('oauth2'),\n  authorizationUrl: z.string().url().describe('OAuth2 authorization endpoint'),\n  tokenUrl: z.string().url().describe('OAuth2 token endpoint'),\n  clientId: z.string().describe('OAuth2 client ID'),\n  clientSecret: z.string().describe('OAuth2 client secret (typically from ENV)'),\n  scopes: z.array(z.string()).optional().describe('Requested OAuth2 scopes'),\n  redirectUri: z.string().url().optional().describe('OAuth2 redirect URI'),\n  refreshToken: z.string().optional().describe('Refresh token for token renewal'),\n  tokenExpiry: z.number().optional().describe('Token expiry timestamp'),\n}));\n\n/**\n * API Key Authentication Schema\n */\nexport const ConnectorAPIKeySchema = lazySchema(() => z.object({\n  type: z.literal('api-key'),\n  key: z.string().describe('API key value'),\n  headerName: z.string().default('X-API-Key').describe('HTTP header name for API key'),\n  paramName: z.string().optional().describe('Query parameter name (alternative to header)'),\n}));\n\n/**\n * Basic Authentication Schema\n */\nexport const ConnectorBasicAuthSchema = lazySchema(() => z.object({\n  type: z.literal('basic'),\n  username: z.string().describe('Username'),\n  password: z.string().describe('Password'),\n}));\n\n/**\n * Bearer Token Authentication Schema\n */\nexport const ConnectorBearerAuthSchema = lazySchema(() => z.object({\n  type: z.literal('bearer'),\n  token: z.string().describe('Bearer token'),\n}));\n\n/**\n * No Authentication Schema\n */\nexport const ConnectorNoAuthSchema = lazySchema(() => z.object({\n  type: z.literal('none'),\n}));\n\n/**\n * Unified Connector Auth Configuration Schema\n */\nexport const ConnectorAuthConfigSchema = lazySchema(() => z.discriminatedUnion('type', [\n  ConnectorOAuth2Schema,\n  ConnectorAPIKeySchema,\n  ConnectorBasicAuthSchema,\n  ConnectorBearerAuthSchema,\n  ConnectorNoAuthSchema,\n]));\n\nexport type ConnectorAuthConfig = z.infer<typeof ConnectorAuthConfigSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { ExpressionInputSchema } from './expression.zod';\n\n/**\n * Base Field Mapping Protocol\n * \n * Shared by: ETL, Sync, Connector, External Lookup\n * \n * This module provides the canonical field mapping schema used across\n * ObjectStack for data transformation and synchronization.\n * \n * **Use Cases:**\n * - ETL pipelines (data/mapping.zod.ts)\n * - Data synchronization (automation/sync.zod.ts)\n * - Integration connectors (integration/connector.zod.ts)\n * - External lookups (data/external-lookup.zod.ts)\n * \n * @example Basic field mapping\n * ```typescript\n * const mapping: FieldMapping = {\n *   source: 'external_user_id',\n *   target: 'user_id',\n * };\n * ```\n * \n * @example With transformation\n * ```typescript\n * const mapping: FieldMapping = {\n *   source: 'user_name',\n *   target: 'name',\n *   transform: { type: 'cast', targetType: 'string' },\n *   defaultValue: 'Unknown'\n * };\n * ```\n */\n\n/**\n * Transform Type Schema\n * \n * Defines the type of transformation to apply to a field value.\n * Implementations can extend this for domain-specific transforms.\n */\nimport { lazySchema } from './lazy-schema';\nexport const TransformTypeSchema = lazySchema(() => z.discriminatedUnion('type', [\n  z.object({\n    type: z.literal('constant'),\n    value: z.unknown().describe('Constant value to use'),\n  }).describe('Set a constant value'),\n  \n  z.object({\n    type: z.literal('cast'),\n    targetType: z.enum(['string', 'number', 'boolean', 'date']).describe('Target data type'),\n  }).describe('Cast to a specific data type'),\n  \n  z.object({\n    type: z.literal('lookup'),\n    table: z.string().describe('Lookup table name'),\n    keyField: z.string().describe('Field to match on'),\n    valueField: z.string().describe('Field to retrieve'),\n  }).describe('Lookup value from another table'),\n  \n  z.object({\n    type: z.literal('javascript'),\n    expression: ExpressionInputSchema.describe('JS expression (dialect=\"js\" recommended). e.g. value.toUpperCase()'),\n  }).describe('Custom JavaScript transformation'),\n  \n  z.object({\n    type: z.literal('map'),\n    mappings: z.record(z.string(), z.unknown()).describe('Value mappings (e.g., {\"Active\": \"active\"})'),\n  }).describe('Map values using a dictionary'),\n]));\n\nexport type TransformType = z.infer<typeof TransformTypeSchema>;\n\n/**\n * Field Mapping Schema\n * \n * Base schema for mapping fields between source and target systems.\n * \n * **NAMING CONVENTION:**\n * - source: Field name in the source system\n * - target: Field name in the target system (should be snake_case for ObjectStack)\n * \n * @example\n * ```typescript\n * {\n *   source: 'FirstName',\n *   target: 'first_name',\n *   transform: { type: 'cast', targetType: 'string' },\n *   defaultValue: ''\n * }\n * ```\n */\nexport const FieldMappingSchema = lazySchema(() => z.object({\n  /**\n   * Source field name\n   */\n  source: z.string().describe('Source field name'),\n  \n  /**\n   * Target field name (should be snake_case for ObjectStack)\n   */\n  target: z.string().describe('Target field name'),\n  \n  /**\n   * Transformation to apply\n   */\n  transform: TransformTypeSchema.optional().describe('Transformation to apply'),\n  \n  /**\n   * Default value if source is null/undefined\n   */\n  defaultValue: z.unknown().optional().describe('Default if source is null/undefined'),\n}));\n\nexport type FieldMapping = z.infer<typeof FieldMappingSchema>;\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { CronExpressionInputSchema } from '../shared/expression.zod';\nimport { WebhookSchema } from '../automation/webhook.zod';\nimport { ConnectorAuthConfigSchema } from '../shared/connector-auth.zod';\nimport { FieldMappingSchema as BaseFieldMappingSchema } from '../shared/mapping.zod';\n\n/**\n * Connector Protocol - LEVEL 3: Enterprise Connector\n * \n * Defines the standard connector specification for external system integration.\n * Connectors enable ObjectStack to sync data with SaaS apps, databases, file storage,\n * and message queues through a unified protocol.\n * \n * **Positioning in 3-Layer Architecture:**\n * - **L1: Simple Sync** (automation/sync.zod.ts) - Business users - Sync Salesforce to Sheets\n * - **L2: ETL Pipeline** (automation/etl.zod.ts) - Data engineers - Aggregate 10 sources to warehouse\n * - **L3: Enterprise Connector** (THIS FILE) - System integrators - Full SAP integration\n * \n * **SCOPE: Most comprehensive integration layer.**\n * Includes authentication, webhooks, rate limiting, field mapping, bidirectional sync,\n * retry policies, and complete lifecycle management.\n * \n * This protocol supports multiple authentication strategies, bidirectional sync,\n * field mapping, webhooks, and comprehensive rate limiting.\n * \n * Authentication is now imported from the canonical auth/config.zod.ts.\n * \n * ## When to Use This Layer\n * \n * **Use Enterprise Connector when:**\n * - Building enterprise-grade connectors (e.g., Salesforce, SAP, Oracle)\n * - Complex OAuth2/SAML authentication required\n * - Bidirectional sync with field mapping and transformations\n * - Webhook management and rate limiting required\n * - Full CRUD operations and data synchronization\n * - Need comprehensive retry strategies and error handling\n * \n * **Examples:**\n * - Full Salesforce integration with webhooks\n * - SAP ERP connector with CDC (Change Data Capture)\n * - Microsoft Dynamics 365 connector\n * \n * **When to downgrade:**\n * - Simple field sync → Use {@link file://../automation/sync.zod.ts | Simple Sync}\n * - Data transformation only → Use {@link file://../automation/etl.zod.ts | ETL Pipeline}\n * \n * @see {@link file://../automation/sync.zod.ts} for Level 1 (simple sync)\n * @see {@link file://../automation/etl.zod.ts} for Level 2 (data engineering)\n * \n * ## When to use Integration Connector vs. Trigger Registry?\n * \n * **Use `integration/connector.zod.ts` when:**\n * - Building enterprise-grade connectors (e.g., Salesforce, SAP, Oracle)\n * - Complex OAuth2/SAML authentication required\n * - Bidirectional sync with field mapping and transformations\n * - Webhook management and rate limiting required\n * - Full CRUD operations and data synchronization\n * - Need comprehensive retry strategies and error handling\n * \n * **Use `automation/trigger-registry.zod.ts` when:**\n * - Building simple automation triggers (e.g., \"when Slack message received, create task\")\n * - No complex authentication needed (simple API keys, basic auth)\n * - Lightweight, single-purpose integrations\n * - Quick setup with minimal configuration\n * \n * @see ../../automation/trigger-registry.zod.ts for lightweight automation triggers\n */\n\n// ============================================================================\n// Authentication Schemas - IMPORTED FROM CANONICAL SOURCE\n// Use ConnectorAuthConfigSchema from shared/connector-auth.zod.ts\n// ============================================================================\n\n// ============================================================================\n// Field Mapping Schema\n// Uses the canonical field mapping protocol from shared/mapping.zod.ts\n// Extended with connector-specific features\n// ============================================================================\n\n/**\n * Connector Field Mapping Configuration\n * \n * Extends the base field mapping with connector-specific features\n * like bidirectional sync modes and data type mapping.\n */\nimport { lazySchema } from '../shared/lazy-schema';\nexport const FieldMappingSchema = lazySchema(() => BaseFieldMappingSchema.extend({\n  /**\n   * Data type mapping (connector-specific)\n   */\n  dataType: z.enum([\n    'string',\n    'number',\n    'boolean',\n    'date',\n    'datetime',\n    'json',\n    'array',\n  ]).optional().describe('Target data type'),\n  \n  /**\n   * Is this field required?\n   */\n  required: z.boolean().default(false).describe('Field is required'),\n  \n  /**\n   * Bidirectional sync mode (connector-specific)\n   */\n  syncMode: z.enum([\n    'read_only',      // Only sync from external to ObjectStack\n    'write_only',     // Only sync from ObjectStack to external\n    'bidirectional',  // Sync both ways\n  ]).default('bidirectional').describe('Sync mode'),\n}));\n\nexport type FieldMapping = z.infer<typeof FieldMappingSchema>;\n\n// ============================================================================\n// Data Synchronization Configuration\n// ============================================================================\n\n/**\n * Sync Strategy Schema\n */\nexport const SyncStrategySchema = lazySchema(() => z.enum([\n  'full',           // Full refresh (delete all and re-import)\n  'incremental',    // Only sync changes since last sync\n  'upsert',         // Insert new, update existing\n  'append_only',    // Only insert new records\n]).describe('Synchronization strategy'));\n\nexport type SyncStrategy = z.infer<typeof SyncStrategySchema>;\n\n/**\n * Conflict Resolution Strategy\n */\nexport const ConflictResolutionSchema = lazySchema(() => z.enum([\n  'source_wins',    // External system data takes precedence\n  'target_wins',    // ObjectStack data takes precedence\n  'latest_wins',    // Most recently modified wins\n  'manual',         // Flag for manual resolution\n]).describe('Conflict resolution strategy'));\n\nexport type ConflictResolution = z.infer<typeof ConflictResolutionSchema>;\n\n/**\n * Data Synchronization Configuration\n */\nexport const DataSyncConfigSchema = lazySchema(() => z.object({\n  /**\n   * Sync strategy\n   */\n  strategy: SyncStrategySchema.optional().default('incremental'),\n  \n  /**\n   * Sync direction\n   */\n  direction: z.enum([\n    'import',         // External → ObjectStack\n    'export',         // ObjectStack → External\n    'bidirectional',  // Both ways\n  ]).optional().default('import').describe('Sync direction'),\n  \n  /**\n   * Sync frequency (cron expression)\n   */\n  schedule: CronExpressionInputSchema.optional().describe('Cron expression for scheduled sync — cron`0 */15 * * *`'),\n  \n  /**\n   * Enable real-time sync via webhooks\n   */\n  realtimeSync: z.boolean().optional().default(false).describe('Enable real-time sync'),\n  \n  /**\n   * Field to track last sync timestamp\n   */\n  timestampField: z.string().optional().describe('Field to track last modification time'),\n  \n  /**\n   * Conflict resolution strategy\n   */\n  conflictResolution: ConflictResolutionSchema.optional().default('latest_wins'),\n  \n  /**\n   * Batch size for bulk operations\n   */\n  batchSize: z.number().min(1).max(10000).optional().default(1000).describe('Records per batch'),\n  \n  /**\n   * Delete handling\n   */\n  deleteMode: z.enum([\n    'hard_delete',    // Permanently delete\n    'soft_delete',    // Mark as deleted\n    'ignore',         // Don't sync deletions\n  ]).optional().default('soft_delete').describe('Delete handling mode'),\n  \n  /**\n   * Filter criteria for selective sync\n   */\n  filters: z.record(z.string(), z.unknown()).optional().describe('Filter criteria for selective sync'),\n}));\n\nexport type DataSyncConfig = z.infer<typeof DataSyncConfigSchema>;\n\n// ============================================================================\n// Webhook Configuration\n// ============================================================================\n\n/**\n * Webhook Event Schema\n */\nexport const WebhookEventSchema = lazySchema(() => z.enum([\n  'record.created',\n  'record.updated',\n  'record.deleted',\n  'sync.started',\n  'sync.completed',\n  'sync.failed',\n  'auth.expired',\n  'rate_limit.exceeded',\n]).describe('Webhook event type'));\n\nexport type WebhookEvent = z.infer<typeof WebhookEventSchema>;\n\n/**\n * Webhook Signature Algorithm\n */\nexport const WebhookSignatureAlgorithmSchema = lazySchema(() => z.enum([\n  'hmac_sha256',\n  'hmac_sha512',\n  'none',\n]).describe('Webhook signature algorithm'));\n\nexport type WebhookSignatureAlgorithm = z.infer<typeof WebhookSignatureAlgorithmSchema>;\n\n/**\n * Webhook Configuration Schema\n * \n * Extends the canonical WebhookSchema with connector-specific event types.\n * This allows connectors to subscribe to both data events and connector lifecycle events.\n */\nexport const WebhookConfigSchema = lazySchema(() => WebhookSchema.extend({\n  /**\n   * Events to listen for\n   * Connector-specific events like sync completion, auth expiry, etc.\n   */\n  events: z.array(WebhookEventSchema).optional().describe('Connector events to subscribe to'),\n  \n  /**\n   * Signature algorithm for webhook security\n   */\n  signatureAlgorithm: WebhookSignatureAlgorithmSchema.optional().default('hmac_sha256'),\n}));\n\nexport type WebhookConfig = z.infer<typeof WebhookConfigSchema>;\n\n// ============================================================================\n// Rate Limiting and Retry Configuration\n// ============================================================================\n\n/**\n * Rate Limiting Strategy\n */\nexport const RateLimitStrategySchema = lazySchema(() => z.enum([\n  'fixed_window',       // Fixed time window\n  'sliding_window',     // Sliding time window\n  'token_bucket',       // Token bucket algorithm\n  'leaky_bucket',       // Leaky bucket algorithm\n]).describe('Rate limiting strategy'));\n\nexport type RateLimitStrategy = z.infer<typeof RateLimitStrategySchema>;\n\n/**\n * Rate Limiting Configuration\n */\nexport const RateLimitConfigSchema = lazySchema(() => z.object({\n  /**\n   * Rate limiting strategy\n   */\n  strategy: RateLimitStrategySchema.optional().default('token_bucket'),\n  \n  /**\n   * Maximum requests per window\n   */\n  maxRequests: z.number().min(1).describe('Maximum requests per window'),\n  \n  /**\n   * Time window in seconds\n   */\n  windowSeconds: z.number().min(1).describe('Time window in seconds'),\n  \n  /**\n   * Burst capacity (for token bucket)\n   */\n  burstCapacity: z.number().min(1).optional().describe('Burst capacity'),\n  \n  /**\n   * Respect external system rate limits\n   */\n  respectUpstreamLimits: z.boolean().optional().default(true).describe('Respect external rate limit headers'),\n  \n  /**\n   * Custom rate limit headers to check\n   */\n  rateLimitHeaders: z.object({\n    remaining: z.string().optional().default('X-RateLimit-Remaining').describe('Header for remaining requests'),\n    limit: z.string().optional().default('X-RateLimit-Limit').describe('Header for rate limit'),\n    reset: z.string().optional().default('X-RateLimit-Reset').describe('Header for reset time'),\n  }).optional().describe('Custom rate limit headers'),\n}));\n\nexport type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;\n\n/**\n * Retry Strategy\n */\nexport const RetryStrategySchema = lazySchema(() => z.enum([\n  'exponential_backoff',\n  'linear_backoff',\n  'fixed_delay',\n  'no_retry',\n]).describe('Retry strategy'));\n\nexport type RetryStrategy = z.infer<typeof RetryStrategySchema>;\n\n/**\n * Retry Configuration\n */\nexport const RetryConfigSchema = lazySchema(() => z.object({\n  /**\n   * Retry strategy\n   */\n  strategy: RetryStrategySchema.optional().default('exponential_backoff'),\n  \n  /**\n   * Maximum retry attempts\n   */\n  maxAttempts: z.number().min(0).max(10).optional().default(3).describe('Maximum retry attempts'),\n  \n  /**\n   * Initial delay in milliseconds\n   */\n  initialDelayMs: z.number().min(100).optional().default(1000).describe('Initial retry delay in ms'),\n  \n  /**\n   * Maximum delay in milliseconds\n   */\n  maxDelayMs: z.number().min(1000).optional().default(60000).describe('Maximum retry delay in ms'),\n  \n  /**\n   * Backoff multiplier (for exponential backoff)\n   */\n  backoffMultiplier: z.number().min(1).optional().default(2).describe('Exponential backoff multiplier'),\n  \n  /**\n   * HTTP status codes to retry\n   */\n  retryableStatusCodes: z.array(z.number()).optional().default([408, 429, 500, 502, 503, 504]).describe('HTTP status codes to retry'),\n  \n  /**\n   * Retry on network errors\n   */\n  retryOnNetworkError: z.boolean().optional().default(true).describe('Retry on network errors'),\n  \n  /**\n   * Jitter to add randomness to retry delays\n   */\n  jitter: z.boolean().optional().default(true).describe('Add jitter to retry delays'),\n}));\n\nexport type RetryConfig = z.infer<typeof RetryConfigSchema>;\n\n// ============================================================================\n// Error Mapping Configuration\n// ============================================================================\n\n/**\n * Error Category\n */\nexport const ErrorCategorySchema = lazySchema(() => z.enum([\n  'validation',\n  'authorization',\n  'not_found',\n  'conflict',\n  'rate_limit',\n  'timeout',\n  'server_error',\n  'integration_error',\n]).describe('Standard error category'));\n\nexport type ErrorCategory = z.infer<typeof ErrorCategorySchema>;\n\n/**\n * Error Mapping Rule\n * \n * Maps an external system error code to an ObjectStack standard error.\n */\nexport const ErrorMappingRuleSchema = lazySchema(() => z.object({\n  sourceCode: z.union([z.string(), z.number()]).describe('External system error code'),\n  sourceMessage: z.string().optional().describe('Pattern to match against error message'),\n  targetCode: z.string().describe('ObjectStack standard error code'),\n  targetCategory: ErrorCategorySchema.describe('Error category'),\n  severity: z.enum(['low', 'medium', 'high', 'critical']).describe('Error severity level'),\n  retryable: z.boolean().describe('Whether the error is retryable'),\n  userMessage: z.string().optional().describe('Human-readable message to show users'),\n}).describe('Error mapping rule'));\n\nexport type ErrorMappingRule = z.infer<typeof ErrorMappingRuleSchema>;\n\n/**\n * Error Mapping Configuration\n * \n * Configures how external system errors are mapped to ObjectStack standard errors.\n */\nexport const ErrorMappingConfigSchema = lazySchema(() => z.object({\n  rules: z.array(ErrorMappingRuleSchema).describe('Error mapping rules'),\n  defaultCategory: ErrorCategorySchema.optional().default('integration_error').describe('Default category for unmapped errors'),\n  unmappedBehavior: z.enum(['passthrough', 'generic_error', 'throw']).describe('What to do with unmapped errors'),\n  logUnmapped: z.boolean().optional().default(true).describe('Log unmapped errors'),\n}).describe('Error mapping configuration'));\n\nexport type ErrorMappingConfig = z.infer<typeof ErrorMappingConfigSchema>;\n\n// ============================================================================\n// Health Check & Circuit Breaker Configuration\n// ============================================================================\n\n/**\n * Health Check Configuration\n * \n * Configures periodic health checks for connector endpoints.\n */\nexport const HealthCheckConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().describe('Enable health checks'),\n  intervalMs: z.number().optional().default(60000).describe('Health check interval in milliseconds'),\n  timeoutMs: z.number().optional().default(5000).describe('Health check timeout in milliseconds'),\n  endpoint: z.string().optional().describe('Health check endpoint path'),\n  method: z.enum(['GET', 'HEAD', 'OPTIONS']).optional().describe('HTTP method for health check'),\n  expectedStatus: z.number().optional().default(200).describe('Expected HTTP status code'),\n  unhealthyThreshold: z.number().optional().default(3).describe('Consecutive failures before marking unhealthy'),\n  healthyThreshold: z.number().optional().default(1).describe('Consecutive successes before marking healthy'),\n}).describe('Health check configuration'));\n\nexport type HealthCheckConfig = z.infer<typeof HealthCheckConfigSchema>;\n\n/**\n * Circuit Breaker Configuration\n * \n * Implements the circuit breaker pattern to prevent cascading failures.\n */\nexport const CircuitBreakerConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().describe('Enable circuit breaker'),\n  failureThreshold: z.number().optional().default(5).describe('Failures before opening circuit'),\n  resetTimeoutMs: z.number().optional().default(30000).describe('Time in open state before half-open'),\n  halfOpenMaxRequests: z.number().optional().default(1).describe('Requests allowed in half-open state'),\n  monitoringWindow: z.number().optional().default(60000).describe('Rolling window for failure count in ms'),\n  fallbackStrategy: z.enum(['cache', 'default_value', 'error', 'queue']).optional().describe('Fallback strategy when circuit is open'),\n}).describe('Circuit breaker configuration'));\n\nexport type CircuitBreakerConfig = z.infer<typeof CircuitBreakerConfigSchema>;\n\n/**\n * Connector Health Configuration\n * \n * Combines health check and circuit breaker for connector resilience.\n */\nexport const ConnectorHealthSchema = lazySchema(() => z.object({\n  healthCheck: HealthCheckConfigSchema.optional().describe('Health check configuration'),\n  circuitBreaker: CircuitBreakerConfigSchema.optional().describe('Circuit breaker configuration'),\n}).describe('Connector health configuration'));\n\nexport type ConnectorHealth = z.infer<typeof ConnectorHealthSchema>;\n\n// ============================================================================\n// Base Connector Schema\n// ============================================================================\n\n/**\n * Connector Type\n */\nexport const ConnectorTypeSchema = lazySchema(() => z.enum([\n  'saas',           // SaaS application connector\n  'database',       // Database connector\n  'file_storage',   // File storage connector\n  'message_queue',  // Message queue connector\n  'api',            // Generic REST/GraphQL API\n  'custom',         // Custom connector\n]).describe('Connector type'));\n\nexport type ConnectorType = z.infer<typeof ConnectorTypeSchema>;\n\n/**\n * Connector Status\n */\nexport const ConnectorStatusSchema = lazySchema(() => z.enum([\n  'active',         // Connector is active and syncing\n  'inactive',       // Connector is configured but disabled\n  'error',          // Connector has errors\n  'configuring',    // Connector is being set up\n]).describe('Connector status'));\n\nexport type ConnectorStatus = z.infer<typeof ConnectorStatusSchema>;\n\n/**\n * Connector Action Definition\n */\nexport const ConnectorActionSchema = lazySchema(() => z.object({\n  key: z.string().describe('Action key (machine name)'),\n  label: z.string().describe('Human readable label'),\n  description: z.string().optional(),\n  inputSchema: z.record(z.string(), z.unknown()).optional().describe('Input parameters schema (JSON Schema)'),\n  outputSchema: z.record(z.string(), z.unknown()).optional().describe('Output schema (JSON Schema)'),\n}));\n\n/**\n * Connector Trigger Definition\n */\nexport const ConnectorTriggerSchema = lazySchema(() => z.object({\n  key: z.string().describe('Trigger key'),\n  label: z.string().describe('Trigger label'),\n  description: z.string().optional(),\n  type: z.enum(['polling', 'webhook']).describe('Trigger type'),\n  interval: z.number().optional().describe('Polling interval in seconds'),\n}));\n\n/**\n * Base Connector Schema\n * Core connector configuration shared across all connector types\n */\nexport const ConnectorSchema = lazySchema(() => z.object({\n  /**\n   * Machine name (snake_case)\n   */\n  name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique connector identifier'),\n  \n  /**\n   * Human-readable label\n   */\n  label: z.string().describe('Display label'),\n  \n  /**\n   * Connector type\n   */\n  type: ConnectorTypeSchema.describe('Connector type'),\n  \n  /**\n   * Description\n   */\n  description: z.string().optional().describe('Connector description'),\n  \n  /**\n   * Icon identifier\n   */\n  icon: z.string().optional().describe('Icon identifier'),\n  \n  /**\n   * Authentication configuration\n   */\n  authentication: ConnectorAuthConfigSchema.describe('Authentication configuration'),\n\n  /** Zapier-style Capabilities */\n  actions: z.array(ConnectorActionSchema).optional(),\n  triggers: z.array(ConnectorTriggerSchema).optional(),\n  \n  /**\n   * Data synchronization configuration\n   */\n  syncConfig: DataSyncConfigSchema.optional().describe('Data sync configuration'),\n  \n  \n  /**\n   * Field mappings\n   */\n  fieldMappings: z.array(FieldMappingSchema).optional().describe('Field mapping rules'),\n  \n  /**\n   * Webhook configuration\n   */\n  webhooks: z.array(WebhookConfigSchema).optional().describe('Webhook configurations'),\n  \n  /**\n   * Rate limiting configuration\n   */\n  rateLimitConfig: RateLimitConfigSchema.optional().describe('Rate limiting configuration'),\n  \n  /**\n   * Retry configuration\n   */\n  retryConfig: RetryConfigSchema.optional().describe('Retry configuration'),\n  \n  /**\n   * Connection timeout in milliseconds\n   */\n  connectionTimeoutMs: z.number().min(1000).max(300000).optional().default(30000).describe('Connection timeout in ms'),\n  \n  /**\n   * Request timeout in milliseconds\n   */\n  requestTimeoutMs: z.number().min(1000).max(300000).optional().default(30000).describe('Request timeout in ms'),\n  \n  /**\n   * Connector status\n   */\n  status: ConnectorStatusSchema.optional().default('inactive').describe('Connector status'),\n  \n  /**\n   * Enable connector\n   */\n  enabled: z.boolean().optional().default(true).describe('Enable connector'),\n  \n  /**\n   * Error mapping configuration\n   */\n  errorMapping: ErrorMappingConfigSchema.optional().describe('Error mapping configuration'),\n  \n  /**\n   * Health check and circuit breaker configuration\n   */\n  health: ConnectorHealthSchema.optional().describe('Health and resilience configuration'),\n  \n  /**\n   * Custom metadata\n   */\n  metadata: z.record(z.string(), z.unknown()).optional().describe('Custom connector metadata'),\n}));\n\nexport type Connector = z.infer<typeof ConnectorSchema>;\n/** Authoring input for {@link Connector} — defaulted fields are optional. */\nexport type ConnectorInput = z.input<typeof ConnectorSchema>;\n\n/**\n * Type-safe factory for an external-system connector. Validates at authoring time via\n * `.parse()` and accepts input-shape config (optional defaults, CEL\n * shorthand) — preferred over a bare `: Connector` literal.\n */\nexport function defineConnector(config: z.input<typeof ConnectorSchema>): Connector {\n  return ConnectorSchema.parse(config);\n}\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport {\n  ConnectorSchema,\n  FieldMappingSchema,\n} from '../connector.zod';\n\n/**\n * SaaS Connector Protocol Template\n * \n * Specialized connector for SaaS applications (Salesforce, HubSpot, Stripe, etc.)\n * Extends the base connector with SaaS-specific features like OAuth flows,\n * object type discovery, and API version management.\n */\n\n/**\n * SaaS Provider Types\n */\nimport { lazySchema } from '../../shared/lazy-schema';\nexport const SaasProviderSchema = lazySchema(() => z.enum([\n  'salesforce',\n  'hubspot',\n  'stripe',\n  'shopify',\n  'zendesk',\n  'intercom',\n  'mailchimp',\n  'slack',\n  'microsoft_dynamics',\n  'servicenow',\n  'netsuite',\n  'custom',\n]).describe('SaaS provider type'));\n\nexport type SaasProvider = z.infer<typeof SaasProviderSchema>;\n\n/**\n * API Version Configuration\n */\nexport const ApiVersionConfigSchema = lazySchema(() => z.object({\n  version: z.string().describe('API version (e.g., \"v2\", \"2023-10-01\")'),\n  isDefault: z.boolean().default(false).describe('Is this the default version'),\n  deprecationDate: z.string().optional().describe('API version deprecation date (ISO 8601)'),\n  sunsetDate: z.string().optional().describe('API version sunset date (ISO 8601)'),\n}));\n\nexport type ApiVersionConfig = z.infer<typeof ApiVersionConfigSchema>;\n\n/**\n * SaaS Object Type Schema\n * Represents a syncable entity in the SaaS system (e.g., Account, Contact, Deal)\n */\nexport const SaasObjectTypeSchema = lazySchema(() => z.object({\n  name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Object type name (snake_case)'),\n  label: z.string().describe('Display label'),\n  apiName: z.string().describe('API name in external system'),\n  enabled: z.boolean().default(true).describe('Enable sync for this object'),\n  supportsCreate: z.boolean().default(true).describe('Supports record creation'),\n  supportsUpdate: z.boolean().default(true).describe('Supports record updates'),\n  supportsDelete: z.boolean().default(true).describe('Supports record deletion'),\n  fieldMappings: z.array(FieldMappingSchema).optional().describe('Object-specific field mappings'),\n}));\n\nexport type SaasObjectType = z.infer<typeof SaasObjectTypeSchema>;\n\n/**\n * SaaS Connector Configuration Schema\n */\nexport const SaasConnectorSchema = lazySchema(() => ConnectorSchema.extend({\n  type: z.literal('saas'),\n  \n  /**\n   * SaaS provider\n   */\n  provider: SaasProviderSchema.describe('SaaS provider type'),\n  \n  /**\n   * Base URL for API requests\n   */\n  baseUrl: z.string().url().describe('API base URL'),\n  \n  /**\n   * API version configuration\n   */\n  apiVersion: ApiVersionConfigSchema.optional().describe('API version configuration'),\n  \n  /**\n   * Supported object types to sync\n   */\n  objectTypes: z.array(SaasObjectTypeSchema).describe('Syncable object types'),\n  \n  /**\n   * OAuth-specific settings\n   */\n  oauthSettings: z.object({\n    scopes: z.array(z.string()).describe('Required OAuth scopes'),\n    refreshTokenUrl: z.string().url().optional().describe('Token refresh endpoint'),\n    revokeTokenUrl: z.string().url().optional().describe('Token revocation endpoint'),\n    autoRefresh: z.boolean().default(true).describe('Automatically refresh expired tokens'),\n  }).optional().describe('OAuth-specific configuration'),\n  \n  /**\n   * Pagination settings\n   */\n  paginationConfig: z.object({\n    type: z.enum(['cursor', 'offset', 'page']).default('cursor').describe('Pagination type'),\n    defaultPageSize: z.number().min(1).max(1000).default(100).describe('Default page size'),\n    maxPageSize: z.number().min(1).max(10000).default(1000).describe('Maximum page size'),\n  }).optional().describe('Pagination configuration'),\n  \n  /**\n   * Sandbox/test environment settings\n   */\n  sandboxConfig: z.object({\n    enabled: z.boolean().default(false).describe('Use sandbox environment'),\n    baseUrl: z.string().url().optional().describe('Sandbox API base URL'),\n  }).optional().describe('Sandbox environment configuration'),\n  \n  /**\n   * Custom request headers\n   */\n  customHeaders: z.record(z.string(), z.string()).optional().describe('Custom HTTP headers for all requests'),\n}));\n\nexport type SaasConnector = z.infer<typeof SaasConnectorSchema>;\nexport type SaaSConnector = SaasConnector; // Alias for alternative capitalization\n\n// ============================================================================\n// Helper Functions & Examples\n// ============================================================================\n\n/**\n * Example: Salesforce Connector Configuration\n */\nexport const salesforceConnectorExample = {\n  name: 'salesforce_production',\n  label: 'Salesforce Production',\n  type: 'saas',\n  provider: 'salesforce',\n  baseUrl: 'https://example.my.salesforce.com',\n  apiVersion: {\n    version: 'v59.0',\n    isDefault: true,\n  },\n  authentication: {\n    type: 'oauth2',\n    clientId: '${SALESFORCE_CLIENT_ID}',\n    clientSecret: '${SALESFORCE_CLIENT_SECRET}',\n    authorizationUrl: 'https://login.salesforce.com/services/oauth2/authorize',\n    tokenUrl: 'https://login.salesforce.com/services/oauth2/token',\n    grantType: 'authorization_code',\n    scopes: ['api', 'refresh_token', 'offline_access'],\n  },\n  objectTypes: [\n    {\n      name: 'account',\n      label: 'Account',\n      apiName: 'Account',\n      enabled: true,\n      supportsCreate: true,\n      supportsUpdate: true,\n      supportsDelete: true,\n    },\n    {\n      name: 'contact',\n      label: 'Contact',\n      apiName: 'Contact',\n      enabled: true,\n      supportsCreate: true,\n      supportsUpdate: true,\n      supportsDelete: true,\n    },\n  ],\n  syncConfig: {\n    strategy: 'incremental',\n    direction: 'bidirectional',\n    schedule: '0 */6 * * *', // Every 6 hours\n    realtimeSync: true,\n    conflictResolution: 'latest_wins',\n    batchSize: 200,\n    deleteMode: 'soft_delete',\n  },\n  rateLimitConfig: {\n    strategy: 'token_bucket',\n    maxRequests: 100,\n    windowSeconds: 20,\n    respectUpstreamLimits: true,\n  },\n  retryConfig: {\n    strategy: 'exponential_backoff',\n    maxAttempts: 3,\n    initialDelayMs: 1000,\n    maxDelayMs: 30000,\n    backoffMultiplier: 2,\n    retryableStatusCodes: [408, 429, 500, 502, 503, 504],\n    retryOnNetworkError: true,\n    jitter: true,\n  },\n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: HubSpot Connector Configuration\n */\nexport const hubspotConnectorExample = {\n  name: 'hubspot_crm',\n  label: 'HubSpot CRM',\n  type: 'saas',\n  provider: 'hubspot',\n  baseUrl: 'https://api.hubapi.com',\n  authentication: {\n    type: 'api_key',\n    apiKey: '${HUBSPOT_API_KEY}',\n    headerName: 'Authorization',\n  },\n  objectTypes: [\n    {\n      name: 'company',\n      label: 'Company',\n      apiName: 'companies',\n      enabled: true,\n      supportsCreate: true,\n      supportsUpdate: true,\n      supportsDelete: true,\n    },\n    {\n      name: 'deal',\n      label: 'Deal',\n      apiName: 'deals',\n      enabled: true,\n      supportsCreate: true,\n      supportsUpdate: true,\n      supportsDelete: true,\n    },\n  ],\n  syncConfig: {\n    strategy: 'incremental',\n    direction: 'import',\n    schedule: '0 */4 * * *', // Every 4 hours\n    conflictResolution: 'source_wins',\n    batchSize: 100,\n  },\n  rateLimitConfig: {\n    strategy: 'token_bucket',\n    maxRequests: 100,\n    windowSeconds: 10,\n  },\n  status: 'active',\n  enabled: true,\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport {\n  ConnectorSchema,\n  FieldMappingSchema,\n} from '../connector.zod';\n\n/**\n * Database Connector Protocol Template\n * \n * Specialized connector for database systems (PostgreSQL, MySQL, SQL Server, etc.)\n * Extends the base connector with database-specific features like schema discovery,\n * CDC (Change Data Capture), and connection pooling.\n */\n\n/**\n * Database Provider Types\n */\nimport { lazySchema } from '../../shared/lazy-schema';\nexport const DatabaseProviderSchema = lazySchema(() => z.enum([\n  'postgresql',\n  'mysql',\n  'mariadb',\n  'mssql',\n  'oracle',\n  'mongodb',\n  'redis',\n  'cassandra',\n  'snowflake',\n  'bigquery',\n  'redshift',\n  'custom',\n]).describe('Database provider type'));\n\nexport type DatabaseProvider = z.infer<typeof DatabaseProviderSchema>;\n\n/**\n * Database Connection Pool Configuration\n */\nexport const DatabasePoolConfigSchema = lazySchema(() => z.object({\n  min: z.number().min(0).default(2).describe('Minimum connections in pool'),\n  max: z.number().min(1).default(10).describe('Maximum connections in pool'),\n  idleTimeoutMs: z.number().min(1000).default(30000).describe('Idle connection timeout in ms'),\n  connectionTimeoutMs: z.number().min(1000).default(10000).describe('Connection establishment timeout in ms'),\n  acquireTimeoutMs: z.number().min(1000).default(30000).describe('Connection acquisition timeout in ms'),\n  evictionRunIntervalMs: z.number().min(1000).default(30000).describe('Connection eviction check interval in ms'),\n  testOnBorrow: z.boolean().default(true).describe('Test connection before use'),\n}));\n\nexport type DatabasePoolConfig = z.infer<typeof DatabasePoolConfigSchema>;\n\n/**\n * SSL/TLS Configuration\n */\nexport const SslConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().default(false).describe('Enable SSL/TLS'),\n  rejectUnauthorized: z.boolean().default(true).describe('Reject unauthorized certificates'),\n  ca: z.string().optional().describe('Certificate Authority certificate'),\n  cert: z.string().optional().describe('Client certificate'),\n  key: z.string().optional().describe('Client private key'),\n}));\n\nexport type SslConfig = z.infer<typeof SslConfigSchema>;\n\n/**\n * Change Data Capture (CDC) Configuration\n */\nexport const CdcConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().default(false).describe('Enable CDC'),\n  \n  method: z.enum([\n    'log_based',      // Transaction log parsing (e.g., PostgreSQL logical replication)\n    'trigger_based',  // Database triggers for change tracking\n    'query_based',    // Timestamp-based queries\n    'custom',         // Custom CDC implementation\n  ]).describe('CDC method'),\n  \n  slotName: z.string().optional().describe('Replication slot name (for log-based CDC)'),\n  \n  publicationName: z.string().optional().describe('Publication name (for PostgreSQL)'),\n  \n  startPosition: z.string().optional().describe('Starting position/LSN for CDC stream'),\n  \n  batchSize: z.number().min(1).max(10000).default(1000).describe('CDC batch size'),\n  \n  pollIntervalMs: z.number().min(100).default(1000).describe('CDC polling interval in ms'),\n}));\n\nexport type CdcConfig = z.infer<typeof CdcConfigSchema>;\n\n/**\n * Database Table Configuration\n */\nexport const DatabaseTableSchema = lazySchema(() => z.object({\n  name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Table name in ObjectStack (snake_case)'),\n  label: z.string().describe('Display label'),\n  schema: z.string().optional().describe('Database schema name'),\n  tableName: z.string().describe('Actual table name in database'),\n  primaryKey: z.string().describe('Primary key column'),\n  enabled: z.boolean().default(true).describe('Enable sync for this table'),\n  fieldMappings: z.array(FieldMappingSchema).optional().describe('Table-specific field mappings'),\n  whereClause: z.string().optional().describe('SQL WHERE clause for filtering'),\n}));\n\nexport type DatabaseTable = z.infer<typeof DatabaseTableSchema>;\n\n/**\n * Database Connector Configuration Schema\n */\nexport const DatabaseConnectorSchema = lazySchema(() => ConnectorSchema.extend({\n  type: z.literal('database'),\n  \n  /**\n   * Database provider\n   */\n  provider: DatabaseProviderSchema.describe('Database provider type'),\n  \n  /**\n   * Connection configuration\n   */\n  connectionConfig: z.object({\n    host: z.string().describe('Database host'),\n    port: z.number().min(1).max(65535).describe('Database port'),\n    database: z.string().describe('Database name'),\n    username: z.string().describe('Database username'),\n    password: z.string().describe('Database password (typically from ENV)'),\n    options: z.record(z.string(), z.unknown()).optional().describe('Driver-specific connection options'),\n  }).describe('Database connection configuration'),\n  \n  /**\n   * Connection pool configuration\n   */\n  poolConfig: DatabasePoolConfigSchema.optional().describe('Connection pool configuration'),\n  \n  /**\n   * SSL/TLS configuration\n   */\n  sslConfig: SslConfigSchema.optional().describe('SSL/TLS configuration'),\n  \n  /**\n   * Tables to sync\n   */\n  tables: z.array(DatabaseTableSchema).describe('Tables to sync'),\n  \n  /**\n   * Change Data Capture configuration\n   */\n  cdcConfig: CdcConfigSchema.optional().describe('CDC configuration'),\n  \n  /**\n   * Read replica configuration\n   */\n  readReplicaConfig: z.object({\n    enabled: z.boolean().default(false).describe('Use read replicas'),\n    hosts: z.array(z.object({\n      host: z.string().describe('Replica host'),\n      port: z.number().min(1).max(65535).describe('Replica port'),\n      weight: z.number().min(0).max(1).default(1).describe('Load balancing weight'),\n    })).describe('Read replica hosts'),\n  }).optional().describe('Read replica configuration'),\n  \n  /**\n   * Query timeout\n   */\n  queryTimeoutMs: z.number().min(1000).max(300000).optional().default(30000).describe('Query timeout in ms'),\n  \n  /**\n   * Enable query logging\n   */\n  enableQueryLogging: z.boolean().optional().default(false).describe('Enable SQL query logging'),\n}));\n\nexport type DatabaseConnector = z.infer<typeof DatabaseConnectorSchema>;\n\n// ============================================================================\n// Helper Functions & Examples\n// ============================================================================\n\n/**\n * Example: PostgreSQL Connector Configuration\n */\nexport const postgresConnectorExample = {\n  name: 'postgres_production',\n  label: 'Production PostgreSQL',\n  type: 'database',\n  provider: 'postgresql',\n  authentication: {\n    type: 'basic',\n    username: '${DB_USERNAME}',\n    password: '${DB_PASSWORD}',\n  },\n  connectionConfig: {\n    host: 'db.example.com',\n    port: 5432,\n    database: 'production',\n    username: '${DB_USERNAME}',\n    password: '${DB_PASSWORD}',\n  },\n  poolConfig: {\n    min: 2,\n    max: 20,\n    idleTimeoutMs: 30000,\n    connectionTimeoutMs: 10000,\n    acquireTimeoutMs: 30000,\n    evictionRunIntervalMs: 30000,\n    testOnBorrow: true,\n  },\n  sslConfig: {\n    enabled: true,\n    rejectUnauthorized: true,\n  },\n  tables: [\n    {\n      name: 'customer',\n      label: 'Customer',\n      schema: 'public',\n      tableName: 'customers',\n      primaryKey: 'id',\n      enabled: true,\n    },\n    {\n      name: 'order',\n      label: 'Order',\n      schema: 'public',\n      tableName: 'orders',\n      primaryKey: 'id',\n      enabled: true,\n      whereClause: 'status != \\'archived\\'',\n    },\n  ],\n  cdcConfig: {\n    enabled: true,\n    method: 'log_based',\n    slotName: 'objectstack_replication_slot',\n    publicationName: 'objectstack_publication',\n    batchSize: 1000,\n    pollIntervalMs: 1000,\n  },\n  syncConfig: {\n    strategy: 'incremental',\n    direction: 'bidirectional',\n    realtimeSync: true,\n    conflictResolution: 'latest_wins',\n    batchSize: 1000,\n    deleteMode: 'soft_delete',\n  },\n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: MongoDB Connector Configuration\n */\nexport const mongoConnectorExample = {\n  name: 'mongodb_analytics',\n  label: 'MongoDB Analytics',\n  type: 'database',\n  provider: 'mongodb',\n  authentication: {\n    type: 'basic',\n    username: '${MONGO_USERNAME}',\n    password: '${MONGO_PASSWORD}',\n  },\n  connectionConfig: {\n    host: 'mongodb.example.com',\n    port: 27017,\n    database: 'analytics',\n    username: '${MONGO_USERNAME}',\n    password: '${MONGO_PASSWORD}',\n    options: {\n      authSource: 'admin',\n      replicaSet: 'rs0',\n    },\n  },\n  tables: [\n    {\n      name: 'event',\n      label: 'Event',\n      tableName: 'events',\n      primaryKey: 'id',\n      enabled: true,\n    },\n  ],\n  cdcConfig: {\n    enabled: true,\n    method: 'log_based',\n    batchSize: 1000,\n    pollIntervalMs: 500,\n  },\n  syncConfig: {\n    strategy: 'incremental',\n    direction: 'import',\n    batchSize: 1000,\n  },\n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: Snowflake Connector Configuration\n */\nexport const snowflakeConnectorExample = {\n  name: 'snowflake_warehouse',\n  label: 'Snowflake Data Warehouse',\n  type: 'database',\n  provider: 'snowflake',\n  authentication: {\n    type: 'basic',\n    username: '${SNOWFLAKE_USERNAME}',\n    password: '${SNOWFLAKE_PASSWORD}',\n  },\n  connectionConfig: {\n    host: 'account.snowflakecomputing.com',\n    port: 443,\n    database: 'ANALYTICS_DB',\n    username: '${SNOWFLAKE_USERNAME}',\n    password: '${SNOWFLAKE_PASSWORD}',\n    options: {\n      warehouse: 'COMPUTE_WH',\n      schema: 'PUBLIC',\n      role: 'ANALYST',\n    },\n  },\n  tables: [\n    {\n      name: 'sales_summary',\n      label: 'Sales Summary',\n      schema: 'PUBLIC',\n      tableName: 'SALES_SUMMARY',\n      primaryKey: 'ID',\n      enabled: true,\n    },\n  ],\n  syncConfig: {\n    strategy: 'full',\n    direction: 'import',\n    schedule: '0 2 * * *', // Daily at 2 AM\n    batchSize: 5000,\n  },\n  queryTimeoutMs: 60000,\n  status: 'active',\n  enabled: true,\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport {\n  ConnectorSchema,\n} from '../connector.zod';\n\n/**\n * File Storage Connector Protocol Template\n * \n * Specialized connector for file storage systems (S3, Azure Blob, Google Cloud Storage, etc.)\n * Extends the base connector with file-specific features like multipart uploads,\n * versioning, and metadata extraction.\n */\n\n/**\n * File Storage Provider Types\n */\nimport { lazySchema } from '../../shared/lazy-schema';\nexport const FileStorageProviderSchema = lazySchema(() => z.enum([\n  's3',                    // Amazon S3\n  'azure_blob',            // Azure Blob Storage\n  'gcs',                   // Google Cloud Storage\n  'dropbox',               // Dropbox\n  'box',                   // Box\n  'onedrive',              // Microsoft OneDrive\n  'google_drive',          // Google Drive\n  'sharepoint',            // SharePoint\n  'ftp',                   // FTP/SFTP\n  'local',                 // Local file system\n  'custom',                // Custom file storage\n]).describe('File storage provider type'));\n\nexport type FileStorageProvider = z.infer<typeof FileStorageProviderSchema>;\n\n/**\n * File Access Pattern\n */\nexport const FileAccessPatternSchema = lazySchema(() => z.enum([\n  'public_read',           // Public read access\n  'private',               // Private access\n  'authenticated_read',    // Requires authentication\n  'bucket_owner_read',     // Bucket owner has read access\n  'bucket_owner_full',     // Bucket owner has full control\n]).describe('File access pattern'));\n\nexport type FileAccessPattern = z.infer<typeof FileAccessPatternSchema>;\n\n/**\n * File Metadata Configuration\n */\nexport const FileMetadataConfigSchema = lazySchema(() => z.object({\n  extractMetadata: z.boolean().default(true).describe('Extract file metadata'),\n  \n  metadataFields: z.array(z.enum([\n    'content_type',\n    'file_size',\n    'last_modified',\n    'etag',\n    'checksum',\n    'creator',\n    'created_at',\n    'custom',\n  ])).optional().describe('Metadata fields to extract'),\n  \n  customMetadata: z.record(z.string(), z.string()).optional().describe('Custom metadata key-value pairs'),\n}));\n\nexport type FileMetadataConfig = z.infer<typeof FileMetadataConfigSchema>;\n\n/**\n * Multipart Upload Configuration\n */\nexport const MultipartUploadConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().default(true).describe('Enable multipart uploads'),\n  \n  partSize: z.number().min(5 * 1024 * 1024).default(5 * 1024 * 1024).describe('Part size in bytes (min 5MB)'),\n  \n  maxConcurrentParts: z.number().min(1).max(10).default(5).describe('Maximum concurrent part uploads'),\n  \n  threshold: z.number().min(5 * 1024 * 1024).default(100 * 1024 * 1024).describe('File size threshold for multipart upload in bytes'),\n}));\n\nexport type MultipartUploadConfig = z.infer<typeof MultipartUploadConfigSchema>;\n\n/**\n * File Versioning Configuration\n */\nexport const FileVersioningConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().default(false).describe('Enable file versioning'),\n  \n  maxVersions: z.number().min(1).max(100).optional().describe('Maximum versions to retain'),\n  \n  retentionDays: z.number().min(1).optional().describe('Version retention period in days'),\n}));\n\nexport type FileVersioningConfig = z.infer<typeof FileVersioningConfigSchema>;\n\n/**\n * File Filter Configuration\n */\nexport const FileFilterConfigSchema = lazySchema(() => z.object({\n  includePatterns: z.array(z.string()).optional().describe('File patterns to include (glob)'),\n  \n  excludePatterns: z.array(z.string()).optional().describe('File patterns to exclude (glob)'),\n  \n  minFileSize: z.number().min(0).optional().describe('Minimum file size in bytes'),\n  \n  maxFileSize: z.number().min(1).optional().describe('Maximum file size in bytes'),\n  \n  allowedExtensions: z.array(z.string()).optional().describe('Allowed file extensions'),\n  \n  blockedExtensions: z.array(z.string()).optional().describe('Blocked file extensions'),\n}));\n\nexport type FileFilterConfig = z.infer<typeof FileFilterConfigSchema>;\n\n/**\n * File Storage Bucket/Container Configuration\n */\nexport const StorageBucketSchema = lazySchema(() => z.object({\n  name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Bucket identifier in ObjectStack (snake_case)'),\n  label: z.string().describe('Display label'),\n  bucketName: z.string().describe('Actual bucket/container name in storage system'),\n  region: z.string().optional().describe('Storage region'),\n  enabled: z.boolean().default(true).describe('Enable sync for this bucket'),\n  prefix: z.string().optional().describe('Prefix/path within bucket'),\n  accessPattern: FileAccessPatternSchema.optional().describe('Access pattern'),\n  fileFilters: FileFilterConfigSchema.optional().describe('File filter configuration'),\n}));\n\nexport type StorageBucket = z.infer<typeof StorageBucketSchema>;\n\n/**\n * File Storage Connector Configuration Schema\n */\nexport const FileStorageConnectorSchema = lazySchema(() => ConnectorSchema.extend({\n  type: z.literal('file_storage'),\n  \n  /**\n   * File storage provider\n   */\n  provider: FileStorageProviderSchema.describe('File storage provider type'),\n  \n  /**\n   * Storage configuration\n   */\n  storageConfig: z.object({\n    endpoint: z.string().url().optional().describe('Custom endpoint URL'),\n    region: z.string().optional().describe('Default region'),\n    pathStyle: z.boolean().optional().default(false).describe('Use path-style URLs (for S3-compatible)'),\n  }).optional().describe('Storage configuration'),\n  \n  /**\n   * Buckets/containers to sync\n   */\n  buckets: z.array(StorageBucketSchema).describe('Buckets/containers to sync'),\n  \n  /**\n   * File metadata configuration\n   */\n  metadataConfig: FileMetadataConfigSchema.optional().describe('Metadata extraction configuration'),\n  \n  /**\n   * Multipart upload configuration\n   */\n  multipartConfig: MultipartUploadConfigSchema.optional().describe('Multipart upload configuration'),\n  \n  /**\n   * File versioning configuration\n   */\n  versioningConfig: FileVersioningConfigSchema.optional().describe('File versioning configuration'),\n  \n  /**\n   * Enable server-side encryption\n   */\n  encryption: z.object({\n    enabled: z.boolean().default(false).describe('Enable server-side encryption'),\n    algorithm: z.enum(['AES256', 'aws:kms', 'custom']).optional().describe('Encryption algorithm'),\n    kmsKeyId: z.string().optional().describe('KMS key ID (for aws:kms)'),\n  }).optional().describe('Encryption configuration'),\n  \n  /**\n   * Lifecycle policy\n   */\n  lifecyclePolicy: z.object({\n    enabled: z.boolean().default(false).describe('Enable lifecycle policy'),\n    deleteAfterDays: z.number().min(1).optional().describe('Delete files after N days'),\n    archiveAfterDays: z.number().min(1).optional().describe('Archive files after N days'),\n  }).optional().describe('Lifecycle policy'),\n  \n  /**\n   * Content processing configuration\n   */\n  contentProcessing: z.object({\n    extractText: z.boolean().default(false).describe('Extract text from documents'),\n    generateThumbnails: z.boolean().default(false).describe('Generate image thumbnails'),\n    thumbnailSizes: z.array(z.object({\n      width: z.number().min(1),\n      height: z.number().min(1),\n    })).optional().describe('Thumbnail sizes'),\n    virusScan: z.boolean().default(false).describe('Scan for viruses'),\n  }).optional().describe('Content processing configuration'),\n  \n  /**\n   * Download/upload buffer size\n   */\n  bufferSize: z.number().min(1024).default(64 * 1024).describe('Buffer size in bytes'),\n  \n  /**\n   * Enable transfer acceleration (for supported providers)\n   */\n  transferAcceleration: z.boolean().default(false).describe('Enable transfer acceleration'),\n}));\n\nexport type FileStorageConnector = z.infer<typeof FileStorageConnectorSchema>;\n\n// ============================================================================\n// Helper Functions & Examples\n// ============================================================================\n\n/**\n * Example: Amazon S3 Connector Configuration\n */\nexport const s3ConnectorExample = {\n  name: 's3_production_assets',\n  label: 'Production S3 Assets',\n  type: 'file_storage',\n  provider: 's3',\n  authentication: {\n    type: 'api_key',\n    apiKey: '${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}',\n    headerName: 'Authorization',\n  },\n  storageConfig: {\n    region: 'us-east-1',\n    pathStyle: false,\n  },\n  buckets: [\n    {\n      name: 'product_images',\n      label: 'Product Images',\n      bucketName: 'my-company-product-images',\n      region: 'us-east-1',\n      enabled: true,\n      prefix: 'products/',\n      accessPattern: 'public_read',\n      fileFilters: {\n        allowedExtensions: ['.jpg', '.jpeg', '.png', '.webp'],\n        maxFileSize: 10 * 1024 * 1024, // 10MB\n      },\n    },\n    {\n      name: 'customer_documents',\n      label: 'Customer Documents',\n      bucketName: 'my-company-customer-docs',\n      region: 'us-east-1',\n      enabled: true,\n      accessPattern: 'private',\n      fileFilters: {\n        allowedExtensions: ['.pdf', '.docx', '.xlsx'],\n        maxFileSize: 50 * 1024 * 1024, // 50MB\n      },\n    },\n  ],\n  metadataConfig: {\n    extractMetadata: true,\n    metadataFields: ['content_type', 'file_size', 'last_modified', 'etag'],\n  },\n  multipartConfig: {\n    enabled: true,\n    partSize: 5 * 1024 * 1024, // 5MB\n    maxConcurrentParts: 5,\n    threshold: 100 * 1024 * 1024, // 100MB\n  },\n  versioningConfig: {\n    enabled: true,\n    maxVersions: 10,\n  },\n  encryption: {\n    enabled: true,\n    algorithm: 'aws:kms',\n    kmsKeyId: '${AWS_KMS_KEY_ID}',\n  },\n  contentProcessing: {\n    extractText: true,\n    generateThumbnails: true,\n    thumbnailSizes: [\n      { width: 150, height: 150 },\n      { width: 300, height: 300 },\n      { width: 600, height: 600 },\n    ],\n    virusScan: true,\n  },\n  syncConfig: {\n    strategy: 'incremental',\n    direction: 'bidirectional',\n    realtimeSync: true,\n    conflictResolution: 'latest_wins',\n    batchSize: 100,\n  },\n  transferAcceleration: true,\n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: Google Drive Connector Configuration\n */\nexport const googleDriveConnectorExample = {\n  name: 'google_drive_team',\n  label: 'Google Drive Team Folder',\n  type: 'file_storage',\n  provider: 'google_drive',\n  authentication: {\n    type: 'oauth2',\n    clientId: '${GOOGLE_CLIENT_ID}',\n    clientSecret: '${GOOGLE_CLIENT_SECRET}',\n    authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n    tokenUrl: 'https://oauth2.googleapis.com/token',\n    grantType: 'authorization_code',\n    scopes: ['https://www.googleapis.com/auth/drive.file'],\n  },\n  buckets: [\n    {\n      name: 'team_drive',\n      label: 'Team Drive',\n      bucketName: 'shared-team-drive',\n      enabled: true,\n      fileFilters: {\n        excludePatterns: ['*.tmp', '~$*'],\n      },\n    },\n  ],\n  metadataConfig: {\n    extractMetadata: true,\n    metadataFields: ['content_type', 'file_size', 'last_modified', 'creator', 'created_at'],\n  },\n  versioningConfig: {\n    enabled: true,\n    maxVersions: 5,\n  },\n  syncConfig: {\n    strategy: 'incremental',\n    direction: 'bidirectional',\n    realtimeSync: true,\n    conflictResolution: 'latest_wins',\n    batchSize: 50,\n  },\n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: Azure Blob Storage Connector Configuration\n */\nexport const azureBlobConnectorExample = {\n  name: 'azure_blob_storage',\n  label: 'Azure Blob Storage',\n  type: 'file_storage',\n  provider: 'azure_blob',\n  authentication: {\n    type: 'api_key',\n    apiKey: '${AZURE_STORAGE_ACCOUNT_KEY}',\n    headerName: 'x-ms-blob-type',\n  },\n  storageConfig: {\n    endpoint: 'https://myaccount.blob.core.windows.net',\n  },\n  buckets: [\n    {\n      name: 'archive_container',\n      label: 'Archive Container',\n      bucketName: 'archive',\n      enabled: true,\n      accessPattern: 'private',\n    },\n  ],\n  metadataConfig: {\n    extractMetadata: true,\n    metadataFields: ['content_type', 'file_size', 'last_modified', 'etag'],\n  },\n  encryption: {\n    enabled: true,\n    algorithm: 'AES256',\n  },\n  lifecyclePolicy: {\n    enabled: true,\n    archiveAfterDays: 90,\n    deleteAfterDays: 365,\n  },\n  syncConfig: {\n    strategy: 'incremental',\n    direction: 'import',\n    schedule: '0 1 * * *', // Daily at 1 AM\n    batchSize: 200,\n  },\n  status: 'active',\n  enabled: true,\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport {\n  ConnectorSchema,\n} from '../connector.zod';\n\n/**\n * Message Queue Connector Protocol Template\n * \n * Specialized connector for message queue systems (RabbitMQ, Kafka, SQS, etc.)\n * Extends the base connector with message queue-specific features like topics,\n * consumer groups, and message acknowledgment patterns.\n */\n\n/**\n * Message Queue Provider Types\n */\nimport { lazySchema } from '../../shared/lazy-schema';\nexport const MessageQueueProviderSchema = lazySchema(() => z.enum([\n  'rabbitmq',              // RabbitMQ\n  'kafka',                 // Apache Kafka\n  'redis_pubsub',          // Redis Pub/Sub\n  'redis_streams',         // Redis Streams\n  'aws_sqs',               // Amazon SQS\n  'aws_sns',               // Amazon SNS\n  'google_pubsub',         // Google Cloud Pub/Sub\n  'azure_service_bus',     // Azure Service Bus\n  'azure_event_hubs',      // Azure Event Hubs\n  'nats',                  // NATS\n  'pulsar',                // Apache Pulsar\n  'activemq',              // Apache ActiveMQ\n  'custom',                // Custom message queue\n]).describe('Message queue provider type'));\n\nexport type MessageQueueProvider = z.infer<typeof MessageQueueProviderSchema>;\n\n/**\n * Message Format\n */\nexport const MessageFormatSchema = lazySchema(() => z.enum([\n  'json',\n  'xml',\n  'protobuf',\n  'avro',\n  'text',\n  'binary',\n]).describe('Message format/serialization'));\n\nexport type MessageFormat = z.infer<typeof MessageFormatSchema>;\n\n/**\n * Message Acknowledgment Mode\n */\nexport const AckModeSchema = lazySchema(() => z.enum([\n  'auto',               // Auto-acknowledge\n  'manual',             // Manual acknowledge after processing\n  'client',             // Client-controlled acknowledge\n]).describe('Message acknowledgment mode'));\n\nexport type AckMode = z.infer<typeof AckModeSchema>;\n\n/**\n * Delivery Guarantee\n */\nexport const DeliveryGuaranteeSchema = lazySchema(() => z.enum([\n  'at_most_once',       // Fire and forget\n  'at_least_once',      // May deliver duplicates\n  'exactly_once',       // Guaranteed exactly once delivery\n]).describe('Message delivery guarantee'));\n\nexport type DeliveryGuarantee = z.infer<typeof DeliveryGuaranteeSchema>;\n\n/**\n * Consumer Configuration\n */\nexport const ConsumerConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().optional().default(true).describe('Enable consumer'),\n  \n  consumerGroup: z.string().optional().describe('Consumer group ID'),\n  \n  concurrency: z.number().min(1).max(100).optional().default(1).describe('Number of concurrent consumers'),\n  \n  prefetchCount: z.number().min(1).max(1000).optional().default(10).describe('Prefetch count'),\n  \n  ackMode: AckModeSchema.optional().default('manual'),\n  \n  autoCommit: z.boolean().optional().default(false).describe('Auto-commit offsets'),\n  \n  autoCommitIntervalMs: z.number().min(100).optional().default(5000).describe('Auto-commit interval in ms'),\n  \n  sessionTimeoutMs: z.number().min(1000).optional().default(30000).describe('Session timeout in ms'),\n  \n  rebalanceTimeoutMs: z.number().min(1000).optional().describe('Rebalance timeout in ms'),\n}));\n\nexport type ConsumerConfig = z.infer<typeof ConsumerConfigSchema>;\n\n/**\n * Producer Configuration\n */\nexport const ProducerConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().optional().default(true).describe('Enable producer'),\n  \n  acks: z.enum(['0', '1', 'all']).optional().default('all').describe('Acknowledgment level'),\n  \n  compressionType: z.enum(['none', 'gzip', 'snappy', 'lz4', 'zstd']).optional().default('none').describe('Compression type'),\n  \n  batchSize: z.number().min(1).optional().default(16384).describe('Batch size in bytes'),\n  \n  lingerMs: z.number().min(0).optional().default(0).describe('Linger time in ms'),\n  \n  maxInFlightRequests: z.number().min(1).optional().default(5).describe('Max in-flight requests'),\n  \n  idempotence: z.boolean().optional().default(true).describe('Enable idempotent producer'),\n  \n  transactional: z.boolean().optional().default(false).describe('Enable transactional producer'),\n  \n  transactionTimeoutMs: z.number().min(1000).optional().describe('Transaction timeout in ms'),\n}));\n\nexport type ProducerConfig = z.infer<typeof ProducerConfigSchema>;\n\n/**\n * Dead Letter Queue Configuration\n */\nexport const DlqConfigSchema = lazySchema(() => z.object({\n  enabled: z.boolean().optional().default(false).describe('Enable DLQ'),\n  \n  queueName: z.string().describe('Dead letter queue/topic name'),\n  \n  maxRetries: z.number().min(0).max(100).optional().default(3).describe('Max retries before DLQ'),\n  \n  retryDelayMs: z.number().min(0).optional().default(60000).describe('Retry delay in ms'),\n}));\n\nexport type DlqConfig = z.infer<typeof DlqConfigSchema>;\n\n/**\n * Topic/Queue Configuration\n */\nexport const TopicQueueSchema = lazySchema(() => z.object({\n  name: z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Topic/queue identifier in ObjectStack (snake_case)'),\n  label: z.string().describe('Display label'),\n  topicName: z.string().describe('Actual topic/queue name in message queue system'),\n  enabled: z.boolean().optional().default(true).describe('Enable sync for this topic/queue'),\n  \n  /**\n   * Consumer or Producer\n   */\n  mode: z.enum(['consumer', 'producer', 'both']).optional().default('both').describe('Consumer, producer, or both'),\n  \n  /**\n   * Message format\n   */\n  messageFormat: MessageFormatSchema.optional().default('json'),\n  \n  /**\n   * Partition/shard configuration\n   */\n  partitions: z.number().min(1).optional().describe('Number of partitions (for Kafka)'),\n  \n  /**\n   * Replication factor\n   */\n  replicationFactor: z.number().min(1).optional().describe('Replication factor (for Kafka)'),\n  \n  /**\n   * Consumer configuration\n   */\n  consumerConfig: ConsumerConfigSchema.optional().describe('Consumer-specific configuration'),\n  \n  /**\n   * Producer configuration\n   */\n  producerConfig: ProducerConfigSchema.optional().describe('Producer-specific configuration'),\n  \n  /**\n   * Dead letter queue configuration\n   */\n  dlqConfig: DlqConfigSchema.optional().describe('Dead letter queue configuration'),\n  \n  /**\n   * Message routing key (for RabbitMQ)\n   */\n  routingKey: z.string().optional().describe('Routing key pattern'),\n  \n  /**\n   * Message filter\n   */\n  messageFilter: z.object({\n    headers: z.record(z.string(), z.string()).optional().describe('Filter by message headers'),\n    attributes: z.record(z.string(), z.unknown()).optional().describe('Filter by message attributes'),\n  }).optional().describe('Message filter criteria'),\n}));\n\nexport type TopicQueue = z.infer<typeof TopicQueueSchema>;\n\n/**\n * Message Queue Connector Configuration Schema\n */\nexport const MessageQueueConnectorSchema = lazySchema(() => ConnectorSchema.extend({\n  type: z.literal('message_queue'),\n  \n  /**\n   * Message queue provider\n   */\n  provider: MessageQueueProviderSchema.describe('Message queue provider type'),\n  \n  /**\n   * Broker configuration\n   */\n  brokerConfig: z.object({\n    brokers: z.array(z.string()).describe('Broker addresses (host:port)'),\n    clientId: z.string().optional().describe('Client ID'),\n    connectionTimeoutMs: z.number().min(1000).optional().default(30000).describe('Connection timeout in ms'),\n    requestTimeoutMs: z.number().min(1000).optional().default(30000).describe('Request timeout in ms'),\n  }).describe('Broker connection configuration'),\n  \n  /**\n   * Topics/queues to sync\n   */\n  topics: z.array(TopicQueueSchema).describe('Topics/queues to sync'),\n  \n  /**\n   * Delivery guarantee\n   */\n  deliveryGuarantee: DeliveryGuaranteeSchema.optional().default('at_least_once'),\n  \n  /**\n   * SSL/TLS configuration\n   */\n  sslConfig: z.object({\n    enabled: z.boolean().optional().default(false).describe('Enable SSL/TLS'),\n    rejectUnauthorized: z.boolean().optional().default(true).describe('Reject unauthorized certificates'),\n    ca: z.string().optional().describe('CA certificate'),\n    cert: z.string().optional().describe('Client certificate'),\n    key: z.string().optional().describe('Client private key'),\n  }).optional().describe('SSL/TLS configuration'),\n  \n  /**\n   * SASL authentication (for Kafka)\n   */\n  saslConfig: z.object({\n    mechanism: z.enum(['plain', 'scram-sha-256', 'scram-sha-512', 'aws']).describe('SASL mechanism'),\n    username: z.string().optional().describe('SASL username'),\n    password: z.string().optional().describe('SASL password'),\n  }).optional().describe('SASL authentication configuration'),\n  \n  /**\n   * Schema registry configuration (for Kafka/Avro)\n   */\n  schemaRegistry: z.object({\n    url: z.string().url().describe('Schema registry URL'),\n    auth: z.object({\n      username: z.string().optional(),\n      password: z.string().optional(),\n    }).optional(),\n  }).optional().describe('Schema registry configuration'),\n  \n  /**\n   * Message ordering\n   */\n  preserveOrder: z.boolean().optional().default(true).describe('Preserve message ordering'),\n  \n  /**\n   * Enable metrics\n   */\n  enableMetrics: z.boolean().optional().default(true).describe('Enable message queue metrics'),\n  \n  /**\n   * Enable distributed tracing\n   */\n  enableTracing: z.boolean().optional().default(false).describe('Enable distributed tracing'),\n}));\n\nexport type MessageQueueConnector = z.infer<typeof MessageQueueConnectorSchema>;\n\n// ============================================================================\n// Helper Functions & Examples\n// ============================================================================\n\n/**\n * Example: Apache Kafka Connector Configuration\n */\nexport const kafkaConnectorExample = {\n  name: 'kafka_production',\n  label: 'Production Kafka Cluster',\n  type: 'message_queue',\n  provider: 'kafka',\n  authentication: {\n    type: 'none',\n  },\n  brokerConfig: {\n    brokers: ['kafka-1.example.com:9092', 'kafka-2.example.com:9092', 'kafka-3.example.com:9092'],\n    clientId: 'objectstack-client',\n    connectionTimeoutMs: 30000,\n    requestTimeoutMs: 30000,\n  },\n  topics: [\n    {\n      name: 'order_events',\n      label: 'Order Events',\n      topicName: 'orders',\n      enabled: true,\n      mode: 'consumer',\n      messageFormat: 'json',\n      partitions: 10,\n      replicationFactor: 3,\n      consumerConfig: {\n        enabled: true,\n        consumerGroup: 'objectstack-consumer-group',\n        concurrency: 5,\n        prefetchCount: 100,\n        ackMode: 'manual',\n        autoCommit: false,\n        sessionTimeoutMs: 30000,\n      },\n      dlqConfig: {\n        enabled: true,\n        queueName: 'orders-dlq',\n        maxRetries: 3,\n        retryDelayMs: 60000,\n      },\n    },\n    {\n      name: 'user_activity',\n      label: 'User Activity',\n      topicName: 'user-activity',\n      enabled: true,\n      mode: 'producer',\n      messageFormat: 'json',\n      partitions: 5,\n      replicationFactor: 3,\n      producerConfig: {\n        enabled: true,\n        acks: 'all',\n        compressionType: 'snappy',\n        batchSize: 16384,\n        lingerMs: 10,\n        maxInFlightRequests: 5,\n        idempotence: true,\n      },\n    },\n  ],\n  deliveryGuarantee: 'at_least_once',\n  saslConfig: {\n    mechanism: 'scram-sha-256',\n    username: '${KAFKA_USERNAME}',\n    password: '${KAFKA_PASSWORD}',\n  },\n  sslConfig: {\n    enabled: true,\n    rejectUnauthorized: true,\n  },\n  preserveOrder: true,\n  enableMetrics: true,\n  enableTracing: true,\n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: RabbitMQ Connector Configuration\n */\nexport const rabbitmqConnectorExample = {\n  name: 'rabbitmq_events',\n  label: 'RabbitMQ Event Bus',\n  type: 'message_queue',\n  provider: 'rabbitmq',\n  authentication: {\n    type: 'basic',\n    username: '${RABBITMQ_USERNAME}',\n    password: '${RABBITMQ_PASSWORD}',\n  },\n  brokerConfig: {\n    brokers: ['amqp://rabbitmq.example.com:5672'],\n    clientId: 'objectstack-rabbitmq-client',\n  },\n  topics: [\n    {\n      name: 'notifications',\n      label: 'Notifications',\n      topicName: 'notifications',\n      enabled: true,\n      mode: 'both',\n      messageFormat: 'json',\n      routingKey: 'notification.*',\n      consumerConfig: {\n        enabled: true,\n        prefetchCount: 10,\n        ackMode: 'manual',\n      },\n      producerConfig: {\n        enabled: true,\n      },\n      dlqConfig: {\n        enabled: true,\n        queueName: 'notifications-dlq',\n        maxRetries: 3,\n        retryDelayMs: 30000,\n      },\n    },\n  ],\n  deliveryGuarantee: 'at_least_once',\n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: AWS SQS Connector Configuration\n */\nexport const sqsConnectorExample = {\n  name: 'aws_sqs_queue',\n  label: 'AWS SQS Queue',\n  type: 'message_queue',\n  provider: 'aws_sqs',\n  authentication: {\n    type: 'api_key',\n    apiKey: '${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}',\n    headerName: 'Authorization',\n  },\n  brokerConfig: {\n    brokers: ['https://sqs.us-east-1.amazonaws.com'],\n  },\n  topics: [\n    {\n      name: 'task_queue',\n      label: 'Task Queue',\n      topicName: 'task-queue',\n      enabled: true,\n      mode: 'consumer',\n      messageFormat: 'json',\n      consumerConfig: {\n        enabled: true,\n        concurrency: 10,\n        prefetchCount: 10,\n        ackMode: 'manual',\n      },\n      dlqConfig: {\n        enabled: true,\n        queueName: 'task-queue-dlq',\n        maxRetries: 3,\n        retryDelayMs: 120000,\n      },\n    },\n  ],\n  deliveryGuarantee: 'at_least_once',\n  retryConfig: {\n    strategy: 'exponential_backoff',\n    maxAttempts: 3,\n    initialDelayMs: 1000,\n    maxDelayMs: 60000,\n    backoffMultiplier: 2,\n  },\n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: Google Cloud Pub/Sub Connector Configuration\n */\nexport const pubsubConnectorExample = {\n  name: 'gcp_pubsub',\n  label: 'Google Cloud Pub/Sub',\n  type: 'message_queue',\n  provider: 'google_pubsub',\n  authentication: {\n    type: 'oauth2',\n    clientId: '${GCP_CLIENT_ID}',\n    clientSecret: '${GCP_CLIENT_SECRET}',\n    authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n    tokenUrl: 'https://oauth2.googleapis.com/token',\n    grantType: 'client_credentials',\n    scopes: ['https://www.googleapis.com/auth/pubsub'],\n  },\n  brokerConfig: {\n    brokers: ['pubsub.googleapis.com'],\n  },\n  topics: [\n    {\n      name: 'analytics_events',\n      label: 'Analytics Events',\n      topicName: 'projects/my-project/topics/analytics-events',\n      enabled: true,\n      mode: 'both',\n      messageFormat: 'json',\n      consumerConfig: {\n        enabled: true,\n        consumerGroup: 'objectstack-subscription',\n        concurrency: 5,\n        prefetchCount: 100,\n        ackMode: 'manual',\n      },\n    },\n  ],\n  deliveryGuarantee: 'at_least_once',\n  enableMetrics: true,\n  status: 'active',\n  enabled: true,\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport { TemplateExpressionInputSchema } from '../../shared/expression.zod';\nimport {\n  ConnectorSchema,\n} from '../connector.zod';\n\n/**\n * GitHub Connector Protocol\n * \n * Specialized connector for GitHub integration enabling automated\n * version control operations, CI/CD workflows, and release management.\n * \n * Use Cases:\n * - Automated code commits and pull requests\n * - GitHub Actions workflow management\n * - Issue and project tracking\n * - Release and tag management\n * - Repository administration\n * \n * @example\n * ```typescript\n * import { GitHubConnector } from '@objectstack/spec/integration';\n * \n * const githubConnector: GitHubConnector = {\n *   name: 'github_enterprise',\n *   label: 'GitHub Enterprise',\n *   type: 'saas',\n *   provider: 'github',\n *   baseUrl: 'https://api.github.com',\n *   authentication: {\n *     type: 'oauth2',\n *     clientId: '${GITHUB_CLIENT_ID}',\n *     clientSecret: '${GITHUB_CLIENT_SECRET}',\n *     authorizationUrl: 'https://github.com/login/oauth/authorize',\n *     tokenUrl: 'https://github.com/login/oauth/access_token',\n *     grantType: 'authorization_code',\n *     scopes: ['repo', 'workflow', 'admin:org'],\n *   },\n *   repositories: [\n *     {\n *       owner: 'objectstack-ai',\n *       name: 'spec',\n *       defaultBranch: 'main',\n *       autoMerge: false,\n *     },\n *   ],\n * };\n * ```\n */\n\n/**\n * GitHub Provider Type\n */\nimport { lazySchema } from '../../shared/lazy-schema';\nexport const GitHubProviderSchema = lazySchema(() => z.enum([\n  'github',            // GitHub.com\n  'github_enterprise', // GitHub Enterprise Server\n]).describe('GitHub provider type'));\n\nexport type GitHubProvider = z.infer<typeof GitHubProviderSchema>;\n\n/**\n * GitHub Repository Configuration\n * Defines a repository to integrate with\n */\nexport const GitHubRepositorySchema = lazySchema(() => z.object({\n  /**\n   * Repository owner (organization or user)\n   */\n  owner: z.string().describe('Repository owner (organization or username)'),\n  \n  /**\n   * Repository name\n   */\n  name: z.string().describe('Repository name'),\n  \n  /**\n   * Default branch name\n   */\n  defaultBranch: z.string().optional().default('main').describe('Default branch name'),\n  \n  /**\n   * Enable auto-merge for PRs\n   */\n  autoMerge: z.boolean().optional().default(false).describe('Enable auto-merge for pull requests'),\n  \n  /**\n   * Branch protection rules\n   */\n  branchProtection: z.object({\n    requiredReviewers: z.number().int().min(0).optional().default(1).describe('Required number of reviewers'),\n    requireStatusChecks: z.boolean().optional().default(true).describe('Require status checks to pass'),\n    enforceAdmins: z.boolean().optional().default(false).describe('Enforce protections for admins'),\n    allowForcePushes: z.boolean().optional().default(false).describe('Allow force pushes'),\n    allowDeletions: z.boolean().optional().default(false).describe('Allow branch deletions'),\n  }).optional().describe('Branch protection configuration'),\n  \n  /**\n   * Repository topics/tags\n   */\n  topics: z.array(z.string()).optional().describe('Repository topics'),\n}));\n\nexport type GitHubRepository = z.infer<typeof GitHubRepositorySchema>;\n\n/**\n * GitHub Commit Configuration\n */\nexport const GitHubCommitConfigSchema = lazySchema(() => z.object({\n  /**\n   * Commit author name\n   */\n  authorName: z.string().optional().describe('Commit author name'),\n  \n  /**\n   * Commit author email\n   */\n  authorEmail: z.string().email().optional().describe('Commit author email'),\n  \n  /**\n   * GPG sign commits\n   */\n  signCommits: z.boolean().optional().default(false).describe('Sign commits with GPG'),\n  \n  /**\n   * Commit message template\n   */\n  messageTemplate: z.string().optional().describe('Commit message template'),\n  \n  /**\n   * Conventional commits format\n   */\n  useConventionalCommits: z.boolean().optional().default(true).describe('Use conventional commits format'),\n}));\n\nexport type GitHubCommitConfig = z.infer<typeof GitHubCommitConfigSchema>;\n\n/**\n * GitHub Pull Request Configuration\n */\nexport const GitHubPullRequestConfigSchema = lazySchema(() => z.object({\n  /**\n   * Default PR title template\n   */\n  titleTemplate: TemplateExpressionInputSchema.optional().describe('PR title template — supports {{var}} interpolation'),\n  \n  /**\n   * Default PR body template\n   */\n  bodyTemplate: TemplateExpressionInputSchema.optional().describe('PR body template — supports {{var}} interpolation'),\n  \n  /**\n   * Default reviewers\n   */\n  defaultReviewers: z.array(z.string()).optional().describe('Default reviewers (usernames)'),\n  \n  /**\n   * Default assignees\n   */\n  defaultAssignees: z.array(z.string()).optional().describe('Default assignees (usernames)'),\n  \n  /**\n   * Default labels\n   */\n  defaultLabels: z.array(z.string()).optional().describe('Default labels'),\n  \n  /**\n   * Enable draft PRs by default\n   */\n  draftByDefault: z.boolean().optional().default(false).describe('Create draft PRs by default'),\n  \n  /**\n   * Auto-delete head branch after merge\n   */\n  deleteHeadBranch: z.boolean().optional().default(true).describe('Delete head branch after merge'),\n}));\n\nexport type GitHubPullRequestConfig = z.infer<typeof GitHubPullRequestConfigSchema>;\n\n/**\n * GitHub Actions Workflow Configuration\n */\nexport const GitHubActionsWorkflowSchema = lazySchema(() => z.object({\n  /**\n   * Workflow name\n   */\n  name: z.string().describe('Workflow name'),\n  \n  /**\n   * Workflow file path\n   */\n  path: z.string().describe('Workflow file path (e.g., .github/workflows/ci.yml)'),\n  \n  /**\n   * Enable workflow\n   */\n  enabled: z.boolean().optional().default(true).describe('Enable workflow'),\n  \n  /**\n   * Workflow triggers\n   */\n  triggers: z.array(z.enum([\n    'push',\n    'pull_request',\n    'release',\n    'schedule',\n    'workflow_dispatch',\n    'repository_dispatch',\n  ])).optional().describe('Workflow triggers'),\n  \n  /**\n   * Environment variables\n   */\n  env: z.record(z.string(), z.string()).optional().describe('Environment variables'),\n  \n  /**\n   * Secrets required\n   */\n  secrets: z.array(z.string()).optional().describe('Required secrets'),\n}));\n\nexport type GitHubActionsWorkflow = z.infer<typeof GitHubActionsWorkflowSchema>;\n\n/**\n * GitHub Release Configuration\n */\nexport const GitHubReleaseConfigSchema = lazySchema(() => z.object({\n  /**\n   * Tag name pattern\n   */\n  tagPattern: z.string().optional().default('v*').describe('Tag name pattern (e.g., v*, release/*)'),\n  \n  /**\n   * Use semantic versioning\n   */\n  semanticVersioning: z.boolean().optional().default(true).describe('Use semantic versioning'),\n  \n  /**\n   * Generate release notes automatically\n   */\n  autoReleaseNotes: z.boolean().optional().default(true).describe('Generate release notes automatically'),\n  \n  /**\n   * Release name template\n   */\n  releaseNameTemplate: z.string().optional().describe('Release name template'),\n  \n  /**\n   * Pre-release pattern\n   */\n  preReleasePattern: z.string().optional().describe('Pre-release pattern (e.g., *-alpha, *-beta)'),\n  \n  /**\n   * Create draft releases\n   */\n  draftByDefault: z.boolean().optional().default(false).describe('Create draft releases by default'),\n}));\n\nexport type GitHubReleaseConfig = z.infer<typeof GitHubReleaseConfigSchema>;\n\n/**\n * GitHub Issue Tracking Configuration\n */\nexport const GitHubIssueTrackingSchema = lazySchema(() => z.object({\n  /**\n   * Enable issue tracking\n   */\n  enabled: z.boolean().optional().default(true).describe('Enable issue tracking'),\n  \n  /**\n   * Default issue labels\n   */\n  defaultLabels: z.array(z.string()).optional().describe('Default issue labels'),\n  \n  /**\n   * Issue template paths\n   */\n  templatePaths: z.array(z.string()).optional().describe('Issue template paths'),\n  \n  /**\n   * Auto-assign issues\n   */\n  autoAssign: z.boolean().optional().default(false).describe('Auto-assign issues'),\n  \n  /**\n   * Auto-close stale issues\n   */\n  autoCloseStale: z.object({\n    enabled: z.boolean().default(false),\n    daysBeforeStale: z.number().int().min(1).optional().default(60),\n    daysBeforeClose: z.number().int().min(1).optional().default(7),\n    staleLabel: z.string().optional().default('stale'),\n  }).optional().describe('Auto-close stale issues configuration'),\n}));\n\nexport type GitHubIssueTracking = z.infer<typeof GitHubIssueTrackingSchema>;\n\n/**\n * GitHub Connector Schema\n * Complete GitHub integration configuration\n */\nexport const GitHubConnectorSchema = lazySchema(() => ConnectorSchema.extend({\n  type: z.literal('saas'),\n  \n  /**\n   * GitHub provider type\n   */\n  provider: GitHubProviderSchema.describe('GitHub provider'),\n  \n  /**\n   * GitHub API base URL\n   */\n  baseUrl: z.string().url().optional().default('https://api.github.com').describe('GitHub API base URL'),\n  \n  /**\n   * Repositories to integrate\n   */\n  repositories: z.array(GitHubRepositorySchema).describe('Repositories to manage'),\n  \n  /**\n   * Commit configuration\n   */\n  commitConfig: GitHubCommitConfigSchema.optional().describe('Commit configuration'),\n  \n  /**\n   * Pull request configuration\n   */\n  pullRequestConfig: GitHubPullRequestConfigSchema.optional().describe('Pull request configuration'),\n  \n  /**\n   * GitHub Actions workflows\n   */\n  workflows: z.array(GitHubActionsWorkflowSchema).optional().describe('GitHub Actions workflows'),\n  \n  /**\n   * Release configuration\n   */\n  releaseConfig: GitHubReleaseConfigSchema.optional().describe('Release configuration'),\n  \n  /**\n   * Issue tracking configuration\n   */\n  issueTracking: GitHubIssueTrackingSchema.optional().describe('Issue tracking configuration'),\n  \n  /**\n   * Enable webhooks\n   */\n  enableWebhooks: z.boolean().optional().default(true).describe('Enable GitHub webhooks'),\n  \n  /**\n   * Webhook events to subscribe\n   */\n  webhookEvents: z.array(z.enum([\n    'push',\n    'pull_request',\n    'issues',\n    'issue_comment',\n    'release',\n    'workflow_run',\n    'deployment',\n    'deployment_status',\n    'check_run',\n    'check_suite',\n    'status',\n  ])).optional().describe('Webhook events to subscribe to'),\n}));\n\nexport type GitHubConnector = z.infer<typeof GitHubConnectorSchema>;\n\n// ============================================================================\n// Helper Functions & Examples\n// ============================================================================\n\n/**\n * Example: GitHub.com Connector Configuration\n */\nexport const githubPublicConnectorExample = {\n  name: 'github_public',\n  label: 'GitHub.com',\n  type: 'saas',\n  provider: 'github',\n  baseUrl: 'https://api.github.com',\n  \n  authentication: {\n    type: 'oauth2',\n    clientId: '${GITHUB_CLIENT_ID}',\n    clientSecret: '${GITHUB_CLIENT_SECRET}',\n    authorizationUrl: 'https://github.com/login/oauth/authorize',\n    tokenUrl: 'https://github.com/login/oauth/access_token',\n    scopes: ['repo', 'workflow', 'write:packages'],\n  },\n  \n  repositories: [\n    {\n      owner: 'objectstack-ai',\n      name: 'spec',\n      defaultBranch: 'main',\n      autoMerge: false,\n      branchProtection: {\n        requiredReviewers: 1,\n        requireStatusChecks: true,\n        enforceAdmins: false,\n        allowForcePushes: false,\n        allowDeletions: false,\n      },\n      topics: ['objectstack', 'low-code', 'metadata-driven'],\n    },\n  ],\n  \n  commitConfig: {\n    authorName: 'ObjectStack Bot',\n    authorEmail: 'bot@objectstack.ai',\n    signCommits: false,\n    useConventionalCommits: true,\n  },\n  \n  pullRequestConfig: {\n    titleTemplate: '{{type}}: {{description}}',\n    defaultReviewers: ['team-lead'],\n    defaultLabels: ['automated', 'ai-generated'],\n    draftByDefault: false,\n    deleteHeadBranch: true,\n  },\n  \n  workflows: [\n    {\n      name: 'CI',\n      path: '.github/workflows/ci.yml',\n      enabled: true,\n      triggers: ['push', 'pull_request'],\n    },\n    {\n      name: 'Release',\n      path: '.github/workflows/release.yml',\n      enabled: true,\n      triggers: ['release'],\n    },\n  ],\n  \n  releaseConfig: {\n    tagPattern: 'v*',\n    semanticVersioning: true,\n    autoReleaseNotes: true,\n    releaseNameTemplate: 'Release {{version}}',\n    draftByDefault: false,\n  },\n  \n  issueTracking: {\n    enabled: true,\n    defaultLabels: ['needs-triage'],\n    autoAssign: false,\n    autoCloseStale: {\n      enabled: true,\n      daysBeforeStale: 60,\n      daysBeforeClose: 7,\n      staleLabel: 'stale',\n    },\n  },\n  \n  enableWebhooks: true,\n  webhookEvents: ['push', 'pull_request', 'release', 'workflow_run'],\n  \n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: GitHub Enterprise Connector Configuration\n */\nexport const githubEnterpriseConnectorExample = {\n  name: 'github_enterprise',\n  label: 'GitHub Enterprise',\n  type: 'saas',\n  provider: 'github_enterprise',\n  baseUrl: 'https://github.enterprise.com/api/v3',\n  \n  authentication: {\n    type: 'oauth2',\n    clientId: '${GITHUB_ENTERPRISE_CLIENT_ID}',\n    clientSecret: '${GITHUB_ENTERPRISE_CLIENT_SECRET}',\n    authorizationUrl: 'https://github.enterprise.com/login/oauth/authorize',\n    tokenUrl: 'https://github.enterprise.com/login/oauth/access_token',\n    scopes: ['repo', 'admin:org', 'workflow'],\n  },\n  \n  repositories: [\n    {\n      owner: 'enterprise-org',\n      name: 'internal-app',\n      defaultBranch: 'develop',\n      autoMerge: true,\n      branchProtection: {\n        requiredReviewers: 2,\n        requireStatusChecks: true,\n        enforceAdmins: true,\n        allowForcePushes: false,\n        allowDeletions: false,\n      },\n    },\n  ],\n  \n  commitConfig: {\n    authorName: 'CI Bot',\n    authorEmail: 'ci-bot@enterprise.com',\n    signCommits: true,\n    useConventionalCommits: true,\n  },\n  \n  pullRequestConfig: {\n    titleTemplate: '[{{branch}}] {{description}}',\n    bodyTemplate: `## Changes\\n\\n{{changes}}\\n\\n## Testing\\n\\n{{testing}}`,\n    defaultReviewers: ['tech-lead', 'security-team'],\n    defaultLabels: ['automated'],\n    draftByDefault: true,\n    deleteHeadBranch: true,\n  },\n  \n  releaseConfig: {\n    tagPattern: 'release/*',\n    semanticVersioning: true,\n    autoReleaseNotes: true,\n    preReleasePattern: '*-rc*',\n    draftByDefault: true,\n  },\n  \n  status: 'active',\n  enabled: true,\n};\n","// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.\n\nimport { z } from 'zod';\nimport {\n  ConnectorSchema,\n} from '../connector.zod';\n\n/**\n * Vercel Connector Protocol\n * \n * Specialized connector for Vercel deployment platform enabling automated\n * deployments, preview environments, and production releases.\n * \n * Use Cases:\n * - Automated deployments from Git\n * - Preview deployments for pull requests\n * - Production releases\n * - Environment variable management\n * - Domain and SSL configuration\n * - Edge function deployment\n * \n * @example\n * ```typescript\n * import { VercelConnector } from '@objectstack/spec/integration';\n * \n * const vercelConnector: VercelConnector = {\n *   name: 'vercel_production',\n *   label: 'Vercel Production',\n *   type: 'saas',\n *   provider: 'vercel',\n *   baseUrl: 'https://api.vercel.com',\n *   authentication: {\n *     type: 'bearer',\n *     token: '${VERCEL_TOKEN}',\n *   },\n *   projects: [\n *     {\n *       name: 'objectstack-app',\n *       framework: 'nextjs',\n *       gitRepository: {\n *         type: 'github',\n *         repo: 'objectstack-ai/app',\n *       },\n *     },\n *   ],\n * };\n * ```\n */\n\n/**\n * Vercel Provider Type\n */\nimport { lazySchema } from '../../shared/lazy-schema';\nexport const VercelProviderSchema = lazySchema(() => z.enum([\n  'vercel',\n]).describe('Vercel provider type'));\n\nexport type VercelProvider = z.infer<typeof VercelProviderSchema>;\n\n/**\n * Vercel Framework Types\n */\nexport const VercelFrameworkSchema = lazySchema(() => z.enum([\n  'nextjs',\n  'react',\n  'vue',\n  'nuxtjs',\n  'gatsby',\n  'remix',\n  'astro',\n  'sveltekit',\n  'solid',\n  'angular',\n  'static',\n  'other',\n]).describe('Frontend framework'));\n\nexport type VercelFramework = z.infer<typeof VercelFrameworkSchema>;\n\n/**\n * Git Repository Configuration\n */\nexport const GitRepositoryConfigSchema = lazySchema(() => z.object({\n  /**\n   * Git provider type\n   */\n  type: z.enum(['github', 'gitlab', 'bitbucket']).describe('Git provider'),\n  \n  /**\n   * Repository identifier (owner/repo)\n   */\n  repo: z.string().describe('Repository identifier (e.g., owner/repo)'),\n  \n  /**\n   * Production branch\n   */\n  productionBranch: z.string().optional().default('main').describe('Production branch name'),\n  \n  /**\n   * Auto-deploy production branch\n   */\n  autoDeployProduction: z.boolean().optional().default(true).describe('Auto-deploy production branch'),\n  \n  /**\n   * Auto-deploy preview branches\n   */\n  autoDeployPreview: z.boolean().optional().default(true).describe('Auto-deploy preview branches'),\n}));\n\nexport type GitRepositoryConfig = z.infer<typeof GitRepositoryConfigSchema>;\n\n/**\n * Build Configuration\n */\nexport const BuildConfigSchema = lazySchema(() => z.object({\n  /**\n   * Build command\n   */\n  buildCommand: z.string().optional().describe('Build command (e.g., npm run build)'),\n  \n  /**\n   * Output directory\n   */\n  outputDirectory: z.string().optional().describe('Output directory (e.g., .next, dist)'),\n  \n  /**\n   * Install command\n   */\n  installCommand: z.string().optional().describe('Install command (e.g., npm install, pnpm install)'),\n  \n  /**\n   * Development command\n   */\n  devCommand: z.string().optional().describe('Development command (e.g., npm run dev)'),\n  \n  /**\n   * Node.js version\n   */\n  nodeVersion: z.string().optional().describe('Node.js version (e.g., 18.x, 20.x)'),\n  \n  /**\n   * Environment variables\n   */\n  env: z.record(z.string(), z.string()).optional().describe('Build environment variables'),\n}));\n\nexport type BuildConfig = z.infer<typeof BuildConfigSchema>;\n\n/**\n * Deployment Configuration\n */\nexport const DeploymentConfigSchema = lazySchema(() => z.object({\n  /**\n   * Enable automatic deployments\n   */\n  autoDeployment: z.boolean().optional().default(true).describe('Enable automatic deployments'),\n  \n  /**\n   * Deployment regions\n   */\n  regions: z.array(z.enum([\n    'iad1',  // US East (Washington, D.C.)\n    'sfo1',  // US West (San Francisco)\n    'gru1',  // South America (São Paulo)\n    'lhr1',  // Europe West (London)\n    'fra1',  // Europe Central (Frankfurt)\n    'sin1',  // Asia (Singapore)\n    'syd1',  // Australia (Sydney)\n    'hnd1',  // Asia (Tokyo)\n    'icn1',  // Asia (Seoul)\n  ])).optional().describe('Deployment regions'),\n  \n  /**\n   * Enable preview deployments\n   */\n  enablePreview: z.boolean().optional().default(true).describe('Enable preview deployments'),\n  \n  /**\n   * Preview deployment comments on PRs\n   */\n  previewComments: z.boolean().optional().default(true).describe('Post preview URLs in PR comments'),\n  \n  /**\n   * Production deployment protection\n   */\n  productionProtection: z.boolean().optional().default(true).describe('Require approval for production deployments'),\n  \n  /**\n   * Deploy hooks\n   */\n  deployHooks: z.array(z.object({\n    name: z.string().describe('Hook name'),\n    url: z.string().url().describe('Deploy hook URL'),\n    branch: z.string().optional().describe('Target branch'),\n  })).optional().describe('Deploy hooks'),\n}));\n\nexport type DeploymentConfig = z.infer<typeof DeploymentConfigSchema>;\n\n/**\n * Domain Configuration\n */\nexport const DomainConfigSchema = lazySchema(() => z.object({\n  /**\n   * Domain name\n   */\n  domain: z.string().describe('Domain name (e.g., app.example.com)'),\n  \n  /**\n   * Enable HTTPS redirect\n   */\n  httpsRedirect: z.boolean().optional().default(true).describe('Redirect HTTP to HTTPS'),\n  \n  /**\n   * Custom SSL certificate\n   */\n  customCertificate: z.object({\n    cert: z.string().describe('SSL certificate'),\n    key: z.string().describe('Private key'),\n    ca: z.string().optional().describe('Certificate authority'),\n  }).optional().describe('Custom SSL certificate'),\n  \n  /**\n   * Git branch for this domain\n   */\n  gitBranch: z.string().optional().describe('Git branch to deploy to this domain'),\n}));\n\nexport type DomainConfig = z.infer<typeof DomainConfigSchema>;\n\n/**\n * Environment Variables Configuration\n */\nexport const EnvironmentVariablesSchema = lazySchema(() => z.object({\n  /**\n   * Variable name\n   */\n  key: z.string().describe('Environment variable name'),\n  \n  /**\n   * Variable value\n   */\n  value: z.string().describe('Environment variable value'),\n  \n  /**\n   * Target environments\n   */\n  target: z.array(z.enum(['production', 'preview', 'development'])).describe('Target environments'),\n  \n  /**\n   * Is secret (encrypted)\n   */\n  isSecret: z.boolean().optional().default(false).describe('Encrypt this variable'),\n  \n  /**\n   * Git branch (for preview/development)\n   */\n  gitBranch: z.string().optional().describe('Specific git branch'),\n}));\n\nexport type EnvironmentVariables = z.infer<typeof EnvironmentVariablesSchema>;\n\n/**\n * Edge Function Configuration\n */\nexport const EdgeFunctionConfigSchema = lazySchema(() => z.object({\n  /**\n   * Function name\n   */\n  name: z.string().describe('Edge function name'),\n  \n  /**\n   * Function path\n   */\n  path: z.string().describe('Function path (e.g., /api/*)'),\n  \n  /**\n   * Regions to deploy\n   */\n  regions: z.array(z.string()).optional().describe('Specific regions for this function'),\n  \n  /**\n   * Memory limit (MB)\n   */\n  memoryLimit: z.number().int().min(128).max(3008).optional().default(1024).describe('Memory limit in MB'),\n  \n  /**\n   * Timeout (seconds)\n   */\n  timeout: z.number().int().min(1).max(300).optional().default(10).describe('Timeout in seconds'),\n}));\n\nexport type EdgeFunctionConfig = z.infer<typeof EdgeFunctionConfigSchema>;\n\n/**\n * Vercel Project Configuration\n */\nexport const VercelProjectSchema = lazySchema(() => z.object({\n  /**\n   * Project name\n   */\n  name: z.string().describe('Vercel project name'),\n  \n  /**\n   * Framework\n   */\n  framework: VercelFrameworkSchema.optional().describe('Frontend framework'),\n  \n  /**\n   * Git repository\n   */\n  gitRepository: GitRepositoryConfigSchema.optional().describe('Git repository configuration'),\n  \n  /**\n   * Build configuration\n   */\n  buildConfig: BuildConfigSchema.optional().describe('Build configuration'),\n  \n  /**\n   * Deployment configuration\n   */\n  deploymentConfig: DeploymentConfigSchema.optional().describe('Deployment configuration'),\n  \n  /**\n   * Custom domains\n   */\n  domains: z.array(DomainConfigSchema).optional().describe('Custom domains'),\n  \n  /**\n   * Environment variables\n   */\n  environmentVariables: z.array(EnvironmentVariablesSchema).optional().describe('Environment variables'),\n  \n  /**\n   * Edge functions\n   */\n  edgeFunctions: z.array(EdgeFunctionConfigSchema).optional().describe('Edge functions'),\n  \n  /**\n   * Root directory\n   */\n  rootDirectory: z.string().optional().describe('Root directory (for monorepos)'),\n}));\n\nexport type VercelProject = z.infer<typeof VercelProjectSchema>;\n\n/**\n * Vercel Monitoring Configuration\n */\nexport const VercelMonitoringSchema = lazySchema(() => z.object({\n  /**\n   * Enable Web Analytics\n   */\n  enableWebAnalytics: z.boolean().optional().default(false).describe('Enable Vercel Web Analytics'),\n  \n  /**\n   * Enable Speed Insights\n   */\n  enableSpeedInsights: z.boolean().optional().default(false).describe('Enable Vercel Speed Insights'),\n  \n  /**\n   * Enable Log Drains\n   */\n  logDrains: z.array(z.object({\n    name: z.string().describe('Log drain name'),\n    url: z.string().url().describe('Log drain URL'),\n    headers: z.record(z.string(), z.string()).optional().describe('Custom headers'),\n    sources: z.array(z.enum(['static', 'lambda', 'edge'])).optional().describe('Log sources'),\n  })).optional().describe('Log drains configuration'),\n}));\n\nexport type VercelMonitoring = z.infer<typeof VercelMonitoringSchema>;\n\n/**\n * Vercel Team Configuration\n */\nexport const VercelTeamSchema = lazySchema(() => z.object({\n  /**\n   * Team ID or slug\n   */\n  teamId: z.string().optional().describe('Team ID or slug'),\n  \n  /**\n   * Team name\n   */\n  teamName: z.string().optional().describe('Team name'),\n}));\n\nexport type VercelTeam = z.infer<typeof VercelTeamSchema>;\n\n/**\n * Vercel Connector Schema\n * Complete Vercel integration configuration\n */\nexport const VercelConnectorSchema = lazySchema(() => ConnectorSchema.extend({\n  type: z.literal('saas'),\n  \n  /**\n   * Vercel provider\n   */\n  provider: VercelProviderSchema.describe('Vercel provider'),\n  \n  /**\n   * Vercel API base URL\n   */\n  baseUrl: z.string().url().optional().default('https://api.vercel.com').describe('Vercel API base URL'),\n  \n  /**\n   * Team configuration\n   */\n  team: VercelTeamSchema.optional().describe('Vercel team configuration'),\n  \n  /**\n   * Projects to manage\n   */\n  projects: z.array(VercelProjectSchema).describe('Vercel projects'),\n  \n  /**\n   * Monitoring configuration\n   */\n  monitoring: VercelMonitoringSchema.optional().describe('Monitoring configuration'),\n  \n  /**\n   * Enable webhooks\n   */\n  enableWebhooks: z.boolean().optional().default(true).describe('Enable Vercel webhooks'),\n  \n  /**\n   * Webhook events to subscribe\n   */\n  webhookEvents: z.array(z.enum([\n    'deployment.created',\n    'deployment.succeeded',\n    'deployment.failed',\n    'deployment.ready',\n    'deployment.error',\n    'deployment.canceled',\n    'deployment-checks-completed',\n    'deployment-prepared',\n    'project.created',\n    'project.removed',\n  ])).optional().describe('Webhook events to subscribe to'),\n}));\n\nexport type VercelConnector = z.infer<typeof VercelConnectorSchema>;\n\n// ============================================================================\n// Helper Functions & Examples\n// ============================================================================\n\n/**\n * Example: Vercel Next.js Project Configuration\n */\nexport const vercelNextJsConnectorExample = {\n  name: 'vercel_production',\n  label: 'Vercel Production',\n  type: 'saas',\n  provider: 'vercel',\n  baseUrl: 'https://api.vercel.com',\n  \n  authentication: {\n    type: 'bearer',\n    token: '${VERCEL_TOKEN}',\n  },\n  \n  projects: [\n    {\n      name: 'objectstack-app',\n      framework: 'nextjs',\n      \n      gitRepository: {\n        type: 'github',\n        repo: 'objectstack-ai/app',\n        productionBranch: 'main',\n        autoDeployProduction: true,\n        autoDeployPreview: true,\n      },\n      \n      buildConfig: {\n        buildCommand: 'npm run build',\n        outputDirectory: '.next',\n        installCommand: 'npm ci',\n        devCommand: 'npm run dev',\n        nodeVersion: '20.x',\n        env: {\n          NEXT_PUBLIC_API_URL: 'https://api.objectstack.ai',\n        },\n      },\n      \n      deploymentConfig: {\n        autoDeployment: true,\n        regions: ['iad1', 'sfo1', 'fra1'],\n        enablePreview: true,\n        previewComments: true,\n        productionProtection: true,\n      },\n      \n      domains: [\n        {\n          domain: 'app.objectstack.ai',\n          httpsRedirect: true,\n          gitBranch: 'main',\n        },\n        {\n          domain: 'staging.objectstack.ai',\n          httpsRedirect: true,\n          gitBranch: 'develop',\n        },\n      ],\n      \n      environmentVariables: [\n        {\n          key: 'DATABASE_URL',\n          value: '${DATABASE_URL}',\n          target: ['production', 'preview'],\n          isSecret: true,\n        },\n        {\n          key: 'NEXT_PUBLIC_ANALYTICS_ID',\n          value: 'UA-XXXXXXXX-X',\n          target: ['production'],\n          isSecret: false,\n        },\n      ],\n      \n      edgeFunctions: [\n        {\n          name: 'api-middleware',\n          path: '/api/*',\n          regions: ['iad1', 'sfo1'],\n          memoryLimit: 1024,\n          timeout: 10,\n        },\n      ],\n    },\n  ],\n  \n  monitoring: {\n    enableWebAnalytics: true,\n    enableSpeedInsights: true,\n    logDrains: [\n      {\n        name: 'datadog-logs',\n        url: 'https://http-intake.logs.datadoghq.com/api/v2/logs',\n        headers: {\n          'DD-API-KEY': '${DATADOG_API_KEY}',\n        },\n        sources: ['lambda', 'edge'],\n      },\n    ],\n  },\n  \n  enableWebhooks: true,\n  webhookEvents: [\n    'deployment.succeeded',\n    'deployment.failed',\n    'deployment.ready',\n  ],\n  \n  status: 'active',\n  enabled: true,\n};\n\n/**\n * Example: Vercel Static Site Configuration\n */\nexport const vercelStaticSiteConnectorExample = {\n  name: 'vercel_docs',\n  label: 'Vercel Documentation',\n  type: 'saas',\n  provider: 'vercel',\n  baseUrl: 'https://api.vercel.com',\n  \n  authentication: {\n    type: 'bearer',\n    token: '${VERCEL_TOKEN}',\n  },\n  \n  team: {\n    teamId: 'team_xxxxxx',\n    teamName: 'ObjectStack',\n  },\n  \n  projects: [\n    {\n      name: 'objectstack-docs',\n      framework: 'static',\n      \n      gitRepository: {\n        type: 'github',\n        repo: 'objectstack-ai/docs',\n        productionBranch: 'main',\n        autoDeployProduction: true,\n        autoDeployPreview: true,\n      },\n      \n      buildConfig: {\n        buildCommand: 'npm run build',\n        outputDirectory: 'dist',\n        installCommand: 'npm ci',\n        nodeVersion: '18.x',\n      },\n      \n      deploymentConfig: {\n        autoDeployment: true,\n        regions: ['iad1', 'lhr1', 'sin1'],\n        enablePreview: true,\n        previewComments: true,\n        productionProtection: false,\n      },\n      \n      domains: [\n        {\n          domain: 'docs.objectstack.ai',\n          httpsRedirect: true,\n        },\n      ],\n      \n      environmentVariables: [\n        {\n          key: 'ALGOLIA_APP_ID',\n          value: '${ALGOLIA_APP_ID}',\n          target: ['production', 'preview'],\n          isSecret: false,\n        },\n        {\n          key: 'ALGOLIA_API_KEY',\n          value: '${ALGOLIA_API_KEY}',\n          target: ['production', 'preview'],\n          isSecret: true,\n        },\n      ],\n    },\n  ],\n  \n  monitoring: {\n    enableWebAnalytics: true,\n    enableSpeedInsights: false,\n  },\n  \n  enableWebhooks: false,\n  \n  status: 'active',\n  enabled: true,\n};\n"]}