{"version":3,"sources":["../../src/core/operators/QueryOperator.ts","../../src/core/operators/MutationOperator.ts","../../src/utils/id.ts","../../src/schemas/activity.ts","../../src/schemas/approval.ts","../../src/schemas/appSnapshot.ts","../../src/schemas/attribute.ts","../../src/schemas/codebase.ts","../../src/schemas/connector_sync_runs.ts","../../src/schemas/connectorConfig.ts","../../src/schemas/conversation.ts","../../src/schemas/discussion.ts","../../src/schemas/document.ts","../../src/schemas/git_connections.ts","../../src/schemas/pullrequests.ts","../../src/schemas/commits.ts","../../src/schemas/branches.ts","../../src/schemas/releases.ts","../../src/schemas/workflow_runs.ts","../../src/schemas/git_comments.ts","../../src/schemas/reviews.ts","../../src/schemas/review_comments.ts","../../src/schemas/git_project_links.ts","../../src/schemas/connector_webhook_events.ts","../../src/schemas/goal.ts","../../src/schemas/message.ts","../../src/schemas/milestone.ts","../../src/schemas/org.ts","../../src/schemas/processes.ts","../../src/schemas/processExecutions.ts","../../src/schemas/processSteps.ts","../../src/schemas/project.ts","../../src/schemas/record.ts","../../src/schemas/relation.ts","../../src/schemas/role.ts","../../src/schemas/roleMembership.ts","../../src/schemas/schema.ts","../../src/schemas/serviceKey.ts","../../src/schemas/stepTemplates.ts","../../src/schemas/task.ts","../../src/schemas/teamMember.ts","../../src/schemas/template.ts","../../src/schemas/timeEntry.ts","../../src/schemas/user.ts","../../src/schemas/vault.ts","../../src/schemas/vaultItem.ts","../../src/schemas/worker.ts","../../src/schemas/workspace.ts","../../src/schemas/sagaAgentState.ts","../../src/schemas/sagaMemory.ts","../../src/schemas/sagaSkill.ts","../../src/schemas/sagaTaskSummary.ts","../../src/schemas/sagaSystemRegistry.ts","../../src/schemas/sagaSyncLog.ts","../../src/schemas/sagaHubPeer.ts","../../src/core/collections/TaskOperator.ts","../../src/core/collections/OrgOperator.ts","../../src/core/collections/WorkspaceOperator.ts","../../src/core/collections/ProjectOperator.ts","../../src/core/collections/MilestoneOperator.ts","../../src/core/collections/UserOperator.ts","../../src/core/collections/TemplateOperator.ts","../../src/core/collections/DiscussionOperator.ts","../../src/core/collections/DocumentOperator.ts","../../src/core/collections/ApprovalOperator.ts","../../src/core/collections/RoleOperator.ts","../../src/core/collections/RoleMembershipOperator.ts"],"names":["BehaviorSubject","map","nanoid","z"],"mappings":"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","file":"index.cjs","sourcesContent":["// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxCollection, RxQuery, RxDocument } from 'rxdb';\nimport { Observable, BehaviorSubject, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { QueryOptions, QueryResult } from './types';\n\n/**\n * Framework-agnostic query operator\n *\n * Wraps RxDB queries with reactive observables that work in any environment.\n * Provides both imperative (exec) and reactive (observable) APIs.\n *\n * @example\n * ```typescript\n * // Imperative usage (Node.js, CLI)\n * const query = new QueryOperator(collection, { selector: { status: 'active' } });\n * const results = await query.exec();\n *\n * // Reactive usage (UI frameworks)\n * query.observable.subscribe(result => {\n *   console.log('Data updated:', result.data);\n * });\n * ```\n */\nexport class QueryOperator<T> {\n  private collection: RxCollection;\n  private query: RxQuery<T>;\n  private resultSubject: BehaviorSubject<QueryResult<T>>;\n  private subscription?: Subscription;\n  private _isDestroyed = false;\n\n  constructor(collection: RxCollection, options: QueryOptions<T>) {\n    this.collection = collection;\n    this.query = this.buildQuery(options);\n    this.resultSubject = new BehaviorSubject<QueryResult<T>>({\n      data: [],\n      isLoading: true,\n      error: null,\n    });\n\n    this.initialize();\n  }\n\n  /**\n   * Whether this operator has been destroyed.\n   * Used by useQuery to detect StrictMode remounts with a stale operator.\n   */\n  get isDestroyed(): boolean {\n    return this._isDestroyed;\n  }\n\n  /**\n   * Build RxDB query from options\n   */\n  private buildQuery(options: QueryOptions<T>): RxQuery<T> {\n    // Build MangoQuery object with all options at once\n    const mangoQuery: any = {\n      selector: options.selector,\n    };\n\n    if (options.sort) {\n      mangoQuery.sort = options.sort;\n    }\n\n    if (options.limit !== undefined) {\n      mangoQuery.limit = options.limit;\n    }\n\n    if (options.skip !== undefined) {\n      mangoQuery.skip = options.skip;\n    }\n\n    // Pass complete MangoQuery object to find()\n    return this.collection.find(mangoQuery) as RxQuery<T>;\n  }\n\n  /**\n   * Initialize reactive subscription to query results.\n   * Safe to call multiple times (e.g., after reinitialize).\n   */\n  private initialize(): void {\n    // Clean up any existing subscription before re-subscribing\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n    this.subscription = this.query.$\n      .pipe(map((docs: RxDocument<T>[]) => docs.map((doc: RxDocument<T>) => doc.toJSON() as T)))\n      .subscribe({\n        next: (data) => {\n          this.resultSubject.next({\n            data,\n            isLoading: false,\n            error: null,\n          });\n        },\n        error: (error) => {\n          this.resultSubject.next({\n            data: [],\n            isLoading: false,\n            error,\n          });\n        },\n      });\n  }\n\n  /**\n   * Re-initialize after destroy. Needed for React StrictMode compatibility\n   * where useMemo caches the operator but useEffect cleanup destroys it,\n   * then the remount needs to resubscribe.\n   */\n  reinitialize(): void {\n    if (!this._isDestroyed) return;\n    this._isDestroyed = false;\n    // Create a fresh BehaviorSubject since the old one was completed\n    this.resultSubject = new BehaviorSubject<QueryResult<T>>({\n      data: [],\n      isLoading: true,\n      error: null,\n    });\n    this.initialize();\n  }\n\n  /**\n   * Execute query imperatively and return results as Promise\n   *\n   * Use in Node.js scripts, CLI tools, and other imperative contexts.\n   *\n   * @returns Promise resolving to array of documents\n   */\n  async exec(): Promise<T[]> {\n    const docs = await this.query.exec();\n    return docs.map((doc: RxDocument<T>) => doc.toJSON() as T);\n  }\n\n  /**\n   * Get reactive observable of query results\n   *\n   * Subscribe to this in UI frameworks for automatic updates.\n   *\n   * @returns Observable that emits QueryResult on every data change\n   */\n  get observable(): Observable<QueryResult<T>> {\n    // Auto-reinitialize if destroyed (React StrictMode remount)\n    if (this._isDestroyed) {\n      this.reinitialize();\n    }\n    return this.resultSubject.asObservable();\n  }\n\n  /**\n   * Get current query result synchronously\n   *\n   * @returns Current QueryResult value\n   */\n  get value(): QueryResult<T> {\n    return this.resultSubject.value;\n  }\n\n  /**\n   * Refetch query results imperatively\n   *\n   * @returns Promise resolving to current query results\n   */\n  async refetch(): Promise<T[]> {\n    return this.exec();\n  }\n\n  /**\n   * Cleanup subscriptions and complete observables\n   *\n   * Call this when the query is no longer needed to prevent memory leaks.\n   */\n  destroy(): void {\n    this._isDestroyed = true;\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n    this.resultSubject.complete();\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxCollection } from 'rxdb';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Mutation state tracking\n */\nexport interface MutationState<T> {\n  /** Result data from successful mutation */\n  data: T | null;\n  /** True while mutation is executing */\n  isLoading: boolean;\n  /** Error object if mutation failed, null otherwise */\n  error: Error | null;\n}\n\n/**\n * Mutation operator configuration\n */\nexport interface MutationOptions<TData, TVariables> {\n  /** Function that performs the mutation on the collection */\n  mutationFn: (collection: RxCollection, variables: TVariables) => Promise<TData>;\n  /** Optional callback invoked on successful mutation */\n  onSuccess?: (data: TData, variables: TVariables) => void | Promise<void>;\n  /** Optional callback invoked on mutation error */\n  onError?: (error: Error, variables: TVariables) => void | Promise<void>;\n}\n\n/**\n * Framework-agnostic mutation operator\n *\n * Wraps RxDB write operations with state management and callbacks.\n * Works in any environment (Node.js, Browser, React Native, Electron).\n *\n * @example\n * ```typescript\n * // Create mutation operator\n * const createTask = new MutationOperator(collection, {\n *   mutationFn: async (col, data) => {\n *     await col.insert(data);\n *     return data;\n *   },\n *   onSuccess: (data) => console.log('Created:', data.id)\n * });\n *\n * // Execute imperatively\n * const task = await createTask.execute({ title: 'New Task' });\n *\n * // Or subscribe reactively\n * createTask.state$.subscribe(state => {\n *   if (state.isLoading) console.log('Saving...');\n *   if (state.data) console.log('Saved!');\n * });\n * ```\n */\nexport class MutationOperator<TData, TVariables> {\n  private collection: RxCollection;\n  private mutationFn: (collection: RxCollection, variables: TVariables) => Promise<TData>;\n  private onSuccess?: (data: TData, variables: TVariables) => void | Promise<void>;\n  private onError?: (error: Error, variables: TVariables) => void | Promise<void>;\n  private stateSubject: BehaviorSubject<MutationState<TData>>;\n\n  constructor(collection: RxCollection, options: MutationOptions<TData, TVariables>) {\n    this.collection = collection;\n    this.mutationFn = options.mutationFn;\n    this.onSuccess = options.onSuccess;\n    this.onError = options.onError;\n    this.stateSubject = new BehaviorSubject<MutationState<TData>>({\n      data: null,\n      isLoading: false,\n      error: null,\n    });\n  }\n\n  /**\n   * Execute mutation imperatively\n   *\n   * Performs the mutation, updates state, and invokes callbacks.\n   * Returns Promise for imperative usage in scripts and CLI tools.\n   *\n   * @param variables - Input variables for the mutation\n   * @returns Promise resolving to mutation result data\n   * @throws Error if mutation fails\n   */\n  async execute(variables: TVariables): Promise<TData> {\n    this.stateSubject.next({\n      data: null,\n      isLoading: true,\n      error: null,\n    });\n\n    try {\n      const result = await this.mutationFn(this.collection, variables);\n\n      this.stateSubject.next({\n        data: result,\n        isLoading: false,\n        error: null,\n      });\n\n      await this.onSuccess?.(result, variables);\n      return result;\n    } catch (error: any) {\n      const err = error instanceof Error ? error : new Error(String(error));\n\n      this.stateSubject.next({\n        data: null,\n        isLoading: false,\n        error: err,\n      });\n\n      await this.onError?.(err, variables);\n      throw err;\n    }\n  }\n\n  /**\n   * Get reactive state observable\n   *\n   * Subscribe to this in UI frameworks for automatic state updates.\n   *\n   * @returns Observable that emits MutationState on every state change\n   */\n  get state$(): Observable<MutationState<TData>> {\n    return this.stateSubject.asObservable();\n  }\n\n  /**\n   * Get current mutation state synchronously\n   *\n   * @returns Current MutationState value\n   */\n  get value(): MutationState<TData> {\n    return this.stateSubject.value;\n  }\n\n  /**\n   * Reset mutation state to initial values\n   */\n  reset(): void {\n    this.stateSubject.next({\n      data: null,\n      isLoading: false,\n      error: null,\n    });\n  }\n\n  /**\n   * Cleanup and complete observables\n   *\n   * Call this when the mutation operator is no longer needed.\n   */\n  destroy(): void {\n    this.stateSubject.complete();\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview ID generation utilities for all collections\n * @module @epicdm/db-collections/utils/id\n */\n\nimport { nanoid } from 'nanoid'\n\n// Fallback ID generator for environments without crypto.getRandomValues (SSR)\nconst fallbackId = (size: number = 10): string => {\n  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-'\n  let id = ''\n  for (let i = 0; i < size; i++) {\n    id += chars.charAt(Math.floor(Math.random() * chars.length))\n  }\n  return id\n}\n\n// Safe nanoid that falls back when crypto is unavailable\nexport const safeNanoid = (size: number = 10): string => {\n  try {\n    // Check if crypto.getRandomValues is available\n    if (\n      typeof globalThis !== 'undefined' &&\n      globalThis.crypto &&\n      typeof globalThis.crypto.getRandomValues === 'function'\n    ) {\n      return nanoid(size)\n    }\n    return fallbackId(size)\n  } catch {\n    return fallbackId(size)\n  }\n}\n\n/**\n * Canonical mapping from entity type to ID prefix.\n * This is the source of truth for all ID prefixes.\n * Each prefix must be unique and exactly 4 characters long.\n *\n * When adding a new entity type:\n * 1. Add it here with a unique prefix\n * 2. Also update ID_PREFIX_TO_COLLECTION to include the new prefix\n * 3. Use createId('entitytype') to generate IDs\n */\nexport const ENTITY_TO_PREFIX: Record<string, string> = {\n  // Financial entities (singular and plural forms)\n  finaccount: 'fina',\n  finaccounts: 'fina',\n  finbudget: 'finb',\n  finbudgets: 'finb',\n  fincategory: 'finc',\n  fincategories: 'finc',\n  finscheduledtransaction: 'fins',\n  finscheduledtransactions: 'fins',\n  fintransaction: 'fint',\n  fintransactions: 'fint',\n  finincomestatement: 'fini',\n  finincomestatements: 'fini',\n\n  // Business accounting entities (singular and plural forms)\n  chartofaccount: 'choa',\n  chartofaccounts: 'choa',\n  journalentry: 'jrnl',\n  journalentries: 'jrnl',\n  journalline: 'jrln',\n  journallines: 'jrln',\n  fiscalperiod: 'fisc',\n  fiscalperiods: 'fisc',\n  vendor: 'vend',\n  vendors: 'vend',\n  vendorbill: 'vbil',\n  vendorbills: 'vbil',\n  bankreconciliation: 'brcn',\n  bankreconciliations: 'brcn',\n  taxrate: 'taxr',\n  taxrates: 'taxr',\n\n  // Core entities\n  approval: 'appr',\n  approvals: 'appr',\n  attribute: 'attr',\n  attributes: 'attr',\n  client: 'clie',\n  clients: 'clie',\n  codebase: 'code',\n  codebases: 'code',\n  contact: 'cont',\n  contacts: 'cont',\n  conversation: 'conv',\n  conversations: 'conv',\n  discussion: 'disc',\n  discussions: 'disc',\n  document: 'docu',\n  documents: 'docu',\n  flow: 'flow',\n  flows: 'flow',\n  goal: 'goal',\n  goals: 'goal',\n  message: 'mess',\n  messages: 'mess',\n  milestone: 'mile',\n  milestones: 'mile',\n  opportunity: 'oppo',\n  opportunities: 'oppo',\n  org: 'org_',\n  orgs: 'org_',\n  project: 'proj',\n  projects: 'proj',\n  session: 'sess',\n  sessions: 'sess',\n  task: 'task',\n  tasks: 'task',\n  template: 'temp',\n  templates: 'temp',\n  timeentry: 'time',\n  timeentries: 'time',\n  user: 'use_',\n  users: 'use_',\n  variables: 'vari',\n  workspace: 'work',\n  workspaces: 'work',\n  syncconfig: 'sync',\n  syncconfigs: 'sync',\n\n  // Product entities (singular and plural forms)\n  product: 'prod',\n  products: 'prod',\n  initiative: 'init',\n  initiatives: 'init',\n  roadmap: 'road',\n  roadmaps: 'road',\n  productgoal: 'pgoa',\n  productgoals: 'pgoa',\n  productproject: 'ppro',\n  productprojects: 'ppro',\n  productteammember: 'ptmb',\n  productteammembers: 'ptmb',\n  activity: 'acti',\n  activities: 'acti',\n  teammember: 'team',\n  teammembers: 'team',\n  metric: 'metr',\n  metrics: 'metr',\n\n  // Process entities (singular and plural forms)\n  process: 'proc',\n  processes: 'proc',\n  processstep: 'step',\n  processsteps: 'step',\n  processexecution: 'exec',\n  processexecutions: 'exec',\n  steptemplate: 'stpl',\n  steptemplates: 'stpl',\n\n  // Theme entities (singular and plural forms)\n  orgtheme: 'othr',\n  orgthemes: 'othr',\n\n  // Business Plan entities (singular and plural forms)\n  businessplan: 'bpln',\n  businessplans: 'bpln',\n  marketanalysis: 'mkan',\n  marketanalyses: 'mkan',\n  competitor: 'comp',\n  competitors: 'comp',\n  businessplanteammember: 'bptm',\n  businessplanteammembers: 'bptm',\n\n  // Marketing entities (singular and plural forms)\n  offer: 'offr',\n  offers: 'offr',\n  campaign: 'camp',\n  campaigns: 'camp',\n  audience: 'audc',\n  audiences: 'audc',\n  leadmagnet: 'lead',\n  leadmagnets: 'lead',\n  campaigncontact: 'ccnt',\n  campaigncontacts: 'ccnt',\n  campaignproduct: 'cprd',\n  campaignproducts: 'cprd',\n\n  // Sales entities (singular and plural forms)\n  deal: 'deal',\n  deals: 'deal',\n  pipeline: 'pipe',\n  pipelines: 'pipe',\n  pipelinestage: 'stge',\n  pipelinestages: 'stge',\n  quote: 'quot',\n  quotes: 'quot',\n  invoice: 'invc',\n  invoices: 'invc',\n  lineitem: 'item',\n  lineitems: 'item',\n  dealproduct: 'dprd',\n  dealproducts: 'dprd',\n  dealproject: 'dpro',\n  dealprojects: 'dpro',\n\n  // BizDev entities (singular and plural forms)\n  partnership: 'part',\n  partnerships: 'part',\n\n  // Recurrence entities\n  recurrence: 'recu',\n  recurrences: 'recu',\n\n  // Process sub-entities\n  edge: 'edge',\n  edges: 'edge',\n  comment: 'cmnt',\n  comments: 'cmnt',\n\n  // Cashflow grouping entities\n  categorygroup: 'cgrp',\n  categorygroups: 'cgrp',\n\n  // Chat entities\n  attachment: 'atch',\n  attachments: 'atch',\n\n  // Schema-in-DB entities\n  schema: 'schm',\n  schemas: 'schm',\n  record: 'rec_',\n  records: 'rec_',\n  relation: 'reln',\n  relations: 'reln',\n\n  // Vault entities (singular and plural forms)\n  vault: 'vaut',\n  vaults: 'vaut',\n  vaultitem: 'vait',\n  vaultitems: 'vait',\n  servicekey: 'skey',\n  servicekeys: 'skey',\n\n  // Git connection entities (Phase 3 — provider-agnostic auth handles)\n  git_connection: 'gitc',\n  git_connections: 'gitc',\n\n  // Git VCA entities (Phase 5 — provider-agnostic records-table collections)\n  // Note: 'comments' uses 'gcm_' (git comment) to avoid collision with existing 'cmnt' (generic comment)\n  // Note: 'commits' uses 'cmt_' — chosen before 'gcm_' was assigned to comments\n  pullrequest: 'prq_',\n  pullrequests: 'prq_',\n  commit: 'cmt_',\n  commits: 'cmt_',\n  branch: 'brn_',\n  branches: 'brn_',\n  release: 'rel_',\n  releases: 'rel_',\n  workflow_run: 'wfr_',\n  workflow_runs: 'wfr_',\n  git_comment: 'gcm_',\n  git_comments: 'gcm_',\n  review: 'grv_',\n  reviews: 'grv_',\n  review_comment: 'grc_',\n  review_comments: 'grc_',\n  git_project_link: 'gpl_',\n  git_project_links: 'gpl_',\n  connector_webhook_event: 'cwe_',\n  connector_webhook_events: 'cwe_',\n\n  // Worker entities (singular and plural forms)\n  // Note: 'work' prefix is taken by workspaces, so workers use 'wrkr'\n  worker: 'wrkr',\n  workers: 'wrkr',\n\n  // App snapshot entities (singular and plural forms)\n  appsnapshot: 'asnp',\n  appsnapshots: 'asnp',\n\n  // RBAC entities (singular and plural forms)\n  // Note: 'acl' prefix uses 'acl_' (4 chars with trailing underscore) to stay 4 chars\n  role: 'role',\n  roles: 'role',\n  rolemembership: 'rmem',\n  rolememberships: 'rmem',\n  acl: 'acl_',\n  acls: 'acl_',\n  revokedtoken: 'rtok',\n  revokedtokens: 'rtok',\n  revocationepoch: 'repc',\n  revocationepochs: 'repc',\n  invitation: 'invt',\n  invitations: 'invt',\n\n  // ZK encryption entities\n  encryptionkey: 'ekey',\n  encryptionkeys: 'ekey',\n  userkey: 'ukey',\n  userkeys: 'ukey',\n  vaultmembership: 'vmem',\n  vaultmemberships: 'vmem',\n\n  // Discord entities (singular and plural forms)\n  discord_mapping: 'dmap',\n  discord_mappings: 'dmap',\n  discord_channel: 'dchn',\n  discord_channels: 'dchn',\n\n  // Entity assignment junction\n  entityassignment: 'easn',\n  entityassignments: 'easn',\n\n  // Orchestration entities (singular and plural forms)\n  proposal: 'prps',\n  proposals: 'prps',\n  mission: 'misn',\n  missions: 'misn',\n  mission_step: 'mstp',\n  mission_steps: 'mstp',\n  agent_event: 'aevt',\n  agent_events: 'aevt',\n  trigger_rule: 'trul',\n  trigger_rules: 'trul',\n  ops_policy: 'opol',\n  agent_affinity: 'aaff',\n  agent_affinities: 'aaff',\n\n  // Finance VCA aliases (short names used by virtual collection seeds)\n  account: 'fina',\n  accounts: 'fina',\n  budget: 'finb',\n  budgets: 'finb',\n  transaction: 'fint',\n  transactions: 'fint',\n  scheduledtransaction: 'fins',\n  scheduledtransactions: 'fins',\n  incomestatement: 'fini',\n  incomestatements: 'fini',\n\n  // Sales entities (additional)\n  paymentplan: 'ppln',\n  paymentplans: 'ppln',\n\n  // Support entities (singular and plural forms)\n  ticket: 'tikt',\n  tickets: 'tikt',\n  feedbackitem: 'fbki',\n  feedbackitems: 'fbki',\n  kbarticle: 'kbar',\n  kbarticles: 'kbar',\n  healthscore: 'hlsc',\n  healthscores: 'hlsc',\n  integration: 'intg',\n  integrations: 'intg',\n\n  // Content entities (singular and plural forms)\n  contentpiece: 'cpce',\n  contentpieces: 'cpce',\n  contentpillar: 'cpil',\n  contentpillars: 'cpil',\n  hooktemplate: 'htpl',\n  hooktemplates: 'htpl',\n  conversioncode: 'cvcn',\n  conversioncodes: 'cvcn',\n  contentfunnel: 'cfun',\n  contentfunnels: 'cfun',\n  persuasiontemplate: 'prtl',\n  persuasiontemplates: 'prtl',\n  outreachtarget: 'otrg',\n  outreachtargets: 'otrg',\n\n  // Accounting entities (additional)\n  budgetitem: 'bdit',\n  budgetitems: 'bdit',\n\n  // Logging entities (singular and plural forms)\n  // Note: 'log' is only 3 chars, so prefix uses trailing underscore like 'org_', 'rec_', 'use_'\n  log: 'log_',\n  logs: 'log_',\n}\n\n/**\n * Generate a unique ID for an entity type.\n * Format: {prefix}_{nanoid} where prefix is looked up from ENTITY_TO_PREFIX.\n *\n * @param entityType - The entity type (e.g., 'task', 'project', 'goal')\n * @returns A unique ID string (e.g., 'task_abc123xyz0')\n * @throws Error if entityType is not registered in ENTITY_TO_PREFIX\n *\n * @example\n * createId('task')     // 'task_abc123xyz0'\n * createId('project')  // 'proj_xyz789abc1'\n * createId('goal')     // 'goal_def456ghi2'\n */\nexport const createId = (entityType: string): string => {\n  const prefix = ENTITY_TO_PREFIX[entityType]\n  if (!prefix) {\n    throw new Error(\n      `Unknown entity type: \"${entityType}\". Add it to ENTITY_TO_PREFIX in db-collections/src/utils/id.ts`\n    )\n  }\n  return `${prefix}_${safeNanoid(10)}`\n}\n\n/**\n * Map of ID prefixes to collection names.\n * Manually maintained; must be kept in sync with ENTITY_TO_PREFIX.\n * Used to determine the entity type from an ID string.\n */\nexport const ID_PREFIX_TO_COLLECTION: Record<string, string> = {\n  // Manually maintained mapping from ID prefix to collection name (keep in sync with ENTITY_TO_PREFIX)\n  fina: 'finaccounts',\n  finb: 'finbudgets',\n  finc: 'fincategories',\n  fins: 'finscheduledtransactions',\n  fint: 'fintransactions',\n  fini: 'finincomestatements',\n  choa: 'chartofaccounts',\n  jrnl: 'journalentries',\n  jrln: 'journallines',\n  fisc: 'fiscalperiods',\n  vend: 'vendors',\n  vbil: 'vendorbills',\n  brcn: 'bankreconciliations',\n  taxr: 'taxrates',\n  appr: 'approvals',\n  attr: 'attributes',\n  clie: 'clients',\n  code: 'codebases',\n  cont: 'contacts',\n  conv: 'conversations',\n  disc: 'discussions',\n  docu: 'documents',\n  flow: 'flows',\n  goal: 'goals',\n  mess: 'messages',\n  mile: 'milestones',\n  oppo: 'opportunities',\n  org_: 'orgs',\n  proj: 'projects',\n  sess: 'sessions',\n  task: 'tasks',\n  temp: 'templates',\n  time: 'timeentries',\n  use_: 'users',\n  vari: 'variables',\n  work: 'workspaces',\n  sync: 'syncconfigs',\n  prod: 'products',\n  init: 'initiatives',\n  road: 'roadmaps',\n  pgoa: 'productgoals',\n  ppro: 'productprojects',\n  ptmb: 'productteammembers',\n  acti: 'activities',\n  team: 'teammembers',\n  metr: 'metrics',\n  proc: 'processes',\n  step: 'processsteps',\n  exec: 'processexecutions',\n  stpl: 'steptemplates',\n  othr: 'orgthemes',\n  bpln: 'businessplans',\n  mkan: 'marketanalyses',\n  comp: 'competitors',\n  bptm: 'businessplanteammembers',\n  offr: 'offers',\n  camp: 'campaigns',\n  audc: 'audiences',\n  lead: 'leadmagnets',\n  ccnt: 'campaigncontacts',\n  cprd: 'campaignproducts',\n  deal: 'deals',\n  pipe: 'pipelines',\n  stge: 'pipelinestages',\n  quot: 'quotes',\n  invc: 'invoices',\n  item: 'lineitems',\n  dprd: 'dealproducts',\n  dpro: 'dealprojects',\n  part: 'partnerships',\n  recu: 'recurrences',\n  edge: 'edges',\n  cmnt: 'comments',\n  cgrp: 'categorygroups',\n  atch: 'attachments',\n  schm: 'schemas',\n  rec_: 'records',\n  reln: 'relations',\n  vaut: 'vaults',\n  vait: 'vaultitems',\n  skey: 'servicekeys',\n  gitc: 'git_connections',\n  // Git VCA entities (Phase 5)\n  prq_: 'pullrequests',\n  cmt_: 'commits',\n  brn_: 'branches',\n  rel_: 'releases',\n  wfr_: 'workflow_runs',\n  gcm_: 'git_comments',\n  grv_: 'reviews',\n  grc_: 'review_comments',\n  gpl_: 'git_project_links',\n  cwe_: 'connector_webhook_events',\n  wrkr: 'workers',\n  asnp: 'appsnapshots',\n  // RBAC entities\n  role: 'roles',\n  rmem: 'rolememberships',\n  acl_: 'acl',\n  rtok: 'revokedtokens',\n  repc: 'revocationepochs',\n  invt: 'invitations',\n  // ZK encryption entities\n  ekey: 'encryptionkeys',\n  ukey: 'userkeys',\n  vmem: 'vaultmemberships',\n  // Discord entities\n  dmap: 'discord_mappings',\n  dchn: 'discord_channels',\n  // Entity assignment junction\n  easn: 'entityassignments',\n  // Orchestration entities\n  prps: 'proposals',\n  misn: 'missions',\n  mstp: 'mission_steps',\n  aevt: 'agent_events',\n  trul: 'trigger_rules',\n  opol: 'ops_policy',\n  aaff: 'agent_affinities',\n  // Sales entities (additional)\n  ppln: 'paymentplans',\n  // Support entities\n  tikt: 'tickets',\n  fbki: 'feedbackitems',\n  kbar: 'kbarticles',\n  hlsc: 'healthscores',\n  intg: 'integrations',\n  // Content entities\n  cpce: 'contentpieces',\n  cpil: 'contentpillars',\n  htpl: 'hooktemplates',\n  cvcn: 'conversioncodes',\n  cfun: 'contentfunnels',\n  prtl: 'persuasiontemplates',\n  otrg: 'outreachtargets',\n  // Accounting entities (additional)\n  bdit: 'budgetitems',\n  // Logging entities\n  // Note: 'log' is 3 chars, so prefix uses trailing underscore (same pattern as org_, rec_, use_)\n  log_: 'logs',\n}\n\n/**\n * Legacy 3-character prefix mapping for backward compatibility.\n * The mobile app's createId used name.substring(0, 3) instead of 4-char prefixes,\n * producing IDs like 'tas_xxx' instead of 'task_xxx'. This map allows the system\n * to recognize those legacy IDs. Format: 3-char prefix + '_' = 4-char lookup key.\n */\nconst LEGACY_3CHAR_PREFIX_TO_COLLECTION: Record<string, string> = {\n  tas_: 'tasks',\n  pro_: 'projects',\n  mil_: 'milestones',\n  goa_: 'goals',\n  dis_: 'discussions',\n  doc_: 'documents',\n  wor_: 'workspaces',\n  org_: 'orgs',\n  use_: 'users',\n  flo_: 'flows',\n  mes_: 'messages',\n  ses_: 'sessions',\n  tem_: 'templates',\n  tim_: 'timeentries',\n  cli_: 'clients',\n  con_: 'contacts',\n  opp_: 'opportunities',\n  att_: 'attributes',\n  app_: 'approvals',\n  var_: 'variables',\n  cod_: 'codebases',\n}\n\n/**\n * Get the collection name from an entity ID by parsing its prefix.\n * IDs are generated with format: `{prefix}_{nanoid}` where prefix is from ENTITY_TO_PREFIX.\n *\n * @param id - The entity ID (e.g., 'task_abc123', 'proj_xyz789', 'mile_def456')\n * @returns The collection name (e.g., 'tasks', 'projects', 'milestones') or null if unknown\n *\n * @example\n * getCollectionFromId('task_abc123') // returns 'tasks'\n * getCollectionFromId('proj_xyz789') // returns 'projects'\n * getCollectionFromId('mile_def456') // returns 'milestones'\n * getCollectionFromId('unknown_123') // returns null\n */\nexport const getCollectionFromId = (id: string): string | null => {\n  if (!id || typeof id !== 'string') return null\n\n  const prefix = id.substring(0, 4)\n  // Try standard 4-char prefix first, then fall back to legacy 3-char prefix mapping\n  return ID_PREFIX_TO_COLLECTION[prefix] || LEGACY_3CHAR_PREFIX_TO_COLLECTION[prefix] || null\n}\n\n/**\n * Get the entity type (singular form) from an entity ID.\n * This is useful for display purposes and polymorphic relationships.\n *\n * @param id - The entity ID (e.g., 'task_abc123', 'proj_xyz789')\n * @returns The entity type (e.g., 'task', 'project', 'milestone') or null if unknown\n *\n * @example\n * getEntityTypeFromId('task_abc123') // returns 'task'\n * getEntityTypeFromId('proj_xyz789') // returns 'project'\n * getEntityTypeFromId('mile_def456') // returns 'milestone'\n */\nexport const getEntityTypeFromId = (id: string): string | null => {\n  const collection = getCollectionFromId(id)\n  if (!collection) return null\n\n  // Map collection names to singular entity types\n  const collectionToEntityType: Record<string, string> = {\n    finaccounts: 'finaccount',\n    approvals: 'approval',\n    attributes: 'attribute',\n    finbudgets: 'finbudget',\n    fincategories: 'fincategory',\n    clients: 'client',\n    codebases: 'codebase',\n    contacts: 'contact',\n    conversations: 'conversation',\n    discussions: 'discussion',\n    flows: 'flow',\n    goals: 'goal',\n    logs: 'log',\n    messages: 'message',\n    milestones: 'milestone',\n    opportunities: 'opportunity',\n    orgs: 'org',\n    products: 'product',\n    initiatives: 'initiative',\n    projects: 'project',\n    roadmaps: 'roadmap',\n    finscheduledtransactions: 'finscheduledtransaction',\n    sessions: 'session',\n    documents: 'document',\n    tasks: 'task',\n    templates: 'template',\n    timeentries: 'timeentry',\n    fintransactions: 'fintransaction',\n    finincomestatements: 'finincomestatement',\n    chartofaccounts: 'chartofaccount',\n    journalentries: 'journalentry',\n    journallines: 'journalline',\n    fiscalperiods: 'fiscalperiod',\n    vendors: 'vendor',\n    vendorbills: 'vendorbill',\n    bankreconciliations: 'bankreconciliation',\n    taxrates: 'taxrate',\n    users: 'user',\n    variables: 'variables',\n    workspaces: 'workspace',\n    syncconfigs: 'syncconfig',\n    processes: 'process',\n    processsteps: 'processstep',\n    processexecutions: 'processexecution',\n    steptemplates: 'steptemplate',\n    orgthemes: 'orgtheme',\n    productgoals: 'productgoal',\n    productprojects: 'productproject',\n    productteammembers: 'productteammember',\n    activities: 'activity',\n    teammembers: 'teammember',\n    metrics: 'metric',\n    businessplans: 'businessplan',\n    marketanalyses: 'marketanalysis',\n    competitors: 'competitor',\n    businessplanteammembers: 'businessplanteammember',\n    offers: 'offer',\n    campaigns: 'campaign',\n    audiences: 'audience',\n    leadmagnets: 'leadmagnet',\n    campaigncontacts: 'campaigncontact',\n    campaignproducts: 'campaignproduct',\n    deals: 'deal',\n    pipelines: 'pipeline',\n    pipelinestages: 'pipelinestage',\n    quotes: 'quote',\n    invoices: 'invoice',\n    lineitems: 'lineitem',\n    dealproducts: 'dealproduct',\n    dealprojects: 'dealproject',\n    partnerships: 'partnership',\n    recurrences: 'recurrence',\n    edges: 'edge',\n    comments: 'comment',\n    categorygroups: 'categorygroup',\n    attachments: 'attachment',\n    schemas: 'schema',\n    records: 'record',\n    relations: 'relation',\n    vaults: 'vault',\n    vaultitems: 'vaultitem',\n    servicekeys: 'servicekey',\n    git_connections: 'git_connection',\n    // Git VCA collections (Phase 5)\n    pullrequests: 'pullrequest',\n    commits: 'commit',\n    branches: 'branch',\n    releases: 'release',\n    workflow_runs: 'workflow_run',\n    git_comments: 'git_comment',\n    reviews: 'review',\n    review_comments: 'review_comment',\n    git_project_links: 'git_project_link',\n    connector_webhook_events: 'connector_webhook_event',\n    workers: 'worker',\n    appsnapshots: 'appsnapshot',\n    // RBAC collections\n    roles: 'role',\n    rolememberships: 'rolemembership',\n    acl: 'acl',\n    revokedtokens: 'revokedtoken',\n    revocationepochs: 'revocationepoch',\n    // ZK encryption entities\n    encryptionkeys: 'encryptionkey',\n    userkeys: 'userkey',\n    vaultmemberships: 'vaultmembership',\n    // Discord collections\n    discord_mappings: 'discord_mapping',\n    discord_channels: 'discord_channel',\n    // Entity assignment junction\n    entityassignments: 'entityassignment',\n    // Orchestration collections\n    proposals: 'proposal',\n    missions: 'mission',\n    mission_steps: 'mission_step',\n    agent_events: 'agent_event',\n    trigger_rules: 'trigger_rule',\n    ops_policy: 'ops_policy',\n    agent_affinities: 'agent_affinity',\n    // Sales collections (additional)\n    paymentplans: 'paymentplan',\n    // Support collections\n    tickets: 'ticket',\n    feedbackitems: 'feedbackitem',\n    kbarticles: 'kbarticle',\n    healthscores: 'healthscore',\n    integrations: 'integration',\n    // Content collections\n    contentpieces: 'contentpiece',\n    contentpillars: 'contentpillar',\n    hooktemplates: 'hooktemplate',\n    conversioncodes: 'conversioncode',\n    contentfunnels: 'contentfunnel',\n    persuasiontemplates: 'persuasiontemplate',\n    outreachtargets: 'outreachtarget',\n    // Accounting collections (additional)\n    budgetitems: 'budgetitem',\n  }\n\n  return collectionToEntityType[collection] || null\n}\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const activitySchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  entityType: z.string().max(50),\n  entityId: z.string().max(100),\n  entityName: z.string().max(200),\n  action: z.string().max(50),\n  userName: z.string().max(200),\n  productId: z.string().max(100).optional(),\n  changes: z.record(z.string(), z.unknown()).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type ActivityInput = z.infer<typeof activitySchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const approvalSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  projectId: z.string().max(100),\n  milestoneId: z.string().max(100).optional(),\n  taskId: z.string().max(100).optional(),\n  documentId: z.string().max(100).optional(),\n  title: z.string().max(500),\n  type: z.string().max(200),\n  category: z.string().max(200),\n  categoryName: z.string().max(200),\n  status: z.string().max(50),\n  documentType: z.string().max(200).optional(),\n  documentContent: z.string().max(50000).optional(),\n  response: z.string().max(5000).optional(),\n  annotations: z.string().max(5000).optional(),\n  comments: z.string().max(50000).optional(),\n  respondedAt: z.string().max(200).datetime().optional(),\n  approverId: z.string().max(100).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type ApprovalInput = z.infer<typeof approvalSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const appSnapshotSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  capturedBy: z.string().max(200),\n  capturedAt: z.string().max(200).datetime(),\n  appId: z.string().max(100),\n  snapshotType: z.string().max(200),\n  name: z.string().max(500),\n  period: z.string().max(200),\n  periodType: z.string().max(200),\n  notes: z.string().max(5000).optional(),\n  summary: z.record(z.string(), z.unknown()),\n  data: z.record(z.string(), z.unknown()),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type AppSnapshotInput = z.infer<typeof appSnapshotSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const attributeSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  color: z.string().max(20),\n  entityType: z.string().max(50),\n  type: z.string().max(200),\n  sortOrder: z.number().int().min(0).max(999999).optional(),\n  popularity: z.number().min(0).max(999999).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type AttributeInput = z.infer<typeof attributeSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const codebaseSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  title: z.string().max(500),\n  description: z.string().max(100000),\n  repository: z.record(z.string(), z.unknown()),\n  environment: z.record(z.string(), z.unknown()),\n  deployment: z.record(z.string(), z.unknown()).optional(),\n  agentWorkflow: z.record(z.string(), z.unknown()).optional(),\n  tags: z.array(z.string()).optional(),\n  status: z.string().max(50),\n  archivedAt: z.string().max(200).datetime().optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n  gitProvider: z.string().max(200).optional(),\n  gitNamespace: z.string().max(200).optional(),\n  gitRepo: z.string().max(200).optional(),\n  gitRepoId: z.string().max(100).optional(),\n  gitDefaultBranch: z.string().max(200).optional(),\n  gitConnectionId: z.string().max(100).optional(),\n  gitVisibility: z.string().max(200).optional(),\n  gitPushedAt: z.string().max(200).optional(),\n  gitWebUrl: z.string().max(200).optional(),\n})\n\nexport type CodebaseInput = z.infer<typeof codebaseSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const connector_sync_runsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  configId: z.string().max(100),\n  providerId: z.string().max(100),\n  endpointId: z.string().max(100).optional(),\n  startedAt: z.string().max(200).datetime(),\n  completedAt: z.string().max(200).datetime(),\n  status: z.string().max(50),\n  triggeredBy: z.string().max(200),\n  recordsRead: z.number().int(),\n  inserts: z.number().int(),\n  updates: z.number().int(),\n  errors: z.number().int(),\n  errorMessage: z.string().max(200).optional(),\n  durationMs: z.number().int(),\n  archived: z.boolean(),\n})\n\nexport type Connector_sync_runsInput = z.infer<typeof connector_sync_runsSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const connectorConfigSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  providerId: z.string().max(100),\n  name: z.string().max(500),\n  enabled: z.boolean(),\n  direction: z.string().max(200),\n  pollingIntervalMs: z.number().int().min(60000).max(86400000),\n  providerConfig: z.record(z.string(), z.unknown()).optional(),\n  fieldMappings: z.array(z.record(z.string(), z.unknown())).optional(),\n  archived: z.boolean(),\n  nextSyncAt: z.string().max(200).optional(),\n  lastSyncAt: z.string().max(200).optional(),\n  lastError: z.string().max(200).optional(),\n  failureCount: z.number().int(),\n})\n\nexport type ConnectorConfigInput = z.infer<typeof connectorConfigSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const conversationSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  title: z.string().max(500),\n  provider: z.string().max(200),\n  model: z.string().max(200),\n  settings: z.record(z.string(), z.unknown()).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type ConversationInput = z.infer<typeof conversationSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const discussionSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  entityType: z.string().max(50),\n  entityId: z.string().max(100),\n  content: z.string().max(100000),\n  contentHtml: z.string().max(200).optional(),\n  parentId: z.string().max(100).optional(),\n  threadDepth: z.number().int(),\n  isEdited: z.boolean(),\n  editedAt: z.string().max(200).datetime().optional(),\n  isDeleted: z.boolean(),\n  deletedAt: z.string().max(200).datetime().optional(),\n  userName: z.string().max(200),\n  userAvatar: z.string().max(200).optional(),\n  attachments: z.array(z.object({\n  id: z.string(),\n  name: z.string(),\n  size: z.number(),\n  type: z.string(),\n  url: z.string(),\n  uploadedAt: z.string().datetime(),\n  status: z.string(),\n  thumbnailUrl: z.string().optional(),\n  checksum: z.string().optional(),\n})).optional(),\n  reactionCounts: z.record(z.string(), z.unknown()).optional(),\n  mentions: z.array(z.object({\n  type: z.string().max(50),\n  identifier: z.string().max(200),\n  teamMemberId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  position: z.number().int().min(0).max(999999),\n})).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type DiscussionInput = z.infer<typeof discussionSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const documentSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  projectId: z.string().max(100).optional(),\n  milestoneId: z.string().max(100).optional(),\n  taskId: z.string().max(100).optional(),\n  codebaseId: z.string().max(100).optional(),\n  documentType: z.string().max(200),\n  title: z.string().max(500),\n  content: z.string().max(100000).optional(),\n  storage: z.record(z.string(), z.unknown()).optional(),\n  documentVersion: z.number().int(),\n  approved: z.boolean(),\n  approvedAt: z.string().max(200).optional(),\n  approvedBy: z.string().max(200).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type DocumentInput = z.infer<typeof documentSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const git_connectionsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  provider: z.string().max(200),\n  authMethod: z.string().max(200),\n  apiHost: z.string().max(200),\n  externalAccountId: z.string().max(100),\n  externalAccountLogin: z.string().max(200),\n  externalAccountType: z.string().max(200),\n  tokenVaultRef: z.string().max(200).optional(),\n  scopes: z.array(z.string()).optional(),\n  permissions: z.record(z.string(), z.unknown()).optional(),\n  webhookSecretVaultRef: z.string().max(200).optional(),\n  webhookEvents: z.array(z.string()).optional(),\n  repoSelection: z.string().max(200).optional(),\n  providerData: z.record(z.string(), z.unknown()).optional(),\n  status: z.string().max(50),\n  suspendedAt: z.string().max(200).optional(),\n  archived: z.boolean(),\n})\n\nexport type Git_connectionsInput = z.infer<typeof git_connectionsSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the pullrequests VCA collection.\n *\n * Pull Requests and Merge Requests from any connected Git provider.\n * Provider-specific extras (e.g. GitHub's `auto_merge`, GitLab's `source_project_id`)\n * go in `providerData` so the table schema stays provider-agnostic.\n *\n * Identity tuple: (gitConnectionId, repoId, number)\n * ID prefix: prq_\n */\n\nimport { z } from 'zod'\n\nexport const pullrequestsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Git connection reference ──────────────────────────────────────────\n  /** FK → git_connections.id */\n  gitConnectionId: z.string().max(100),\n  /** FK → codebases.id (FlowState-side codebase this PR belongs to) */\n  codebaseId: z.string().max(100).optional(),\n\n  // ── Identity tuple (provider-stable) ─────────────────────────────────\n  /** Provider-side stable repository identifier (numeric or slug). */\n  repoId: z.string().max(200),\n  /** PR/MR number within the repository (provider-assigned, stable). */\n  number: z.number().int(),\n\n  // ── Core PR fields ────────────────────────────────────────────────────\n  title: z.string().max(500),\n  body: z.string().optional(),\n  /** 'open' | 'closed' | 'merged' */\n  state: z.enum(['open', 'closed', 'merged']),\n  draft: z.boolean().default(false),\n\n  // ── Branch refs ───────────────────────────────────────────────────────\n  headRef: z.string().max(500),\n  headSha: z.string().max(100),\n  baseRef: z.string().max(500),\n  baseSha: z.string().max(100),\n\n  // ── Merge metadata ────────────────────────────────────────────────────\n  /** null while not yet computed by the provider. */\n  mergeable: z.boolean().nullable().optional(),\n\n  // ── Diff stats ────────────────────────────────────────────────────────\n  additions: z.number().int().optional(),\n  deletions: z.number().int().optional(),\n  changedFiles: z.number().int().optional(),\n\n  // ── Participants ──────────────────────────────────────────────────────\n  authorLogin: z.string().max(200),\n  requestedReviewers: z.array(z.string()).optional(),\n  assignees: z.array(z.string()).optional(),\n\n  // ── Labels & milestones ───────────────────────────────────────────────\n  labels: z.array(z.string()).optional(),\n  /** Provider-side milestone identifier (nullable). */\n  milestoneId: z.string().max(200).nullable().optional(),\n\n  // ── Timestamps ───────────────────────────────────────────────────────\n  createdAt: z.string().datetime(),\n  updatedAt: z.string().datetime(),\n  closedAt: z.string().datetime().nullable().optional(),\n  mergedAt: z.string().datetime().nullable().optional(),\n  /** Login of the user who merged the PR, if merged. */\n  mergedBy: z.string().max(200).nullable().optional(),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  /**\n   * Arbitrary provider-specific data. Phase 6 sync adapters populate this\n   * with provider-native fields that don't have a canonical column.\n   */\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type PullrequestsInput = z.infer<typeof pullrequestsSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the commits VCA collection.\n *\n * Git commits from any connected provider. One row per unique (gitConnectionId, repoId, sha).\n *\n * Identity tuple: (gitConnectionId, repoId, sha)\n * ID prefix: cmt_\n */\n\nimport { z } from 'zod'\n\nexport const commitsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Git connection reference ──────────────────────────────────────────\n  gitConnectionId: z.string().max(100),\n  codebaseId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  repoId: z.string().max(200),\n  /** Full 40-char SHA or abbreviated SHA (stored as received from provider). */\n  sha: z.string().max(100),\n\n  // ── Commit content ────────────────────────────────────────────────────\n  /** Full commit message including body. */\n  message: z.string(),\n\n  // ── Author / committer ────────────────────────────────────────────────\n  /** Provider login of the author. Null for unlinked authors (no account). */\n  authorLogin: z.string().max(200).nullable().optional(),\n  /** Email from the git commit metadata. */\n  authorEmail: z.string().max(200),\n\n  // ── Timestamps ───────────────────────────────────────────────────────\n  /** When the author wrote the commit (git author date). */\n  authoredAt: z.string().datetime(),\n  /** When the committer applied the commit (git committer date). */\n  committedAt: z.string().datetime(),\n\n  // ── Graph ────────────────────────────────────────────────────────────\n  /** SHAs of immediate parent commits (empty for root commits). */\n  parentShas: z.array(z.string()).optional(),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type CommitsInput = z.infer<typeof commitsSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the branches VCA collection.\n *\n * Git branches from any connected provider.\n *\n * Identity tuple: (gitConnectionId, repoId, name)\n * ID prefix: brn_\n */\n\nimport { z } from 'zod'\n\nexport const branchesSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Git connection reference ──────────────────────────────────────────\n  gitConnectionId: z.string().max(100),\n  codebaseId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  repoId: z.string().max(200),\n  /** Branch name (e.g. 'main', 'feature/my-feature'). */\n  name: z.string().max(500),\n\n  // ── Branch state ─────────────────────────────────────────────────────\n  /** SHA of the commit at the tip of this branch. */\n  headSha: z.string().max(100),\n  /** Whether this branch has protection rules enabled. */\n  isProtected: z.boolean().default(false),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type BranchesInput = z.infer<typeof branchesSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the releases VCA collection.\n *\n * Git releases / tags from any connected provider.\n *\n * Identity tuple: (gitConnectionId, repoId, tagName)\n * ID prefix: rel_\n */\n\nimport { z } from 'zod'\n\nexport const releasesSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Git connection reference ──────────────────────────────────────────\n  gitConnectionId: z.string().max(100),\n  codebaseId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  repoId: z.string().max(200),\n  /** Tag name used to create the release (e.g. 'v1.2.3'). */\n  tagName: z.string().max(500),\n\n  // ── Release metadata ──────────────────────────────────────────────────\n  /** Human-readable release title (may differ from tagName). */\n  name: z.string().max(500).optional(),\n  /** Release body / changelog text. */\n  body: z.string().optional(),\n  /** True if marked as a pre-release by the author. */\n  isPrerelease: z.boolean().default(false),\n  /** True if the release is still a draft (not yet published). */\n  isDraft: z.boolean().default(false),\n  /** When the release was published. Null for draft releases. */\n  publishedAt: z.string().datetime().nullable().optional(),\n  /** Login of the user who created the release. */\n  authorLogin: z.string().max(200),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type ReleasesInput = z.infer<typeof releasesSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the workflow_runs VCA collection.\n *\n * CI/CD pipeline runs from any connected provider\n * (GitHub Actions, GitLab Pipelines, Forgejo Actions, etc.).\n *\n * Identity tuple: (gitConnectionId, repoId, runId)\n * ID prefix: wfr_\n */\n\nimport { z } from 'zod'\n\nexport const workflow_runsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Git connection reference ──────────────────────────────────────────\n  gitConnectionId: z.string().max(100),\n  codebaseId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  repoId: z.string().max(200),\n  /** Provider-assigned run/pipeline identifier (stable, numeric or string). */\n  runId: z.string().max(200),\n\n  // ── Run metadata ──────────────────────────────────────────────────────\n  /** Workflow / pipeline name as defined in the repository configuration. */\n  name: z.string().max(500),\n  /** Current lifecycle status. */\n  status: z.enum(['queued', 'in_progress', 'completed']),\n  /**\n   * Terminal outcome. Only set when status === 'completed'.\n   * null while still running or queued.\n   */\n  conclusion: z.enum(['success', 'failure', 'cancelled', 'skipped']).nullable().optional(),\n\n  // ── Commit / branch context ───────────────────────────────────────────\n  /** SHA of the commit this run was triggered against. */\n  headSha: z.string().max(100),\n  /** Branch name that triggered the run (null for tag-triggered runs). */\n  branchName: z.string().max(500).nullable().optional(),\n\n  // ── Timing ───────────────────────────────────────────────────────────\n  runStartedAt: z.string().datetime(),\n  /** Set when status transitions to 'completed'. */\n  completedAt: z.string().datetime().nullable().optional(),\n  /** Wall-clock duration in milliseconds. Null while still running. */\n  durationMs: z.number().int().nullable().optional(),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type Workflow_runsInput = z.infer<typeof workflow_runsSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the git_comments VCA collection.\n *\n * Issue, PR, commit, and review thread comments from any connected provider.\n * Stored as a unified collection; `parentType` discriminates the context.\n *\n * Named `git_comments` (prefix `gcm_`) to avoid collision with the existing\n * generic `comment` entity (prefix `cmnt`) used by process flows.\n *\n * Identity tuple: (gitConnectionId, repoId, commentId, parentType)\n * ID prefix: gcm_\n */\n\nimport { z } from 'zod'\n\nexport const git_commentsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Git connection reference ──────────────────────────────────────────\n  gitConnectionId: z.string().max(100),\n  codebaseId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  repoId: z.string().max(200),\n  /** Provider-assigned comment identifier. */\n  commentId: z.string().max(200),\n  /** The kind of entity this comment belongs to. */\n  parentType: z.enum(['issue', 'pr', 'commit', 'review']),\n\n  // ── Parent reference ──────────────────────────────────────────────────\n  /**\n   * Provider-side identifier of the parent entity.\n   * For 'issue' or 'pr': the issue/PR number as a string.\n   * For 'commit': the commit SHA.\n   * For 'review': the review identifier.\n   */\n  parentId: z.string().max(200),\n\n  // ── Comment content ───────────────────────────────────────────────────\n  body: z.string(),\n  authorLogin: z.string().max(200),\n\n  // ── Timestamps ───────────────────────────────────────────────────────\n  createdAt: z.string().datetime(),\n  updatedAt: z.string().datetime(),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type Git_commentsInput = z.infer<typeof git_commentsSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the reviews VCA collection.\n *\n * PR/MR review objects (the top-level review submission, not individual line comments).\n * Line-level comments are stored in the `review_comments` collection.\n *\n * Identity tuple: (gitConnectionId, repoId, prNumber, reviewId)\n * ID prefix: grv_\n */\n\nimport { z } from 'zod'\n\nexport const reviewsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Git connection reference ──────────────────────────────────────────\n  gitConnectionId: z.string().max(100),\n  codebaseId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  repoId: z.string().max(200),\n  /** FlowState pullrequests.id (FK) for cross-collection joins. */\n  pullrequestId: z.string().max(100).optional(),\n  /** PR/MR number within the repository (mirrors pullrequests.number). */\n  prNumber: z.number().int(),\n  /** Provider-assigned review identifier. */\n  reviewId: z.string().max(200),\n\n  // ── Review content ────────────────────────────────────────────────────\n  /** Final review disposition. */\n  state: z.enum(['approved', 'changes_requested', 'commented', 'dismissed']),\n  /** Top-level review comment body (may be empty string). */\n  body: z.string().optional(),\n  authorLogin: z.string().max(200),\n\n  // ── Timestamps ───────────────────────────────────────────────────────\n  submittedAt: z.string().datetime(),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type ReviewsInput = z.infer<typeof reviewsSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the review_comments VCA collection.\n *\n * Line-level review comments (inline code annotations on a PR/MR diff).\n * The parent review object lives in the `reviews` collection.\n *\n * Identity tuple: (gitConnectionId, repoId, commentId)\n * ID prefix: grc_\n */\n\nimport { z } from 'zod'\n\nexport const review_commentsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Git connection reference ──────────────────────────────────────────\n  gitConnectionId: z.string().max(100),\n  codebaseId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  repoId: z.string().max(200),\n  /** Provider-assigned comment identifier (globally unique within repo). */\n  commentId: z.string().max(200),\n\n  // ── Parent references ─────────────────────────────────────────────────\n  /** FlowState reviews.id (FK) for cross-collection joins. */\n  reviewId: z.string().max(100).optional(),\n  /** PR/MR number this comment belongs to. */\n  prNumber: z.number().int(),\n\n  // ── Diff location ─────────────────────────────────────────────────────\n  /** Relative path to the file being commented on. */\n  path: z.string().max(1000),\n  /** Line number in the diff. Null for file-level comments. */\n  line: z.number().int().nullable().optional(),\n  /** Which side of the diff the comment is on. */\n  side: z.enum(['LEFT', 'RIGHT']),\n\n  // ── Comment content ───────────────────────────────────────────────────\n  body: z.string(),\n  authorLogin: z.string().max(200),\n\n  // ── Timestamps ───────────────────────────────────────────────────────\n  createdAt: z.string().datetime(),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type Review_commentsInput = z.infer<typeof review_commentsSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the git_project_links VCA collection.\n *\n * Mapping table between FlowState Projects and provider-side project/group entities.\n * Allows a single FlowState project to track work across multiple provider projects\n * (e.g. a GitHub org with several repos grouped under one FlowState project).\n *\n * Identity tuple: (flowstateProjectId, gitConnectionId, externalProjectId)\n * ID prefix: gpl_\n */\n\nimport { z } from 'zod'\n\nexport const git_project_linksSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  /** FlowState project ID (FK → projects.id). */\n  flowstateProjectId: z.string().max(100),\n  /** FK → git_connections.id */\n  gitConnectionId: z.string().max(100),\n  /** Provider-side project / group / namespace identifier. */\n  externalProjectId: z.string().max(200),\n\n  // ── Link metadata ─────────────────────────────────────────────────────\n  /** Web URL of the external project for deep-linking in the UI. */\n  externalProjectUrl: z.string().max(1000).optional(),\n  /**\n   * Which FlowState fields are kept in sync from the provider.\n   * Example: ['title', 'description', 'members']\n   */\n  syncedFields: z.array(z.string()).optional(),\n\n  // ── Provider-specific extras ──────────────────────────────────────────\n  providerData: z.record(z.string(), z.unknown()).optional(),\n})\n\nexport type Git_project_linksInput = z.infer<typeof git_project_linksSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Zod schema for the connector_webhook_events VCA collection.\n *\n * Inbound webhook audit log for all Git provider events. Every raw webhook\n * delivery is persisted here before dispatch to domain handlers. This gives\n * Phase 7 idempotency (deliveryId dedup) and auditability for failed events.\n *\n * Identity tuple: (provider, deliveryId)\n * ID prefix: cwe_\n */\n\nimport { z } from 'zod'\n\nexport const connector_webhook_eventsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  // ── Identity tuple ────────────────────────────────────────────────────\n  /** VCS provider that sent this event (e.g. 'github', 'gitlab', 'forgejo'). */\n  provider: z.string().max(50),\n  /**\n   * Provider-assigned delivery identifier (UUID or opaque string).\n   * Used for idempotency: duplicate deliveries are detected by (provider, deliveryId).\n   * GitHub: X-GitHub-Delivery header. GitLab: X-Gitlab-Event-UUID.\n   */\n  deliveryId: z.string().max(200),\n\n  // ── Connection reference ───────────────────────────────────────────────\n  /**\n   * FK → git_connections.id. Nullable because the handler may fail to match\n   * the incoming event to a known connection (e.g. unregistered installation).\n   */\n  gitConnectionId: z.string().max(100).nullable().optional(),\n\n  // ── Event classification ──────────────────────────────────────────────\n  /** Provider event type (e.g. 'push', 'pull_request', 'workflow_run'). */\n  eventType: z.string().max(200),\n\n  // ── Raw event data ────────────────────────────────────────────────────\n  /** Full deserialized payload from the provider. */\n  payload: z.record(z.string(), z.unknown()),\n  /** Relevant HTTP headers (signature, delivery ID, content-type). */\n  headers: z.record(z.string(), z.unknown()),\n\n  // ── Processing lifecycle ──────────────────────────────────────────────\n  receivedAt: z.string().datetime(),\n  /** Set when processing finishes (success or terminal failure). */\n  processedAt: z.string().datetime().nullable().optional(),\n  /** Processing state machine. */\n  status: z.enum(['received', 'processed', 'failed']),\n  /** Human-readable error message when status === 'failed'. */\n  errorMessage: z.string().nullable().optional(),\n})\n\nexport type Connector_webhook_eventsInput = z.infer<typeof connector_webhook_eventsSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const goalSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500).optional(),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  status: z.string().max(50),\n  priority: z.string().max(50),\n  category: z.string().max(200).optional(),\n  progressMode: z.string().max(200).optional(),\n  currentProgress: z.number().min(0).max(100).optional(),\n  completed: z.boolean(),\n  dueDate: z.string().max(200).optional(),\n  targetDate: z.string().max(200).optional(),\n  parentGoalId: z.string().max(100).optional(),\n  metrics: z.array(z.unknown()).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type GoalInput = z.infer<typeof goalSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const messageSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  conversationId: z.string().max(100),\n  role: z.string().max(50),\n  content: z.string().max(100000),\n  toolCalls: z.array(z.unknown()).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type MessageInput = z.infer<typeof messageSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const milestoneSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500).optional(),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  completed: z.boolean(),\n  status: z.string().max(50).optional(),\n  sortOrder: z.number().int().min(0).max(999999).optional(),\n  projectId: z.string().max(100),\n  goalId: z.string().max(100),\n  startAt: z.string().max(200).datetime().optional(),\n  startedAt: z.string().max(200).datetime().optional(),\n  dueAt: z.string().max(200).datetime().optional(),\n  completedAt: z.string().max(200).datetime().optional(),\n  archived: z.boolean(),\n  timeBudgetHours: z.number().optional(),\n  categoryId: z.string().max(100).optional(),\n  tagIds: z.array(z.string()).optional(),\n  version: z.number().int(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type MilestoneInput = z.infer<typeof milestoneSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const orgSchema = z.object({\n  id: z.string().max(100),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type OrgInput = z.infer<typeof orgSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const processesSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  version: z.string().max(200).optional(),\n  status: z.string().max(50),\n  category: z.string().max(200).optional(),\n  startStepId: z.string().max(100).optional(),\n  documentId: z.string().max(100).optional(),\n  flowId: z.string().max(100).optional(),\n  trigger: z.record(z.string(), z.unknown()).optional(),\n  inputSchema: z.record(z.string(), z.unknown()).optional(),\n  outputSchema: z.record(z.string(), z.unknown()).optional(),\n  executionConfig: z.record(z.string(), z.unknown()).optional(),\n  maxSubprocessDepth: z.number().int().optional(),\n  executorAgentId: z.string().max(100).optional(),\n  statistics: z.record(z.string(), z.unknown()).optional(),\n  requiredCapabilities: z.array(z.string()).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type ProcessesInput = z.infer<typeof processesSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const processExecutionsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  processId: z.string().max(100),\n  processVersion: z.string().max(200).optional(),\n  status: z.string().max(50),\n  progress: z.number().int().min(0).max(100),\n  currentStepId: z.string().max(100).optional(),\n  startedAt: z.string().max(200).datetime().optional(),\n  completedAt: z.string().max(200).datetime().optional(),\n  durationMs: z.number().int().min(0).max(2147483647).optional(),\n  retryCount: z.number().int().min(0).max(100),\n  maxRetries: z.number().int().min(0).max(100),\n  inputs: z.record(z.string(), z.unknown()),\n  outputs: z.record(z.string(), z.unknown()).optional(),\n  variables: z.record(z.string(), z.unknown()),\n  context: z.record(z.string(), z.unknown()),\n  stepHistory: z.array(z.unknown()),\n  error: z.record(z.string(), z.unknown()).optional(),\n  correlationId: z.string().max(100).optional(),\n  externalId: z.string().max(100).optional(),\n  parentExecutionId: z.string().max(100).optional(),\n  depth: z.number().int().min(0).max(100).optional(),\n  resumeAt: z.string().max(200).datetime().optional(),\n  workerId: z.string().max(100).optional(),\n  processName: z.string().max(200).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type ProcessExecutionsInput = z.infer<typeof processExecutionsSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const processStepsSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  processId: z.string().max(100),\n  templateId: z.string().max(100).optional(),\n  name: z.string().max(500),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  stepType: z.string().max(200),\n  order: z.number().int().min(0).max(999999),\n  optional: z.boolean(),\n  enabled: z.boolean(),\n  nextStepId: z.string().max(100).optional(),\n  action: z.record(z.string(), z.unknown()).optional(),\n  conditions: z.array(z.record(z.string(), z.unknown())).optional(),\n  outputs: z.array(z.record(z.string(), z.unknown())).optional(),\n  outputExtraction: z.record(z.string(), z.unknown()).optional(),\n  inputs: z.record(z.string(), z.unknown()).optional(),\n  requiredVariables: z.array(z.string()).optional(),\n  position: z.record(z.string(), z.unknown()).optional(),\n  estimatedDurationMinutes: z.number().int().optional(),\n  icon: z.string().max(50).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type ProcessStepsInput = z.infer<typeof processStepsSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const projectSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500).optional(),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  completed: z.boolean(),\n  status: z.string().max(50).optional(),\n  sortOrder: z.number().int().min(0).max(999999).optional(),\n  goalId: z.string().max(100).optional(),\n  startAt: z.string().max(200).datetime().optional(),\n  startedAt: z.string().max(200).datetime().optional(),\n  dueAt: z.string().max(200).datetime().optional(),\n  completedAt: z.string().max(200).datetime().optional(),\n  archived: z.boolean(),\n  codebaseId: z.string().max(100).optional(),\n  sourceTemplateId: z.string().max(100).optional(),\n  timeBudgetHours: z.number().optional(),\n  categoryId: z.string().max(100).optional(),\n  tagIds: z.array(z.string()).optional(),\n  productId: z.string().max(100).optional(),\n  roadmapId: z.string().max(100).optional(),\n  initiativeId: z.string().max(100).optional(),\n  version: z.number().int(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type ProjectInput = z.infer<typeof projectSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const recordSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  schemaId: z.string().max(100),\n  title: z.string().max(500),\n  status: z.string().max(50).optional(),\n  parentId: z.string().max(100).optional(),\n  parentCollection: z.string().max(200).optional(),\n  data: z.record(z.string(), z.unknown()),\n  archived: z.boolean(),\n  completed: z.boolean().optional(),\n  completedAt: z.string().max(200).datetime().optional(),\n  startedAt: z.string().max(200).datetime().optional(),\n  sortOrder: z.number().int().min(0).max(999999).optional(),\n  assigneeId: z.string().max(100).optional(),\n  priority: z.number().int().min(0).max(4).optional(),\n  dueAt: z.string().max(200).datetime().optional(),\n  amount: z.number().min(-999999999).max(999999999).multipleOf(0.01).optional(),\n  version: z.number().int().min(1).max(9999999),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type RecordInput = z.infer<typeof recordSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const relationSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  sourceId: z.string().max(100),\n  sourceCollection: z.string().max(200),\n  sourceSchemaId: z.string().max(100).optional(),\n  targetId: z.string().max(100),\n  targetCollection: z.string().max(200),\n  targetSchemaId: z.string().max(100).optional(),\n  relationType: z.string().max(200),\n  data: z.record(z.string(), z.unknown()).optional(),\n  sortOrder: z.number().int().min(0).max(999999).optional(),\n  label: z.string().max(255).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type RelationInput = z.infer<typeof relationSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const roleSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  scopeType: z.string().max(200).optional(),\n  scopeId: z.string().max(100).optional(),\n  builtIn: z.boolean(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type RoleInput = z.infer<typeof roleSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const roleMembershipSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  roleId: z.string().max(100),\n  grantedBy: z.string().max(200),\n  scopeType: z.string().max(200).optional(),\n  scopeId: z.string().max(100).optional(),\n  status: z.string().max(50).default('active'),\n  expiresAt: z.string().max(200).datetime().optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type RoleMembershipInput = z.infer<typeof roleMembershipSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const schemaSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  title: z.string().max(500),\n  description: z.string().max(100000),\n  icon: z.string().max(50).optional(),\n  category: z.string().max(200),\n  target: z.string().max(20),\n  fields: z.array(z.record(z.string(), z.unknown())),\n  titleField: z.string().max(200),\n  defaultSort: z.record(z.string(), z.unknown()).optional(),\n  ownerPluginId: z.string().max(100).optional(),\n  builtIn: z.boolean(),\n  version: z.number().int().min(0).max(9999),\n  archived: z.boolean(),\n  classLevelPermissions: z.record(z.string(), z.unknown()).optional(),\n  encryptedFields: z.array(z.record(z.string(), z.unknown())).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type SchemaInput = z.infer<typeof schemaSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const serviceKeySchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  serviceName: z.string().max(200),\n  publicKey: z.string().max(50000),\n  fingerprint: z.string().max(200),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type ServiceKeyInput = z.infer<typeof serviceKeySchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const stepTemplatesSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  category: z.string().max(200),\n  stepType: z.string().max(200),\n  action: z.record(z.string(), z.unknown()),\n  inputs: z.record(z.string(), z.unknown()).optional(),\n  outputs: z.record(z.string(), z.unknown()).optional(),\n  outputExtraction: z.record(z.string(), z.unknown()).optional(),\n  requiredVariables: z.array(z.string()).optional(),\n  cli: z.record(z.string(), z.unknown()).optional(),\n  versionField: z.string().max(200).optional(),\n  tags: z.array(z.string()).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type StepTemplatesInput = z.infer<typeof stepTemplatesSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const taskSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500).optional(),\n  title: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  dueAt: z.string().max(200).datetime().optional(),\n  startAt: z.string().max(200).datetime().optional(),\n  startedAt: z.string().max(200).datetime().optional(),\n  completedAt: z.string().max(200).datetime().optional(),\n  status: z.string().max(50).default('todo').optional(),\n  type: z.string().max(200).optional(),\n  completed: z.boolean().optional(),\n  projectId: z.string().max(100).optional(),\n  milestoneId: z.string().max(100).optional(),\n  parentTaskId: z.string().max(100).optional(),\n  archived: z.boolean(),\n  timeBudgetHours: z.number().optional(),\n  isRecurring: z.boolean().optional(),\n  recurrenceRule: z.string().max(200).optional(),\n  parentRecurrenceId: z.string().max(100).optional(),\n  recurrenceInstanceDate: z.string().max(200).datetime().optional(),\n  categoryId: z.string().max(100).optional(),\n  tagIds: z.array(z.string()).optional(),\n  priority: z.number().int().min(0).max(4).optional(),\n  assigneeId: z.string().max(100).optional(),\n  estimatePoints: z.number().min(0).max(10000).multipleOf(0.5).optional(),\n  sortOrder: z.number().int().min(0).max(999999).optional(),\n  version: z.number().int().min(1).max(9999999),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type TaskInput = z.infer<typeof taskSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const teamMemberSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  userName: z.string().max(200),\n  slug: z.string().max(200).optional(),\n  userEmail: z.string().max(200).optional(),\n  userAvatar: z.string().max(200).optional(),\n  role: z.string().max(50),\n  isAgent: z.boolean(),\n  joinedAt: z.string().max(200).optional(),\n  raciAssignments: z.record(z.string(), z.unknown()).optional(),\n  productId: z.string().max(100).optional(),\n  tenantId: z.string().max(100).optional(),\n  lastHeartbeat: z.string().max(50).datetime().optional(),\n  containerStatus: z.string().max(20).optional(),\n})\n\nexport type TeamMemberInput = z.infer<typeof teamMemberSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const templateSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  templateType: z.string().max(200),\n  name: z.string().max(500),\n  content: z.string().max(100000),\n  version: z.string().max(200),\n  isDefault: z.boolean(),\n  data: z.record(z.string(), z.unknown()).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type TemplateInput = z.infer<typeof templateSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const timeEntrySchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  taskId: z.string().max(100),\n  startAt: z.string().max(200).datetime(),\n  endAt: z.string().max(200).optional(),\n  duration: z.number().min(0).max(999999).optional(),\n  categoryId: z.string().max(100).optional(),\n  tagIds: z.array(z.string()).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type TimeEntryInput = z.infer<typeof timeEntrySchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const userSchema = z.object({\n  id: z.string().max(100),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  email: z.string().max(200).optional(),\n  authUserId: z.string().max(100).optional(),\n  timezone: z.string().max(200).optional(),\n  archived: z.boolean(),\n  onboarded: z.boolean(),\n  avatarUrl: z.string().max(500).optional(),\n  role: z.string().max(50).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type UserInput = z.infer<typeof userSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const vaultSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  description: z.string().max(100000).optional(),\n  icon: z.string().max(50).optional(),\n  encryptedVaultKey: z.string().max(50000).optional(),\n  shared: z.boolean(),\n  keyVersion: z.number().int().min(1).max(9999),\n  rotationPending: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type VaultInput = z.infer<typeof vaultSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const vaultItemSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  vaultId: z.string().max(100),\n  name: z.string().max(500),\n  type: z.string().max(200),\n  provider: z.string().max(200).optional(),\n  encryptedPayload: z.string().max(100000),\n  iv: z.string().max(500),\n  authTag: z.string().max(500),\n  keyWraps: z.array(z.unknown()),\n  keyVersion: z.number().int(),\n  url: z.string().max(500).optional(),\n  tags: z.array(z.string()).optional(),\n  notes: z.string().max(5000).optional(),\n  expiresAt: z.string().max(200).datetime().optional(),\n  lastRotatedAt: z.string().max(200).optional(),\n  lastAccessedAt: z.string().max(200).optional(),\n  archived: z.boolean(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type VaultItemInput = z.infer<typeof vaultItemSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const workerSchema = z.object({\n  id: z.string().max(100),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  status: z.string().max(20),\n  lastHeartbeat: z.string().max(200).datetime(),\n  currentExecutionId: z.string().max(100).optional(),\n  capabilities: z.array(z.string()),\n  mode: z.string().max(20),\n  hostname: z.string().max(200),\n  ip: z.string().max(200).optional(),\n  healthPort: z.number().int().min(0).max(65535).optional(),\n  maxConcurrent: z.number().int().min(1).max(1000),\n  pollIntervalMs: z.number().int().min(100).max(3600000),\n  registeredAt: z.string().max(200).datetime(),\n  registeredBy: z.string().max(200),\n  version: z.string().max(200).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type WorkerInput = z.infer<typeof workerSchema>\n","// AUTO-GENERATED by generate-zod-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const workspaceSchema = z.object({\n  id: z.string().max(100),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n  userId: z.string().max(100).optional(),\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n  metadata: z.record(z.string(), z.unknown()).optional(),\n  extended: z.record(z.string(), z.unknown()).optional(),\n  name: z.string().max(500),\n  title: z.string().max(500),\n  description: z.string().max(100000),\n  tags: z.array(z.string()).optional(),\n  status: z.string().max(50),\n  archivedAt: z.string().max(200).datetime().optional(),\n  archived: z.boolean(),\n  icon: z.string().max(50).optional(),\n  color: z.string().max(20).optional(),\n  tenantId: z.string().max(100).optional(),\n})\n\nexport type WorkspaceInput = z.infer<typeof workspaceSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const sagaAgentStateSchema = z.object({\n  id: z.string().max(200),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  handle: z.string().max(64),\n  walletAddress: z.string().max(200),\n  chain: z.string().max(50),\n  publicKey: z.string().max(500).optional(),\n  homeHubUrl: z.string().max(500),\n  directoryUrl: z.string().max(500).optional(),\n  registrationTxHash: z.string().max(200).optional(),\n  parentSagaId: z.string().max(200).optional(),\n  cloneDepth: z.number().int().min(0).max(100).default(0),\n\n  name: z.string().max(200),\n  avatar: z.string().max(1000).optional(),\n  headline: z.string().max(500).optional(),\n  bio: z.string().max(5000).optional(),\n  profileType: z.enum(['agent', 'human', 'hybrid']).default('agent'),\n\n  currentSyncVersion: z.number().int().min(0).default(0),\n  lastSyncAt: z.string().max(200).datetime().optional(),\n  registeredSystems: z.array(z.string()).optional(),\n\n  registeredAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n})\n\nexport type SagaAgentStateInput = z.infer<typeof sagaAgentStateSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nconst sagaScopeSchema = z.object({\n  originSystemUrl: z.string(),\n  originSystemId: z.string(),\n  originOrgId: z.string(),\n  syncPolicy: z.enum(['agent-portable', 'public', 'org-internal', 'org-confidential']),\n  lastSyncedAt: z.string().max(200).datetime().nullable(),\n})\n\nexport const sagaMemorySchema = z.object({\n  id: z.string().max(200),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  agentId: z.string().max(200),\n  memoryType: z.enum(['episodic', 'semantic', 'procedural']),\n\n  eventType: z.string().max(100).optional(),\n  summary: z.string().max(10000),\n  learnings: z.string().max(10000).optional(),\n  significance: z.number().min(0).max(1).optional(),\n\n  knowledgeDomain: z.string().max(200).optional(),\n  expertiseLevel: z.enum(['expert', 'proficient', 'familiar']).optional(),\n\n  workflowName: z.string().max(200).optional(),\n  workflowSteps: z.array(z.string()).optional(),\n\n  scope: sagaScopeSchema,\n\n  linkedTaskId: z.string().max(200).optional(),\n  linkedSystemTaskId: z.string().max(200).optional(),\n\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n})\n\nexport type SagaMemoryInput = z.infer<typeof sagaMemorySchema>\nexport { sagaScopeSchema }\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\nimport { sagaScopeSchema } from './sagaMemory'\n\nexport const sagaSkillSchema = z.object({\n  id: z.string().max(200),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  agentId: z.string().max(200),\n  name: z.string().max(200),\n  category: z.string().max(200),\n  verificationType: z.enum(['verified', 'self-reported', 'endorsed']),\n\n  verificationSource: z.string().max(500).optional(),\n  verificationProof: z.string().max(1000).optional(),\n  completionCount: z.number().int().min(0).default(0),\n  confidence: z.number().min(0).max(1).default(0),\n  firstVerified: z.string().max(200).datetime().optional(),\n  lastVerified: z.string().max(200).datetime().optional(),\n\n  endorsedByWallet: z.string().max(200).optional(),\n  endorsedByHandle: z.string().max(64).optional(),\n  endorsementSignature: z.string().max(500).optional(),\n\n  scope: sagaScopeSchema,\n\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n})\n\nexport type SagaSkillInput = z.infer<typeof sagaSkillSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\nimport { sagaScopeSchema } from './sagaMemory'\n\nexport const sagaTaskSummarySchema = z.object({\n  id: z.string().max(200),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  agentId: z.string().max(200),\n  totalCompleted: z.number().int().min(0).default(0),\n  totalFailed: z.number().int().min(0).default(0),\n  totalInProgress: z.number().int().min(0).default(0),\n  firstTaskAt: z.string().max(200).datetime().optional(),\n  lastTaskAt: z.string().max(200).datetime().optional(),\n  bySkill: z.record(z.string(), z.number()).optional(),\n\n  scope: sagaScopeSchema,\n\n  createdAt: z.string().max(200).datetime(),\n  updatedAt: z.string().max(200).datetime(),\n})\n\nexport type SagaTaskSummaryInput = z.infer<typeof sagaTaskSummarySchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const sagaSystemRegistrySchema = z.object({\n  id: z.string().max(200),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  systemUrl: z.string().max(500),\n  systemId: z.string().max(100),\n  walletAddress: z.string().max(200),\n  chain: z.string().max(50),\n\n  exportPolicy: z.object({\n    defaultClassification: z.string(),\n    agentPortableByDefault: z.array(z.string()),\n    neverExport: z.array(z.string()),\n    requiresApproval: z.array(z.string()),\n  }).optional(),\n\n  sharingPolicy: z.object({\n    canShareTo: z.array(z.string()),\n    cannotShareTo: z.array(z.string()),\n    requireOriginConsent: z.boolean(),\n  }).optional(),\n\n  conformanceLevel: z.number().int().min(1).max(4).default(1),\n  lastSyncAt: z.string().max(200).datetime().optional(),\n  registeredAt: z.string().max(200).datetime(),\n})\n\nexport type SagaSystemRegistryInput = z.infer<typeof sagaSystemRegistrySchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const sagaSyncLogSchema = z.object({\n  id: z.string().max(200),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  agentId: z.string().max(200),\n  systemId: z.string().max(100),\n  direction: z.enum(['push', 'pull', 'hub-push', 'hub-pull']),\n  collectionName: z.string().max(100),\n  documentCount: z.number().int().min(0).default(0),\n  checkpointBefore: z.record(z.string(), z.unknown()).optional(),\n  checkpointAfter: z.record(z.string(), z.unknown()).optional(),\n  status: z.enum(['success', 'partial', 'failed']),\n  rejectedCount: z.number().int().min(0).default(0),\n  rejectionReasons: z.array(z.string()).optional(),\n\n  createdAt: z.string().max(200).datetime(),\n})\n\nexport type SagaSyncLogInput = z.infer<typeof sagaSyncLogSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { z } from 'zod'\n\nexport const sagaHubPeerSchema = z.object({\n  id: z.string().max(200),\n  orgId: z.string().max(100),\n  workspaceId: z.string().max(100).optional(),\n\n  peerHubUrl: z.string().max(500),\n  peerHubId: z.string().max(200),\n  peerWalletAddress: z.string().max(200),\n  peerPublicKey: z.string().max(500).optional(),\n  federationAgreementId: z.string().max(200).optional(),\n  status: z.enum(['active', 'suspended', 'pending']).default('pending'),\n  lastReplicationAt: z.string().max(200).datetime().optional(),\n  sharedAgentCount: z.number().int().min(0).default(0),\n  replicationConfig: z.object({\n    collections: z.array(z.string()),\n    pollingIntervalMs: z.number().int().min(1000),\n    batchSize: z.number().int().min(1).max(1000),\n  }).optional(),\n\n  registeredAt: z.string().max(200).datetime(),\n})\n\nexport type SagaHubPeerInput = z.infer<typeof sagaHubPeerSchema>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb';\nimport { QueryOperator } from '../operators/QueryOperator';\nimport { MutationOperator } from '../operators/MutationOperator';\nimport type { QueryOptions } from '../operators/types';\nimport type { TaskModel } from '../../models/Task';\nimport { createId } from '../../index';\n\n/**\n * Task query filters\n */\nexport interface TaskFilters {\n  /** Organization ID (required for multi-tenancy) */\n  orgId?: string;\n  /** Filter by user ID */\n  userId?: string;\n  /** Filter by workspace ID */\n  workspaceId?: string;\n  /** Filter by project ID */\n  projectId?: string;\n  /** Filter by milestone ID */\n  milestoneId?: string;\n  /** Filter by parent task ID for subtasks */\n  parentTaskId?: string;\n  /** Exclude subtasks (tasks with parentTaskId) - set to true to only show top-level tasks */\n  excludeSubtasks?: boolean;\n  /** Filter by task status */\n  status?: TaskModel['status'];\n  /** Filter by completion state */\n  completed?: boolean;\n  /** Filter by archived state (default: false) */\n  archived?: boolean;\n}\n\n/**\n * Task creation input\n */\nexport interface CreateTaskInput {\n  /** Task title */\n  title: string;\n  /** Task description */\n  description: string;\n  /** Organization ID */\n  orgId: string;\n  /** User ID who created the task */\n  userId: string;\n  /** Parent workspace ID (required - all tasks belong to a workspace) */\n  workspaceId: string;\n  /** Optional parent project ID (tasks can exist at workspace level) */\n  projectId?: string;\n  /** Optional parent milestone ID (tasks can exist at project level) */\n  milestoneId?: string;\n  /** Optional parent task ID for creating subtasks */\n  parentTaskId?: string;\n  /** Optional task status (default: 'todo') */\n  status?: TaskModel['status'];\n  /** Optional scheduled start date */\n  startAt?: string;\n  /** Optional due date */\n  dueAt?: string;\n  /** Optional task type (default: 'todo') */\n  type?: TaskModel['type'];\n  /** Optional category ID */\n  categoryId?: string;\n  /** Optional tag IDs */\n  tagIds?: string[];\n  /** Optional time budget in hours */\n  timeBudgetHours?: number;\n  /** Optional start date */\n  startedAt?: string;\n  /** Optional completion date */\n  completedAt?: string;\n  /** Optional recurrence flag */\n  isRecurring?: boolean;\n  /** Optional iCal RRULE recurrence rule string */\n  recurrenceRule?: string;\n  /** Optional parent recurrence ID */\n  parentRecurrenceId?: string;\n  /** Optional recurrence instance date */\n  recurrenceInstanceDate?: string;\n  /** Optional priority (0-4, default: 0) */\n  priority?: number;\n  /** Optional assignee team member ID */\n  assigneeId?: string;\n  /** Optional sort order */\n  sortOrder?: number;\n}\n\n/**\n * Task update input\n */\nexport interface UpdateTaskInput {\n  /** Task ID to update */\n  id: string;\n  /** Partial task data to update */\n  updates: Partial<TaskModel>;\n}\n\n/**\n * Framework-agnostic task operations\n *\n * Provides query and mutation operators for tasks that work in any environment.\n * Use this directly in Node.js scripts or wrap with framework hooks (React, Vue, etc.).\n *\n * @example\n * ```typescript\n * // Node.js script usage\n * const taskOps = new TaskOperator(db);\n * const query = taskOps.query({ orgId: 'org_123', status: 'in_progress' });\n * const tasks = await query.exec();\n *\n * // Create task\n * const mutation = taskOps.createMutation();\n * const newTask = await mutation.execute({\n *   title: 'New Task',\n *   description: 'Task description',\n *   orgId: 'org_123',\n *   userId: 'user_456',\n *   projectId: 'proj_789',\n *   milestoneId: 'mile_101'\n * });\n * ```\n */\nexport class TaskOperator {\n  constructor(private db: RxDatabase) {}\n\n  /**\n   * Create a query operator for tasks\n   *\n   * Returns a QueryOperator that can be used imperatively (exec) or reactively (observable).\n   *\n   * @param filters - Task filters to apply\n   * @param options - Optional query options (sort, limit, skip)\n   * @returns QueryOperator instance for tasks\n   */\n  query(\n    filters: TaskFilters,\n    options?: {\n      sort?: string;\n      limit?: number;\n      skip?: number;\n    }\n  ): QueryOperator<TaskModel> {\n    const collection = this.db.collections.tasks;\n\n    // Build selector - orgId is optional to support \"View All\" mode across organizations\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    // Only add orgId filter if provided (allows cross-org queries when not specified)\n    if (filters.orgId) {\n      selector.orgId = { $eq: filters.orgId };\n    }\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.milestoneId) {\n      selector.milestoneId = { $eq: filters.milestoneId };\n    } else if (filters.projectId) {\n      selector.projectId = { $eq: filters.projectId };\n    }\n\n    if (filters.parentTaskId) {\n      selector.parentTaskId = { $eq: filters.parentTaskId };\n    } else if (filters.excludeSubtasks) {\n      // Exclude tasks that have a parentTaskId (i.e., subtasks)\n      console.log('[TaskOperator] Applying excludeSubtasks filter');\n      selector.parentTaskId = { $exists: false };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.status) {\n      selector.status = { $eq: filters.status };\n    }\n\n    // Use $ne: true for completed filter to match documents where completed is false, undefined, or missing\n    if (filters.completed !== undefined) {\n      selector.completed = filters.completed === true ? { $eq: true } : { $ne: true };\n    }\n\n    const queryOptions: QueryOptions<TaskModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    };\n\n    console.log('[TaskOperator] Query selector:', JSON.stringify(selector, null, 2));\n    console.log('[TaskOperator] Filters:', JSON.stringify(filters, null, 2));\n\n    return new QueryOperator<TaskModel>(collection, queryOptions);\n  }\n\n  /**\n   * Find a single task by ID\n   *\n   * @param taskId - Task ID to find\n   * @returns Promise resolving to task or null if not found\n   */\n  async findOne(taskId: string): Promise<TaskModel | null> {\n    const doc = await this.db.collections.tasks.findOne(taskId).exec();\n    return doc ? (doc.toJSON() as TaskModel) : null;\n  }\n\n  /**\n   * Count tasks matching the given filters\n   *\n   * @param filters - Task filters to apply\n   * @returns Promise resolving to count of matching tasks\n   */\n  async count(filters: TaskFilters): Promise<number> {\n    const collection = this.db.collections.tasks;\n\n    // Build selector - orgId is optional to support \"View All\" mode across organizations\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    // Only add orgId filter if provided\n    if (filters.orgId) {\n      selector.orgId = { $eq: filters.orgId };\n    }\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.milestoneId) {\n      selector.milestoneId = { $eq: filters.milestoneId };\n    } else if (filters.projectId) {\n      selector.projectId = { $eq: filters.projectId };\n    }\n\n    if (filters.parentTaskId) {\n      selector.parentTaskId = { $eq: filters.parentTaskId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.status) {\n      selector.status = { $eq: filters.status };\n    }\n\n    // Use $ne: true for completed filter to match documents where completed is false, undefined, or missing\n    if (filters.completed !== undefined) {\n      selector.completed = filters.completed === true ? { $eq: true } : { $ne: true };\n    }\n\n    return await collection.count({ selector }).exec();\n  }\n\n  /**\n   * Create a mutation operator for creating tasks\n   *\n   * @returns MutationOperator for task creation\n   */\n  createMutation(): MutationOperator<TaskModel, CreateTaskInput> {\n    return new MutationOperator<TaskModel, CreateTaskInput>(this.db.collections.tasks, {\n      mutationFn: async (collection, input) => {\n        const now = new Date().toISOString();\n        const task: TaskModel = {\n          id: createId('task'),\n          orgId: input.orgId,\n          userId: input.userId,\n          workspaceId: input.workspaceId,\n          title: input.title,\n          description: input.description,\n          name: input.title.toLowerCase().replace(/\\s+/g, '-'),\n          status: input.status || 'todo',\n          type: input.type || 'todo',\n          completed: false,\n          archived: false,\n          priority: input.priority ?? 0,\n          assigneeId: input.assigneeId ?? '',\n          sortOrder: input.sortOrder ?? 0,\n          version: 1,\n          projectId: input.projectId ?? '',\n          milestoneId: input.milestoneId ?? '',\n          parentTaskId: input.parentTaskId ?? '',\n          createdAt: now,\n          updatedAt: now,\n          ...(input.startAt && { startAt: input.startAt }),\n          ...(input.dueAt && { dueAt: input.dueAt }),\n          ...(input.categoryId && { categoryId: input.categoryId }),\n          ...(input.tagIds && { tagIds: input.tagIds }),\n          ...(input.timeBudgetHours && { timeBudgetHours: input.timeBudgetHours }),\n          ...(input.startedAt && { startedAt: input.startedAt }),\n          ...(input.completedAt && { completedAt: input.completedAt }),\n          ...(input.isRecurring !== undefined && { isRecurring: input.isRecurring }),\n          ...(input.recurrenceRule && { recurrenceRule: input.recurrenceRule }),\n          ...(input.parentRecurrenceId && { parentRecurrenceId: input.parentRecurrenceId }),\n          ...(input.recurrenceInstanceDate && { recurrenceInstanceDate: input.recurrenceInstanceDate }),\n        };\n\n        await collection.insert(task);\n        return task;\n      },\n    });\n  }\n\n  /**\n   * Create a mutation operator for updating tasks\n   *\n   * @returns MutationOperator for task updates\n   */\n  updateMutation(): MutationOperator<TaskModel, UpdateTaskInput> {\n    return new MutationOperator<TaskModel, UpdateTaskInput>(this.db.collections.tasks, {\n      mutationFn: async (collection, { id, updates }) => {\n        const doc = await collection.findOne(id).exec();\n        if (!doc) {\n          throw new Error(`Task ${id} not found`);\n        }\n\n        await doc.update({\n          $set: {\n            ...updates,\n            updatedAt: new Date().toISOString(),\n          },\n        });\n\n        return doc.toJSON() as TaskModel;\n      },\n    });\n  }\n\n  /**\n   * Create a mutation operator for deleting tasks (soft delete)\n   *\n   * Marks task as archived rather than physically deleting it.\n   *\n   * @returns MutationOperator for task deletion\n   */\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.tasks, {\n      mutationFn: async (collection, taskId) => {\n        const doc = await collection.findOne(taskId).exec();\n        if (!doc) {\n          throw new Error(`Task ${taskId} not found`);\n        }\n\n        await doc.update({\n          $set: {\n            archived: true,\n            updatedAt: new Date().toISOString(),\n          },\n        });\n      },\n    });\n  }\n\n  /**\n   * Create a mutation operator for completing tasks\n   *\n   * Sets task status to 'done' and marks as completed.\n   *\n   * @returns MutationOperator for task completion\n   */\n  completeMutation(): MutationOperator<TaskModel, string> {\n    return new MutationOperator<TaskModel, string>(this.db.collections.tasks, {\n      mutationFn: async (collection, taskId) => {\n        const doc = await collection.findOne(taskId).exec();\n        if (!doc) {\n          throw new Error(`Task ${taskId} not found`);\n        }\n\n        const now = new Date().toISOString();\n        await doc.update({\n          $set: {\n            status: 'done',\n            completed: true,\n            completedAt: now,\n            updatedAt: now,\n          },\n        });\n\n        return doc.toJSON() as TaskModel;\n      },\n    });\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb';\nimport { QueryOperator } from '../operators/QueryOperator';\nimport { MutationOperator } from '../operators/MutationOperator';\nimport type { QueryOptions } from '../operators/types';\nimport type { OrgModel } from '../../models/Org';\nimport { createId } from '../../index';\n\nexport interface OrgFilters {\n  /** Filter by user ID (owner) */\n  userId?: string;\n  /** Filter by archived state (default: false) */\n  archived?: boolean;\n}\n\nexport interface CreateOrgInput {\n  /** Organization name */\n  name: string;\n  /** Organization description */\n  description: string;\n  /** User ID of organization creator/owner */\n  userId: string;\n}\n\nexport interface UpdateOrgInput {\n  /** Org ID to update */\n  id: string;\n  /** Partial org data to update */\n  updates: Partial<OrgModel>;\n}\n\nexport class OrgOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: OrgFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<OrgModel> {\n    const collection = this.db.collections.orgs;\n\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    const queryOptions: QueryOptions<OrgModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    };\n\n    return new QueryOperator<OrgModel>(collection, queryOptions);\n  }\n\n  async findOne(orgId: string): Promise<OrgModel | null> {\n    const doc = await this.db.collections.orgs.findOne(orgId).exec();\n    return doc ? (doc.toJSON() as OrgModel) : null;\n  }\n\n  async count(filters: OrgFilters): Promise<number> {\n    const collection = this.db.collections.orgs;\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    return await collection.count({ selector }).exec();\n  }\n\n  createMutation(): MutationOperator<OrgModel, CreateOrgInput> {\n    return new MutationOperator<OrgModel, CreateOrgInput>(this.db.collections.orgs, {\n      mutationFn: async (collection, input) => {\n        const now = new Date().toISOString();\n        const id = createId('org');\n        const org: OrgModel = {\n          id,\n          userId: input.userId,\n          name: input.name,\n          description: input.description,\n          archived: false,\n          createdAt: now,\n          updatedAt: now,\n        };\n\n        await collection.insert(org);\n        return org;\n      },\n    });\n  }\n\n  updateMutation(): MutationOperator<OrgModel, UpdateOrgInput> {\n    return new MutationOperator<OrgModel, UpdateOrgInput>(this.db.collections.orgs, {\n      mutationFn: async (collection, { id, updates }) => {\n        const doc = await collection.findOne(id).exec();\n        if (!doc) throw new Error(`Org ${id} not found`);\n\n        await doc.update({\n          $set: { ...updates, updatedAt: new Date().toISOString() },\n        });\n\n        return doc.toJSON() as OrgModel;\n      },\n    });\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.orgs, {\n      mutationFn: async (collection, orgId) => {\n        const doc = await collection.findOne(orgId).exec();\n        if (!doc) throw new Error(`Org ${orgId} not found`);\n\n        await doc.update({\n          $set: { archived: true, updatedAt: new Date().toISOString() },\n        });\n      },\n    });\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb';\nimport { QueryOperator } from '../operators/QueryOperator';\nimport { MutationOperator } from '../operators/MutationOperator';\nimport type { QueryOptions } from '../operators/types';\nimport type { WorkspaceModel } from '../../models/Workspace';\nimport { createId } from '../../index';\n\nexport interface WorkspaceFilters {\n  /** Organization ID (optional - omit for cross-org queries in \"View All\" mode) */\n  orgId?: string;\n  /** Filter by user ID */\n  userId?: string;\n  /** Filter by workspace status */\n  status?: WorkspaceModel['status'];\n  /** Filter by archived state (default: false) */\n  archived?: boolean;\n}\n\nexport interface CreateWorkspaceInput {\n  /** Workspace name (kebab-case) */\n  name: string;\n  /** Workspace title */\n  title: string;\n  /** Workspace description */\n  description: string;\n  /** Organization ID */\n  orgId: string;\n  /** User ID of workspace creator */\n  userId: string;\n  /** Optional workspace status (default: 'active') */\n  status?: WorkspaceModel['status'];\n  /** Optional tags */\n  tags?: string[];\n}\n\nexport interface UpdateWorkspaceInput {\n  /** Workspace ID to update */\n  id: string;\n  /** Partial workspace data to update */\n  updates: Partial<WorkspaceModel>;\n}\n\nexport class WorkspaceOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: WorkspaceFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<WorkspaceModel> {\n    const collection = this.db.collections.workspaces;\n\n    // Build selector - orgId is optional to support \"View All\" mode across organizations\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    // Only add orgId filter if provided (allows cross-org queries when not specified)\n    if (filters.orgId) {\n      selector.orgId = { $eq: filters.orgId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.status) {\n      selector.status = { $eq: filters.status };\n    }\n\n    const queryOptions: QueryOptions<WorkspaceModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    };\n\n    return new QueryOperator<WorkspaceModel>(collection, queryOptions);\n  }\n\n  async findOne(workspaceId: string): Promise<WorkspaceModel | null> {\n    const doc = await this.db.collections.workspaces.findOne(workspaceId).exec();\n    return doc ? (doc.toJSON() as WorkspaceModel) : null;\n  }\n\n  async count(filters: WorkspaceFilters): Promise<number> {\n    const collection = this.db.collections.workspaces;\n\n    // Build selector - orgId is optional to support \"View All\" mode\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    if (filters.orgId) {\n      selector.orgId = { $eq: filters.orgId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.status) {\n      selector.status = { $eq: filters.status };\n    }\n\n    return await collection.count({ selector }).exec();\n  }\n\n  createMutation(): MutationOperator<WorkspaceModel, CreateWorkspaceInput> {\n    return new MutationOperator<WorkspaceModel, CreateWorkspaceInput>(\n      this.db.collections.workspaces,\n      {\n        mutationFn: async (collection, input) => {\n          const now = new Date().toISOString();\n          const workspace: WorkspaceModel = {\n            id: createId('workspace'),\n            orgId: input.orgId,\n            userId: input.userId,\n            name: input.name,\n            title: input.title,\n            description: input.description,\n            status: input.status || 'active',\n            archived: false,\n            createdAt: now,\n            updatedAt: now,\n            ...(input.tags && { tags: input.tags }),\n          };\n\n          await collection.insert(workspace);\n          return workspace;\n        },\n      }\n    );\n  }\n\n  updateMutation(): MutationOperator<WorkspaceModel, UpdateWorkspaceInput> {\n    return new MutationOperator<WorkspaceModel, UpdateWorkspaceInput>(\n      this.db.collections.workspaces,\n      {\n        mutationFn: async (collection, { id, updates }) => {\n          const doc = await collection.findOne(id).exec();\n          if (!doc) throw new Error(`Workspace ${id} not found`);\n\n          await doc.update({\n            $set: { ...updates, updatedAt: new Date().toISOString() },\n          });\n\n          return doc.toJSON() as WorkspaceModel;\n        },\n      }\n    );\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.workspaces, {\n      mutationFn: async (collection, workspaceId) => {\n        const doc = await collection.findOne(workspaceId).exec();\n        if (!doc) throw new Error(`Workspace ${workspaceId} not found`);\n\n        await doc.update({\n          $set: { archived: true, updatedAt: new Date().toISOString() },\n        });\n      },\n    });\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb';\nimport { QueryOperator } from '../operators/QueryOperator';\nimport { MutationOperator } from '../operators/MutationOperator';\nimport type { QueryOptions } from '../operators/types';\nimport type { ProjectModel } from '../../models/Project';\nimport { createId } from '../../index';\n\nexport interface ProjectFilters {\n  /** Organization ID (optional - omit for cross-org queries in \"View All\" mode) */\n  orgId?: string;\n  /** Filter by user ID */\n  userId?: string;\n  /** Filter by goal ID */\n  goalId?: string;\n  /** Filter by workspace ID */\n  workspaceId?: string;\n  /** Filter by codebase ID */\n  codebaseId?: string;\n  /** Filter by category ID */\n  categoryId?: string;\n  /** Filter by completion state */\n  completed?: boolean;\n  /** Filter by archived state (default: false) */\n  archived?: boolean;\n}\n\nexport interface CreateProjectInput {\n  /** Project name (kebab-case) */\n  name: string;\n  /** Project title */\n  title: string;\n  /** Project description */\n  description: string;\n  /** Organization ID */\n  orgId: string;\n  /** User ID of project creator */\n  userId: string;\n  /** Parent goal ID */\n  goalId: string;\n  /** Optional workspace ID */\n  workspaceId?: string;\n  /** Optional codebase ID */\n  codebaseId?: string;\n  /** Optional category ID */\n  categoryId?: string;\n  /** Optional tag IDs */\n  tagIds?: string[];\n  /** Optional planned start date (ISO 8601) */\n  startAt?: string;\n  /** Optional actual start date (ISO 8601) */\n  startedAt?: string;\n  /** Optional due date (ISO 8601) */\n  dueAt?: string;\n  /** Optional completion date (ISO 8601) */\n  completedAt?: string;\n  /** Optional time budget in hours */\n  timeBudgetHours?: number;\n  /** Optional MCP and spec tracking metadata */\n  metadata?: any;\n}\n\nexport interface UpdateProjectInput {\n  /** Project ID to update */\n  id: string;\n  /** Partial project data to update */\n  updates: Partial<ProjectModel>;\n}\n\nexport class ProjectOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: ProjectFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<ProjectModel> {\n    const collection = this.db.collections.projects;\n\n    // Build selector - orgId is optional to support \"View All\" mode across organizations\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    // Only add orgId filter if provided (allows cross-org queries when not specified)\n    if (filters.orgId) {\n      selector.orgId = { $eq: filters.orgId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.goalId) {\n      selector.goalId = { $eq: filters.goalId };\n    }\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.codebaseId) {\n      selector.codebaseId = { $eq: filters.codebaseId };\n    }\n\n    if (filters.categoryId) {\n      selector.categoryId = { $eq: filters.categoryId };\n    }\n\n    // Use $ne: true for completed filter to match documents where completed is false, undefined, or missing\n    if (filters.completed !== undefined) {\n      selector.completed = filters.completed === true ? { $eq: true } : { $ne: true };\n    }\n\n    const queryOptions: QueryOptions<ProjectModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    };\n\n    return new QueryOperator<ProjectModel>(collection, queryOptions);\n  }\n\n  async findOne(projectId: string): Promise<ProjectModel | null> {\n    const doc = await this.db.collections.projects.findOne(projectId).exec();\n    return doc ? (doc.toJSON() as ProjectModel) : null;\n  }\n\n  async count(filters: ProjectFilters): Promise<number> {\n    const collection = this.db.collections.projects;\n\n    // Build selector - orgId is optional to support \"View All\" mode\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    if (filters.orgId) {\n      selector.orgId = { $eq: filters.orgId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.goalId) {\n      selector.goalId = { $eq: filters.goalId };\n    }\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.codebaseId) {\n      selector.codebaseId = { $eq: filters.codebaseId };\n    }\n\n    if (filters.categoryId) {\n      selector.categoryId = { $eq: filters.categoryId };\n    }\n\n    // Use $ne: true for completed filter to match documents where completed is false, undefined, or missing\n    if (filters.completed !== undefined) {\n      selector.completed = filters.completed === true ? { $eq: true } : { $ne: true };\n    }\n\n    return await collection.count({ selector }).exec();\n  }\n\n  createMutation(): MutationOperator<ProjectModel, CreateProjectInput> {\n    return new MutationOperator<ProjectModel, CreateProjectInput>(\n      this.db.collections.projects,\n      {\n        mutationFn: async (collection, input) => {\n          const now = new Date().toISOString();\n          const project: ProjectModel = {\n            id: createId('project'),\n            orgId: input.orgId,\n            userId: input.userId,\n            goalId: input.goalId,\n            name: input.name,\n            title: input.title,\n            description: input.description,\n            completed: false,\n            archived: false,\n            version: 1,\n            createdAt: now,\n            updatedAt: now,\n            ...(input.startAt && { startAt: input.startAt }),\n            ...(input.startedAt && { startedAt: input.startedAt }),\n            ...(input.dueAt && { dueAt: input.dueAt }),\n            ...(input.completedAt && { completedAt: input.completedAt }),\n            ...(input.workspaceId && { workspaceId: input.workspaceId }),\n            ...(input.codebaseId && { codebaseId: input.codebaseId }),\n            ...(input.categoryId && { categoryId: input.categoryId }),\n            ...(input.tagIds && { tagIds: input.tagIds }),\n            ...(input.timeBudgetHours && { timeBudgetHours: input.timeBudgetHours }),\n            ...(input.metadata && { metadata: input.metadata }),\n          };\n\n          await collection.insert(project);\n          return project;\n        },\n      }\n    );\n  }\n\n  updateMutation(): MutationOperator<ProjectModel, UpdateProjectInput> {\n    return new MutationOperator<ProjectModel, UpdateProjectInput>(\n      this.db.collections.projects,\n      {\n        mutationFn: async (collection, { id, updates }) => {\n          const doc = await collection.findOne(id).exec();\n          if (!doc) throw new Error(`Project ${id} not found`);\n\n          await doc.update({\n            $set: { ...updates, updatedAt: new Date().toISOString() },\n          });\n\n          return doc.toJSON() as ProjectModel;\n        },\n      }\n    );\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.projects, {\n      mutationFn: async (collection, projectId) => {\n        const doc = await collection.findOne(projectId).exec();\n        if (!doc) throw new Error(`Project ${projectId} not found`);\n\n        await doc.update({\n          $set: { archived: true, updatedAt: new Date().toISOString() },\n        });\n      },\n    });\n  }\n\n  completeMutation(): MutationOperator<ProjectModel, string> {\n    return new MutationOperator<ProjectModel, string>(this.db.collections.projects, {\n      mutationFn: async (collection, projectId) => {\n        const doc = await collection.findOne(projectId).exec();\n        if (!doc) throw new Error(`Project ${projectId} not found`);\n\n        await doc.update({\n          $set: { completed: true, updatedAt: new Date().toISOString() },\n        });\n\n        return doc.toJSON() as ProjectModel;\n      },\n    });\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb';\nimport { QueryOperator } from '../operators/QueryOperator';\nimport { MutationOperator } from '../operators/MutationOperator';\nimport type { QueryOptions } from '../operators/types';\nimport type { MilestoneModel } from '../../models/Milestone';\nimport { createId } from '../../index';\n\nexport interface MilestoneFilters {\n  /** Organization ID (optional - omit for cross-org queries in \"View All\" mode) */\n  orgId?: string;\n  /** Filter by workspace ID */\n  workspaceId?: string;\n  /** Filter by user ID */\n  userId?: string;\n  /** Filter by project ID */\n  projectId?: string;\n  /** Filter by goal ID */\n  goalId?: string;\n  /** Filter by completion state */\n  completed?: boolean;\n  /** Filter by archived state (default: false) */\n  archived?: boolean;\n}\n\nexport interface CreateMilestoneInput {\n  /** Milestone name (kebab-case) */\n  name: string;\n  /** Milestone title */\n  title: string;\n  /** Milestone description */\n  description: string;\n  /** Organization ID */\n  orgId: string;\n  /** User ID of milestone creator */\n  userId: string;\n  /** Workspace ID */\n  workspaceId: string;\n  /** Parent project ID */\n  projectId: string;\n  /** Parent goal ID */\n  goalId: string;\n  /** Optional planned start date (ISO 8601) */\n  startAt?: string;\n  /** Optional actual start date (ISO 8601) */\n  startedAt?: string;\n  /** Optional due date (ISO 8601) */\n  dueAt?: string;\n  /** Optional completion date (ISO 8601) */\n  completedAt?: string;\n  /** Optional time budget in hours */\n  timeBudgetHours?: number;\n  /** Optional category ID */\n  categoryId?: string;\n  /** Optional tag IDs */\n  tagIds?: string[];\n  /** Optional sort order */\n  sortOrder?: number;\n}\n\nexport interface UpdateMilestoneInput {\n  /** Milestone ID to update */\n  id: string;\n  /** Partial milestone data to update */\n  updates: Partial<MilestoneModel>;\n}\n\nexport class MilestoneOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: MilestoneFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<MilestoneModel> {\n    const collection = this.db.collections.milestones;\n\n    // Build selector - orgId is optional to support \"View All\" mode across organizations\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    // Only add orgId filter if provided (allows cross-org queries when not specified)\n    if (filters.orgId) {\n      selector.orgId = { $eq: filters.orgId };\n    }\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.projectId) {\n      selector.projectId = { $eq: filters.projectId };\n    }\n\n    if (filters.goalId) {\n      selector.goalId = { $eq: filters.goalId };\n    }\n\n    // Use $ne: true for completed filter to match documents where completed is false, undefined, or missing\n    if (filters.completed !== undefined) {\n      selector.completed = filters.completed === true ? { $eq: true } : { $ne: true };\n    }\n\n    const queryOptions: QueryOptions<MilestoneModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    };\n\n    return new QueryOperator<MilestoneModel>(collection, queryOptions);\n  }\n\n  async findOne(milestoneId: string): Promise<MilestoneModel | null> {\n    const doc = await this.db.collections.milestones.findOne(milestoneId).exec();\n    return doc ? (doc.toJSON() as MilestoneModel) : null;\n  }\n\n  async count(filters: MilestoneFilters): Promise<number> {\n    const collection = this.db.collections.milestones;\n\n    // Build selector - orgId is optional to support \"View All\" mode\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    };\n\n    if (filters.orgId) {\n      selector.orgId = { $eq: filters.orgId };\n    }\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.projectId) {\n      selector.projectId = { $eq: filters.projectId };\n    }\n\n    if (filters.goalId) {\n      selector.goalId = { $eq: filters.goalId };\n    }\n\n    // Use $ne: true for completed filter to match documents where completed is false, undefined, or missing\n    if (filters.completed !== undefined) {\n      selector.completed = filters.completed === true ? { $eq: true } : { $ne: true };\n    }\n\n    return await collection.count({ selector }).exec();\n  }\n\n  createMutation(): MutationOperator<MilestoneModel, CreateMilestoneInput> {\n    return new MutationOperator<MilestoneModel, CreateMilestoneInput>(\n      this.db.collections.milestones,\n      {\n        mutationFn: async (collection, input) => {\n          const now = new Date().toISOString();\n          const milestone: MilestoneModel = {\n            id: createId('milestone'),\n            orgId: input.orgId,\n            userId: input.userId,\n            workspaceId: input.workspaceId,\n            projectId: input.projectId,\n            goalId: input.goalId,\n            name: input.name,\n            title: input.title,\n            description: input.description,\n            completed: false,\n            archived: false,\n            sortOrder: input.sortOrder ?? 0,\n            version: 1,\n            createdAt: now,\n            updatedAt: now,\n            ...(input.startAt && { startAt: input.startAt }),\n            ...(input.startedAt && { startedAt: input.startedAt }),\n            ...(input.dueAt && { dueAt: input.dueAt }),\n            ...(input.completedAt && { completedAt: input.completedAt }),\n            ...(input.timeBudgetHours && { timeBudgetHours: input.timeBudgetHours }),\n            ...(input.categoryId && { categoryId: input.categoryId }),\n            ...(input.tagIds && { tagIds: input.tagIds }),\n          };\n\n          await collection.insert(milestone);\n          return milestone;\n        },\n      }\n    );\n  }\n\n  updateMutation(): MutationOperator<MilestoneModel, UpdateMilestoneInput> {\n    return new MutationOperator<MilestoneModel, UpdateMilestoneInput>(\n      this.db.collections.milestones,\n      {\n        mutationFn: async (collection, { id, updates }) => {\n          const doc = await collection.findOne(id).exec();\n          if (!doc) throw new Error(`Milestone ${id} not found`);\n\n          await doc.update({\n            $set: { ...updates, updatedAt: new Date().toISOString() },\n          });\n\n          return doc.toJSON() as MilestoneModel;\n        },\n      }\n    );\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.milestones, {\n      mutationFn: async (collection, milestoneId) => {\n        const doc = await collection.findOne(milestoneId).exec();\n        if (!doc) throw new Error(`Milestone ${milestoneId} not found`);\n\n        await doc.update({\n          $set: { archived: true, updatedAt: new Date().toISOString() },\n        });\n      },\n    });\n  }\n\n  completeMutation(): MutationOperator<MilestoneModel, string> {\n    return new MutationOperator<MilestoneModel, string>(\n      this.db.collections.milestones,\n      {\n        mutationFn: async (collection, milestoneId) => {\n          const doc = await collection.findOne(milestoneId).exec();\n          if (!doc) throw new Error(`Milestone ${milestoneId} not found`);\n\n          await doc.update({\n            $set: { completed: true, updatedAt: new Date().toISOString() },\n          });\n\n          return doc.toJSON() as MilestoneModel;\n        },\n      }\n    );\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb'\nimport { QueryOperator } from '../operators/QueryOperator'\nimport { MutationOperator } from '../operators/MutationOperator'\nimport type { QueryOptions } from '../operators/types'\nimport type { UserModel } from '../../models/User'\nimport { createId } from '../../index'\n\nexport interface UserFilters {\n  email?: string\n  onboarded?: boolean\n  archived?: boolean\n  authUserId?: string\n}\n\nexport interface CreateUserInput {\n  name: string\n  email: string\n  onboarded?: boolean\n  authUserId?: string\n}\n\nexport interface UpdateUserInput {\n  id: string\n  updates: Partial<UserModel>\n}\n\nexport class UserOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: UserFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<UserModel> {\n    const collection = this.db.collections.users\n\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    }\n\n    if (filters.email) {\n      selector.email = { $eq: filters.email }\n    }\n\n    if (filters.onboarded !== undefined) {\n      selector.onboarded = { $eq: filters.onboarded }\n    }\n\n    if (filters.authUserId) {\n      selector.authUserId = { $eq: filters.authUserId }\n    }\n\n    const queryOptions: QueryOptions<UserModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    }\n\n    return new QueryOperator<UserModel>(collection, queryOptions)\n  }\n\n  async findOne(userId: string): Promise<UserModel | null> {\n    const doc = await this.db.collections.users.findOne(userId).exec()\n    return doc ? (doc.toJSON() as UserModel) : null\n  }\n\n  async count(filters: UserFilters): Promise<number> {\n    const collection = this.db.collections.users\n    // Use $ne: true instead of $eq: false to match documents where archived is false, undefined, or missing\n    const selector: any = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    }\n\n    if (filters.email) {\n      selector.email = { $eq: filters.email }\n    }\n\n    if (filters.onboarded !== undefined) {\n      selector.onboarded = { $eq: filters.onboarded }\n    }\n\n    if (filters.authUserId) {\n      selector.authUserId = { $eq: filters.authUserId }\n    }\n\n    return await collection.count({ selector }).exec()\n  }\n\n  createMutation(): MutationOperator<UserModel, CreateUserInput> {\n    return new MutationOperator<UserModel, CreateUserInput>(this.db.collections.users, {\n      mutationFn: async (collection, input) => {\n        const now = new Date().toISOString()\n        const user: UserModel = {\n          id: createId('user'),\n          name: input.name,\n          email: input.email,\n          authUserId: input.authUserId ?? '',\n          onboarded: input.onboarded ?? false,\n          archived: false,\n          createdAt: now,\n          updatedAt: now,\n        }\n\n        await collection.insert(user)\n        return user\n      },\n    })\n  }\n\n  updateMutation(): MutationOperator<UserModel, UpdateUserInput> {\n    return new MutationOperator<UserModel, UpdateUserInput>(this.db.collections.users, {\n      mutationFn: async (collection, { id, updates }) => {\n        const doc = await collection.findOne(id).exec()\n        if (!doc) throw new Error(`User ${id} not found`)\n\n        await doc.update({\n          $set: { ...updates, updatedAt: new Date().toISOString() },\n        })\n\n        return doc.toJSON() as UserModel\n      },\n    })\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.users, {\n      mutationFn: async (collection, userId) => {\n        const doc = await collection.findOne(userId).exec()\n        if (!doc) throw new Error(`User ${userId} not found`)\n\n        await doc.update({\n          $set: { archived: true, updatedAt: new Date().toISOString() },\n        })\n      },\n    })\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb';\nimport { QueryOperator } from '../operators/QueryOperator';\nimport { MutationOperator } from '../operators/MutationOperator';\nimport type { QueryOptions } from '../operators/types';\nimport type { TemplateModel } from '../../models/Template';\nimport { createId } from '../../index';\n\nexport interface TemplateFilters {\n  orgId: string;\n  workspaceId?: string;\n  templateType?: TemplateModel['templateType'];\n  isDefault?: boolean;\n  category?: 'spec' | 'steering';\n}\n\nexport interface CreateTemplateInput {\n  templateType: TemplateModel['templateType'];\n  name: string;\n  content: string;\n  version: string;\n  isDefault: boolean;\n  orgId: string;\n  workspaceId: string;\n  userId?: string;\n  metadata?: TemplateModel['metadata'];\n}\n\nexport interface UpdateTemplateInput {\n  id: string;\n  updates: Partial<TemplateModel>;\n}\n\nexport class TemplateOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: TemplateFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<TemplateModel> {\n    const collection = this.db.collections.templates;\n\n    const selector: any = {\n      orgId: { $eq: filters.orgId },\n    };\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.templateType) {\n      selector.templateType = { $eq: filters.templateType };\n    }\n\n    if (filters.isDefault !== undefined) {\n      selector.isDefault = { $eq: filters.isDefault };\n    }\n\n    if (filters.category) {\n      selector['metadata.category'] = { $eq: filters.category };\n    }\n\n    const queryOptions: QueryOptions<TemplateModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    };\n\n    return new QueryOperator<TemplateModel>(collection, queryOptions);\n  }\n\n  async findOne(templateId: string): Promise<TemplateModel | null> {\n    const doc = await this.db.collections.templates.findOne(templateId).exec();\n    return doc ? (doc.toJSON() as TemplateModel) : null;\n  }\n\n  async count(filters: TemplateFilters): Promise<number> {\n    const collection = this.db.collections.templates;\n    const selector: any = {\n      orgId: { $eq: filters.orgId },\n    };\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.templateType) {\n      selector.templateType = { $eq: filters.templateType };\n    }\n\n    if (filters.isDefault !== undefined) {\n      selector.isDefault = { $eq: filters.isDefault };\n    }\n\n    if (filters.category) {\n      selector['metadata.category'] = { $eq: filters.category };\n    }\n\n    return await collection.count({ selector }).exec();\n  }\n\n  createMutation(): MutationOperator<TemplateModel, CreateTemplateInput> {\n    return new MutationOperator<TemplateModel, CreateTemplateInput>(this.db.collections.templates, {\n      mutationFn: async (collection, input) => {\n        const now = new Date().toISOString();\n        const template: TemplateModel = {\n          id: createId('template'),\n          templateType: input.templateType,\n          name: input.name,\n          content: input.content,\n          version: input.version,\n          isDefault: input.isDefault,\n          orgId: input.orgId,\n          workspaceId: input.workspaceId,\n          userId: input.userId,\n          metadata: input.metadata,\n          createdAt: now,\n          updatedAt: now,\n        };\n\n        await collection.insert(template);\n        return template;\n      },\n    });\n  }\n\n  updateMutation(): MutationOperator<TemplateModel, UpdateTemplateInput> {\n    return new MutationOperator<TemplateModel, UpdateTemplateInput>(this.db.collections.templates, {\n      mutationFn: async (collection, { id, updates }) => {\n        const doc = await collection.findOne(id).exec();\n        if (!doc) throw new Error(`Template ${id} not found`);\n\n        await doc.update({\n          $set: { ...updates, updatedAt: new Date().toISOString() },\n        });\n\n        return doc.toJSON() as TemplateModel;\n      },\n    });\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.templates, {\n      mutationFn: async (collection, templateId) => {\n        const doc = await collection.findOne(templateId).exec();\n        if (!doc) throw new Error(`Template ${templateId} not found`);\n\n        await doc.remove();\n      },\n    });\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb';\nimport { QueryOperator } from '../operators/QueryOperator';\nimport { MutationOperator } from '../operators/MutationOperator';\nimport type { QueryOptions } from '../operators/types';\nimport type { DiscussionModel, DiscussionEntityType } from '../../types';\nimport { createId } from '../../index';\n\nexport interface DiscussionFilters {\n  orgId: string;\n  workspaceId?: string;\n  userId?: string;\n  entityType?: DiscussionEntityType;\n  entityId?: string;\n  parentId?: string;\n  isDeleted?: boolean;\n}\n\nexport interface CreateDiscussionInput {\n  content: string;\n  entityType: DiscussionEntityType;\n  entityId: string;\n  orgId: string;\n  workspaceId: string;\n  userId: string;\n  userName: string;\n  userAvatar?: string;\n  parentId?: string;\n  contentHtml?: string;\n  metadata?: Record<string, any>;\n}\n\nexport interface UpdateDiscussionInput {\n  id: string;\n  updates: Partial<DiscussionModel>;\n}\n\nexport class DiscussionOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: DiscussionFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<DiscussionModel> {\n    const collection = this.db.collections.discussions;\n\n    // Use $ne: true instead of $eq: false to match documents where isDeleted is false, undefined, or missing\n    const selector: any = {\n      orgId: { $eq: filters.orgId },\n      isDeleted: filters.isDeleted === true ? { $eq: true } : { $ne: true },\n    };\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.entityType) {\n      selector.entityType = { $eq: filters.entityType };\n    }\n\n    if (filters.entityId) {\n      selector.entityId = { $eq: filters.entityId };\n    }\n\n    if (filters.parentId !== undefined) {\n      // Support null parentId to query for root discussions\n      selector.parentId = filters.parentId === null\n        ? { $eq: null }\n        : { $eq: filters.parentId };\n    }\n\n    const queryOptions: QueryOptions<DiscussionModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    };\n\n    return new QueryOperator<DiscussionModel>(collection, queryOptions);\n  }\n\n  async findOne(discussionId: string): Promise<DiscussionModel | null> {\n    const doc = await this.db.collections.discussions.findOne(discussionId).exec();\n    return doc ? (doc.toJSON() as DiscussionModel) : null;\n  }\n\n  async count(filters: DiscussionFilters): Promise<number> {\n    const collection = this.db.collections.discussions;\n    // Use $ne: true instead of $eq: false to match documents where isDeleted is false, undefined, or missing\n    const selector: any = {\n      orgId: { $eq: filters.orgId },\n      isDeleted: filters.isDeleted === true ? { $eq: true } : { $ne: true },\n    };\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    if (filters.entityType) {\n      selector.entityType = { $eq: filters.entityType };\n    }\n\n    if (filters.entityId) {\n      selector.entityId = { $eq: filters.entityId };\n    }\n\n    if (filters.parentId !== undefined) {\n      selector.parentId = filters.parentId === null\n        ? { $eq: null }\n        : { $eq: filters.parentId };\n    }\n\n    return await collection.count({ selector }).exec();\n  }\n\n  createMutation(): MutationOperator<DiscussionModel, CreateDiscussionInput> {\n    return new MutationOperator<DiscussionModel, CreateDiscussionInput>(this.db.collections.discussions, {\n      mutationFn: async (collection, input) => {\n        const now = new Date().toISOString();\n\n        // Calculate thread depth based on parent\n        let threadDepth = 0;\n        if (input.parentId) {\n          const parent = await collection.findOne(input.parentId).exec();\n          if (parent) {\n            const parentData = parent.toJSON() as DiscussionModel;\n            threadDepth = parentData.threadDepth + 1;\n          }\n        }\n\n        const discussion: DiscussionModel = {\n          id: createId('discussion'),\n          orgId: input.orgId,\n          workspaceId: input.workspaceId,\n          userId: input.userId,\n          userName: input.userName,\n          userAvatar: input.userAvatar,\n          entityType: input.entityType,\n          entityId: input.entityId,\n          content: input.content,\n          contentHtml: input.contentHtml,\n          parentId: input.parentId,\n          threadDepth,\n          isEdited: false,\n          isDeleted: false,\n          attachments: [],\n          metadata: input.metadata,\n          createdAt: now,\n          updatedAt: now,\n        };\n\n        await collection.insert(discussion);\n        return discussion;\n      },\n    });\n  }\n\n  updateMutation(): MutationOperator<DiscussionModel, UpdateDiscussionInput> {\n    return new MutationOperator<DiscussionModel, UpdateDiscussionInput>(this.db.collections.discussions, {\n      mutationFn: async (collection, { id, updates }) => {\n        const doc = await collection.findOne(id).exec();\n        if (!doc) throw new Error(`Discussion ${id} not found`);\n\n        const now = new Date().toISOString();\n        const updateData: any = {\n          ...updates,\n          updatedAt: now\n        };\n\n        // Track edit metadata if content changed\n        const oldData = doc.toJSON() as DiscussionModel;\n        if (updates.content && updates.content !== oldData.content) {\n          updateData.isEdited = true;\n          updateData.editedAt = now;\n        }\n\n        await doc.update({\n          $set: updateData,\n        });\n\n        return doc.toJSON() as DiscussionModel;\n      },\n    });\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.discussions, {\n      mutationFn: async (collection, discussionId) => {\n        const doc = await collection.findOne(discussionId).exec();\n        if (!doc) throw new Error(`Discussion ${discussionId} not found`);\n\n        const now = new Date().toISOString();\n        await doc.update({\n          $set: {\n            isDeleted: true,\n            deletedAt: now,\n            updatedAt: now\n          },\n        });\n      },\n    });\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { MangoQuery, RxDatabase } from 'rxdb'\nimport { QueryOperator } from '../operators/QueryOperator'\nimport { MutationOperator } from '../operators/MutationOperator'\nimport type { QueryOptions } from '../operators/types'\nimport type { DocumentModel } from '../../models/Document'\nimport { createId } from '../../index'\n\nexport interface DocumentFilters {\n  orgId: string\n  workspaceId?: string\n  projectId?: string\n  milestoneId?: string\n  taskId?: string\n  documentType?: DocumentModel['documentType']\n  approved?: boolean\n}\n\nexport interface CreateDocumentInput {\n  title: string\n  content: string\n  orgId: string\n  userId: string\n  documentType: DocumentModel['documentType']\n  workspaceId?: string\n  projectId?: string\n  milestoneId?: string\n  taskId?: string\n  codebaseId?: string\n  metadata?: DocumentModel['metadata']\n}\n\nexport interface UpdateDocumentInput {\n  id: string\n  updates: Partial<DocumentModel>\n}\n\nexport class DocumentOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: DocumentFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<DocumentModel> {\n    const collection = this.db.collections.documents\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const selector: MangoQuery<DocumentModel>['selector'] = {\n      orgId: { $eq: filters.orgId },\n    }\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId }\n    }\n\n    if (filters.projectId) {\n      selector.projectId = { $eq: filters.projectId }\n    }\n\n    if (filters.milestoneId) {\n      selector.milestoneId = { $eq: filters.milestoneId }\n    }\n\n    if (filters.taskId) {\n      selector.taskId = { $eq: filters.taskId }\n    }\n\n    if (filters.documentType) {\n      selector.documentType = { $eq: filters.documentType }\n    }\n\n    if (filters.approved !== undefined) {\n      selector.approved = { $eq: filters.approved }\n    }\n\n    const queryOptions: QueryOptions<DocumentModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    }\n\n    return new QueryOperator<DocumentModel>(collection, queryOptions)\n  }\n\n  async findOne(documentId: string): Promise<DocumentModel | null> {\n    const doc = await this.db.collections.documents.findOne(documentId).exec()\n    return doc ? (doc.toJSON() as DocumentModel) : null\n  }\n\n  async count(filters: DocumentFilters): Promise<number> {\n    const collection = this.db.collections.documents\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const selector: MangoQuery<DocumentModel>['selector'] = {\n      orgId: { $eq: filters.orgId },\n    }\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId }\n    }\n\n    if (filters.projectId) {\n      selector.projectId = { $eq: filters.projectId }\n    }\n\n    if (filters.milestoneId) {\n      selector.milestoneId = { $eq: filters.milestoneId }\n    }\n\n    if (filters.taskId) {\n      selector.taskId = { $eq: filters.taskId }\n    }\n\n    if (filters.documentType) {\n      selector.documentType = { $eq: filters.documentType }\n    }\n\n    if (filters.approved !== undefined) {\n      selector.approved = { $eq: filters.approved }\n    }\n\n    return await collection.count({ selector }).exec()\n  }\n\n  createMutation(): MutationOperator<DocumentModel, CreateDocumentInput> {\n    return new MutationOperator<DocumentModel, CreateDocumentInput>(this.db.collections.documents, {\n      mutationFn: async (collection, input) => {\n        const now = new Date().toISOString()\n        const document: DocumentModel = {\n          id: createId('documents'),\n          orgId: input.orgId,\n          workspaceId: input.workspaceId ?? '',\n          projectId: input.projectId ?? '',\n          milestoneId: input.milestoneId ?? '',\n          taskId: input.taskId ?? '',\n          codebaseId: input.codebaseId ?? '',\n          userId: input.userId,\n          title: input.title,\n          content: input.content,\n          documentType: input.documentType,\n          documentVersion: 1,\n          approved: false,\n          createdAt: now,\n          updatedAt: now,\n          ...(input.metadata && { metadata: input.metadata }),\n        }\n\n        await collection.insert(document)\n        return document\n      },\n    })\n  }\n\n  updateMutation(): MutationOperator<DocumentModel, UpdateDocumentInput> {\n    return new MutationOperator<DocumentModel, UpdateDocumentInput>(this.db.collections.documents, {\n      mutationFn: async (collection, { id, updates }) => {\n        const doc = await collection.findOne(id).exec()\n        if (!doc) throw new Error(`Document ${id} not found`)\n\n        await doc.update({\n          $set: { ...updates, updatedAt: new Date().toISOString() },\n        })\n\n        return doc.toJSON() as DocumentModel\n      },\n    })\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.documents, {\n      mutationFn: async (collection, documentId) => {\n        const doc = await collection.findOne(documentId).exec()\n        if (!doc) throw new Error(`Document ${documentId} not found`)\n\n        await doc.remove()\n      },\n    })\n  }\n\n  approveMutation(): MutationOperator<DocumentModel, { id: string; userId: string }> {\n    return new MutationOperator<DocumentModel, { id: string; userId: string }>(\n      this.db.collections.documents,\n      {\n        mutationFn: async (collection, { id, userId }) => {\n          const doc = await collection.findOne(id).exec()\n          if (!doc) throw new Error(`Document ${id} not found`)\n\n          const now = new Date().toISOString()\n          await doc.update({\n            $set: {\n              approved: true,\n              approvedAt: now,\n              approvedBy: userId,\n              updatedAt: now,\n            },\n          })\n\n          return doc.toJSON() as DocumentModel\n        },\n      }\n    )\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb';\nimport { QueryOperator } from '../operators/QueryOperator';\nimport { MutationOperator } from '../operators/MutationOperator';\nimport type { QueryOptions } from '../operators/types';\nimport type { ApprovalModel } from '../../models/Approval';\nimport { createId } from '../../index';\n\nexport interface ApprovalFilters {\n  orgId: string;\n  workspaceId?: string;\n  projectId?: string;\n  milestoneId?: string;\n  status?: ApprovalModel['status'];\n  type?: ApprovalModel['type'];\n  category?: ApprovalModel['category'];\n  userId?: string;\n}\n\nexport interface CreateApprovalInput {\n  projectId: string;\n  milestoneId?: string;\n  taskId?: string;\n  documentId?: string;\n  title: string;\n  type: ApprovalModel['type'];\n  category: ApprovalModel['category'];\n  categoryName: string;\n  documentType?: string;\n  documentContent?: string;\n  orgId: string;\n  workspaceId: string;\n  userId: string;\n}\n\nexport interface UpdateApprovalInput {\n  id: string;\n  updates: Partial<ApprovalModel>;\n}\n\nexport class ApprovalOperator {\n  constructor(private db: RxDatabase) {}\n\n  query(\n    filters: ApprovalFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<ApprovalModel> {\n    const collection = this.db.collections.approvals;\n\n    const selector: any = {\n      orgId: { $eq: filters.orgId },\n    };\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.projectId) {\n      selector.projectId = { $eq: filters.projectId };\n    }\n\n    if (filters.milestoneId) {\n      selector.milestoneId = { $eq: filters.milestoneId };\n    }\n\n    if (filters.status) {\n      selector.status = { $eq: filters.status };\n    }\n\n    if (filters.type) {\n      selector.type = { $eq: filters.type };\n    }\n\n    if (filters.category) {\n      selector.category = { $eq: filters.category };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    const queryOptions: QueryOptions<ApprovalModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    };\n\n    return new QueryOperator<ApprovalModel>(collection, queryOptions);\n  }\n\n  async findOne(approvalId: string): Promise<ApprovalModel | null> {\n    const doc = await this.db.collections.approvals.findOne(approvalId).exec();\n    return doc ? (doc.toJSON() as ApprovalModel) : null;\n  }\n\n  async count(filters: ApprovalFilters): Promise<number> {\n    const collection = this.db.collections.approvals;\n    const selector: any = {\n      orgId: { $eq: filters.orgId },\n    };\n\n    if (filters.workspaceId) {\n      selector.workspaceId = { $eq: filters.workspaceId };\n    }\n\n    if (filters.projectId) {\n      selector.projectId = { $eq: filters.projectId };\n    }\n\n    if (filters.milestoneId) {\n      selector.milestoneId = { $eq: filters.milestoneId };\n    }\n\n    if (filters.status) {\n      selector.status = { $eq: filters.status };\n    }\n\n    if (filters.type) {\n      selector.type = { $eq: filters.type };\n    }\n\n    if (filters.category) {\n      selector.category = { $eq: filters.category };\n    }\n\n    if (filters.userId) {\n      selector.userId = { $eq: filters.userId };\n    }\n\n    return await collection.count({ selector }).exec();\n  }\n\n  createMutation(): MutationOperator<ApprovalModel, CreateApprovalInput> {\n    return new MutationOperator<ApprovalModel, CreateApprovalInput>(this.db.collections.approvals, {\n      mutationFn: async (collection, input) => {\n        const now = new Date().toISOString();\n        const approval: ApprovalModel = {\n          id: createId('approval'),\n          projectId: input.projectId,\n          milestoneId: input.milestoneId ?? '',\n          taskId: input.taskId ?? '',\n          documentId: input.documentId ?? '',\n          title: input.title,\n          type: input.type,\n          category: input.category,\n          categoryName: input.categoryName,\n          status: 'pending',\n          documentType: input.documentType,\n          documentContent: input.documentContent,\n          orgId: input.orgId,\n          workspaceId: input.workspaceId,\n          userId: input.userId,\n          createdAt: now,\n          updatedAt: now,\n        };\n\n        await collection.insert(approval);\n        return approval;\n      },\n    });\n  }\n\n  updateMutation(): MutationOperator<ApprovalModel, UpdateApprovalInput> {\n    return new MutationOperator<ApprovalModel, UpdateApprovalInput>(this.db.collections.approvals, {\n      mutationFn: async (collection, { id, updates }) => {\n        const doc = await collection.findOne(id).exec();\n        if (!doc) throw new Error(`Approval ${id} not found`);\n\n        // If status is being updated from pending, set respondedAt\n        const currentData = doc.toJSON() as ApprovalModel;\n        const updatesWithTimestamp: any = { ...updates, updatedAt: new Date().toISOString() };\n\n        if (updates.status && currentData.status === 'pending' && updates.status !== 'pending') {\n          updatesWithTimestamp.respondedAt = new Date().toISOString();\n        }\n\n        await doc.update({\n          $set: updatesWithTimestamp,\n        });\n\n        return doc.toJSON() as ApprovalModel;\n      },\n    });\n  }\n\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.approvals, {\n      mutationFn: async (collection, approvalId) => {\n        const doc = await collection.findOne(approvalId).exec();\n        if (!doc) throw new Error(`Approval ${approvalId} not found`);\n\n        // Approvals don't have an archived flag in the model, so we actually delete them\n        await doc.remove();\n      },\n    });\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb'\nimport { QueryOperator } from '../operators/QueryOperator'\nimport { MutationOperator } from '../operators/MutationOperator'\nimport type { QueryOptions } from '../operators/types'\nimport type { RoleModel } from '../../models/Role'\nimport { createId } from '../../index'\n\n/**\n * Filters for querying roles.\n */\nexport interface RoleFilters {\n  /** Filter by owning organisation ID. */\n  orgId?: string\n  /** Filter by role slug (e.g. `'owner'`, `'viewer'`). */\n  name?: string\n  /** Filter by built-in flag. */\n  builtIn?: boolean\n  /** When true, include archived roles only. When absent, exclude archived roles. */\n  archived?: boolean\n  /** Filter by scope type (e.g. `'workspace'`, `'project'`). */\n  scopeType?: string\n  /** Filter by scope entity ID. */\n  scopeId?: string\n}\n\n/**\n * Input for creating a new role.\n */\nexport interface CreateRoleInput {\n  /** Role slug used in permission checks. */\n  name: string\n  /** Human-readable display label. */\n  title: string\n  /** Optional description of what this role grants. */\n  description?: string\n  /** ID of the owning organisation. */\n  orgId: string\n  /** Scope type for workspace/project-scoped roles. */\n  scopeType?: string\n  /** Scope entity ID (required when scopeType is set). */\n  scopeId?: string\n  /** Whether this is a system-seeded built-in role. Defaults to false. */\n  builtIn?: boolean\n}\n\n/**\n * Input for updating an existing role.\n */\nexport interface UpdateRoleInput {\n  /** ID of the role to update. */\n  id: string\n  /** Fields to update. */\n  updates: Partial<RoleModel>\n}\n\n/**\n * Operator for querying and mutating the `roles` collection.\n *\n * Follows the operator pattern established by `UserOperator` and `OrgOperator`.\n * All mutations are soft operations — deletion archives rather than removes.\n *\n * @example\n * ```typescript\n * const op = new RoleOperator(db)\n * const roles = await op.query({ orgId: 'org_abc', builtIn: true }).exec()\n * const role = await op.createMutation().execute({ name: 'viewer', title: 'Viewer', orgId: 'org_abc' })\n * ```\n */\nexport class RoleOperator {\n  constructor(private db: RxDatabase) {}\n\n  /**\n   * Build a query for roles with optional filters and pagination.\n   *\n   * Excludes archived roles by default. Pass `archived: true` to query\n   * only archived roles.\n   *\n   * @param filters - Field filters to apply.\n   * @param options - Pagination and sort options.\n   * @returns A `QueryOperator` ready to `.exec()` or `.observable`.\n   */\n  query(\n    filters: RoleFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<RoleModel> {\n    const collection = this.db.collections.roles\n\n    // Use $ne: true rather than $eq: false so that docs where archived is\n    // undefined or missing are also included in the non-archived result set.\n    const selector: Record<string, unknown> = {\n      archived: filters.archived === true ? { $eq: true } : { $ne: true },\n    }\n\n    if (filters.orgId) selector.orgId = { $eq: filters.orgId }\n    if (filters.name) selector.name = { $eq: filters.name }\n    if (filters.builtIn !== undefined) selector.builtIn = { $eq: filters.builtIn }\n    if (filters.scopeType) selector.scopeType = { $eq: filters.scopeType }\n    if (filters.scopeId) selector.scopeId = { $eq: filters.scopeId }\n\n    const queryOptions: QueryOptions<RoleModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    }\n\n    return new QueryOperator<RoleModel>(collection, queryOptions)\n  }\n\n  /**\n   * Fetch a single role by its ID.\n   *\n   * @param roleId - The role document ID.\n   * @returns The role as a plain object, or null if not found.\n   */\n  async findOne(roleId: string): Promise<RoleModel | null> {\n    const doc = await this.db.collections.roles.findOne(roleId).exec()\n    return doc ? (doc.toJSON() as RoleModel) : null\n  }\n\n  /**\n   * Create a mutation operator for inserting a new role.\n   *\n   * Assigns a generated ID and sets `archived: false` and timestamps\n   * automatically.\n   *\n   * @returns A `MutationOperator` whose `execute()` resolves to the new role.\n   */\n  createMutation(): MutationOperator<RoleModel, CreateRoleInput> {\n    return new MutationOperator<RoleModel, CreateRoleInput>(this.db.collections.roles, {\n      mutationFn: async (collection, input) => {\n        const now = new Date().toISOString()\n        const role: RoleModel = {\n          id: createId('roles'),\n          name: input.name,\n          title: input.title,\n          orgId: input.orgId,\n          builtIn: input.builtIn ?? false,\n          archived: false,\n          scopeType: input.scopeType ?? '',\n          scopeId: input.scopeId ?? '',\n          description: input.description ?? '',\n          createdAt: now,\n          updatedAt: now,\n        }\n        await collection.insert(role)\n        return role\n      },\n    })\n  }\n\n  /**\n   * Create a mutation operator for updating role fields.\n   *\n   * Always stamps `updatedAt` on the modified document.\n   *\n   * @returns A `MutationOperator` whose `execute()` resolves to the updated role.\n   */\n  updateMutation(): MutationOperator<RoleModel, UpdateRoleInput> {\n    return new MutationOperator<RoleModel, UpdateRoleInput>(this.db.collections.roles, {\n      mutationFn: async (collection, { id, updates }) => {\n        const doc = await collection.findOne(id).exec()\n        if (!doc) throw new Error(`Role ${id} not found`)\n        await doc.update({ $set: { ...updates, updatedAt: new Date().toISOString() } })\n        return doc.toJSON() as RoleModel\n      },\n    })\n  }\n\n  /**\n   * Create a mutation operator for soft-deleting a role.\n   *\n   * Sets `archived: true` rather than removing the document so that\n   * audit trails and existing membership references remain intact.\n   *\n   * @returns A `MutationOperator` whose `execute()` takes the role ID.\n   */\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.roles, {\n      mutationFn: async (collection, roleId) => {\n        const doc = await collection.findOne(roleId).exec()\n        if (!doc) throw new Error(`Role ${roleId} not found`)\n        await doc.update({ $set: { archived: true, updatedAt: new Date().toISOString() } })\n      },\n    })\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RxDatabase } from 'rxdb'\nimport { QueryOperator } from '../operators/QueryOperator'\nimport { MutationOperator } from '../operators/MutationOperator'\nimport type { QueryOptions } from '../operators/types'\nimport type { RoleMembershipModel } from '../../models/RoleMembership'\nimport { createId } from '../../index'\n\n/**\n * Filters for querying role memberships.\n */\nexport interface RoleMembershipFilters {\n  /** Filter by owning organisation ID. */\n  orgId?: string\n  /** Filter by member user ID. */\n  userId?: string\n  /** Filter by assigned role ID. */\n  roleId?: string\n  /** Filter by lifecycle status (`'active'`, `'suspended'`, `'pending'`). */\n  status?: string\n  /** Filter by scope type (e.g. `'workspace'`, `'project'`). */\n  scopeType?: string\n  /** Filter by scope entity ID. */\n  scopeId?: string\n}\n\n/**\n * Input for assigning a role to a user.\n */\nexport interface CreateRoleMembershipInput {\n  /** ID of the role being assigned. */\n  roleId: string\n  /** ID of the user receiving the role. */\n  userId: string\n  /** User ID of the principal granting the role. */\n  grantedBy: string\n  /** ID of the owning organisation. */\n  orgId: string\n  /** Scope type inherited from the role. */\n  scopeType?: string\n  /** Scope entity ID inherited from the role. */\n  scopeId?: string\n  /** Optional expiry timestamp for time-limited memberships. */\n  expiresAt?: string\n}\n\n/**\n * Operator for querying and mutating the `rolememberships` collection.\n *\n * Role memberships record that a user holds a particular role.\n * \"Deletion\" suspends the membership (`status: 'suspended'`) rather than\n * removing the document, preserving audit history.\n *\n * @example\n * ```typescript\n * const op = new RoleMembershipOperator(db)\n * const memberships = await op.query({ orgId: 'org_abc', userId: 'user_123' }).exec()\n * const m = await op.createMutation().execute({\n *   roleId: 'role_abc', userId: 'user_123', grantedBy: 'user_456', orgId: 'org_abc',\n * })\n * ```\n */\nexport class RoleMembershipOperator {\n  constructor(private db: RxDatabase) {}\n\n  /**\n   * Build a query for role memberships with optional filters and pagination.\n   *\n   * Unlike `RoleOperator.query`, this does not apply an automatic\n   * `archived` filter — callers should pass `status: 'active'` explicitly\n   * when they want only live memberships.\n   *\n   * @param filters - Field filters to apply.\n   * @param options - Pagination and sort options.\n   * @returns A `QueryOperator` ready to `.exec()` or `.observable`.\n   */\n  query(\n    filters: RoleMembershipFilters,\n    options?: { sort?: string; limit?: number; skip?: number }\n  ): QueryOperator<RoleMembershipModel> {\n    const collection = this.db.collections.rolememberships\n    const selector: Record<string, unknown> = {}\n\n    if (filters.orgId) selector.orgId = { $eq: filters.orgId }\n    if (filters.userId) selector.userId = { $eq: filters.userId }\n    if (filters.roleId) selector.roleId = { $eq: filters.roleId }\n    if (filters.status) selector.status = { $eq: filters.status }\n    if (filters.scopeType) selector.scopeType = { $eq: filters.scopeType }\n    if (filters.scopeId) selector.scopeId = { $eq: filters.scopeId }\n\n    const queryOptions: QueryOptions<RoleMembershipModel> = {\n      selector,\n      sort: options?.sort ? [{ [options.sort]: 'desc' }] : [{ createdAt: 'desc' }],\n      limit: options?.limit,\n      skip: options?.skip,\n    }\n\n    return new QueryOperator<RoleMembershipModel>(collection, queryOptions)\n  }\n\n  /**\n   * Fetch a single membership by its ID.\n   *\n   * @param id - The membership document ID.\n   * @returns The membership as a plain object, or null if not found.\n   */\n  async findOne(id: string): Promise<RoleMembershipModel | null> {\n    const doc = await this.db.collections.rolememberships.findOne(id).exec()\n    return doc ? (doc.toJSON() as RoleMembershipModel) : null\n  }\n\n  /**\n   * Create a mutation operator for inserting a new role membership.\n   *\n   * Assigns a generated ID, sets `status: 'active'`, and stamps timestamps.\n   *\n   * @returns A `MutationOperator` whose `execute()` resolves to the new membership.\n   */\n  createMutation(): MutationOperator<RoleMembershipModel, CreateRoleMembershipInput> {\n    return new MutationOperator<RoleMembershipModel, CreateRoleMembershipInput>(\n      this.db.collections.rolememberships,\n      {\n        mutationFn: async (collection, input) => {\n          const now = new Date().toISOString()\n          const membership: RoleMembershipModel = {\n            id: createId('rolememberships'),\n            roleId: input.roleId,\n            userId: input.userId,\n            grantedBy: input.grantedBy,\n            orgId: input.orgId,\n            scopeType: input.scopeType ?? '',\n            scopeId: input.scopeId ?? '',\n            expiresAt: input.expiresAt ?? '',\n            // New memberships are active by default. Callers who need a\n            // pending approval flow should update status after creation.\n            status: 'active',\n            createdAt: now,\n            updatedAt: now,\n          }\n          await collection.insert(membership)\n          return membership\n        },\n      }\n    )\n  }\n\n  /**\n   * Create a mutation operator for soft-removing a role membership.\n   *\n   * Sets `status: 'suspended'` rather than deleting the document so that\n   * audit trails remain intact.\n   *\n   * @returns A `MutationOperator` whose `execute()` takes the membership ID.\n   */\n  deleteMutation(): MutationOperator<void, string> {\n    return new MutationOperator<void, string>(this.db.collections.rolememberships, {\n      mutationFn: async (collection, id) => {\n        const doc = await collection.findOne(id).exec()\n        if (!doc) throw new Error(`RoleMembership ${id} not found`)\n        await doc.update({ $set: { status: 'suspended', updatedAt: new Date().toISOString() } })\n      },\n    })\n  }\n}\n"]}