{"version":3,"sources":["../src/utils/id.ts","../src/utils/mentionParser.ts","../src/utils/mentionResolver.ts","../src/utils/buildAgentLookup.ts","../src/utils/prepareDiscussionDoc.ts","../src/utils/prepareEntityDescriptionDoc.ts","../src/queries/agentInbox.ts","../src/queries/agentHierarchy.ts","../src/queries/subordinateReport.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/defaults.ts","../src/models/AppSnapshot.ts","../src/models/Approval.ts","../src/models/Codebase.ts","../src/models/Discussion.ts","../src/models/Milestone.ts","../src/models/Org.ts","../src/models/Project.ts","../src/models/Document.ts","../src/models/Task.ts","../src/models/Template.ts","../src/models/User.ts","../src/models/Workspace.ts","../src/models/Schema.ts","../src/models/Record.ts","../src/models/Relation.ts","../src/models/Vault.ts","../src/models/VaultItem.ts","../src/models/ServiceKey.ts","../src/models/Worker.ts","../src/models/Attribute.ts","../src/models/Activity.ts","../src/models/TeamMember.ts","../src/models/TimeEntry.ts","../src/models/Conversation.ts","../src/models/Message.ts","../src/models/Goal.ts","../src/models/Processes.ts","../src/models/ProcessExecutions.ts","../src/models/ProcessSteps.ts","../src/models/StepTemplates.ts","../src/models/Role.ts","../src/models/RoleMembership.ts","../src/types.ts","../src/core/VirtualCollectionAdapter.ts","../src/core/EncryptedCollectionAdapter.ts","../src/core/SchemaRegistry.ts","../src/migrations/migrateToRecords.ts","../src/migrations/seedBuiltInRoles.ts","../src/migrations/migrateTeamMembersToRoleMemberships.ts","../src/migrations/promoteTeamMemberAgentFields.ts","../src/virtual/seeds/constants.ts","../src/virtual/seeds/orchestration.ts","../src/virtual/seeds/assignments.ts","../src/virtual/seeds/dashboard.ts","../src/virtual/seeds/index.ts","../src/virtual/seeds/runner.ts","../src/virtual/migrations/registry.ts","../src/virtual/migrations/runner.ts","../src/virtual/migrations/contentpieces/001-baseline.ts","../src/virtual/migrations/contentpieces/index.ts","../src/virtual/migrations/missions/002-add-description.ts","../src/virtual/migrations/missions/index.ts","../src/virtual/migrations/allMigrations.ts","../src/virtual/seeds/clpSeeds.ts","../src/virtual/seeds/seedBuiltInCLP.ts","../src/tiers.ts","../src/config/CollectionModeConfig.ts","../src/adapters/remote/d1Client.ts","../src/adapters/remote/queryKeys.ts","../src/index.ts"],"names":["nanoid","found","collections","ACTIVE_TASK_STATUSES","normalizeSlug","conversations","isRecord","z","name","schema","migrationStrategies","Collection","decryptFields","encryptFields","migration"],"mappings":"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","file":"index.cjs","sourcesContent":["// 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","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Mention Parser Utility\n *\n * Extracts @mentions from text content for discussion tagging.\n */\n\n/**\n * Parsed mention from content\n */\nexport interface ParsedMention {\n  /** The handle without the @ symbol */\n  identifier: string;\n  /** Character position where the @ starts */\n  position: number;\n}\n\n/**\n * Regex to match @mentions\n * Supports: letters (case-insensitive), numbers, hyphens, underscores\n * Identifiers are normalized to lowercase in the output\n * Examples: @viktor-petrov, @team_xyz789, @CEO\n */\nconst MENTION_REGEX = /@([a-zA-Z0-9_-]+)/g;\n\n/**\n * Extract @mentions from content string\n *\n * @param content - The text content to parse\n * @returns Array of parsed mentions with identifier and position\n *\n * @example\n * ```typescript\n * parseMentions('Hey @viktor-petrov check this');\n * // Returns: [{ identifier: 'viktor-petrov', position: 4 }]\n * ```\n */\nexport function parseMentions(content: string): ParsedMention[] {\n  if (!content) {\n    return [];\n  }\n\n  const mentions: ParsedMention[] = [];\n  let match: RegExpExecArray | null;\n\n  // Reset regex state for fresh matching\n  MENTION_REGEX.lastIndex = 0;\n\n  while ((match = MENTION_REGEX.exec(content)) !== null) {\n    mentions.push({\n      identifier: match[1].toLowerCase(),\n      position: match.index,\n    });\n  }\n\n  return mentions;\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Mention Resolution Utility\n *\n * Resolves @mention identifiers to TeamMember IDs.\n */\n\nimport type { ParsedMention } from './mentionParser'\nimport type { DiscussionMention } from '../types'\n\n/**\n * Lookup entry for agent/user resolution.\n *\n * `teamMemberId` may be empty string for entries that resolved via a user's\n * email handle but are not linked to a teammember row (rare; user-only mention).\n * `userId` is set for human users when known; agents leave it undefined.\n */\nexport interface AgentLookupEntry {\n  teamMemberId: string\n  userId?: string\n  isAgent: boolean\n}\n\n/**\n * Resolve parsed mentions to full DiscussionMention objects.\n *\n * Hybrid shape: stores BOTH `identifier` (the literal `@handle` typed) and\n * `teamMemberId` (resolved at write time). The query layer matches either,\n * so a slug rotation does not invalidate older mentions whose `teamMemberId`\n * still points at the original row.\n *\n * @param parsed - Array of parsed mentions from mentionParser\n * @param agentLookup - Map of identifier to TeamMember/User info\n * @returns Array of resolved DiscussionMention objects\n *\n * @example\n * ```typescript\n * const lookup = new Map([\n *   ['viktor-petrov', { teamMemberId: 'team_abc', isAgent: true }]\n * ]);\n * const resolved = resolveMentions(parsed, lookup);\n * ```\n */\nexport function resolveMentions(\n  parsed: ParsedMention[],\n  agentLookup: Map<string, AgentLookupEntry>\n): DiscussionMention[] {\n  return parsed.map(p => {\n    const entry = agentLookup.get(p.identifier)\n\n    const mention: DiscussionMention = {\n      // If entry exists, check isAgent; if no entry, default to 'agent'\n      type: entry ? (entry.isAgent ? 'agent' : 'user') : 'agent',\n      identifier: p.identifier,\n      position: p.position,\n    }\n\n    // Treat empty-string teamMemberId as \"no resolved teammember\" (user-only entry)\n    if (entry?.teamMemberId) {\n      mention.teamMemberId = entry.teamMemberId\n    }\n    if (entry?.userId) {\n      mention.userId = entry.userId\n    }\n\n    return mention\n  })\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Agent Lookup Builder\n *\n * Builds the identifier → {teamMemberId, userId, isAgent} map used by\n * `prepareDiscussionDoc` to resolve `@handle` mentions at write time.\n *\n * Pure function: takes already-fetched teammember and user rows and returns\n * the lookup Map. The d1-worker layer queries Drizzle directly and passes\n * the arrays in — keeps `db-collections` free of D1/Drizzle dependencies.\n */\n\nimport type { AgentLookupEntry } from './mentionResolver'\n\n/**\n * Minimal teammember shape needed for lookup-building.\n * Matches the columns the d1-worker queries.\n */\nexport interface TeamMemberLookupRow {\n  id: string\n  slug?: string | null\n  userName?: string | null\n  isAgent?: boolean | null\n}\n\n/**\n * Minimal user shape needed for lookup-building.\n * Email handle (text before `@`) becomes the identifier key.\n */\nexport interface UserLookupRow {\n  id: string\n  email?: string | null\n}\n\nexport interface BuildAgentLookupInput {\n  teammembers: ReadonlyArray<TeamMemberLookupRow>\n  users: ReadonlyArray<UserLookupRow>\n}\n\n/**\n * Convert a userName-style display name into a kebab-cased lookup key.\n * Example: \"Marcus Chen\" → \"marcus-chen\".\n *\n * Strips any character that isn't a letter, digit, hyphen, or underscore;\n * collapses runs of separators into a single hyphen; lowercases the result.\n */\nfunction kebabize(input: string): string {\n  return input\n    .toLowerCase()\n    .replace(/[^a-z0-9_-]+/g, '-')\n    .replace(/-+/g, '-')\n    .replace(/^-+|-+$/g, '')\n}\n\n/**\n * Extract the local-part of an email address for use as a mention handle.\n * Example: \"spencer@thornock.net\" → \"spencer\".\n */\nfunction emailHandle(email: string): string {\n  const at = email.indexOf('@')\n  return at === -1 ? email.toLowerCase() : email.slice(0, at).toLowerCase()\n}\n\n/**\n * Build the identifier → AgentLookupEntry map.\n *\n * Each teammember contributes:\n * - Primary key: `slug` (post-PR-272 canonical identifier)\n * - Fallback key: kebab-cased `userName` (legacy rows where operators sometimes\n *   type `@marcus-chen` from the human-readable display name)\n *\n * Each user contributes:\n * - Email-handle key (e.g. `spencer@thornock.net` → `spencer`)\n *\n * Lookup is case-insensitive: keys are lowercased on insert; the parser\n * already lowercases extracted identifiers.\n *\n * Conflict policy: teammember entries are written first. A user's email\n * handle that collides with a teammember slug WILL NOT overwrite the\n * teammember entry — teammember wins.\n */\nexport function buildAgentLookup(input: BuildAgentLookupInput): Map<string, AgentLookupEntry> {\n  const lookup = new Map<string, AgentLookupEntry>()\n\n  for (const tm of input.teammembers) {\n    if (!tm.id) continue\n    const isAgent = !!tm.isAgent\n\n    if (tm.slug) {\n      const key = tm.slug.toLowerCase()\n      if (!lookup.has(key)) {\n        lookup.set(key, { teamMemberId: tm.id, isAgent })\n      }\n    }\n\n    if (tm.userName) {\n      const key = kebabize(tm.userName)\n      if (key && !lookup.has(key)) {\n        lookup.set(key, { teamMemberId: tm.id, isAgent })\n      }\n    }\n  }\n\n  for (const u of input.users) {\n    if (!u.id || !u.email) continue\n    const key = emailHandle(u.email)\n    if (!key || lookup.has(key)) continue\n    // User-only entry: no teammember linkage, but we know the userId.\n    lookup.set(key, { teamMemberId: '', userId: u.id, isAgent: false })\n  }\n\n  return lookup\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * prepareDiscussionDoc\n *\n * Write-time hook that parses `@mentions` from a discussion's `content`\n * field and populates `mentions[]` with the hybrid identifier+teamMemberId\n * shape (and optional `userId` for human users).\n *\n * Idempotent: re-running on a document that already has `mentions[]`\n * re-parses the content (covers content edits where the mention list\n * may have changed).\n *\n * Forward-only: existing rows are not migrated. Only writes that pass\n * through this hook get their mentions populated.\n */\n\nimport type { AgentLookupEntry } from './mentionResolver'\nimport { parseMentions } from './mentionParser'\nimport { resolveMentions } from './mentionResolver'\nimport type { DiscussionMention } from '../types'\n\n/**\n * Mutate `doc.mentions` in place based on `doc.content`.\n *\n * - Empty / missing content → `mentions` left untouched (no key added).\n * - Non-empty content → `mentions` is set to the resolved array (replacing any prior value).\n *\n * Returns the same doc reference for ergonomic chaining in the caller's loop.\n */\nexport function prepareDiscussionDoc<\n  D extends {\n    content?: unknown\n    mentions?: DiscussionMention[]\n  },\n>(doc: D, lookup: Map<string, AgentLookupEntry>): D {\n  if (typeof doc.content !== 'string' || doc.content.length === 0) {\n    return doc\n  }\n\n  const parsed = parseMentions(doc.content)\n  doc.mentions = resolveMentions(parsed, lookup)\n  return doc\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * prepareEntityDescriptionDoc\n *\n * Write-time hook that parses `@mentions` from a task / milestone / project\n * `description` field and populates `mentions[]` with the hybrid\n * identifier+teamMemberId shape (and optional `userId` for human users).\n *\n * Sibling to `prepareDiscussionDoc` — same parser, same resolver, just\n * keyed off `description` instead of `content`. Lives as its own helper\n * so the d1-worker can fan out write hooks per collection without\n * branching inside `prepareDiscussionDoc`.\n *\n * Idempotent: re-running on a document that already has `mentions[]`\n * re-parses the description (covers description edits where the mention\n * list may have changed).\n *\n * Forward-only: existing rows are not migrated. Only writes that pass\n * through this hook get their mentions populated.\n */\n\nimport type { AgentLookupEntry } from './mentionResolver'\nimport { parseMentions } from './mentionParser'\nimport { resolveMentions } from './mentionResolver'\nimport type { DiscussionMention } from '../types'\n\n/**\n * Mutate `doc.mentions` in place based on `doc.description`.\n *\n * - Empty / missing description → `mentions` left untouched (no key added).\n * - Non-empty description → `mentions` is set to the resolved array\n *   (replacing any prior value).\n *\n * Returns the same doc reference for ergonomic chaining in the caller's loop.\n */\nexport function prepareEntityDescriptionDoc<\n  D extends {\n    description?: unknown\n    mentions?: DiscussionMention[]\n  },\n>(doc: D, lookup: Map<string, AgentLookupEntry>): D {\n  if (typeof doc.description !== 'string' || doc.description.length === 0) {\n    return doc\n  }\n\n  const parsed = parseMentions(doc.description)\n  doc.mentions = resolveMentions(parsed, lookup)\n  return doc\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Agent Inbox Query\n *\n * Single-call surface for an agent's active workload:\n *  - Tasks they're assigned to (Planned + In Progress)\n *  - Discussions where they were @-mentioned (within the lookback window)\n *  - Replies on threads they authored OR where they were @-mentioned in the reply\n *\n * Design spec: docs/specs/2026-05-03-agent-inbox-design.md §2\n *\n * Pure library: depends only on the in-memory collection accessor shape\n * defined by `AgentInboxCollections`. CLI and MCP surfaces (Phase 3) wire\n * up the accessors against RxDB; tests pass mocks.\n */\n\nimport type { DiscussionMention, DiscussionModel } from '../types'\nimport type { TaskModel } from '../models/Task'\nimport type { ConversationModel } from '../models/Conversation'\nimport type { MessageModel } from '../models/Message'\nimport type { ApprovalModel } from '../models/Approval'\nimport type { MilestoneModel } from '../models/Milestone'\nimport type { ProjectModel } from '../models/Project'\n\n// ---------------------------------------------------------------------------\n// Public types\n// ---------------------------------------------------------------------------\n\nexport interface TaskInboxItem {\n  id: string\n  title: string\n  description?: string\n  status: string\n  priority: number\n  projectId?: string\n  milestoneId?: string\n  parentTaskId?: string\n  createdAt: string\n  updatedAt: string\n  dueAt?: string\n}\n\nexport interface MentionInboxItem {\n  discussionId: string\n  entityType: string\n  entityId: string\n  authorTeamMemberId: string\n  authorUserName: string\n  contentSnippet: string\n  position: number\n  createdAt: string\n  /** Set when the discussion's entity is one of MY active tasks. */\n  relatedTaskId?: string\n}\n\nexport interface ReplyInboxItem {\n  discussionId: string\n  parentDiscussionId: string\n  authorTeamMemberId: string\n  authorUserName: string\n  contentSnippet: string\n  myPriorSnippet?: string\n  reason: 'authored-thread' | 'mentioned-in-reply'\n  createdAt: string\n  /** Set when the discussion's entity is one of MY active tasks. */\n  relatedTaskId?: string\n}\n\n/**\n * Multi-agent conversation surfaced in the inbox. One entry per\n * `conversations` row where the agent is a participant. New since\n * proj_qMizgu4RD2 (Conversations Extension); see spec §3.\n */\nexport interface ConversationInboxItem {\n  conversationId: string\n  title: string\n  participantIds: string[]\n  /** Resolved at query time when `collections.teammembers` is available. */\n  participantSlugs?: string[]\n  /** True when the conversation was implicitly created from a DM. */\n  isDm: boolean\n  /** True when the agent has muted this thread (`metadata.mutedBy` contains me). */\n  isMuted: boolean\n  /** Count of messages in window where `userId !== me`. */\n  unreadCount: number\n  /** Any unread message has me in `mentions[]` (per the hybrid match). */\n  hasUnreadMention: boolean\n  /** Denormalized from `metadata.lastMessageAt` (set by d1-worker hook). */\n  lastMessageAt: string\n  /** First 200 chars of the last message; from `metadata.lastMessagePreview`. */\n  lastMessagePreview: string\n  /** teamMemberId of the last message author. */\n  lastMessageAuthorId: string\n  /** Resolved slug for the last message author. */\n  lastMessageAuthorSlug?: string\n  /** Self-reported confidence (0-1) on the latest unread message, when set. */\n  lastMessageConfidence?: number\n  // Turn policy fields (when present on the conversation):\n  turnsUsed?: number\n  maxTurns?: number\n  turnsRemaining?: number\n  /** True when `turnsUsed >= maxTurns`. */\n  policyExceeded?: boolean\n  /** True when `turnPolicy.closedAt` is set. */\n  isClosed?: boolean\n  /** From `turnPolicy.closedReason` when the conversation is closed. */\n  closedReason?: string\n  /** Original requester's confidence target from `turnPolicy.expectedConfidence`. */\n  expectedConfidence?: number\n}\n\n/**\n * Pending approval where the caller is the approver. Surfaced in the\n * inbox as a separate section because they have a different action shape\n * from mentions/replies (response is a `collection-update`, not a new\n * discussion) and a different urgency profile (most workflows block\n * downstream tasks until the approval lands).\n *\n * `approverId` on the wire is a single string — agents = `team_xxx`,\n * humans = `user_xxx`. The query just matches whichever id the caller\n * carries.\n */\nexport interface ApprovalInboxItem {\n  /** `appr_xxx` — full id, used directly in the response `collection-update`. */\n  id: string\n  title: string\n  /** Free-form type label (e.g. \"brainstorm-question\", \"phase-decomposition\"). */\n  type: string\n  /** Workflow category slug (e.g. \"brainstorming\", \"planning\"). */\n  category: string\n  /** Human-readable category label (e.g. \"Brainstorming\"). */\n  categoryName: string\n  /** Free-form status — pending entries appear here; resolved ones don't. */\n  status: string\n  /** Optional preview of `documentContent` (first 200 chars). */\n  contentSnippet?: string\n  /** Optional doc-type discriminator, e.g. \"proposals\", \"phase-decomposition\". */\n  documentType?: string\n  /** Cross-references to the entity awaiting approval — populated when set. */\n  projectId?: string\n  milestoneId?: string\n  taskId?: string\n  documentId?: string\n  /** Approval creator (the one who *requested* the approval). */\n  requestedByUserId: string\n  createdAt: string\n}\n\n/**\n * Mention parsed from a task / milestone / project `description` field\n * (PR C). Distinct from {@link MentionInboxItem} (which is sourced from\n * `discussions`) because the action surface is different — to clear a\n * description-mention you typically reply with a `discussions` post on\n * the entity, not edit the description.\n */\nexport interface DescriptionMentionInboxItem {\n  /** Collection the entity lives in: `'tasks' | 'milestones' | 'projects'`. */\n  entityType: 'task' | 'milestone' | 'project'\n  /** Full entity id with native prefix (`task_<12>`, `mile_<12>`, `proj_<12>`). */\n  entityId: string\n  /** Entity title — agent's primary anchor when reading the inbox. */\n  title: string\n  /** First 200 chars of the description so the agent has context. */\n  descriptionSnippet: string\n  /** Position of my @-handle inside the description. */\n  position: number\n  /** Last write time (`updatedAt`) — relative-time anchor. */\n  updatedAt: string\n}\n\nexport interface AgentInboxResult {\n  tasks: TaskInboxItem[]\n  mentions: MentionInboxItem[]\n  replies: ReplyInboxItem[]\n  /** Multi-agent conversations where I'm a participant (Phase 2 of proj_qMizgu4RD2). */\n  conversations: ConversationInboxItem[]\n  /** Pending approvals where I'm the approver. */\n  approvals: ApprovalInboxItem[]\n  /** PR C: @-mentions found in task/milestone/project `description` fields. */\n  descriptionMentions: DescriptionMentionInboxItem[]\n  /** ISO 8601 timestamp of when the query ran. */\n  generatedAt: string\n  /** ISO 8601 cutoff (now - sinceDays) used to filter discussions/replies. */\n  windowStart: string\n}\n\n/**\n * Identity for an inbox query. Discriminated union so the same code path\n * serves both agents (queried by `teamMemberId` + `slug`) and humans\n * (queried by `userId`). Conversations are skipped when `kind === 'user'`\n * — agent-to-agent threads aren't a human surface today.\n */\nexport type InboxIdentity = AgentInboxIdentity | UserInboxIdentity\n\nexport interface AgentInboxIdentity {\n  kind: 'agent'\n  teamMemberId: string\n  slug: string\n  orgId: string\n  workspaceId: string\n}\n\nexport interface UserInboxIdentity {\n  kind: 'user'\n  userId: string\n  orgId: string\n  workspaceId: string\n}\n\n/**\n * Single id used as the equality target for the bulk of selectors:\n * `tasks.assigneeId`, `discussions.userId` (the author), `messages.userId`,\n * etc. Agents = `team_xxx`, humans = `user_xxx`.\n */\nfunction callerId(identity: InboxIdentity): string {\n  return identity.kind === 'agent' ? identity.teamMemberId : identity.userId\n}\n\nexport interface AgentInboxOpts {\n  /** Lookback window in days. Default 7. */\n  sinceDays?: number\n  /** Per-signal cap (tasks, mentions, replies). Default 50. */\n  limit?: number\n}\n\n/**\n * Minimal accessor shape backing the inbox query.\n *\n * `find` accepts a Mango-style selector and optional sort/limit; concrete\n * implementations may translate this to RxDB queries, D1 SELECTs, or\n * in-memory filters (the test path).\n */\nexport interface AgentInboxCollections {\n  tasks: {\n    find(query: {\n      selector: Record<string, unknown>\n      sort?: Array<Record<string, unknown>>\n      limit?: number\n    }): Promise<TaskModel[]>\n  }\n  discussions: {\n    find(query: {\n      selector: Record<string, unknown>\n      sort?: Array<Record<string, unknown>>\n      limit?: number\n    }): Promise<DiscussionModel[]>\n    findByIds(ids: string[]): Promise<DiscussionModel[]>\n  }\n  /**\n   * Optional — when not provided, `AgentInboxResult.conversations` is empty.\n   * Phase 2 of proj_qMizgu4RD2.\n   */\n  conversations?: {\n    find(query: {\n      selector: Record<string, unknown>\n      sort?: Array<Record<string, unknown>>\n      limit?: number\n    }): Promise<ConversationModel[]>\n  }\n  /**\n   * Optional — required only when `conversations` accessor is provided.\n   */\n  messages?: {\n    find(query: {\n      selector: Record<string, unknown>\n      sort?: Array<Record<string, unknown>>\n      limit?: number\n    }): Promise<MessageModel[]>\n  }\n  /**\n   * Optional — when provided, `ConversationInboxItem.participantSlugs` and\n   * `lastMessageAuthorSlug` are resolved via a single batched lookup.\n   */\n  teammembers?: {\n    findByIds(\n      ids: string[]\n    ): Promise<Array<{ id: string; slug?: string | null; userName?: string | null }>>\n  }\n  /**\n   * Optional — when not provided, `AgentInboxResult.approvals` is empty.\n   * Pending approvals where the caller is the `approverId`.\n   */\n  approvals?: {\n    find(query: {\n      selector: Record<string, unknown>\n      sort?: Array<Record<string, unknown>>\n      limit?: number\n    }): Promise<ApprovalModel[]>\n  }\n  /**\n   * Optional — when ANY of these three accessors are wired, the inbox\n   * scans the corresponding collection's `mentions[]` field. Missing\n   * accessor → that collection is silently skipped (so a caller can\n   * mount only the collections they care about).\n   *\n   * The `tasks` accessor is reused from above for description-mention\n   * scanning; we don't add a separate one. Milestones and projects\n   * each get their own here.\n   */\n  milestones?: {\n    find(query: {\n      selector: Record<string, unknown>\n      sort?: Array<Record<string, unknown>>\n      limit?: number\n    }): Promise<MilestoneModel[]>\n  }\n  projects?: {\n    find(query: {\n      selector: Record<string, unknown>\n      sort?: Array<Record<string, unknown>>\n      limit?: number\n    }): Promise<ProjectModel[]>\n  }\n}\n\n// ---------------------------------------------------------------------------\n// Internals\n// ---------------------------------------------------------------------------\n\nconst SNIPPET_LEN = 200\nconst MY_PRIOR_SNIPPET_LEN = 100\n\nconst ACTIVE_TASK_STATUSES = [\n  'Planned',\n  'planned',\n  'In Progress',\n  'in_progress',\n  'in-progress',\n  'todo',\n]\n\nfunction snippet(content: string, n: number): string {\n  if (typeof content !== 'string') return ''\n  return content.length <= n ? content : content.slice(0, n)\n}\n\n/**\n * Hybrid mention match: true when ANY entry in `mentions[]` resolves to me.\n *\n * For agents, the discussion mention shape carries either a stored\n * `teamMemberId` (resolved at write time) or a literal `identifier` (the\n * slug as typed). Match either.\n *\n * For humans, the mention shape carries `userId` (resolved at write\n * time). The literal-identifier escape hatch isn't applicable — humans\n * don't have a stable `@<handle>` slug today.\n */\nfunction mentionsMatchMe(\n  mentions: DiscussionMention[] | undefined,\n  identity: InboxIdentity\n): boolean {\n  if (!mentions || mentions.length === 0) return false\n  if (identity.kind === 'agent') {\n    const slugLower = identity.slug.toLowerCase()\n    return mentions.some(\n      m =>\n        m.teamMemberId === identity.teamMemberId ||\n        (typeof m.identifier === 'string' && m.identifier.toLowerCase() === slugLower)\n    )\n  }\n  return mentions.some(m => m.userId === identity.userId)\n}\n\nfunction findMyMentionPosition(\n  mentions: DiscussionMention[] | undefined,\n  identity: InboxIdentity\n): number {\n  if (!mentions || mentions.length === 0) return 0\n  if (identity.kind === 'agent') {\n    const slugLower = identity.slug.toLowerCase()\n    const found = mentions.find(\n      m =>\n        m.teamMemberId === identity.teamMemberId ||\n        (typeof m.identifier === 'string' && m.identifier.toLowerCase() === slugLower)\n    )\n    return found?.position ?? 0\n  }\n  const found = mentions.find(m => m.userId === identity.userId)\n  return found?.position ?? 0\n}\n\nfunction dedupReplies(\n  authored: DiscussionModel[],\n  mentioned: DiscussionModel[]\n): Array<{ discussion: DiscussionModel; reason: 'authored-thread' | 'mentioned-in-reply' }> {\n  const seen = new Set<string>()\n  const out: Array<{\n    discussion: DiscussionModel\n    reason: 'authored-thread' | 'mentioned-in-reply'\n  }> = []\n  // authored-thread first (preferred reason on overlap)\n  for (const r of authored) {\n    if (seen.has(r.id)) continue\n    seen.add(r.id)\n    out.push({ discussion: r, reason: 'authored-thread' })\n  }\n  for (const r of mentioned) {\n    if (seen.has(r.id)) continue\n    seen.add(r.id)\n    out.push({ discussion: r, reason: 'mentioned-in-reply' })\n  }\n  return out\n}\n\nfunction toTaskInboxItem(t: TaskModel): TaskInboxItem {\n  return {\n    id: t.id,\n    title: t.title,\n    description: t.description,\n    status: t.status,\n    priority: t.priority,\n    projectId: t.projectId,\n    milestoneId: t.milestoneId,\n    parentTaskId: t.parentTaskId,\n    createdAt: t.createdAt,\n    updatedAt: t.updatedAt,\n    dueAt: t.dueAt,\n  }\n}\n\nfunction toMentionInboxItem(\n  d: DiscussionModel,\n  myTaskIds: Set<string>,\n  identity: InboxIdentity\n): MentionInboxItem {\n  const item: MentionInboxItem = {\n    discussionId: d.id,\n    entityType: d.entityType,\n    entityId: d.entityId,\n    authorTeamMemberId: d.userId,\n    authorUserName: d.userName,\n    contentSnippet: snippet(d.content, SNIPPET_LEN),\n    position: findMyMentionPosition(d.mentions, identity),\n    createdAt: d.createdAt,\n  }\n  if (d.entityType === 'task' && myTaskIds.has(d.entityId)) {\n    item.relatedTaskId = d.entityId\n  }\n  return item\n}\n\nfunction toReplyInboxItem(\n  d: DiscussionModel,\n  reason: 'authored-thread' | 'mentioned-in-reply',\n  parentMap: Map<string, DiscussionModel>,\n  myTaskIds: Set<string>,\n  identity: InboxIdentity\n): ReplyInboxItem {\n  const parent = d.parentId ? parentMap.get(d.parentId) : undefined\n\n  const item: ReplyInboxItem = {\n    discussionId: d.id,\n    parentDiscussionId: d.parentId ?? '',\n    authorTeamMemberId: d.userId,\n    authorUserName: d.userName,\n    contentSnippet: snippet(d.content, SNIPPET_LEN),\n    reason,\n    createdAt: d.createdAt,\n  }\n\n  if (parent && parent.userId === callerId(identity)) {\n    item.myPriorSnippet = snippet(parent.content, MY_PRIOR_SNIPPET_LEN)\n  }\n\n  if (d.entityType === 'task' && myTaskIds.has(d.entityId)) {\n    item.relatedTaskId = d.entityId\n  }\n\n  return item\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Build an agent's active inbox.\n *\n * @param collections - Accessors for `tasks` and `discussions` collections.\n * @param identity - The agent's resolved identity (teamMemberId, slug, tenancy).\n * @param opts - Optional sinceDays (default 7) and per-signal limit (default 50).\n *\n * @returns AgentInboxResult — three independent arrays (tasks, mentions, replies)\n *          plus `generatedAt` / `windowStart` for caller display.\n */\nexport async function getInbox(\n  collections: AgentInboxCollections,\n  identity: InboxIdentity,\n  opts?: AgentInboxOpts\n): Promise<AgentInboxResult> {\n  const sinceDays = opts?.sinceDays ?? 7\n  const limit = opts?.limit ?? 50\n  const generatedAt = new Date().toISOString()\n  const windowStart = new Date(Date.now() - sinceDays * 86400_000).toISOString()\n  const me = callerId(identity)\n\n  const [tasks, candidateDiscussions, candidateReplies] = await Promise.all([\n    collections.tasks.find({\n      selector: {\n        assigneeId: me,\n        status: { $in: ACTIVE_TASK_STATUSES },\n        completed: { $ne: true },\n        archived: { $ne: true },\n        _deleted: 0,\n        orgId: identity.orgId,\n        workspaceId: identity.workspaceId,\n      },\n      sort: [{ priority: 'desc' }, { createdAt: 'desc' }],\n      limit,\n    }),\n    collections.discussions.find({\n      selector: {\n        createdAt: { $gte: windowStart },\n        _deleted: 0,\n        orgId: identity.orgId,\n        workspaceId: identity.workspaceId,\n      },\n      sort: [{ createdAt: 'desc' }],\n      // Overfetch so we can TS-side filter on hybrid mention match.\n      limit: limit * 5,\n    }),\n    collections.discussions.find({\n      selector: {\n        parentId: { $exists: true, $ne: null },\n        createdAt: { $gte: windowStart },\n        _deleted: 0,\n        orgId: identity.orgId,\n        workspaceId: identity.workspaceId,\n        userId: { $ne: me },\n      },\n      sort: [{ createdAt: 'desc' }],\n      limit: limit * 5,\n    }),\n  ])\n\n  // Filter mentions by hybrid match\n  const mentionMatches = candidateDiscussions.filter(d => mentionsMatchMe(d.mentions, identity))\n\n  // The candidate-replies Mango selector uses\n  // `parentId: { $exists: true, $ne: null }`. The empty-string convention\n  // for \"no parent\" (`\"\"`) is a string that exists and is not `null`, so it\n  // passes the selector. Strip those top-level discussions TS-side so they\n  // only show up under `mentions[]`, not duplicated under `replies[]`.\n  const actualReplies = candidateReplies.filter(\n    r => typeof r.parentId === 'string' && r.parentId.length > 0\n  )\n\n  // Resolve parent discussions for the reply two-pass walk\n  const parentIds = Array.from(\n    new Set(actualReplies.map(r => r.parentId).filter((id): id is string => Boolean(id)))\n  )\n  const parents = parentIds.length > 0 ? await collections.discussions.findByIds(parentIds) : []\n  const parentMap = new Map(parents.map(p => [p.id, p]))\n\n  const repliesAuthored = actualReplies.filter(r => {\n    if (!r.parentId) return false\n    const parent = parentMap.get(r.parentId)\n    return parent?.userId === me\n  })\n  const repliesMentioned = actualReplies.filter(r => mentionsMatchMe(r.mentions, identity))\n\n  const replyEntries = dedupReplies(repliesAuthored, repliesMentioned)\n\n  // Build cross-reference set of \"my task ids\"\n  const myTaskIds = new Set(tasks.map(t => t.id))\n\n  // Phase 2 of proj_qMizgu4RD2 (Conversations Extension): aggregate\n  // multi-agent conversations the agent is a participant of. Optional —\n  // when `collections.conversations` and `collections.messages` aren't\n  // wired (e.g. a caller using only the base inbox), conversations is `[]`.\n  const conversations = await aggregateConversations(collections, identity, windowStart, limit)\n\n  // Pending approvals where I'm the approver. Single-key index hit on\n  // `approverId`; status is filtered TS-side because the schema uses a\n  // free-form string and the active set might evolve. `windowStart` is\n  // intentionally NOT applied — pending approvals don't expire on the\n  // lookback window; an approval requested 30 days ago that's still\n  // pending should still show up.\n  const approvals = await aggregateApprovals(collections, identity, limit)\n\n  // PR C: @-mentions parsed from task / milestone / project descriptions.\n  // Same forward-only indexing model as `discussions.mentions`. Each\n  // collection's accessor is independently optional; missing → skipped.\n  const descriptionMentions = await aggregateDescriptionMentions(\n    collections,\n    identity,\n    windowStart,\n    limit\n  )\n\n  return {\n    tasks: tasks.slice(0, limit).map(toTaskInboxItem),\n    mentions: mentionMatches.slice(0, limit).map(d => toMentionInboxItem(d, myTaskIds, identity)),\n    replies: replyEntries\n      .slice(0, limit)\n      .map(({ discussion, reason }) =>\n        toReplyInboxItem(discussion, reason, parentMap, myTaskIds, identity)\n      ),\n    conversations,\n    approvals,\n    descriptionMentions,\n    generatedAt,\n    windowStart,\n  }\n}\n\n/**\n * Phase 2 of proj_qMizgu4RD2: aggregate the agent's conversation inbox.\n *\n * Returns `[]` when the optional `conversations` / `messages` accessors\n * aren't wired (caller using only the base inbox surfaces).\n *\n * Steps:\n *  1. Fetch agent-chat conversations where the agent is a participant.\n *  2. Per conversation: fetch unread messages in window (`userId !== me`).\n *  3. Build the inbox item with unreadCount, hasUnreadMention, lastMessage*\n *     (from the parent conversation's metadata), turnPolicy snapshot.\n *  4. Mute filter — skip muted conversations UNLESS hasUnreadMention is true\n *     (mute can't suppress @-mentions).\n *  5. Sort by lastMessageAt desc; slice to limit.\n *  6. Optional: resolve participantSlugs + lastMessageAuthorSlug via batched\n *     teammembers.findByIds when the accessor is present.\n */\nasync function aggregateConversations(\n  collections: AgentInboxCollections,\n  identity: InboxIdentity,\n  windowStart: string,\n  limit: number\n): Promise<ConversationInboxItem[]> {\n  if (!collections.conversations || !collections.messages) return []\n  // Multi-agent conversations are an agent-only surface today. Humans\n  // don't currently participate in agent-chat threads (no `team_xxx`\n  // identifier to match on participantIds). Skip cleanly so the user\n  // inbox doesn't 500 against the unrelated query path.\n  if (identity.kind === 'user') return []\n\n  // Agent-chat conversations are scoped to the org, NOT the workspace —\n  // teammembers themselves live at the org level (no workspaceId), so a\n  // DM between two teammembers should be visible regardless of which\n  // workspace either agent happens to be operating in. Filtering by\n  // `workspaceId` here would orphan any conversation whose row carries\n  // a different workspaceId than the inbox caller's tm row (the bug that\n  // hid CFO-initiated DMs from CEO/CTO on 2026-05-23 — the writer\n  // defaulted workspaceId to '' while the reader resolved it to the\n  // tm row's value).\n  const candidates = await collections.conversations.find({\n    selector: {\n      'metadata.kind': 'agent-chat',\n      'metadata.participantIds': { $in: [identity.teamMemberId] },\n      _deleted: 0,\n      orgId: identity.orgId,\n    },\n    sort: [{ updatedAt: 'desc' }],\n    limit: limit * 2,\n  })\n  if (candidates.length === 0) return []\n\n  // Single batched fetch of all unread messages across the candidate\n  // conversations. Avoids the N+1 query pattern (one find per conv) AND\n  // the per-conversation row cap (which would have made `unreadCount`\n  // and `hasUnreadMention` lossy for very chatty threads).\n  const candidateIds = candidates.map(c => c.id)\n  const allUnread = await collections.messages.find({\n    selector: {\n      conversationId: { $in: candidateIds },\n      createdAt: { $gte: windowStart },\n      userId: { $ne: identity.teamMemberId },\n      _deleted: 0,\n      // Messages inherit the conversation's org scope; workspaceId is\n      // intentionally omitted to match the parent-conversation selector\n      // above. Cross-org isolation is enforced via orgId.\n      orgId: identity.orgId,\n    },\n    sort: [{ createdAt: 'desc' }],\n    // Per-call cap: the inbox only surfaces ~limit conversations, each\n    // typically with <50 unread; even at the upper bound this stays\n    // bounded. If a single conversation legitimately has more, the\n    // count is still accurate (we group client-side); only the\n    // `lastMessageConfidence` heuristic uses the truncated list.\n    limit: limit * 200,\n  })\n\n  // Group by conversationId\n  const unreadByConvId = new Map<string, MessageModel[]>()\n  for (const m of allUnread) {\n    const cid = m.conversationId\n    if (typeof cid !== 'string') continue\n    if (!unreadByConvId.has(cid)) unreadByConvId.set(cid, [])\n    unreadByConvId.get(cid)!.push(m)\n  }\n\n  // Build inbox items + apply mute filter\n  const items: ConversationInboxItem[] = []\n  for (const c of candidates) {\n    const meta = (c.metadata as Record<string, unknown> | undefined) ?? {}\n    const unread = unreadByConvId.get(c.id) ?? []\n    const item = buildConversationInboxItem(c, meta, unread, identity)\n\n    const mutedBy = (meta.mutedBy as string[] | undefined) ?? []\n    const isMuted = mutedBy.includes(identity.teamMemberId)\n    if (isMuted && !item.hasUnreadMention) continue\n    item.isMuted = isMuted\n    items.push(item)\n  }\n\n  // Sort by lastMessageAt desc (already sorted by updatedAt desc, but\n  // lastMessageAt is the canonical ordering for inbox display).\n  items.sort((a, b) => b.lastMessageAt.localeCompare(a.lastMessageAt))\n  const sliced = items.slice(0, limit)\n\n  // Resolve participant + author slugs (single batched lookup) when the\n  // teammembers accessor is provided.\n  if (collections.teammembers && sliced.length > 0) {\n    const tmIds = new Set<string>()\n    for (const i of sliced) {\n      i.participantIds.forEach(id => tmIds.add(id))\n      if (i.lastMessageAuthorId) tmIds.add(i.lastMessageAuthorId)\n    }\n    const tmList = Array.from(tmIds)\n    if (tmList.length > 0) {\n      const rows = await collections.teammembers.findByIds(tmList)\n      const slugById = new Map<string, string>()\n      for (const r of rows) {\n        if (r.slug) slugById.set(r.id, r.slug)\n        else if (r.userName) slugById.set(r.id, r.userName)\n      }\n      for (const i of sliced) {\n        i.participantSlugs = i.participantIds.map(id => slugById.get(id) ?? id)\n        if (i.lastMessageAuthorId) {\n          i.lastMessageAuthorSlug = slugById.get(i.lastMessageAuthorId) ?? i.lastMessageAuthorId\n        }\n      }\n    }\n  }\n\n  return sliced\n}\n\nfunction buildConversationInboxItem(\n  c: ConversationModel,\n  meta: Record<string, unknown>,\n  unread: MessageModel[],\n  identity: AgentInboxIdentity // user kind is filtered out before this is called\n): ConversationInboxItem {\n  const participantIds = (meta.participantIds as string[] | undefined) ?? []\n  const isDm = meta.isDm === true\n  const lastMessageAt = (meta.lastMessageAt as string | undefined) ?? c.updatedAt\n  const lastMessagePreview = (meta.lastMessagePreview as string | undefined) ?? ''\n  const lastMessageAuthorId = (meta.lastMessageAuthorId as string | undefined) ?? ''\n\n  const hasUnreadMention = unread.some(m =>\n    mentionsMatchMe(m.mentions as DiscussionMention[] | undefined, identity)\n  )\n\n  // Latest unread message's self-reported confidence (when set on its metadata)\n  let lastMessageConfidence: number | undefined\n  for (const m of unread) {\n    const mm = (m.metadata as Record<string, unknown> | undefined) ?? {}\n    if (typeof mm.confidence === 'number') {\n      lastMessageConfidence = mm.confidence\n      break\n    }\n  }\n\n  const item: ConversationInboxItem = {\n    conversationId: c.id,\n    title: c.title,\n    participantIds,\n    isDm,\n    isMuted: false, // set by caller after filtering\n    unreadCount: unread.length,\n    hasUnreadMention,\n    lastMessageAt,\n    lastMessagePreview,\n    lastMessageAuthorId,\n  }\n  if (lastMessageConfidence != null) item.lastMessageConfidence = lastMessageConfidence\n\n  // Turn policy fields (when set on the conversation)\n  const tp = meta.turnPolicy as Record<string, unknown> | undefined\n  if (tp) {\n    if (typeof tp.turnsUsed === 'number') item.turnsUsed = tp.turnsUsed\n    if (typeof tp.maxTurns === 'number') {\n      item.maxTurns = tp.maxTurns\n      item.turnsRemaining = Math.max(0, tp.maxTurns - (item.turnsUsed ?? 0))\n      item.policyExceeded = (item.turnsUsed ?? 0) >= tp.maxTurns\n    }\n    if (typeof tp.expectedConfidence === 'number') item.expectedConfidence = tp.expectedConfidence\n    if (typeof tp.closedAt === 'string' && tp.closedAt.length > 0) {\n      item.isClosed = true\n      if (typeof tp.closedReason === 'string') item.closedReason = tp.closedReason\n    }\n  }\n\n  return item\n}\n\n/**\n * Pending-approval aggregator. Single tenancy-scoped query on\n * `approverId == me, _deleted = 0`, with `status` filtered TS-side\n * (free-form string in the schema; the active set evolves over time\n * — `'pending'` is the canonical value but defensive matching keeps\n * the inbox tolerant to legacy or new variants).\n *\n * Returns `[]` when the optional `collections.approvals` accessor\n * isn't wired so callers using only the base inbox surfaces don't\n * pay for a query they didn't ask for.\n */\nasync function aggregateApprovals(\n  collections: AgentInboxCollections,\n  identity: InboxIdentity,\n  limit: number\n): Promise<ApprovalInboxItem[]> {\n  if (!collections.approvals) return []\n\n  const me = callerId(identity)\n  const candidates = await collections.approvals.find({\n    selector: {\n      approverId: me,\n      _deleted: 0,\n      orgId: identity.orgId,\n      workspaceId: identity.workspaceId,\n    },\n    sort: [{ createdAt: 'desc' }],\n    // Overfetch so the TS-side status filter still has `limit` items\n    // worth of pending entries to surface even if half the rows are\n    // resolved (a busy approver might have many recent decisions).\n    limit: limit * 5,\n  })\n\n  const pending = candidates.filter(a => isPendingStatus(a.status))\n  return pending.slice(0, limit).map(toApprovalInboxItem)\n}\n\nfunction isPendingStatus(status: string | undefined): boolean {\n  if (typeof status !== 'string') return false\n  // 'pending' is the canonical value used by every brainstorming /\n  // multi-phase planning flow. Lowercased compare so the inbox is\n  // tolerant if a caller writes 'Pending' instead.\n  return status.toLowerCase() === 'pending'\n}\n\nfunction toApprovalInboxItem(a: ApprovalModel): ApprovalInboxItem {\n  const item: ApprovalInboxItem = {\n    id: a.id,\n    title: a.title,\n    type: a.type,\n    category: a.category,\n    categoryName: a.categoryName,\n    status: a.status,\n    requestedByUserId: a.userId,\n    createdAt: a.createdAt,\n  }\n  if (a.documentContent) item.contentSnippet = snippet(a.documentContent, SNIPPET_LEN)\n  if (a.documentType) item.documentType = a.documentType\n  // Cross-reference fields are required strings in the schema but most\n  // approvals only set a subset (e.g. project-level approvals leave\n  // taskId empty). Surface only the populated ones so the agent doesn't\n  // chase empty-string ids.\n  if (a.projectId) item.projectId = a.projectId\n  if (a.milestoneId) item.milestoneId = a.milestoneId\n  if (a.taskId) item.taskId = a.taskId\n  if (a.documentId) item.documentId = a.documentId\n  return item\n}\n\n/**\n * Description-mention aggregator (PR C). Scans `tasks`, `milestones`,\n * and `projects` collections for any active row where `mentions[]`\n * matches the caller. Each collection's accessor is independently\n * optional — missing → skipped without crashing.\n *\n * The scan is windowed by `updatedAt >= windowStart` so the result set\n * doesn't grow unbounded as the org accumulates entities. Existing rows\n * whose descriptions were authored BEFORE the worker write hook landed\n * have `mentions = null` and are silently skipped — same forward-only\n * disclosure as discussions.\n *\n * Status filter (TS-side): only `tasks` enforces `status IN active set`.\n * Milestones and projects can have @-mentions even when \"Complete\" — the\n * agent might be tagged for a retrospective comment. So those two\n * collections only filter on tenancy + window + non-empty mentions.\n */\nasync function aggregateDescriptionMentions(\n  collections: AgentInboxCollections,\n  identity: InboxIdentity,\n  windowStart: string,\n  limit: number\n): Promise<DescriptionMentionInboxItem[]> {\n  const out: DescriptionMentionInboxItem[] = []\n\n  // ---------- tasks ----------\n  // Tasks accessor is required (already used for the Active Tasks\n  // section), so always run this branch.\n  const taskHits = await collections.tasks.find({\n    selector: {\n      _deleted: 0,\n      orgId: identity.orgId,\n      workspaceId: identity.workspaceId,\n      // Don't constrain on status — a description-mention on a\n      // Complete task is still actionable (e.g. retro comment).\n      updatedAt: { $gte: windowStart },\n    },\n    sort: [{ updatedAt: 'desc' }],\n    limit: limit * 5,\n  })\n  for (const t of taskHits) {\n    if (!mentionsMatchMe(t.mentions as DiscussionMention[] | undefined, identity)) continue\n    out.push({\n      entityType: 'task',\n      entityId: t.id,\n      title: t.title,\n      descriptionSnippet: snippet(t.description ?? '', SNIPPET_LEN),\n      position: findMyMentionPosition(t.mentions as DiscussionMention[] | undefined, identity),\n      updatedAt: t.updatedAt,\n    })\n  }\n\n  // ---------- milestones ----------\n  if (collections.milestones) {\n    const milestoneHits = await collections.milestones.find({\n      selector: {\n        _deleted: 0,\n        orgId: identity.orgId,\n        workspaceId: identity.workspaceId,\n        updatedAt: { $gte: windowStart },\n      },\n      sort: [{ updatedAt: 'desc' }],\n      limit: limit * 5,\n    })\n    for (const m of milestoneHits) {\n      if (!mentionsMatchMe(m.mentions as DiscussionMention[] | undefined, identity)) continue\n      out.push({\n        entityType: 'milestone',\n        entityId: m.id,\n        title: m.title,\n        descriptionSnippet: snippet(m.description ?? '', SNIPPET_LEN),\n        position: findMyMentionPosition(m.mentions as DiscussionMention[] | undefined, identity),\n        updatedAt: m.updatedAt,\n      })\n    }\n  }\n\n  // ---------- projects ----------\n  if (collections.projects) {\n    const projectHits = await collections.projects.find({\n      selector: {\n        _deleted: 0,\n        orgId: identity.orgId,\n        workspaceId: identity.workspaceId,\n        updatedAt: { $gte: windowStart },\n      },\n      sort: [{ updatedAt: 'desc' }],\n      limit: limit * 5,\n    })\n    for (const p of projectHits) {\n      if (!mentionsMatchMe(p.mentions as DiscussionMention[] | undefined, identity)) continue\n      out.push({\n        entityType: 'project',\n        entityId: p.id,\n        title: p.title,\n        descriptionSnippet: snippet(p.description ?? '', SNIPPET_LEN),\n        position: findMyMentionPosition(p.mentions as DiscussionMention[] | undefined, identity),\n        updatedAt: p.updatedAt,\n      })\n    }\n  }\n\n  // Sort all hits across the three collections by updatedAt desc and cap.\n  out.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt))\n  return out.slice(0, limit)\n}\n\n/**\n * Backward-compat alias for the agent-only inbox surface.\n *\n * @deprecated Use {@link getInbox} with an {@link InboxIdentity}\n * (discriminated union) instead. Existing call sites that pass a literal\n * of the old shape just need a `kind: 'agent'` discriminator added to\n * compile against the new typing.\n */\nexport const getAgentInbox = getInbox\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Pure hierarchy helpers for OpenClaw agent authorization.\n *\n * Inputs are plain teammember-like rows. Local `.flowstate/agents/*.json`\n * files are bootstrap/import artifacts only and are not runtime hierarchy\n * authority. The helpers intentionally avoid RxDB document APIs so MCP, CLI,\n * workers, and tests can all call the same code with already-loaded records.\n */\n\nexport interface AgentHierarchyRecord {\n  id?: string\n  slug?: string | null\n  name?: string | null\n  userName?: string | null\n  role?: string | null\n  directReports?: unknown\n  metadata?: Record<string, unknown>\n  extended?: {\n    agent?: {\n      name?: string | null\n      metadata?: Record<string, unknown>\n      [key: string]: unknown\n    }\n    [key: string]: unknown\n  }\n  [key: string]: unknown\n}\n\nexport interface AgentHierarchyCollections {\n  teammembers?: AgentHierarchyRecord[] | { records?: AgentHierarchyRecord[] }\n  records?: AgentHierarchyRecord[]\n}\n\nexport type AgentHierarchyInput = AgentHierarchyRecord[] | AgentHierarchyCollections\n\ninterface HierarchyNode {\n  slug: string\n  aliases: Set<string>\n  directReports: string[]\n}\n\ninterface HierarchyIndex {\n  nodes: Map<string, HierarchyNode>\n  aliasToSlug: Map<string, string>\n}\n\ninterface AliasBundle {\n  canonicalSlug: string\n  stableAliases: string[]\n  fallbackAliases: string[]\n}\n\ninterface AliasSource {\n  slug: string\n  kind: 'stable' | 'fallback'\n  stableBacked: boolean\n}\n\nexport function getDirectReports(input: AgentHierarchyInput, managerSlug: string): string[] {\n  const index = buildHierarchyIndex(input)\n  const manager = requireNode(index, managerSlug, 'manager')\n  return [...manager.directReports]\n}\n\nexport function getDescendants(input: AgentHierarchyInput, managerSlug: string): string[] {\n  const index = buildHierarchyIndex(input)\n  const manager = requireNode(index, managerSlug, 'manager')\n  const descendants: string[] = []\n  const visited = new Set<string>()\n\n  const walk = (node: HierarchyNode): void => {\n    for (const childSlug of node.directReports) {\n      if (visited.has(childSlug)) continue\n      visited.add(childSlug)\n      descendants.push(childSlug)\n      const child = index.nodes.get(childSlug)\n      if (child) walk(child)\n    }\n  }\n\n  walk(manager)\n  return descendants\n}\n\nexport function assertCanControl(\n  input: AgentHierarchyInput,\n  managerSlug: string,\n  childSlug: string\n): true {\n  const index = buildHierarchyIndex(input)\n  const manager = requireNode(index, managerSlug, 'manager')\n  const target = requireNode(index, childSlug, 'target')\n\n  if (manager.slug === target.slug) {\n    throw new Error(`Agent hierarchy authorization rejected self-control for \"${manager.slug}\"`)\n  }\n\n  if (!manager.directReports.includes(target.slug)) {\n    throw new Error(\n      `Agent hierarchy authorization rejected: ${manager.slug} cannot control ${target.slug}; ` +\n        'control is limited to direct reports'\n    )\n  }\n\n  return true\n}\n\nexport function assertCanReport(\n  input: AgentHierarchyInput,\n  managerSlug: string,\n  targetSlug: string\n): true {\n  const index = buildHierarchyIndex(input)\n  const manager = requireNode(index, managerSlug, 'manager')\n  const target = requireNode(index, targetSlug, 'target')\n\n  if (manager.slug === target.slug) {\n    throw new Error(`Agent hierarchy authorization rejected self-reporting for \"${manager.slug}\"`)\n  }\n\n  const descendants = getDescendantsFromIndex(index, manager.slug)\n  if (!descendants.includes(target.slug)) {\n    throw new Error(\n      `Agent hierarchy authorization rejected: ${manager.slug} cannot report on ${target.slug}; ` +\n        'reporting is limited to descendants'\n    )\n  }\n\n  return true\n}\n\nfunction getDescendantsFromIndex(index: HierarchyIndex, managerSlug: string): string[] {\n  const manager = index.nodes.get(managerSlug)\n  if (!manager) return []\n  const descendants: string[] = []\n  const visited = new Set<string>()\n\n  const walk = (node: HierarchyNode): void => {\n    for (const childSlug of node.directReports) {\n      if (visited.has(childSlug)) continue\n      visited.add(childSlug)\n      descendants.push(childSlug)\n      const child = index.nodes.get(childSlug)\n      if (child) walk(child)\n    }\n  }\n\n  walk(manager)\n  return descendants\n}\n\nfunction buildHierarchyIndex(input: AgentHierarchyInput): HierarchyIndex {\n  const records = collectRecords(input)\n  const nodes = new Map<string, HierarchyNode>()\n  const aliasToSlug = new Map<string, string>()\n  const aliasSources = new Map<string, AliasSource>()\n  const ambiguousFallbackAliases = new Set<string>()\n\n  for (const record of records) {\n    const aliases = resolveAliasBundle(record)\n    const slug = aliases.canonicalSlug\n    if (!slug) continue\n\n    if (nodes.has(slug)) {\n      throw new Error(`Agent hierarchy authorization rejected: duplicate slug \"${slug}\"`)\n    }\n\n    const node: HierarchyNode = {\n      slug,\n      aliases: new Set<string>(),\n      directReports: [],\n    }\n\n    for (const alias of aliases.stableAliases) {\n      const existing = aliasSources.get(alias)\n      if (existing) {\n        if (existing.kind === 'fallback' && existing.stableBacked) {\n          aliasToSlug.set(alias, slug)\n          aliasSources.set(alias, { slug, kind: 'stable', stableBacked: true })\n          node.aliases.add(alias)\n          continue\n        }\n        throw new Error(\n          `Agent hierarchy authorization rejected: alias collision for \"${alias}\" ` +\n            `between \"${existing.slug}\" and \"${slug}\"`\n        )\n      }\n      node.aliases.add(alias)\n      aliasToSlug.set(alias, slug)\n      aliasSources.set(alias, { slug, kind: 'stable', stableBacked: true })\n    }\n\n    for (const alias of aliases.fallbackAliases) {\n      if (ambiguousFallbackAliases.has(alias)) continue\n      const existing = aliasSources.get(alias)\n      if (existing) {\n        if (existing.slug === slug) continue\n        if (existing.kind === 'stable' && aliases.stableAliases.length > 0) continue\n        if (\n          existing.kind === 'fallback' &&\n          existing.stableBacked &&\n          aliases.stableAliases.length > 0\n        ) {\n          aliasSources.delete(alias)\n          aliasToSlug.delete(alias)\n          ambiguousFallbackAliases.add(alias)\n          continue\n        }\n        throw new Error(\n          `Agent hierarchy authorization rejected: alias collision for \"${alias}\" ` +\n            `between \"${existing.slug}\" and \"${slug}\"`\n        )\n      }\n      node.aliases.add(alias)\n      aliasToSlug.set(alias, slug)\n      aliasSources.set(alias, {\n        slug,\n        kind: 'fallback',\n        stableBacked: aliases.stableAliases.length > 0,\n      })\n    }\n\n    const reports = readDirectReports(record).map(normalizeSlug).filter(isNonEmptyString)\n    node.directReports = mergeUnique(node.directReports, reports)\n    nodes.set(slug, node)\n  }\n\n  for (const node of nodes.values()) {\n    node.directReports = node.directReports.map(slug => aliasToSlug.get(slug) ?? slug)\n  }\n\n  validateAcyclic(nodes)\n\n  return { nodes, aliasToSlug }\n}\n\nfunction collectRecords(input: AgentHierarchyInput): AgentHierarchyRecord[] {\n  if (Array.isArray(input)) return input\n\n  return [...recordsFromSource(input.records), ...recordsFromSource(input.teammembers)]\n}\n\nfunction recordsFromSource(\n  source: AgentHierarchyRecord[] | { records?: AgentHierarchyRecord[] } | undefined\n): AgentHierarchyRecord[] {\n  if (!source) return []\n  if (Array.isArray(source)) return source\n  return source.records ?? []\n}\n\nfunction validateAcyclic(nodes: Map<string, HierarchyNode>): void {\n  const visited = new Set<string>()\n  const visiting = new Set<string>()\n\n  const visit = (slug: string, path: string[]): void => {\n    if (visited.has(slug)) return\n    if (visiting.has(slug)) {\n      const cycleStart = path.indexOf(slug)\n      const cyclePath = [...path.slice(cycleStart), slug].join(' -> ')\n      throw new Error(`Agent hierarchy authorization rejected: cycle detected (${cyclePath})`)\n    }\n\n    const node = nodes.get(slug)\n    if (!node) return\n\n    visiting.add(slug)\n    for (const childSlug of node.directReports) {\n      visit(childSlug, [...path, childSlug])\n    }\n    visiting.delete(slug)\n    visited.add(slug)\n  }\n\n  for (const slug of nodes.keys()) {\n    visit(slug, [slug])\n  }\n}\n\nfunction requireNode(\n  index: HierarchyIndex,\n  slug: string,\n  kind: 'manager' | 'target'\n): HierarchyNode {\n  const normalized = normalizeSlug(slug)\n  const canonicalSlug = index.aliasToSlug.get(normalized) ?? normalized\n  const node = index.nodes.get(canonicalSlug)\n  if (!node) {\n    throw new Error(`Agent hierarchy authorization rejected: unknown ${kind} slug \"${normalized}\"`)\n  }\n  return node\n}\n\nfunction resolveAliasBundle(record: AgentHierarchyRecord): AliasBundle {\n  const metadata = record.metadata ?? {}\n  const extendedAgent = record.extended?.agent\n  const extendedAgentMetadata = extendedAgent?.metadata ?? {}\n  const stableAliases = [\n    normalizeMaybe(record.slug),\n    normalizeMaybe(metadata['slug']),\n    normalizeMaybe(extendedAgent?.name),\n  ].filter(isNonEmptyString)\n  const fallbackAliases = mergeUnique(\n    [],\n    [\n      normalizeMaybe(record.name),\n      normalizeMaybe(record.userName),\n      normalizeMaybe(metadata['name']),\n      normalizeMaybe(metadata['orgRole']),\n      normalizeMaybe(extendedAgentMetadata['orgRole']),\n    ].filter(isNonEmptyString)\n  )\n  const canonicalSlug = stableAliases[0] ?? fallbackAliases[0] ?? ''\n\n  return {\n    canonicalSlug,\n    stableAliases: mergeUnique([], stableAliases),\n    fallbackAliases,\n  }\n}\n\nfunction readDirectReports(record: AgentHierarchyRecord): string[] {\n  const metadata = record.metadata ?? {}\n  const extendedAgentMetadata = record.extended?.agent?.metadata ?? {}\n\n  return [\n    ...readSlugArray(record.directReports),\n    ...readSlugArray(metadata['directReports']),\n    ...readSlugArray(extendedAgentMetadata['directReports']),\n  ]\n}\n\nfunction readSlugArray(value: unknown): string[] {\n  if (!Array.isArray(value)) return []\n\n  return value\n    .map(item => {\n      if (typeof item === 'string') return directReportSlugFromString(item)\n      if (!isRecord(item)) return null\n      return (\n        stringValue(item['slug']) ??\n        stringValue(item['name']) ??\n        stringValue(item['userName']) ??\n        stringValue(item['orgRole'])\n      )\n    })\n    .filter(isNonEmptyString)\n}\n\nfunction directReportSlugFromString(value: string): string | null {\n  const raw = stringValue(value)\n  if (!raw) return null\n  return raw.split(':', 1)[0] ?? null\n}\n\nfunction normalizeMaybe(value: unknown): string | null {\n  const raw = stringValue(value)\n  return raw ? normalizeSlug(raw) : null\n}\n\nfunction normalizeSlug(value: string): string {\n  return value\n    .trim()\n    .toLowerCase()\n    .replace(/&/g, 'and')\n    .replace(/\\b(?:of|the|and)\\b/g, '')\n    .replace(/[()]/g, '')\n    .replace(/[^a-z0-9]+/g, '-')\n    .replace(/^-+|-+$/g, '')\n}\n\nfunction stringValue(value: unknown): string | null {\n  return typeof value === 'string' && value.trim().length > 0 ? value : null\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction isNonEmptyString(value: string | null): value is string {\n  return typeof value === 'string' && value.length > 0\n}\n\nfunction mergeUnique(existing: string[], next: string[]): string[] {\n  const seen = new Set(existing)\n  const merged = [...existing]\n  for (const value of next) {\n    if (seen.has(value)) continue\n    seen.add(value)\n    merged.push(value)\n  }\n  return merged\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ApprovalModel } from '../models/Approval'\nimport type { ConversationModel } from '../models/Conversation'\nimport type { MessageModel } from '../models/Message'\nimport type { MilestoneModel } from '../models/Milestone'\nimport type { ProjectModel } from '../models/Project'\nimport type { TaskModel } from '../models/Task'\nimport type { DiscussionMention, DiscussionModel } from '../types'\nimport { type AgentInboxCollections, type AgentInboxIdentity, getAgentInbox } from './agentInbox'\nimport {\n  type AgentHierarchyInput,\n  type AgentHierarchyRecord,\n  getDescendants,\n  getDirectReports,\n} from './agentHierarchy'\n\nexport interface SubordinateReportOptions {\n  managerSlug: string\n  scope?: 'direct' | 'descendants'\n  sinceDays?: number\n  limit?: number\n  now?: Date | string\n  includeInbox?: boolean\n  orgId?: string\n  workspaceId?: string\n}\n\nexport interface SubordinateControlPlaneReport {\n  manager: { slug: string }\n  scope: 'direct' | 'descendants'\n  generatedAt: string\n  windowStart: string\n  rollup: {\n    totalAgents: number\n    activeTasks: number\n    blockedTasks: number\n    overdueTasks: number\n    unreadInboxItems: number\n    limitedAgents: number\n  }\n  agents: SubordinateAgentReport[]\n}\n\nexport interface SubordinateAgentReport {\n  identity: {\n    slug: string\n    teamMemberId?: string\n    reportsTo?: string\n    directReports: string[]\n  }\n  lifecycle: {\n    provisioned: boolean\n    containerEnabled: boolean\n    containerStatus?: string\n    heartbeatAt?: string\n    heartbeatAgeSeconds?: number\n    chatEndpoint?: string\n    readiness: {\n      rbac: 'ready' | 'missing'\n      vault: 'ready' | 'missing'\n      budget: 'ready' | 'missing'\n      filesystem: 'ready' | 'missing'\n      container: 'ready' | 'missing'\n      health: 'ready' | 'missing'\n    }\n    readinessRefs: string[]\n    blockerReasons: string[]\n    remediation: string[]\n  }\n  work: {\n    statusCounts: Record<string, number>\n    activeTasks: number\n    blockedTasks: number\n    overdueTasks: number\n    currentTaskIds: string[]\n    taskLimit: number\n    truncated: boolean\n  }\n  inbox: SubordinateInboxSummary\n  blockers: SubordinateBlockerReference[]\n}\n\nexport interface SubordinateInboxSummary {\n  tasks: number\n  mentions: number\n  replies: number\n  conversations: number\n  approvals: number\n  descriptionMentions: number\n  totalUnread: number\n}\n\nexport interface SubordinateBlockerReference {\n  taskId?: string\n  discussionId?: string\n  title?: string\n  status?: string\n  updatedAt?: string\n  discussionUpdatedAt?: string\n}\n\nexport interface SubordinateReportCollections {\n  teammembers?: TeamMemberReportSource\n  records?: AgentRecordSource\n  tasks?: OptionalFindCollection<TaskModel>\n  discussions?: DiscussionReportCollection\n  conversations?: OptionalFindCollection<ConversationModel>\n  messages?: OptionalFindCollection<MessageModel>\n  approvals?: OptionalFindCollection<ApprovalModel>\n  milestones?: OptionalFindCollection<MilestoneModel>\n  projects?: OptionalFindCollection<ProjectModel>\n}\n\nexport type TeamMemberReportSource =\n  | SubordinateTeamMemberRecord[]\n  | {\n      records?: SubordinateTeamMemberRecord[]\n      find?: (query: ReportFindQuery) => Promise<SubordinateTeamMemberRecord[]>\n      findByIds?: (ids: string[]) => Promise<SubordinateTeamMemberRecord[]>\n    }\n\nexport type AgentRecordSource =\n  | AgentHierarchyRecord[]\n  | {\n      records?: AgentHierarchyRecord[]\n      find?: (query: ReportFindQuery) => Promise<AgentHierarchyRecord[]>\n    }\n\nexport interface SubordinateTeamMemberRecord extends AgentHierarchyRecord {\n  id: string\n  orgId?: string\n  workspaceId?: string\n  userName: string\n  slug?: string\n  isAgent?: boolean\n  lastHeartbeat?: string\n  containerStatus?: string\n}\n\ninterface OptionalFindCollection<T> {\n  find(query: ReportFindQuery): Promise<T[]>\n}\n\ninterface DiscussionReportCollection extends OptionalFindCollection<DiscussionModel> {\n  findByIds?: (ids: string[]) => Promise<DiscussionModel[]>\n}\n\ninterface ReportFindQuery {\n  selector: Record<string, unknown>\n  sort?: Array<Record<string, unknown>>\n  limit?: number\n}\n\nconst ACTIVE_TASK_STATUSES = new Set(['planned', 'todo', 'in-progress'])\nconst EMPTY_INBOX: SubordinateInboxSummary = {\n  tasks: 0,\n  mentions: 0,\n  replies: 0,\n  conversations: 0,\n  approvals: 0,\n  descriptionMentions: 0,\n  totalUnread: 0,\n}\n\nexport async function getSubordinateReport(\n  collections: SubordinateReportCollections,\n  options: SubordinateReportOptions\n): Promise<SubordinateControlPlaneReport> {\n  const scope = options.scope ?? 'direct'\n  const limit = options.limit ?? 50\n  const sinceDays = options.sinceDays ?? 7\n  const now = toDate(options.now)\n  const generatedAt = now.toISOString()\n  const windowStart = new Date(now.getTime() - sinceDays * 86400_000).toISOString()\n\n  if (!options.orgId || !options.workspaceId) {\n    return emptyReport(options.managerSlug, scope, generatedAt, windowStart)\n  }\n\n  const allTeammembers = await collectTeamMembers(collections.teammembers, options)\n  const allRecords = await collectAgentRecords(collections.records, options)\n  const teammembers = filterRecordsByOptionTenancy(allTeammembers, options)\n  const records = filterRecordsByOptionTenancy(allRecords, options)\n  const hierarchyInput = hierarchyInputFrom(records, teammembers)\n\n  const subordinateSlugs =\n    scope === 'direct'\n      ? getDirectReports(hierarchyInput, options.managerSlug)\n      : getDescendants(hierarchyInput, options.managerSlug)\n\n  const reports: SubordinateAgentReport[] = []\n  for (const slug of subordinateSlugs) {\n    const record = findRecordForSlug([...teammembers, ...records], slug)\n    const identity = buildIdentity(record, slug, options)\n    const taskPage = await findTasksForAgent(collections, identity, limit)\n    const visibleTasks = taskPage.slice(0, limit)\n    const discussions = await findBlockerDiscussions(collections, visibleTasks, identity, limit)\n    const inbox = await buildInboxSummary(collections, identity, {\n      includeInbox: options.includeInbox !== false,\n      forceFallback: options.now !== undefined,\n      sinceDays,\n      limit,\n      windowStart,\n      windowEnd: generatedAt,\n    })\n    const reportsTo = findReportsTo(hierarchyInput, slug)\n\n    reports.push({\n      identity: {\n        slug,\n        ...(identity.teamMemberId ? { teamMemberId: identity.teamMemberId } : {}),\n        ...(reportsTo ? { reportsTo } : {}),\n        directReports: getHydratedDirectReports(hierarchyInput, slug),\n      },\n      lifecycle: buildLifecycle(record, records, now),\n      work: summarizeWork(taskPage, now, limit),\n      inbox,\n      blockers: buildBlockers(visibleTasks, discussions),\n    })\n  }\n\n  return {\n    manager: { slug: normalizeSlug(options.managerSlug) },\n    scope,\n    generatedAt,\n    windowStart,\n    rollup: {\n      totalAgents: reports.length,\n      activeTasks: reports.reduce((sum, r) => sum + r.work.activeTasks, 0),\n      blockedTasks: reports.reduce((sum, r) => sum + r.work.blockedTasks, 0),\n      overdueTasks: reports.reduce((sum, r) => sum + r.work.overdueTasks, 0),\n      unreadInboxItems: reports.reduce((sum, r) => sum + r.inbox.totalUnread, 0),\n      limitedAgents: reports.filter(r => r.work.truncated).length,\n    },\n    agents: reports,\n  }\n}\n\nasync function collectTeamMembers(\n  source: TeamMemberReportSource | undefined,\n  options: Pick<SubordinateReportOptions, 'orgId' | 'workspaceId'>\n): Promise<SubordinateTeamMemberRecord[]> {\n  if (!source) return []\n  if (Array.isArray(source)) return source\n  if (source.records) return source.records\n  if (source.find) return source.find({ selector: hierarchySourceSelector(options) })\n  return []\n}\n\nasync function collectAgentRecords(\n  source: AgentRecordSource | undefined,\n  options: Pick<SubordinateReportOptions, 'orgId' | 'workspaceId'>\n): Promise<AgentHierarchyRecord[]> {\n  if (!source) return []\n  if (Array.isArray(source)) return source\n  if (source.records) return source.records\n  if (source.find) return source.find({ selector: hierarchySourceSelector(options) })\n  return []\n}\n\nfunction hierarchySourceSelector(\n  options: Pick<SubordinateReportOptions, 'orgId' | 'workspaceId'>\n): Record<string, unknown> {\n  return {\n    _deleted: 0,\n    ...(options.orgId ? { orgId: options.orgId } : {}),\n    ...(options.workspaceId ? { workspaceId: options.workspaceId } : {}),\n  }\n}\n\nfunction hierarchyInputFrom(\n  records: AgentHierarchyRecord[],\n  teammembers: SubordinateTeamMemberRecord[]\n): AgentHierarchyInput {\n  return {\n    records,\n    teammembers,\n  }\n}\n\nfunction findRecordForSlug(\n  records: Array<AgentHierarchyRecord | SubordinateTeamMemberRecord>,\n  slug: string\n): (AgentHierarchyRecord | SubordinateTeamMemberRecord) | undefined {\n  const normalized = normalizeSlug(slug)\n  return records.find(record => recordAliases(record).includes(normalized))\n}\n\nfunction filterRecordsByOptionTenancy<T extends AgentHierarchyRecord>(\n  records: T[],\n  options: Pick<SubordinateReportOptions, 'orgId' | 'workspaceId'>\n): T[] {\n  if (!options.orgId && !options.workspaceId) return records\n\n  return records.filter(record => {\n    const orgId = stringField(record, 'orgId')\n    const workspaceId = stringField(record, 'workspaceId')\n    const tenantId = stringField(record, 'tenantId')\n    const hasTenantFields = Boolean(orgId || workspaceId || tenantId)\n\n    if (!hasTenantFields) return true\n    if (options.orgId && orgId !== options.orgId) return false\n    if (options.workspaceId && workspaceId !== options.workspaceId) return false\n    return true\n  })\n}\n\nfunction buildIdentity(\n  record: (AgentHierarchyRecord | SubordinateTeamMemberRecord) | undefined,\n  slug: string,\n  options: Pick<SubordinateReportOptions, 'orgId' | 'workspaceId'>\n): {\n  slug: string\n  teamMemberId?: string\n  orgId?: string\n  workspaceId?: string\n} {\n  return {\n    slug,\n    ...(record?.id ? { teamMemberId: record.id } : {}),\n    ...((options.orgId ?? stringField(record, 'orgId'))\n      ? { orgId: options.orgId ?? stringField(record, 'orgId') }\n      : {}),\n    ...((options.workspaceId ?? stringField(record, 'workspaceId'))\n      ? { workspaceId: options.workspaceId ?? stringField(record, 'workspaceId') }\n      : {}),\n  }\n}\n\nasync function findTasksForAgent(\n  collections: SubordinateReportCollections,\n  identity: { teamMemberId?: string; orgId?: string; workspaceId?: string },\n  limit: number\n): Promise<TaskModel[]> {\n  if (!collections.tasks || !identity.teamMemberId || !identity.orgId || !identity.workspaceId) {\n    return []\n  }\n\n  const selector: Record<string, unknown> = {\n    assigneeId: identity.teamMemberId,\n    status: { $in: workTaskStatusSelectorValues() },\n    completed: { $ne: true },\n    archived: { $ne: true },\n    _deleted: 0,\n    orgId: identity.orgId,\n    workspaceId: identity.workspaceId,\n  }\n\n  return collections.tasks.find({\n    selector,\n    sort: [{ priority: 'desc' }, { createdAt: 'desc' }],\n    limit: limit + 1,\n  })\n}\n\nasync function findBlockerDiscussions(\n  collections: SubordinateReportCollections,\n  tasks: TaskModel[],\n  identity: { orgId?: string; workspaceId?: string },\n  limit: number\n): Promise<DiscussionModel[]> {\n  if (!collections.discussions || tasks.length === 0 || !identity.orgId || !identity.workspaceId) {\n    return []\n  }\n  const blockedTaskIds = tasks.filter(isBlockedTask).map(t => t.id)\n  if (blockedTaskIds.length === 0) return []\n\n  const selector: Record<string, unknown> = {\n    entityType: 'task',\n    entityId: { $in: blockedTaskIds },\n    _deleted: 0,\n    orgId: identity.orgId,\n    workspaceId: identity.workspaceId,\n  }\n\n  return collections.discussions.find({\n    selector,\n    sort: [{ updatedAt: 'desc' }],\n    limit: Math.min(blockedTaskIds.length * 5, limit * 5),\n  })\n}\n\nasync function buildInboxSummary(\n  collections: SubordinateReportCollections,\n  identity: { slug: string; teamMemberId?: string; orgId?: string; workspaceId?: string },\n  opts: {\n    includeInbox: boolean\n    forceFallback: boolean\n    sinceDays: number\n    limit: number\n    windowStart: string\n    windowEnd: string\n  }\n): Promise<SubordinateInboxSummary> {\n  if (!opts.includeInbox || !identity.teamMemberId || !identity.orgId || !identity.workspaceId) {\n    return { ...EMPTY_INBOX }\n  }\n\n  if (opts.forceFallback || !collections.tasks || !collections.discussions?.findByIds) {\n    const [tasks, mentions, replies, conversations, approvals, descriptionMentions] =\n      await Promise.all([\n        countActiveInboxTasks(collections, identity, opts.limit),\n        countDiscussionMentions(\n          collections,\n          identity,\n          opts.windowStart,\n          opts.windowEnd,\n          opts.limit\n        ),\n        countDiscussionReplies(collections, identity, opts.windowStart, opts.windowEnd, opts.limit),\n        countConversationUnread(\n          collections,\n          identity,\n          opts.windowStart,\n          opts.windowEnd,\n          opts.limit\n        ),\n        countPendingApprovals(collections, identity, opts.limit),\n        countDescriptionMentions(\n          collections,\n          identity,\n          opts.windowStart,\n          opts.windowEnd,\n          opts.limit\n        ),\n      ])\n    return withInboxTotal({\n      ...EMPTY_INBOX,\n      tasks,\n      mentions,\n      replies,\n      conversations,\n      approvals,\n      descriptionMentions,\n    })\n  }\n\n  const inboxCollections: AgentInboxCollections = {\n    tasks: collections.tasks,\n    discussions: {\n      find: collections.discussions.find.bind(collections.discussions),\n      findByIds: collections.discussions.findByIds.bind(collections.discussions),\n    },\n    ...(collections.conversations ? { conversations: collections.conversations } : {}),\n    ...(collections.messages ? { messages: collections.messages } : {}),\n    ...(collections.approvals ? { approvals: collections.approvals } : {}),\n    ...(collections.milestones ? { milestones: collections.milestones } : {}),\n    ...(collections.projects ? { projects: collections.projects } : {}),\n    ...(hasFindByIds(collections.teammembers)\n      ? {\n          teammembers: {\n            findByIds: collections.teammembers.findByIds.bind(collections.teammembers),\n          },\n        }\n      : {}),\n  }\n\n  const inbox = await getAgentInbox(\n    inboxCollections,\n    {\n      kind: 'agent',\n      slug: identity.slug,\n      teamMemberId: identity.teamMemberId,\n      orgId: identity.orgId,\n      workspaceId: identity.workspaceId,\n    } satisfies AgentInboxIdentity,\n    { sinceDays: opts.sinceDays, limit: opts.limit }\n  )\n\n  const conversations = inbox.conversations.reduce((sum, item) => sum + item.unreadCount, 0)\n  return withInboxTotal({\n    tasks: inbox.tasks.length,\n    mentions: inbox.mentions.length,\n    replies: inbox.replies.length,\n    conversations,\n    approvals: inbox.approvals.length,\n    descriptionMentions: inbox.descriptionMentions.length,\n    totalUnread: 0,\n  })\n}\n\nasync function countActiveInboxTasks(\n  collections: SubordinateReportCollections,\n  identity: { teamMemberId?: string; orgId?: string; workspaceId?: string },\n  limit: number\n): Promise<number> {\n  if (!collections.tasks || !identity.teamMemberId || !identity.orgId || !identity.workspaceId) {\n    return 0\n  }\n\n  const tasks = await collections.tasks.find({\n    selector: {\n      assigneeId: identity.teamMemberId,\n      status: { $in: activeTaskStatusSelectorValues() },\n      completed: { $ne: true },\n      archived: { $ne: true },\n      _deleted: 0,\n      orgId: identity.orgId,\n      workspaceId: identity.workspaceId,\n    },\n    sort: [{ priority: 'desc' }, { createdAt: 'desc' }],\n    limit,\n  })\n  return tasks.length\n}\n\nasync function countDiscussionMentions(\n  collections: SubordinateReportCollections,\n  identity: { slug: string; teamMemberId?: string; orgId?: string; workspaceId?: string },\n  windowStart: string,\n  windowEnd: string,\n  limit: number\n): Promise<number> {\n  if (\n    !collections.discussions ||\n    !identity.teamMemberId ||\n    !identity.orgId ||\n    !identity.workspaceId\n  ) {\n    return 0\n  }\n\n  const discussions = await collections.discussions.find({\n    selector: {\n      createdAt: { $gte: windowStart, $lte: windowEnd },\n      _deleted: 0,\n      orgId: identity.orgId,\n      workspaceId: identity.workspaceId,\n    },\n    sort: [{ createdAt: 'desc' }],\n    limit: limit * 5,\n  })\n\n  return discussions\n    .filter(discussion => mentionsMatchAgent(discussion.mentions, identity))\n    .slice(0, limit).length\n}\n\nasync function countDiscussionReplies(\n  collections: SubordinateReportCollections,\n  identity: { slug: string; teamMemberId?: string; orgId?: string; workspaceId?: string },\n  windowStart: string,\n  windowEnd: string,\n  limit: number\n): Promise<number> {\n  if (\n    !collections.discussions?.findByIds ||\n    !identity.teamMemberId ||\n    !identity.orgId ||\n    !identity.workspaceId\n  ) {\n    return 0\n  }\n\n  const candidateReplies = await collections.discussions.find({\n    selector: {\n      parentId: { $exists: true, $ne: null },\n      createdAt: { $gte: windowStart, $lte: windowEnd },\n      userId: { $ne: identity.teamMemberId },\n      _deleted: 0,\n      orgId: identity.orgId,\n      workspaceId: identity.workspaceId,\n    },\n    sort: [{ createdAt: 'desc' }],\n    limit: limit * 5,\n  })\n\n  const actualReplies = candidateReplies.filter(\n    reply => typeof reply.parentId === 'string' && reply.parentId.length > 0\n  )\n  const parentIds = Array.from(\n    new Set(actualReplies.map(reply => reply.parentId).filter((id): id is string => Boolean(id)))\n  )\n  const parents = parentIds.length > 0 ? await collections.discussions.findByIds(parentIds) : []\n  const parentById = new Map(parents.map(parent => [parent.id, parent]))\n\n  const seen = new Set<string>()\n  for (const reply of actualReplies) {\n    const parent = reply.parentId ? parentById.get(reply.parentId) : undefined\n    const isAuthoredThreadReply = parent?.userId === identity.teamMemberId\n    const isMentionedReply = mentionsMatchAgent(reply.mentions, identity)\n    if (!isAuthoredThreadReply && !isMentionedReply) continue\n    seen.add(reply.id)\n    if (seen.size >= limit) break\n  }\n\n  return seen.size\n}\n\nasync function countConversationUnread(\n  collections: SubordinateReportCollections,\n  identity: { slug: string; teamMemberId?: string; orgId?: string; workspaceId?: string },\n  windowStart: string,\n  windowEnd: string,\n  limit: number\n): Promise<number> {\n  // Agent-chat conversations + their messages are org-scoped (see\n  // collection-scope.ts: `conversations: 'org'` and the per-message\n  // workspaceId-injection exemption for agent-chat in rest-api.ts).\n  // Scoping by `identity.workspaceId` here would reproduce the inbox\n  // visibility bug from 2026-05-23 — managers would silently see 0\n  // unread for cross-workspace DMs their subordinates participate in.\n  if (\n    !collections.conversations ||\n    !collections.messages ||\n    !identity.teamMemberId ||\n    !identity.orgId\n  ) {\n    return 0\n  }\n\n  const conversations = await collections.conversations.find({\n    selector: {\n      'metadata.kind': 'agent-chat',\n      'metadata.participantIds': { $in: [identity.teamMemberId] },\n      _deleted: 0,\n      orgId: identity.orgId,\n    },\n    sort: [{ updatedAt: 'desc' }],\n    limit: limit * 2,\n  })\n  if (conversations.length === 0) return 0\n\n  const messages = await collections.messages.find({\n    selector: {\n      conversationId: { $in: conversations.map(conversation => conversation.id) },\n      createdAt: { $gte: windowStart, $lte: windowEnd },\n      userId: { $ne: identity.teamMemberId },\n      _deleted: 0,\n      orgId: identity.orgId,\n    },\n    sort: [{ createdAt: 'desc' }],\n    limit: limit * 200,\n  })\n\n  const unreadByConversationId = new Map<string, MessageModel[]>()\n  for (const message of messages) {\n    const unread = unreadByConversationId.get(message.conversationId) ?? []\n    unread.push(message)\n    unreadByConversationId.set(message.conversationId, unread)\n  }\n\n  let total = 0\n  for (const conversation of conversations) {\n    const unread = unreadByConversationId.get(conversation.id) ?? []\n    if (unread.length === 0) continue\n\n    const mutedBy = readStringArray(conversation.metadata?.mutedBy)\n    const isMuted = mutedBy.includes(identity.teamMemberId)\n    const hasUnreadMention = unread.some(message =>\n      mentionsMatchAgent(message.mentions as DiscussionMention[] | undefined, identity)\n    )\n    if (isMuted && !hasUnreadMention) continue\n\n    total += unread.length\n  }\n\n  return total\n}\n\nasync function countPendingApprovals(\n  collections: SubordinateReportCollections,\n  identity: { teamMemberId?: string; orgId?: string; workspaceId?: string },\n  limit: number\n): Promise<number> {\n  if (\n    !collections.approvals ||\n    !identity.teamMemberId ||\n    !identity.orgId ||\n    !identity.workspaceId\n  ) {\n    return 0\n  }\n\n  const approvals = await collections.approvals.find({\n    selector: {\n      approverId: identity.teamMemberId,\n      _deleted: 0,\n      orgId: identity.orgId,\n      workspaceId: identity.workspaceId,\n    },\n    sort: [{ createdAt: 'desc' }],\n    limit: limit * 5,\n  })\n  return approvals.filter(approval => approval.status.toLowerCase() === 'pending').slice(0, limit)\n    .length\n}\n\nasync function countDescriptionMentions(\n  collections: SubordinateReportCollections,\n  identity: { slug: string; teamMemberId?: string; orgId?: string; workspaceId?: string },\n  windowStart: string,\n  windowEnd: string,\n  limit: number\n): Promise<number> {\n  if (!identity.teamMemberId || !identity.orgId || !identity.workspaceId) return 0\n\n  const [tasks, milestones, projects] = await Promise.all([\n    findDescriptionMentionRows(collections.tasks, identity, windowStart, windowEnd, limit),\n    findDescriptionMentionRows(collections.milestones, identity, windowStart, windowEnd, limit),\n    findDescriptionMentionRows(collections.projects, identity, windowStart, windowEnd, limit),\n  ])\n\n  return [...tasks, ...milestones, ...projects]\n    .filter(row => mentionsMatchAgent(row.mentions as DiscussionMention[] | undefined, identity))\n    .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt))\n    .slice(0, limit).length\n}\n\nasync function findDescriptionMentionRows<T extends { updatedAt: string; mentions?: unknown[] }>(\n  collection: OptionalFindCollection<T> | undefined,\n  identity: { orgId?: string; workspaceId?: string },\n  windowStart: string,\n  windowEnd: string,\n  limit: number\n): Promise<T[]> {\n  if (!collection || !identity.orgId || !identity.workspaceId) return []\n\n  return collection.find({\n    selector: {\n      _deleted: 0,\n      orgId: identity.orgId,\n      workspaceId: identity.workspaceId,\n      updatedAt: { $gte: windowStart, $lte: windowEnd },\n    },\n    sort: [{ updatedAt: 'desc' }],\n    limit: limit * 5,\n  })\n}\n\nfunction withInboxTotal(summary: SubordinateInboxSummary): SubordinateInboxSummary {\n  return {\n    ...summary,\n    totalUnread:\n      summary.tasks +\n      summary.mentions +\n      summary.replies +\n      summary.conversations +\n      summary.approvals +\n      summary.descriptionMentions,\n  }\n}\n\nfunction mentionsMatchAgent(\n  mentions: DiscussionMention[] | undefined,\n  identity: { slug: string; teamMemberId?: string }\n): boolean {\n  if (!mentions || mentions.length === 0) return false\n  const slugLower = identity.slug.toLowerCase()\n  return mentions.some(\n    mention =>\n      mention.teamMemberId === identity.teamMemberId ||\n      (typeof mention.identifier === 'string' && mention.identifier.toLowerCase() === slugLower)\n  )\n}\n\nfunction readStringArray(value: unknown): string[] {\n  return Array.isArray(value)\n    ? value.filter((item): item is string => typeof item === 'string')\n    : []\n}\n\nfunction summarizeWork(\n  tasks: TaskModel[],\n  now: Date,\n  taskLimit: number\n): SubordinateAgentReport['work'] {\n  const visibleTasks = tasks.slice(0, taskLimit)\n  const statusCounts: Record<string, number> = {}\n  const currentTaskIds: string[] = []\n  let activeTasks = 0\n  let blockedTasks = 0\n  let overdueTasks = 0\n\n  for (const task of visibleTasks) {\n    statusCounts[task.status] = (statusCounts[task.status] ?? 0) + 1\n    if (isActiveTask(task)) {\n      activeTasks += 1\n      currentTaskIds.push(task.id)\n      if (isOverdueTask(task, now)) overdueTasks += 1\n    }\n    if (isBlockedTask(task)) blockedTasks += 1\n  }\n\n  return {\n    statusCounts,\n    activeTasks,\n    blockedTasks,\n    overdueTasks,\n    currentTaskIds,\n    taskLimit,\n    truncated: tasks.length > taskLimit,\n  }\n}\n\nfunction buildBlockers(\n  tasks: TaskModel[],\n  discussions: DiscussionModel[]\n): SubordinateBlockerReference[] {\n  const discussionsByTask = new Map<string, DiscussionModel>()\n  for (const discussion of discussions) {\n    if (discussion.entityType !== 'task') continue\n    const existing = discussionsByTask.get(discussion.entityId)\n    if (!existing || discussion.updatedAt > existing.updatedAt) {\n      discussionsByTask.set(discussion.entityId, discussion)\n    }\n  }\n\n  return tasks.filter(isBlockedTask).map(task => {\n    const discussion = discussionsByTask.get(task.id)\n    return {\n      taskId: task.id,\n      ...(discussion ? { discussionId: discussion.id } : {}),\n      title: task.title,\n      status: task.status,\n      updatedAt: task.updatedAt,\n      ...(discussion ? { discussionUpdatedAt: discussion.updatedAt } : {}),\n    }\n  })\n}\n\nfunction buildLifecycle(\n  record: (AgentHierarchyRecord | SubordinateTeamMemberRecord) | undefined,\n  records: AgentHierarchyRecord[],\n  now: Date\n) {\n  const metadata = record?.metadata ?? {}\n  const extendedMetadata = record?.extended?.agent?.metadata ?? {}\n  const slug = record ? recordAliases(record)[0] : undefined\n  const teamMemberId = stringField(record, 'id')\n  const readinessRecords = slug\n    ? records.filter(row => readinessRecordMatches(row, slug, teamMemberId))\n    : []\n  const readiness = {\n    rbac:\n      hasAnySchema(readinessRecords, [\n        'openclaw.permission-grant',\n        'openclaw.service-account-grant',\n      ]) &&\n      hasAnySchema(readinessRecords, [\n        'openclaw.role-membership',\n        'openclaw.service-account-grant',\n      ]) &&\n      hasAnySchema(readinessRecords, ['openclaw.acl'])\n        ? 'ready'\n        : 'missing',\n    vault: hasAllSchemas(readinessRecords, [\n      'openclaw.vault',\n      'openclaw.vault-membership',\n      'openclaw.vault-item-template',\n      'openclaw.service-key',\n      'openclaw.delegated-secret',\n    ])\n      ? 'ready'\n      : 'missing',\n    budget:\n      (hasAnySchema(readinessRecords, ['openclaw.budget-template']) ||\n        hasAnySchema(records, ['openclaw.budget-template'])) &&\n      hasAllSchemas(readinessRecords, ['openclaw.budget-assignment', 'openclaw.budget-readiness'])\n        ? 'ready'\n        : 'missing',\n    filesystem: hasAnySchema(readinessRecords, ['openclaw.filesystem']) ? 'ready' : 'missing',\n    container: 'missing',\n    health: 'missing',\n  } as const\n  const containerEnabled =\n    booleanValue(metadata.containerEnabled) ?? booleanValue(extendedMetadata.containerEnabled)\n  const containerStatus =\n    stringField(record, 'containerStatus') ?? stringFrom(metadata.containerStatus)\n  const heartbeatAt =\n    stringField(record, 'lastHeartbeat') ??\n    stringFrom(metadata.lastHeartbeat) ??\n    stringFrom(metadata.heartbeatAt)\n  const heartbeatAgeSeconds = heartbeatAt\n    ? calculateHeartbeatAgeSeconds(heartbeatAt, now)\n    : undefined\n  const chatEndpoint =\n    stringFrom(metadata.chatEndpoint) ?? stringFrom(extendedMetadata.chatEndpoint)\n  const containerReady = ['running', 'healthy'].includes((containerStatus ?? '').toLowerCase())\n  const healthReady = heartbeatAgeSeconds !== undefined && containerReady\n  const fullReadiness = {\n    ...readiness,\n    container: containerReady ? 'ready' : readiness.container,\n    health: healthReady ? 'ready' : 'missing',\n  } as const\n  const blockerReasons = lifecycleBlockers(fullReadiness, heartbeatAt)\n\n  return {\n    provisioned:\n      booleanValue(metadata.provisioned) ??\n      (fullReadiness.rbac === 'ready' &&\n        fullReadiness.vault === 'ready' &&\n        fullReadiness.budget === 'ready' &&\n        fullReadiness.filesystem === 'ready'),\n    containerEnabled: containerEnabled ?? false,\n    ...(containerStatus ? { containerStatus } : {}),\n    ...(heartbeatAt ? { heartbeatAt } : {}),\n    ...(heartbeatAgeSeconds !== undefined ? { heartbeatAgeSeconds } : {}),\n    ...(chatEndpoint ? { chatEndpoint } : {}),\n    readiness: fullReadiness,\n    readinessRefs: readinessRecords.map(recordRef),\n    blockerReasons,\n    remediation: remediationHints(blockerReasons),\n  }\n}\n\nfunction calculateHeartbeatAgeSeconds(heartbeatAt: string, now: Date): number | undefined {\n  const heartbeatMs = Date.parse(heartbeatAt)\n  if (!Number.isFinite(heartbeatMs)) return undefined\n  return Math.max(0, Math.floor((now.getTime() - heartbeatMs) / 1000))\n}\n\nfunction readinessRecordMatches(\n  record: AgentHierarchyRecord,\n  slug: string,\n  teamMemberId: string | undefined\n): boolean {\n  const data = isRecord(record.data) ? record.data : {}\n  const metadata = record.metadata ?? {}\n  const values = [\n    record.id,\n    record.name,\n    record.title,\n    stringFrom(record.parentId),\n    stringFrom(record.agentSlug),\n    stringFrom(record.teamMemberId),\n    stringFrom(data.agentSlug),\n    stringFrom(data.teamMemberId),\n    stringFrom(metadata.agentSlug),\n    stringFrom(metadata.teamMemberId),\n  ].filter((value): value is string => Boolean(value))\n  const ids = new Set([slug, `team_${slug}`, `agent:${slug}`])\n  if (teamMemberId) ids.add(teamMemberId)\n  return values.some(value => {\n    const normalized = normalizeSlug(value)\n    return ids.has(value) || normalized === slug || hasExplicitSlugSegment(value, slug)\n  })\n}\n\nfunction hasAnySchema(records: AgentHierarchyRecord[], schemaIds: string[]): boolean {\n  const allowed = new Set(schemaIds)\n  return records.some(row => allowed.has(String(row.schemaId ?? '')))\n}\n\nfunction hasAllSchemas(records: AgentHierarchyRecord[], schemaIds: string[]): boolean {\n  return schemaIds.every(schemaId => hasAnySchema(records, [schemaId]))\n}\n\nfunction lifecycleBlockers(\n  readiness: SubordinateAgentReport['lifecycle']['readiness'],\n  heartbeatAt: string | undefined\n): string[] {\n  const blockers: string[] = []\n  if (readiness.rbac !== 'ready') blockers.push('missing RBAC grants')\n  if (readiness.vault !== 'ready') blockers.push('missing vault materialization')\n  if (readiness.budget !== 'ready') blockers.push('missing budget assignment')\n  if (readiness.filesystem !== 'ready') blockers.push('missing filesystem readiness')\n  if (readiness.container !== 'ready') blockers.push('container not running')\n  if (!heartbeatAt) blockers.push('missing heartbeat')\n  return blockers\n}\n\nfunction remediationHints(blockers: string[]): string[] {\n  const hints = new Map<string, string>([\n    ['missing RBAC grants', 'Run subordinate provisioning with RBAC repair enabled.'],\n    ['missing vault materialization', 'Run subordinate provisioning vault materialization.'],\n    ['missing budget assignment', 'Create or repair subordinate budget assignment.'],\n    ['missing filesystem readiness', 'Repair subordinate filesystem readiness.'],\n    ['container not running', 'Start or reconcile the subordinate container.'],\n    ['missing heartbeat', 'Check subordinate heartbeat and container telemetry.'],\n  ])\n  return blockers.map(blocker => hints.get(blocker)).filter((hint): hint is string => Boolean(hint))\n}\n\nfunction recordRef(record: AgentHierarchyRecord): string {\n  return `records:${String(record.id ?? record.title ?? 'unknown')}`\n}\n\nfunction hasExplicitSlugSegment(value: string, slug: string): boolean {\n  return value\n    .toLowerCase()\n    .split(/[/:]/)\n    .map(segment => normalizeSlug(segment))\n    .some(segment => segment === slug)\n}\n\nfunction findReportsTo(input: AgentHierarchyInput, slug: string): string | undefined {\n  const records = collectHierarchyRecords(input)\n  for (const record of records) {\n    const parentSlug = recordAliases(record)[0]\n    if (!parentSlug) continue\n    if (getDirectReports(input, parentSlug).includes(slug)) return parentSlug\n  }\n  return undefined\n}\n\nfunction getHydratedDirectReports(input: AgentHierarchyInput, slug: string): string[] {\n  try {\n    return getDirectReports(input, slug)\n  } catch (error) {\n    if (error instanceof Error && /unknown manager slug/i.test(error.message)) {\n      return []\n    }\n    throw error\n  }\n}\n\nfunction collectHierarchyRecords(input: AgentHierarchyInput): AgentHierarchyRecord[] {\n  if (Array.isArray(input)) return input\n  return [...(input.records ?? []), ...recordsFromHierarchySource(input.teammembers)]\n}\n\nfunction recordsFromHierarchySource(\n  source: AgentHierarchyRecord[] | { records?: AgentHierarchyRecord[] } | undefined\n): AgentHierarchyRecord[] {\n  if (!source) return []\n  if (Array.isArray(source)) return source\n  return source.records ?? []\n}\n\nfunction emptyReport(\n  managerSlug: string,\n  scope: 'direct' | 'descendants',\n  generatedAt: string,\n  windowStart: string\n): SubordinateControlPlaneReport {\n  return {\n    manager: { slug: normalizeSlug(managerSlug) },\n    scope,\n    generatedAt,\n    windowStart,\n    rollup: {\n      totalAgents: 0,\n      activeTasks: 0,\n      blockedTasks: 0,\n      overdueTasks: 0,\n      unreadInboxItems: 0,\n      limitedAgents: 0,\n    },\n    agents: [],\n  }\n}\n\nfunction isActiveTask(task: TaskModel): boolean {\n  return (\n    ACTIVE_TASK_STATUSES.has(normalizeTaskStatus(task.status)) &&\n    task.completed !== true &&\n    task.archived !== true\n  )\n}\n\nfunction isBlockedTask(task: TaskModel): boolean {\n  const metadata = task.metadata ?? {}\n  return (\n    normalizeTaskStatus(task.status) === 'blocked' ||\n    booleanValue(metadata.blocked) === true ||\n    Array.isArray(metadata.blockers) ||\n    typeof metadata.blocker === 'string'\n  )\n}\n\nfunction activeTaskStatusSelectorValues(): string[] {\n  return ['Planned', 'planned', 'In Progress', 'in_progress', 'in-progress', 'todo']\n}\n\nfunction workTaskStatusSelectorValues(): string[] {\n  return [...activeTaskStatusSelectorValues(), 'Blocked', 'blocked']\n}\n\nfunction normalizeTaskStatus(status: string | undefined): string {\n  return (status ?? '')\n    .trim()\n    .toLowerCase()\n    .replace(/[_\\s]+/g, '-')\n}\n\nfunction isOverdueTask(task: TaskModel, now: Date): boolean {\n  if (!isActiveTask(task) || !task.dueAt) return false\n  const dueAt = Date.parse(task.dueAt)\n  return Number.isFinite(dueAt) && dueAt < now.getTime()\n}\n\nfunction toDate(value: Date | string | undefined): Date {\n  if (value instanceof Date) return value\n  if (typeof value === 'string') return new Date(value)\n  return new Date()\n}\n\nfunction hasFindByIds(\n  source: TeamMemberReportSource | undefined\n): source is { findByIds: (ids: string[]) => Promise<SubordinateTeamMemberRecord[]> } {\n  return (\n    typeof source === 'object' &&\n    source !== null &&\n    !Array.isArray(source) &&\n    typeof source.findByIds === 'function'\n  )\n}\n\nfunction recordAliases(record: AgentHierarchyRecord): string[] {\n  const metadata = record.metadata ?? {}\n  const extendedAgent = record.extended?.agent\n  const extendedMetadata = extendedAgent?.metadata ?? {}\n  return [\n    stringFrom(record.slug),\n    stringFrom(record.name),\n    stringFrom(record.userName),\n    stringFrom(metadata.slug),\n    stringFrom(metadata.name),\n    stringFrom(metadata.orgRole),\n    stringFrom(extendedAgent?.name),\n    stringFrom(extendedMetadata.orgRole),\n  ]\n    .filter((value): value is string => Boolean(value))\n    .map(normalizeSlug)\n}\n\nfunction normalizeSlug(value: string): string {\n  return value\n    .trim()\n    .toLowerCase()\n    .replace(/&/g, 'and')\n    .replace(/\\b(?:of|the|and)\\b/g, '')\n    .replace(/[()]/g, '')\n    .replace(/[^a-z0-9]+/g, '-')\n    .replace(/^-+|-+$/g, '')\n}\n\nfunction stringField(record: unknown, key: string): string | undefined {\n  if (!isRecord(record)) return undefined\n  return stringFrom(record[key])\n}\n\nfunction stringFrom(value: unknown): string | undefined {\n  return typeof value === 'string' && value.trim().length > 0 ? value : undefined\n}\n\nfunction booleanValue(value: unknown): boolean | undefined {\n  return typeof value === 'boolean' ? value : undefined\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return typeof value === 'object' && value !== null && !Array.isArray(value)\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\n\nexport const defaultHooks = (_config?: { name: string }) => ({\n  preInsert: (doc: Record<string, unknown>) => {\n    const nowUtc = new Date().toISOString();\n    if (!doc.createdAt) doc.createdAt = nowUtc;\n    if (!doc.updatedAt) doc.updatedAt = nowUtc;\n    return doc;\n  },\n  preSave: (doc: Record<string, unknown>, oldDoc: Record<string, unknown>) => {\n    const nowUtc = new Date().toISOString();\n    doc.updatedAt = nowUtc;\n    if (oldDoc && oldDoc.createdAt) {\n      doc.createdAt = oldDoc.createdAt; // Preserve original creation time\n    }\n    return doc;\n  },\n});","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'appsnapshots'\n\n/**\n * AppSnapshot Model Interface (auto-generated from Drizzle schema)\n */\nexport interface AppSnapshotModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  capturedBy: string\n  capturedAt: string\n  appId: string\n  snapshotType: string\n  name: string\n  period: string\n  periodType: string\n  notes?: string\n  summary: Record<string, unknown>\n  data: Record<string, unknown>\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"capturedBy\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"capturedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"appId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"snapshotType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"period\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"periodType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"notes\": {\n          \"type\": \"string\",\n          \"maxLength\": 5000\n      },\n      \"summary\": {\n          \"type\": \"object\"\n      },\n      \"data\": {\n          \"type\": \"object\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"capturedBy\",\n      \"capturedAt\",\n      \"appId\",\n      \"snapshotType\",\n      \"name\",\n      \"period\",\n      \"periodType\",\n      \"summary\",\n      \"data\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"appId\",\n          \"capturedAt\"\n      ],\n      [\n          \"orgId\",\n          \"appId\",\n          \"snapshotType\",\n          \"capturedAt\"\n      ],\n      [\n          \"orgId\",\n          \"periodType\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'approvals'\n\n/**\n * Approval Model Interface (auto-generated from Drizzle schema)\n */\nexport interface ApprovalModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  projectId: string\n  milestoneId: string\n  taskId: string\n  documentId: string\n  title: string\n  type: string\n  category: string\n  categoryName: string\n  status: string\n  documentType?: string\n  documentContent?: string\n  response?: string\n  annotations?: string\n  comments?: string\n  respondedAt?: string\n  approverId?: string\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"projectId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"milestoneId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"taskId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"documentId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"type\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"category\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"categoryName\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"documentType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"documentContent\": {\n          \"type\": \"string\",\n          \"maxLength\": 50000\n      },\n      \"response\": {\n          \"type\": \"string\",\n          \"maxLength\": 5000\n      },\n      \"annotations\": {\n          \"type\": \"string\",\n          \"maxLength\": 5000\n      },\n      \"comments\": {\n          \"type\": \"string\",\n          \"maxLength\": 50000\n      },\n      \"respondedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"approverId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"projectId\",\n      \"title\",\n      \"type\",\n      \"category\",\n      \"categoryName\",\n      \"status\",\n      \"userId\",\n      \"workspaceId\",\n      \"milestoneId\",\n      \"taskId\",\n      \"documentId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"userId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"projectId\",\n          \"createdAt\"\n      ],\n      [\n          \"milestoneId\",\n          \"createdAt\"\n      ],\n      [\n          \"taskId\",\n          \"createdAt\"\n      ],\n      [\n          \"documentId\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'codebases'\n\n/**\n * Codebase Model Interface (auto-generated from Drizzle schema)\n */\nexport interface CodebaseModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  title: string\n  description: string\n  repository: Record<string, unknown>\n  environment: Record<string, unknown>\n  deployment?: Record<string, unknown>\n  agentWorkflow?: Record<string, unknown>\n  tags?: string[]\n  status: string\n  archivedAt?: string\n  archived: boolean\n  tenantId?: string\n  gitProvider?: string\n  gitNamespace?: string\n  gitRepo?: string\n  gitRepoId?: string\n  gitDefaultBranch?: string\n  gitConnectionId?: string\n  gitVisibility?: string\n  gitPushedAt?: string\n  gitWebUrl?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"repository\": {\n          \"type\": \"object\"\n      },\n      \"environment\": {\n          \"type\": \"object\"\n      },\n      \"deployment\": {\n          \"type\": \"object\"\n      },\n      \"agentWorkflow\": {\n          \"type\": \"object\"\n      },\n      \"tags\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"archivedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"gitProvider\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"gitNamespace\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"gitRepo\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"gitRepoId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"gitDefaultBranch\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"gitConnectionId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"gitVisibility\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"gitPushedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"gitWebUrl\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"title\",\n      \"description\",\n      \"repository\",\n      \"environment\",\n      \"status\",\n      \"archived\",\n      \"workspaceId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"workspaceId\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'discussions'\n\n/**\n * Discussion Model Interface (auto-generated from Drizzle schema)\n */\nexport interface DiscussionModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  entityType: string\n  entityId: string\n  content: string\n  contentHtml?: string\n  parentId: string\n  threadDepth: number\n  isEdited: boolean\n  editedAt?: string\n  isDeleted: boolean\n  deletedAt?: string\n  userName: string\n  userAvatar?: string\n  attachments?: Record<string, unknown>[]\n  reactionCounts?: Record<string, unknown>\n  mentions?: Record<string, unknown>[]\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"entityType\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"entityId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"content\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"contentHtml\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"parentId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"threadDepth\": {\n          \"type\": \"integer\"\n      },\n      \"isEdited\": {\n          \"type\": \"boolean\"\n      },\n      \"editedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"isDeleted\": {\n          \"type\": \"boolean\"\n      },\n      \"deletedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"userName\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"userAvatar\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"attachments\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"object\",\n              \"properties\": {\n                  \"id\": {\n                      \"type\": \"string\"\n                  },\n                  \"name\": {\n                      \"type\": \"string\"\n                  },\n                  \"size\": {\n                      \"type\": \"number\"\n                  },\n                  \"type\": {\n                      \"type\": \"string\"\n                  },\n                  \"url\": {\n                      \"type\": \"string\"\n                  },\n                  \"uploadedAt\": {\n                      \"type\": \"string\",\n                      \"format\": \"date-time\"\n                  },\n                  \"status\": {\n                      \"type\": \"string\",\n                      \"enum\": [\n                          \"pending\",\n                          \"uploaded\",\n                          \"failed\"\n                      ]\n                  },\n                  \"thumbnailUrl\": {\n                      \"type\": \"string\"\n                  },\n                  \"checksum\": {\n                      \"type\": \"string\"\n                  }\n              },\n              \"required\": [\n                  \"id\",\n                  \"name\",\n                  \"size\",\n                  \"type\",\n                  \"url\",\n                  \"uploadedAt\",\n                  \"status\"\n              ]\n          }\n      },\n      \"reactionCounts\": {\n          \"type\": \"object\"\n      },\n      \"mentions\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"object\",\n              \"properties\": {\n                  \"type\": {\n                      \"type\": \"string\",\n                      \"maxLength\": 50\n                  },\n                  \"identifier\": {\n                      \"type\": \"string\",\n                      \"maxLength\": 200\n                  },\n                  \"teamMemberId\": {\n                      \"type\": \"string\",\n                      \"maxLength\": 100\n                  },\n                  \"userId\": {\n                      \"type\": \"string\",\n                      \"maxLength\": 100\n                  },\n                  \"position\": {\n                      \"type\": \"integer\",\n                      \"minimum\": 0,\n                      \"maximum\": 999999,\n                      \"multipleOf\": 1\n                  }\n              },\n              \"required\": [\n                  \"type\",\n                  \"identifier\",\n                  \"position\"\n              ]\n          }\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"entityType\",\n      \"entityId\",\n      \"content\",\n      \"threadDepth\",\n      \"isEdited\",\n      \"isDeleted\",\n      \"userName\",\n      \"parentId\",\n      \"userId\",\n      \"workspaceId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"entityType\",\n          \"entityId\",\n          \"createdAt\"\n      ],\n      [\n          \"parentId\",\n          \"createdAt\"\n      ],\n      [\n          \"userId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"isDeleted\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'milestones'\n\n/**\n * Milestone Model Interface (auto-generated from Drizzle schema)\n */\nexport interface MilestoneModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name?: string\n  title: string\n  description?: string\n  completed: boolean\n  status?: string\n  sortOrder: number\n  projectId: string\n  goalId: string\n  startAt?: string\n  startedAt?: string\n  dueAt?: string\n  completedAt?: string\n  archived: boolean\n  timeBudgetHours?: number\n  categoryId?: string\n  tagIds?: string[]\n  version: number\n  mentions?: unknown[]\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n    id: {\n      type: 'string',\n      maxLength: 100,\n    },\n    orgId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    workspaceId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    userId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    createdAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    updatedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    metadata: {\n      type: 'object',\n    },\n    extended: {\n      type: 'object',\n    },\n    name: {\n      type: 'string',\n      maxLength: 500,\n    },\n    title: {\n      type: 'string',\n      maxLength: 500,\n    },\n    description: {\n      type: 'string',\n      maxLength: 100000,\n    },\n    completed: {\n      type: 'boolean',\n    },\n    status: {\n      type: 'string',\n      maxLength: 50,\n    },\n    sortOrder: {\n      type: 'integer',\n      minimum: 0,\n      maximum: 999999,\n      multipleOf: 1,\n    },\n    projectId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    goalId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    startAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    startedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    dueAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    completedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    archived: {\n      type: 'boolean',\n    },\n    timeBudgetHours: {\n      type: 'number',\n    },\n    categoryId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    tagIds: {\n      type: 'array',\n      items: {\n        type: 'string',\n      },\n    },\n    version: {\n      type: 'integer',\n    },\n    mentions: {\n      type: 'array',\n      items: {},\n    },\n    tenantId: {\n      type: 'string',\n      maxLength: 100,\n    },\n  },\n  required: [\n    'id',\n    'orgId',\n    'createdAt',\n    'updatedAt',\n    'title',\n    'completed',\n    'projectId',\n    'goalId',\n    'archived',\n    'version',\n    'workspaceId',\n    'sortOrder',\n  ],\n  indexes: [\n    ['orgId', 'createdAt'],\n    ['orgId', 'workspaceId', 'createdAt'],\n    ['workspaceId', 'createdAt'],\n    ['projectId', 'createdAt'],\n    ['projectId', 'sortOrder'],\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'orgs'\n\n/**\n * Org Model Interface (auto-generated from Drizzle schema)\n */\nexport interface OrgModel {\n  id: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  description?: string\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"archived\"\n  ],\n  indexes: [\n      [\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'projects'\n\n/**\n * Project Model Interface (auto-generated from Drizzle schema)\n */\nexport interface ProjectModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name?: string\n  title: string\n  description?: string\n  completed: boolean\n  status: string\n  sortOrder?: number\n  goalId: string\n  startAt?: string\n  startedAt?: string\n  dueAt?: string\n  completedAt?: string\n  archived: boolean\n  codebaseId?: string\n  sourceTemplateId?: string\n  timeBudgetHours?: number\n  categoryId?: string\n  tagIds?: string[]\n  productId: string\n  roadmapId: string\n  initiativeId: string\n  version: number\n  mentions?: unknown[]\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n    id: {\n      type: 'string',\n      maxLength: 100,\n    },\n    orgId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    workspaceId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    userId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    createdAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    updatedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    metadata: {\n      type: 'object',\n    },\n    extended: {\n      type: 'object',\n    },\n    name: {\n      type: 'string',\n      maxLength: 500,\n    },\n    title: {\n      type: 'string',\n      maxLength: 500,\n    },\n    description: {\n      type: 'string',\n      maxLength: 100000,\n    },\n    completed: {\n      type: 'boolean',\n    },\n    status: {\n      type: 'string',\n      maxLength: 50,\n    },\n    sortOrder: {\n      type: 'integer',\n      minimum: 0,\n      maximum: 999999,\n      multipleOf: 1,\n    },\n    goalId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    startAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    startedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    dueAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    completedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    archived: {\n      type: 'boolean',\n    },\n    codebaseId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    sourceTemplateId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    timeBudgetHours: {\n      type: 'number',\n    },\n    categoryId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    tagIds: {\n      type: 'array',\n      items: {\n        type: 'string',\n      },\n    },\n    productId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    roadmapId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    initiativeId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    version: {\n      type: 'integer',\n    },\n    mentions: {\n      type: 'array',\n      items: {},\n    },\n    tenantId: {\n      type: 'string',\n      maxLength: 100,\n    },\n  },\n  required: [\n    'id',\n    'orgId',\n    'createdAt',\n    'updatedAt',\n    'title',\n    'completed',\n    'archived',\n    'version',\n    'status',\n    'workspaceId',\n    'goalId',\n    'productId',\n    'roadmapId',\n    'initiativeId',\n  ],\n  indexes: [\n    ['orgId', 'createdAt'],\n    ['orgId', 'status', 'createdAt'],\n    ['workspaceId', 'createdAt'],\n    ['goalId', 'createdAt'],\n    ['productId'],\n    ['roadmapId'],\n    ['initiativeId'],\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'documents'\n\n/**\n * Document Model Interface (auto-generated from Drizzle schema)\n */\nexport interface DocumentModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  projectId: string\n  milestoneId: string\n  taskId: string\n  codebaseId: string\n  documentType: string\n  title: string\n  content?: string\n  storage?: Record<string, unknown>\n  documentVersion: number\n  approved: boolean\n  approvedAt?: string\n  approvedBy?: string\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"projectId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"milestoneId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"taskId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"codebaseId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"documentType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"content\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"storage\": {\n          \"type\": \"object\"\n      },\n      \"documentVersion\": {\n          \"type\": \"integer\"\n      },\n      \"approved\": {\n          \"type\": \"boolean\"\n      },\n      \"approvedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"approvedBy\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"documentType\",\n      \"title\",\n      \"documentVersion\",\n      \"approved\",\n      \"workspaceId\",\n      \"projectId\",\n      \"milestoneId\",\n      \"taskId\",\n      \"codebaseId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"projectId\",\n          \"createdAt\"\n      ],\n      [\n          \"milestoneId\",\n          \"createdAt\"\n      ],\n      [\n          \"taskId\",\n          \"createdAt\"\n      ],\n      [\n          \"codebaseId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"documentType\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'tasks'\n\n/**\n * Task Model Interface (auto-generated from Drizzle schema)\n */\nexport interface TaskModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name?: string\n  title: string\n  description?: string\n  dueAt?: string\n  startAt?: string\n  startedAt?: string\n  completedAt?: string\n  status: string\n  type?: string\n  completed?: boolean\n  projectId: string\n  milestoneId: string\n  parentTaskId: string\n  archived: boolean\n  timeBudgetHours?: number\n  isRecurring?: boolean\n  recurrenceRule?: string\n  parentRecurrenceId?: string\n  recurrenceInstanceDate?: string\n  categoryId?: string\n  tagIds?: string[]\n  priority: number\n  assigneeId: string\n  estimatePoints?: number\n  sortOrder: number\n  version: number\n  mentions?: unknown[]\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n    id: {\n      type: 'string',\n      maxLength: 100,\n    },\n    orgId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    workspaceId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    userId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    createdAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    updatedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    metadata: {\n      type: 'object',\n    },\n    extended: {\n      type: 'object',\n    },\n    name: {\n      type: 'string',\n      maxLength: 500,\n    },\n    title: {\n      type: 'string',\n      maxLength: 500,\n    },\n    description: {\n      type: 'string',\n      maxLength: 100000,\n    },\n    dueAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    startAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    startedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    completedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    status: {\n      type: 'string',\n      maxLength: 50,\n      default: 'todo',\n    },\n    type: {\n      type: 'string',\n      maxLength: 200,\n    },\n    completed: {\n      type: 'boolean',\n    },\n    projectId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    milestoneId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    parentTaskId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    archived: {\n      type: 'boolean',\n    },\n    timeBudgetHours: {\n      type: 'number',\n    },\n    isRecurring: {\n      type: 'boolean',\n    },\n    recurrenceRule: {\n      type: 'string',\n      maxLength: 200,\n    },\n    parentRecurrenceId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    recurrenceInstanceDate: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    categoryId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    tagIds: {\n      type: 'array',\n      items: {\n        type: 'string',\n      },\n    },\n    priority: {\n      type: 'integer',\n      minimum: 0,\n      maximum: 4,\n      multipleOf: 1,\n    },\n    assigneeId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    estimatePoints: {\n      type: 'number',\n      minimum: 0,\n      maximum: 10000,\n      multipleOf: 0.5,\n    },\n    sortOrder: {\n      type: 'integer',\n      minimum: 0,\n      maximum: 999999,\n      multipleOf: 1,\n    },\n    version: {\n      type: 'integer',\n      minimum: 1,\n      maximum: 9999999,\n      multipleOf: 1,\n    },\n    mentions: {\n      type: 'array',\n      items: {},\n    },\n    tenantId: {\n      type: 'string',\n      maxLength: 100,\n    },\n  },\n  required: [\n    'id',\n    'orgId',\n    'createdAt',\n    'updatedAt',\n    'title',\n    'archived',\n    'version',\n    'workspaceId',\n    'projectId',\n    'milestoneId',\n    'parentTaskId',\n    'assigneeId',\n    'status',\n    'priority',\n    'sortOrder',\n  ],\n  indexes: [\n    ['orgId', 'createdAt'],\n    ['workspaceId', 'createdAt'],\n    ['projectId', 'createdAt'],\n    ['milestoneId', 'createdAt'],\n    ['parentTaskId', 'createdAt'],\n    ['orgId', 'assigneeId', 'createdAt'],\n    ['orgId', 'status', 'priority'],\n    ['milestoneId', 'sortOrder'],\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'templates'\n\n/**\n * Template Model Interface (auto-generated from Drizzle schema)\n */\nexport interface TemplateModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  templateType: string\n  name: string\n  content: string\n  version: string\n  isDefault: boolean\n  data?: Record<string, unknown>\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"templateType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"content\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"version\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"isDefault\": {\n          \"type\": \"boolean\"\n      },\n      \"data\": {\n          \"type\": \"object\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"templateType\",\n      \"name\",\n      \"content\",\n      \"version\",\n      \"isDefault\",\n      \"workspaceId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"templateType\",\n          \"createdAt\"\n      ],\n      [\n          \"isDefault\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'users'\n\n/**\n * User Model Interface (auto-generated from Drizzle schema)\n */\nexport interface UserModel {\n  id: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  email: string\n  authUserId: string\n  timezone?: string\n  archived: boolean\n  onboarded: boolean\n  avatarUrl?: string\n  role?: string\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"email\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"authUserId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"timezone\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"onboarded\": {\n          \"type\": \"boolean\"\n      },\n      \"avatarUrl\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"role\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"archived\",\n      \"onboarded\",\n      \"email\",\n      \"authUserId\"\n  ],\n  indexes: [\n      [\n          \"email\",\n          \"createdAt\"\n      ],\n      [\n          \"authUserId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'workspaces'\n\n/**\n * Workspace Model Interface (auto-generated from Drizzle schema)\n */\nexport interface WorkspaceModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  title: string\n  description: string\n  tags?: string[]\n  status: string\n  archivedAt?: string\n  archived: boolean\n  icon?: string\n  color?: string\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"tags\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"archivedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"icon\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"color\": {\n          \"type\": \"string\",\n          \"maxLength\": 20\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"title\",\n      \"description\",\n      \"status\",\n      \"archived\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"name\",\n          \"createdAt\"\n      ],\n      [\n          \"status\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'schemas'\n\n/**\n * Schema Model Interface (auto-generated from Drizzle schema)\n */\nexport interface SchemaModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  title: string\n  description: string\n  icon?: string\n  category: string\n  target: string\n  fields: Record<string, unknown>[]\n  titleField: string\n  defaultSort?: Record<string, unknown>\n  ownerPluginId: string\n  builtIn: boolean\n  version: number\n  archived: boolean\n  classLevelPermissions?: Record<string, unknown>\n  encryptedFields?: Record<string, unknown>[]\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"icon\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"category\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"target\": {\n          \"type\": \"string\",\n          \"maxLength\": 20\n      },\n      \"fields\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"object\"\n          }\n      },\n      \"titleField\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"defaultSort\": {\n          \"type\": \"object\"\n      },\n      \"ownerPluginId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"builtIn\": {\n          \"type\": \"boolean\"\n      },\n      \"version\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 9999,\n          \"multipleOf\": 1\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"classLevelPermissions\": {\n          \"type\": \"object\"\n      },\n      \"encryptedFields\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"object\"\n          }\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"title\",\n      \"description\",\n      \"category\",\n      \"target\",\n      \"fields\",\n      \"titleField\",\n      \"builtIn\",\n      \"version\",\n      \"archived\",\n      \"workspaceId\",\n      \"ownerPluginId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"name\"\n      ],\n      [\n          \"orgId\",\n          \"category\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"target\",\n          \"orgId\"\n      ],\n      [\n          \"orgId\",\n          \"ownerPluginId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'records'\n\n/**\n * Record Model Interface (auto-generated from Drizzle schema)\n */\nexport interface RecordModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  schemaId: string\n  title: string\n  status: string\n  parentId: string\n  parentCollection?: string\n  data: Record<string, unknown>\n  archived: boolean\n  completed?: boolean\n  completedAt?: string\n  startedAt?: string\n  sortOrder?: number\n  assigneeId: string\n  priority?: number\n  dueAt?: string\n  amount?: number\n  version: number\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"schemaId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"parentId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"parentCollection\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"data\": {\n          \"type\": \"object\"\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"completed\": {\n          \"type\": \"boolean\"\n      },\n      \"completedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"startedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"sortOrder\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 999999,\n          \"multipleOf\": 1\n      },\n      \"assigneeId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"priority\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 4,\n          \"multipleOf\": 1\n      },\n      \"dueAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"amount\": {\n          \"type\": \"number\",\n          \"minimum\": -999999999,\n          \"maximum\": 999999999,\n          \"multipleOf\": 0.01\n      },\n      \"version\": {\n          \"type\": \"integer\",\n          \"minimum\": 1,\n          \"maximum\": 9999999,\n          \"multipleOf\": 1\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"schemaId\",\n      \"title\",\n      \"data\",\n      \"archived\",\n      \"version\",\n      \"status\",\n      \"parentId\",\n      \"workspaceId\",\n      \"assigneeId\"\n  ],\n  indexes: [\n      [\n          \"schemaId\",\n          \"orgId\"\n      ],\n      [\n          \"schemaId\",\n          \"orgId\",\n          \"status\"\n      ],\n      [\n          \"parentId\"\n      ],\n      [\n          \"schemaId\",\n          \"orgId\",\n          \"updatedAt\"\n      ],\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"assigneeId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'relations'\n\n/**\n * Relation Model Interface (auto-generated from Drizzle schema)\n */\nexport interface RelationModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  sourceId: string\n  sourceCollection: string\n  sourceSchemaId?: string\n  targetId: string\n  targetCollection: string\n  targetSchemaId?: string\n  relationType: string\n  data?: Record<string, unknown>\n  sortOrder?: number\n  label?: string\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"sourceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"sourceCollection\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"sourceSchemaId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"targetId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"targetCollection\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"targetSchemaId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"relationType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"data\": {\n          \"type\": \"object\"\n      },\n      \"sortOrder\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 999999,\n          \"multipleOf\": 1\n      },\n      \"label\": {\n          \"type\": \"string\",\n          \"maxLength\": 255\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"sourceId\",\n      \"sourceCollection\",\n      \"targetId\",\n      \"targetCollection\",\n      \"relationType\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"sourceId\",\n          \"relationType\"\n      ],\n      [\n          \"orgId\",\n          \"targetId\",\n          \"relationType\"\n      ],\n      [\n          \"orgId\",\n          \"relationType\"\n      ],\n      [\n          \"orgId\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'vaults'\n\n/**\n * Vault Model Interface (auto-generated from Drizzle schema)\n */\nexport interface VaultModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  description?: string\n  icon?: string\n  encryptedVaultKey?: string\n  shared: boolean\n  keyVersion: number\n  rotationPending: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"icon\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"encryptedVaultKey\": {\n          \"type\": \"string\",\n          \"maxLength\": 50000\n      },\n      \"shared\": {\n          \"type\": \"boolean\"\n      },\n      \"keyVersion\": {\n          \"type\": \"integer\",\n          \"minimum\": 1,\n          \"maximum\": 9999,\n          \"multipleOf\": 1\n      },\n      \"rotationPending\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"shared\",\n      \"keyVersion\",\n      \"rotationPending\",\n      \"workspaceId\",\n      \"userId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"userId\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'vaultitems'\n\n/**\n * VaultItem Model Interface (auto-generated from Drizzle schema)\n */\nexport interface VaultItemModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  vaultId: string\n  name: string\n  type: string\n  provider: string\n  encryptedPayload: string\n  iv: string\n  authTag: string\n  keyWraps: unknown[]\n  keyVersion: number\n  url?: string\n  tags?: string[]\n  notes?: string\n  expiresAt?: string\n  lastRotatedAt?: string\n  lastAccessedAt?: string\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"vaultId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"type\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"provider\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"encryptedPayload\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"iv\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"authTag\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"keyWraps\": {\n          \"type\": \"array\",\n          \"items\": {}\n      },\n      \"keyVersion\": {\n          \"type\": \"integer\"\n      },\n      \"url\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"tags\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"notes\": {\n          \"type\": \"string\",\n          \"maxLength\": 5000\n      },\n      \"expiresAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"lastRotatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"lastAccessedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"vaultId\",\n      \"name\",\n      \"type\",\n      \"encryptedPayload\",\n      \"iv\",\n      \"authTag\",\n      \"keyWraps\",\n      \"keyVersion\",\n      \"archived\",\n      \"workspaceId\",\n      \"userId\",\n      \"provider\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"vaultId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"createdAt\"\n      ],\n      [\n          \"userId\",\n          \"createdAt\"\n      ],\n      [\n          \"vaultId\",\n          \"type\"\n      ],\n      [\n          \"vaultId\",\n          \"provider\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'servicekeys'\n\n/**\n * ServiceKey Model Interface (auto-generated from Drizzle schema)\n */\nexport interface ServiceKeyModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  serviceName: string\n  publicKey: string\n  fingerprint: string\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"serviceName\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"publicKey\": {\n          \"type\": \"string\",\n          \"maxLength\": 50000\n      },\n      \"fingerprint\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"serviceName\",\n      \"publicKey\",\n      \"fingerprint\",\n      \"archived\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"serviceName\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'workers'\n\n/**\n * Worker Model Interface (auto-generated from Drizzle schema)\n */\nexport interface WorkerModel {\n  id: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  status: string\n  lastHeartbeat: string\n  currentExecutionId: string\n  capabilities: string[]\n  mode: string\n  hostname: string\n  ip?: string\n  healthPort?: number\n  maxConcurrent: number\n  pollIntervalMs: number\n  registeredAt: string\n  registeredBy: string\n  version?: string\n  createdAt: string\n  updatedAt: string\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 20\n      },\n      \"lastHeartbeat\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"currentExecutionId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"capabilities\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"mode\": {\n          \"type\": \"string\",\n          \"maxLength\": 20\n      },\n      \"hostname\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"ip\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"healthPort\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 65535,\n          \"multipleOf\": 1\n      },\n      \"maxConcurrent\": {\n          \"type\": \"integer\",\n          \"minimum\": 1,\n          \"maximum\": 1000,\n          \"multipleOf\": 1\n      },\n      \"pollIntervalMs\": {\n          \"type\": \"integer\",\n          \"minimum\": 100,\n          \"maximum\": 3600000,\n          \"multipleOf\": 1\n      },\n      \"registeredAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"registeredBy\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"version\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"name\",\n      \"status\",\n      \"lastHeartbeat\",\n      \"capabilities\",\n      \"mode\",\n      \"hostname\",\n      \"maxConcurrent\",\n      \"pollIntervalMs\",\n      \"registeredAt\",\n      \"registeredBy\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"currentExecutionId\"\n  ],\n  indexes: [\n      [\n          \"status\",\n          \"lastHeartbeat\"\n      ],\n      [\n          \"lastHeartbeat\"\n      ],\n      [\n          \"currentExecutionId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'attributes'\n\n/**\n * Attribute Model Interface (auto-generated from Drizzle schema)\n */\nexport interface AttributeModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  title: string\n  description?: string\n  color: string\n  entityType: string\n  type: string\n  sortOrder?: number\n  popularity?: number\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"color\": {\n          \"type\": \"string\",\n          \"maxLength\": 20\n      },\n      \"entityType\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"type\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"sortOrder\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 999999,\n          \"multipleOf\": 1\n      },\n      \"popularity\": {\n          \"type\": \"number\",\n          \"minimum\": 0,\n          \"maximum\": 999999,\n          \"multipleOf\": 1\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"title\",\n      \"color\",\n      \"entityType\",\n      \"type\",\n      \"archived\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"entityType\",\n          \"type\"\n      ],\n      [\n          \"orgId\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'activities'\n\n/**\n * Activity Model Interface (auto-generated from Drizzle schema)\n */\nexport interface ActivityModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  entityType: string\n  entityId: string\n  entityName: string\n  action: string\n  userName: string\n  productId?: string\n  changes?: Record<string, unknown>\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"entityType\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"entityId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"entityName\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"action\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"userName\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"productId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"changes\": {\n          \"type\": \"object\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"entityType\",\n      \"entityId\",\n      \"entityName\",\n      \"action\",\n      \"userName\",\n      \"workspaceId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"entityType\",\n          \"entityId\"\n      ],\n      [\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"entityType\",\n          \"entityId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'teammembers'\n\n/**\n * TeamMember Model Interface (auto-generated from Drizzle schema)\n */\nexport interface TeamMemberModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  userName: string\n  slug?: string\n  userEmail?: string\n  userAvatar?: string\n  role: string\n  isAgent: boolean\n  joinedAt?: string\n  raciAssignments?: Record<string, unknown>\n  productId?: string\n  tenantId?: string\n  lastHeartbeat?: string\n  containerStatus?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n    id: {\n      type: 'string',\n      maxLength: 100,\n    },\n    orgId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    workspaceId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    userId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    createdAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    updatedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    metadata: {\n      type: 'object',\n    },\n    extended: {\n      type: 'object',\n    },\n    userName: {\n      type: 'string',\n      maxLength: 200,\n    },\n    slug: {\n      type: 'string',\n      maxLength: 200,\n    },\n    userEmail: {\n      type: 'string',\n      maxLength: 200,\n    },\n    userAvatar: {\n      type: 'string',\n      maxLength: 200,\n    },\n    role: {\n      type: 'string',\n      maxLength: 50,\n    },\n    isAgent: {\n      type: 'boolean',\n    },\n    joinedAt: {\n      type: 'string',\n      maxLength: 200,\n    },\n    raciAssignments: {\n      type: 'object',\n    },\n    productId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    tenantId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    lastHeartbeat: {\n      type: 'string',\n      maxLength: 50,\n      format: 'date-time',\n    },\n    containerStatus: {\n      type: 'string',\n      maxLength: 20,\n      enum: ['running', 'stopped', 'error', 'unknown'],\n    },\n  },\n  required: ['id', 'orgId', 'createdAt', 'updatedAt', 'userName', 'role', 'isAgent'],\n  indexes: [\n    ['orgId', 'createdAt'],\n    ['orgId', 'role'],\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'timeentries'\n\n/**\n * TimeEntry Model Interface (auto-generated from Drizzle schema)\n */\nexport interface TimeEntryModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  taskId: string\n  startAt: string\n  endAt?: string\n  duration?: number\n  categoryId?: string\n  tagIds?: string[]\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"taskId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"startAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"endAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"duration\": {\n          \"type\": \"number\",\n          \"minimum\": 0,\n          \"maximum\": 999999,\n          \"multipleOf\": 1\n      },\n      \"categoryId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"tagIds\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"taskId\",\n      \"startAt\",\n      \"archived\",\n      \"userId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"taskId\"\n      ],\n      [\n          \"orgId\",\n          \"userId\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'conversations'\n\n/**\n * Conversation Model Interface (auto-generated from Drizzle schema)\n */\nexport interface ConversationModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  title: string\n  provider: string\n  model: string\n  settings?: Record<string, unknown>\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"provider\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"model\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"settings\": {\n          \"type\": \"object\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"title\",\n      \"provider\",\n      \"model\",\n      \"userId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"userId\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'messages'\n\n/**\n * Message Model Interface (auto-generated from Drizzle schema)\n */\nexport interface MessageModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  conversationId: string\n  role: string\n  content: string\n  toolCalls?: unknown[]\n  mentions?: Record<string, unknown>[]\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n    id: {\n      type: 'string',\n      maxLength: 100,\n    },\n    orgId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    workspaceId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    userId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    createdAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    updatedAt: {\n      type: 'string',\n      maxLength: 200,\n      format: 'date-time',\n    },\n    metadata: {\n      type: 'object',\n    },\n    extended: {\n      type: 'object',\n    },\n    conversationId: {\n      type: 'string',\n      maxLength: 100,\n    },\n    role: {\n      type: 'string',\n      maxLength: 50,\n    },\n    content: {\n      type: 'string',\n      maxLength: 100000,\n    },\n    toolCalls: {\n      type: 'array',\n      items: {},\n    },\n    mentions: {\n      type: 'array',\n      items: {\n        type: 'object',\n        properties: {\n          type: {\n            type: 'string',\n            maxLength: 50,\n          },\n          identifier: {\n            type: 'string',\n            maxLength: 200,\n          },\n          teamMemberId: {\n            type: 'string',\n            maxLength: 100,\n          },\n          userId: {\n            type: 'string',\n            maxLength: 100,\n          },\n          position: {\n            type: 'integer',\n            minimum: 0,\n            maximum: 999999,\n            multipleOf: 1,\n          },\n        },\n        required: ['type', 'identifier', 'position'],\n      },\n    },\n    tenantId: {\n      type: 'string',\n      maxLength: 100,\n    },\n  },\n  required: ['id', 'orgId', 'createdAt', 'updatedAt', 'conversationId', 'role', 'content'],\n  indexes: [\n    ['conversationId', 'createdAt'],\n    ['orgId', 'createdAt'],\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'goals'\n\n/**\n * Goal Model Interface (auto-generated from Drizzle schema)\n */\nexport interface GoalModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name?: string\n  title: string\n  description?: string\n  status: string\n  priority: string\n  category: string\n  progressMode?: string\n  currentProgress?: number\n  completed: boolean\n  dueDate?: string\n  targetDate?: string\n  parentGoalId: string\n  metrics?: unknown[]\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"priority\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"category\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"progressMode\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"currentProgress\": {\n          \"type\": \"number\",\n          \"minimum\": 0,\n          \"maximum\": 100,\n          \"multipleOf\": 1\n      },\n      \"completed\": {\n          \"type\": \"boolean\"\n      },\n      \"dueDate\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"targetDate\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"parentGoalId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"metrics\": {\n          \"type\": \"array\",\n          \"items\": {}\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"title\",\n      \"status\",\n      \"priority\",\n      \"completed\",\n      \"archived\",\n      \"category\",\n      \"parentGoalId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"status\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"category\"\n      ],\n      [\n          \"orgId\",\n          \"parentGoalId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'processes'\n\n/**\n * Processes Model Interface (auto-generated from Drizzle schema)\n */\nexport interface ProcessesModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  title: string\n  description?: string\n  version?: string\n  status: string\n  category: string\n  startStepId?: string\n  documentId?: string\n  flowId: string\n  trigger?: Record<string, unknown>\n  inputSchema?: Record<string, unknown>\n  outputSchema?: Record<string, unknown>\n  executionConfig?: Record<string, unknown>\n  maxSubprocessDepth?: number\n  executorAgentId?: string\n  statistics?: Record<string, unknown>\n  requiredCapabilities?: string[]\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"version\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"category\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"startStepId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"documentId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"flowId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"trigger\": {\n          \"type\": \"object\"\n      },\n      \"inputSchema\": {\n          \"type\": \"object\"\n      },\n      \"outputSchema\": {\n          \"type\": \"object\"\n      },\n      \"executionConfig\": {\n          \"type\": \"object\"\n      },\n      \"maxSubprocessDepth\": {\n          \"type\": \"integer\"\n      },\n      \"executorAgentId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"statistics\": {\n          \"type\": \"object\"\n      },\n      \"requiredCapabilities\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"title\",\n      \"status\",\n      \"archived\",\n      \"workspaceId\",\n      \"category\",\n      \"flowId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"status\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"status\",\n          \"category\"\n      ],\n      [\n          \"flowId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'processexecutions'\n\n/**\n * ProcessExecutions Model Interface (auto-generated from Drizzle schema)\n */\nexport interface ProcessExecutionsModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  processId: string\n  processVersion?: string\n  status: string\n  progress: number\n  currentStepId?: string\n  startedAt?: string\n  completedAt?: string\n  durationMs?: number\n  retryCount: number\n  maxRetries: number\n  inputs: Record<string, unknown>\n  outputs?: Record<string, unknown>\n  variables: Record<string, unknown>\n  context: Record<string, unknown>\n  stepHistory: unknown[]\n  error?: Record<string, unknown>\n  correlationId?: string\n  externalId?: string\n  parentExecutionId: string\n  depth?: number\n  resumeAt?: string\n  workerId: string\n  processName?: string\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"processId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"processVersion\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"progress\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 100,\n          \"multipleOf\": 1\n      },\n      \"currentStepId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"startedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"completedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"durationMs\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 2147483647,\n          \"multipleOf\": 1\n      },\n      \"retryCount\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 100,\n          \"multipleOf\": 1\n      },\n      \"maxRetries\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 100,\n          \"multipleOf\": 1\n      },\n      \"inputs\": {\n          \"type\": \"object\"\n      },\n      \"outputs\": {\n          \"type\": \"object\"\n      },\n      \"variables\": {\n          \"type\": \"object\"\n      },\n      \"context\": {\n          \"type\": \"object\"\n      },\n      \"stepHistory\": {\n          \"type\": \"array\",\n          \"items\": {}\n      },\n      \"error\": {\n          \"type\": \"object\"\n      },\n      \"correlationId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"externalId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"parentExecutionId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"depth\": {\n          \"type\": \"integer\",\n          \"minimum\": 0,\n          \"maximum\": 100,\n          \"multipleOf\": 1\n      },\n      \"resumeAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"workerId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"processName\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"processId\",\n      \"status\",\n      \"progress\",\n      \"retryCount\",\n      \"maxRetries\",\n      \"inputs\",\n      \"variables\",\n      \"context\",\n      \"stepHistory\",\n      \"archived\",\n      \"workspaceId\",\n      \"parentExecutionId\",\n      \"workerId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"status\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"status\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"processId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"parentExecutionId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"workerId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'processsteps'\n\n/**\n * ProcessSteps Model Interface (auto-generated from Drizzle schema)\n */\nexport interface ProcessStepsModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  processId: string\n  templateId?: string\n  name: string\n  title: string\n  description?: string\n  stepType: string\n  order: number\n  optional: boolean\n  enabled: boolean\n  nextStepId?: string\n  action?: Record<string, unknown>\n  conditions?: Record<string, unknown>[]\n  outputs?: Record<string, unknown>[]\n  outputExtraction?: Record<string, unknown>\n  inputs?: Record<string, unknown>\n  requiredVariables?: string[]\n  position?: Record<string, unknown>\n  estimatedDurationMinutes?: number\n  icon?: string\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"processId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"templateId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"stepType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"order\": {\n          \"type\": \"number\",\n          \"minimum\": 0,\n          \"maximum\": 999999,\n          \"multipleOf\": 0.01\n      },\n      \"optional\": {\n          \"type\": \"boolean\"\n      },\n      \"enabled\": {\n          \"type\": \"boolean\"\n      },\n      \"nextStepId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"action\": {\n          \"type\": \"object\"\n      },\n      \"conditions\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"object\"\n          }\n      },\n      \"outputs\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"object\"\n          }\n      },\n      \"outputExtraction\": {\n          \"type\": \"object\"\n      },\n      \"inputs\": {\n          \"type\": \"object\"\n      },\n      \"requiredVariables\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"position\": {\n          \"type\": \"object\"\n      },\n      \"estimatedDurationMinutes\": {\n          \"type\": \"integer\"\n      },\n      \"icon\": {\n          \"type\": \"string\",\n          \"maxLength\": 50\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"processId\",\n      \"name\",\n      \"title\",\n      \"stepType\",\n      \"order\",\n      \"optional\",\n      \"enabled\",\n      \"archived\",\n      \"workspaceId\"\n  ],\n  indexes: [\n      [\n          \"processId\",\n          \"order\"\n      ],\n      [\n          \"processId\",\n          \"stepType\"\n      ],\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"createdAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'steptemplates'\n\n/**\n * StepTemplates Model Interface (auto-generated from Drizzle schema)\n */\nexport interface StepTemplatesModel {\n  id: string\n  orgId: string\n  workspaceId: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  title: string\n  description?: string\n  category: string\n  stepType: string\n  action: Record<string, unknown>\n  inputs?: Record<string, unknown>\n  outputs?: Record<string, unknown>\n  outputExtraction?: Record<string, unknown>\n  requiredVariables?: string[]\n  cli?: Record<string, unknown>\n  versionField?: string\n  tags?: string[]\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"category\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"stepType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"action\": {\n          \"type\": \"object\"\n      },\n      \"inputs\": {\n          \"type\": \"object\"\n      },\n      \"outputs\": {\n          \"type\": \"object\"\n      },\n      \"outputExtraction\": {\n          \"type\": \"object\"\n      },\n      \"requiredVariables\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"cli\": {\n          \"type\": \"object\"\n      },\n      \"versionField\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"tags\": {\n          \"type\": \"array\",\n          \"items\": {\n              \"type\": \"string\"\n          }\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"title\",\n      \"category\",\n      \"stepType\",\n      \"action\",\n      \"archived\",\n      \"workspaceId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"workspaceId\",\n          \"category\",\n          \"title\"\n      ],\n      [\n          \"orgId\",\n          \"name\"\n      ],\n      [\n          \"category\",\n          \"stepType\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'roles'\n\n/**\n * Role Model Interface (auto-generated from Drizzle schema)\n */\nexport interface RoleModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId?: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  name: string\n  title: string\n  description?: string\n  scopeType: string\n  scopeId: string\n  builtIn: boolean\n  archived: boolean\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"name\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"title\": {\n          \"type\": \"string\",\n          \"maxLength\": 500\n      },\n      \"description\": {\n          \"type\": \"string\",\n          \"maxLength\": 100000\n      },\n      \"scopeType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"scopeId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"builtIn\": {\n          \"type\": \"boolean\"\n      },\n      \"archived\": {\n          \"type\": \"boolean\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"name\",\n      \"title\",\n      \"builtIn\",\n      \"archived\",\n      \"scopeType\",\n      \"scopeId\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"name\"\n      ],\n      [\n          \"orgId\",\n          \"scopeType\",\n          \"scopeId\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// AUTO-GENERATED by generate-rxdb-schemas.ts — DO NOT EDIT\n// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { defaultHooks } from '../defaults'\n\nconst name = 'rolememberships'\n\n/**\n * RoleMembership Model Interface (auto-generated from Drizzle schema)\n */\nexport interface RoleMembershipModel {\n  id: string\n  orgId: string\n  workspaceId?: string\n  userId: string\n  createdAt: string\n  updatedAt: string\n  metadata?: Record<string, unknown>\n  extended?: Record<string, unknown>\n  roleId: string\n  grantedBy: string\n  scopeType: string\n  scopeId: string\n  status: string\n  expiresAt: string\n  tenantId?: string\n}\n\nexport const schema = {\n  title: name,\n  version: 0,\n  primaryKey: 'id',\n  type: 'object',\n  properties: {\n      \"id\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"orgId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"workspaceId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"userId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"createdAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"updatedAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"metadata\": {\n          \"type\": \"object\"\n      },\n      \"extended\": {\n          \"type\": \"object\"\n      },\n      \"roleId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"grantedBy\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"scopeType\": {\n          \"type\": \"string\",\n          \"maxLength\": 200\n      },\n      \"scopeId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      },\n      \"status\": {\n          \"type\": \"string\",\n          \"maxLength\": 50,\n          \"default\": \"active\"\n      },\n      \"expiresAt\": {\n          \"type\": \"string\",\n          \"maxLength\": 200,\n          \"format\": \"date-time\"\n      },\n      \"tenantId\": {\n          \"type\": \"string\",\n          \"maxLength\": 100\n      }\n  },\n  required: [\n      \"id\",\n      \"orgId\",\n      \"createdAt\",\n      \"updatedAt\",\n      \"roleId\",\n      \"grantedBy\",\n      \"status\",\n      \"userId\",\n      \"scopeType\",\n      \"scopeId\",\n      \"expiresAt\"\n  ],\n  indexes: [\n      [\n          \"orgId\",\n          \"userId\"\n      ],\n      [\n          \"orgId\",\n          \"roleId\"\n      ],\n      [\n          \"userId\",\n          \"orgId\",\n          \"createdAt\"\n      ],\n      [\n          \"orgId\",\n          \"userId\",\n          \"scopeType\",\n          \"scopeId\"\n      ],\n      [\n          \"expiresAt\"\n      ]\n  ],\n}\n\nexport const migrationStrategies = {}\n\nexport const Collection = {\n  name,\n  schema,\n  hooks: {\n    ...defaultHooks({ name }),\n  },\n  migrationStrategies,\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nexport interface SubtransactionSummary {\n  id: string;\n  transaction_id: string;\n  amount: number;\n  memo?: string | null;\n  payee_id?: string | null;\n  payee_name?: string | null;\n  category_id?: string | null;\n  category_name?: string | null;\n  transfer_account_id?: string | null;\n  transfer_transaction_id?: string | null;\n  deleted: boolean;\n}\n\nexport interface YnabDebtTransactionType {\n  original_balance: number | null;\n  interest_rates: Record<string, number>;\n  minimum_payments: Record<string, number>;\n  escrow_amounts: Record<string, number>;\n}\n\n// Subset of YNAB types needed for collections\n\nexport type AccountType = 'checking' | 'savings' | 'cash' | 'creditCard' | 'lineOfCredit' | 'otherAsset' | 'otherLiability' | 'mortgage' | 'autoLoan' | 'studentLoan' | 'personalLoan' | 'medicalDebt' | 'otherDebt';\n\nexport type TransactionClearedStatus = 'cleared' | 'uncleared' | 'reconciled';\n\nexport type TransactionFlagColor = 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple' | '' | null;\n\nexport type TransactionFlagName = string | null;\n\nexport type ScheduledTransactionFrequency = 'never' | 'daily' | 'weekly' | 'everyOtherWeek' | 'twiceAMonth' | 'every4Weeks' | 'monthly' | 'everyOtherMonth' | 'every3Months' | 'every4Months' | 'twiceAYear' | 'yearly' | 'everyOtherYear';\n\nexport type LoanAccountPeriodicValue = {\n    [key: string]: number;\n} | null;\n\nexport type Account = {\n    id: string;\n    name: string;\n    type: AccountType;\n    on_budget: boolean;\n    closed: boolean;\n    note?: string | null;\n    balance: number;\n    cleared_balance: number;\n    uncleared_balance: number;\n    transfer_payee_id: string | null;\n    direct_import_linked?: boolean;\n    direct_import_in_error?: boolean;\n    last_reconciled_at?: string | null;\n    debt_original_balance?: number | null;\n    debt_interest_rates?: LoanAccountPeriodicValue;\n    debt_minimum_payments?: LoanAccountPeriodicValue;\n    debt_escrow_amounts?: LoanAccountPeriodicValue;\n    deleted: boolean;\n};\n\nexport type Category = {\n    id: string;\n    category_group_id: string;\n    category_group_name?: string;\n    name: string;\n    hidden: boolean;\n    original_category_group_id?: string | null;\n    note?: string | null;\n    budgeted: number;\n    activity: number;\n    balance: number;\n    goal_type?: 'TB' | 'TBD' | 'MF' | 'NEED' | 'DEBT' | null;\n    goal_needs_whole_amount?: boolean | null;\n    goal_day?: number | null;\n    goal_cadence?: number | null;\n    goal_cadence_frequency?: number | null;\n    goal_creation_month?: string | null;\n    goal_target?: number | null;\n    goal_target_month?: string | null;\n    goal_percentage_complete?: number | null;\n    goal_months_to_budget?: number | null;\n    goal_under_funded?: number | null;\n    goal_overall_funded?: number | null;\n    goal_overall_left?: number | null;\n    goal_snoozed_at?: string | null;\n    deleted: boolean;\n};\n\nexport type TransactionSummary = {\n    id: string;\n    date: string;\n    amount: number;\n    memo?: string | null;\n    cleared: TransactionClearedStatus;\n    approved: boolean;\n    flag_color?: TransactionFlagColor;\n    flag_name?: TransactionFlagName;\n    account_id: string;\n    payee_id?: string | null;\n    category_id?: string | null;\n    transfer_account_id?: string | null;\n    transfer_transaction_id?: string | null;\n    matched_transaction_id?: string | null;\n    import_id?: string | null;\n    import_payee_name?: string | null;\n    import_payee_name_original?: string | null;\n    debt_transaction_type?: 'payment' | 'refund' | 'fee' | 'interest' | 'escrow' | 'balanceAdjustment' | 'credit' | 'charge' | null;\n    deleted: boolean;\n};\n\nexport type SubTransaction = {\n    id: string;\n    transaction_id: string;\n    amount: number;\n    memo?: string | null;\n    payee_id?: string | null;\n    payee_name?: string | null;\n    category_id?: string | null;\n    category_name?: string | null;\n    transfer_account_id?: string | null;\n    transfer_transaction_id?: string | null;\n    deleted: boolean;\n};\n\nexport type TransactionDetail = TransactionSummary & {\n    account_name: string;\n    payee_name?: string | null;\n    category_name?: string | null;\n    subtransactions: Array<SubTransaction>;\n};\n\nexport type ScheduledTransactionSummary = {\n    id: string;\n    date_first: string;\n    date_next: string;\n    frequency: ScheduledTransactionFrequency;\n    amount: number;\n    memo?: string | null;\n    flag_color?: TransactionFlagColor;\n    flag_name?: TransactionFlagName;\n    account_id: string;\n    payee_id?: string | null;\n    category_id?: string | null;\n    transfer_account_id?: string | null;\n    deleted: boolean;\n};\n\nexport type ScheduledSubTransaction = {\n    id: string;\n    scheduled_transaction_id: string;\n    amount: number;\n    memo?: string | null;\n    payee_id?: string | null;\n    payee_name?: string | null;\n    category_id?: string | null;\n    category_name?: string | null;\n    transfer_account_id?: string | null;\n    deleted: boolean;\n};\n\nexport type ScheduledTransactionDetail = ScheduledTransactionSummary & {\n    account_name: string;\n    payee_name?: string | null;\n    category_name?: string | null;\n    subtransactions: Array<ScheduledSubTransaction>;\n};\n\n/**\n * Shared base types and interfaces for all RxDB collections\n * Provides consistent patterns across the db-collections package\n */\n\n/**\n * Base fields that all collection documents should have\n */\nexport interface BaseDocument {\n  /** Unique identifier for the document */\n  id: string;\n  /** ID of the organization this document belongs to */\n  orgId: string;\n  /** ID of the user who created this document */\n  userId: string;\n  /** UTC timestamp when the document was created */\n  createdAt: string;\n  /** UTC timestamp when the document was last updated */\n  updatedAt: string;\n}\n\n/**\n * Base schema properties that all collections should include\n * Use with spread operator in collection schemas\n */\nexport const baseSchemaProperties = {\n  id: { type: 'string', maxLength: 100 },\n  orgId: { type: 'string', maxLength: 100 },\n  userId: { type: 'string', maxLength: 100 },\n  createdAt: { type: 'string', format: 'date-time', maxLength: 100 },\n  updatedAt: { type: 'string', format: 'date-time', maxLength: 100 },\n} as const;\n\n/**\n * Base required fields that all collections should enforce\n */\nexport const baseRequiredFields = [\n  'id',\n  'orgId',\n  'userId',\n  'createdAt',\n  'updatedAt',\n] as const;\n\n/**\n * Common metadata patterns for tracking document statistics\n */\nexport interface BaseMetadata {\n  [key: string]: unknown;\n}\n\n/**\n * Soft delete pattern - use for collections that need soft delete\n */\nexport interface SoftDeletable {\n  /** Whether this document is soft deleted */\n  isDeleted: boolean;\n  /** UTC timestamp when the document was soft deleted */\n  deletedAt?: string;\n}\n\n/**\n * Edit tracking pattern - use for collections that need edit history\n */\nexport interface EditTracking {\n  /** Whether this document has been edited after creation */\n  isEdited: boolean;\n  /** UTC timestamp when the document was last edited */\n  editedAt?: string;\n}\n\n/**\n * Threading pattern - use for collections that support nested comments/replies\n */\nexport interface Threadable {\n  /** ID of the parent document for nested replies */\n  parentId?: string;\n  /** Depth level in the thread tree (0 for root) */\n  threadDepth: number;\n}\n\n/**\n * Polymorphic relationship pattern - use for collections that reference multiple entity types\n */\nexport interface PolymorphicEntity {\n  /** Type of the entity this references */\n  entityType: string;\n  /** ID of the entity this references */\n  entityId: string;\n}\n\n/**\n * Common schema properties for soft delete functionality\n */\nexport const softDeleteSchemaProperties = {\n  isDeleted: { type: 'boolean' },\n  deletedAt: { type: 'string', format: 'date-time', maxLength: 100 },\n} as const;\n\n/**\n * Common schema properties for edit tracking functionality\n */\nexport const editTrackingSchemaProperties = {\n  isEdited: { type: 'boolean' },\n  editedAt: { type: 'string', format: 'date-time', maxLength: 100 },\n} as const;\n\n/**\n * Common schema properties for threading functionality\n */\nexport const threadableSchemaProperties = {\n  parentId: { type: 'string', maxLength: 100 },\n  threadDepth: { type: 'number', minimum: 0, maximum: 10 },\n} as const;\n\n/**\n * Common schema properties for polymorphic relationships\n */\nexport const polymorphicEntitySchemaProperties = {\n  entityType: { type: 'string', maxLength: 100 },\n  entityId: { type: 'string', maxLength: 100 },\n} as const;\n\n/**\n * Conversation Management Types\n *\n * Defines data structures for managing multi-turn conversations in agent tasks,\n * including support for conversation history compression and context optimization.\n */\n\n/**\n * Conversation turn in agent task execution\n */\nexport interface ConversationTurn {\n  /** Turn number in conversation (1-indexed) */\n  turnNumber: number;\n\n  /** Role: user, assistant, or system */\n  role: 'user' | 'assistant' | 'system';\n\n  /** Message content */\n  content: string;\n\n  /** ISO timestamp */\n  timestamp: string;\n\n  /** Optional metadata about this turn */\n  metadata?: TurnMetadata;\n}\n\n/**\n * Metadata for a conversation turn\n */\nexport interface TurnMetadata {\n  /** Tools used during this turn (summary) */\n  toolsUsed?: string[];\n\n  /** Files modified during this turn */\n  filesModified?: string[];\n\n  /** Commands executed (summary) */\n  commandsExecuted?: string[];\n\n  /** Token usage for this turn */\n  tokens?: {\n    input: number;\n    output: number;\n  };\n\n  /** Cost for this turn (USD) */\n  costUsd?: number;\n\n  /** Whether this turn blocked waiting for input */\n  blockedForInput?: boolean;\n\n  /** Agent ID that processed this turn */\n  agentId?: string;\n\n  /** Claude session ID for conversation resumption */\n  sessionId?: string;\n}\n\n/**\n * Conversation state with compression support\n */\nexport interface ConversationState {\n  /** All conversation turns (recent, uncompressed) */\n  turns: ConversationTurn[];\n\n  /** Compressed summary of older turns (if compression applied) */\n  compressedHistory?: CompressedHistory;\n\n  /** Total number of turns (including compressed) */\n  totalTurns: number;\n\n  /** Configuration used for this conversation */\n  config?: ConversationConfig;\n}\n\n/**\n * Compressed history segment\n */\nexport interface CompressedHistory {\n  /** Turn numbers that were compressed (e.g., 1-10) */\n  turnRange: {\n    start: number;\n    end: number;\n  };\n\n  /** Summary of compressed turns */\n  summary: string;\n\n  /** When compression was performed */\n  compressedAt: string;\n\n  /** Key facts/decisions from compressed turns */\n  keyPoints?: string[];\n\n  /** Estimated tokens saved by compression */\n  tokensSaved?: number;\n}\n\n/**\n * Configuration for conversation management\n */\nexport interface ConversationConfig {\n  /** Number of recent turns to keep verbatim */\n  recentTurnsToKeep: number;\n\n  /** Trigger compression when total turns exceeds this */\n  compressionThreshold: number;\n\n  /** Whether to include tool details in summaries */\n  includeToolDetails: boolean;\n\n  /** Whether compression is enabled */\n  compressionEnabled: boolean;\n}\n\n/**\n * Default conversation configuration\n *\n * Optimized for balance between context fidelity and token efficiency:\n * - Keeps last 8 turns verbatim (sufficient for most multi-turn tasks)\n * - Compresses when conversation exceeds 12 turns\n * - Tool summaries only (not full output)\n */\nexport const DEFAULT_CONVERSATION_CONFIG: ConversationConfig = {\n  recentTurnsToKeep: 8,           // Keep last 8 turns verbatim\n  compressionThreshold: 12,        // Compress when >12 total turns\n  includeToolDetails: false,       // Tool summaries only\n  compressionEnabled: true,        // Enable compression\n};\n\n/**\n * Process & Workflow Type Definitions\n *\n * Provides comprehensive type safety for the process visualization system\n * that supports flowchart rendering, workflow documentation, and process management.\n */\n\n/**\n * Status of a process in its lifecycle\n */\nexport type ProcessStatus = 'draft' | 'active' | 'archived' | 'deprecated';\n\n/**\n * Category/domain that a process belongs to\n */\nexport type ProcessCategory =\n  | 'operations'\n  | 'engineering'\n  | 'hr'\n  | 'finance'\n  | 'sales'\n  | 'marketing'\n  | 'support'\n  | 'legal'\n  | 'compliance'\n  | 'other';\n\n/**\n * Type of step in a process flowchart\n */\nexport type ProcessStepType =\n  | 'start'\n  | 'end'\n  | 'action'\n  | 'decision'\n  | 'subprocess'\n  | 'wait'\n  | 'parallel'\n  | 'merge';\n\n/**\n * Discussion Feature Type Definitions\n *\n * Provides comprehensive type safety for the discussion system that supports\n * polymorphic relationships with Projects, Milestones, Tasks, and future entities.\n */\n\n/**\n * Supported entity types for discussions\n * Extensible to support future entity types\n */\nexport type DiscussionEntityType = 'project' | 'milestone' | 'task' | string;\n\n/**\n * File attachment status states\n */\nexport type AttachmentStatus = 'pending' | 'uploaded' | 'failed';\n\n/**\n * Mention extracted from discussion content\n * Represents an @mention of a user or agent\n */\nexport interface DiscussionMention {\n  /** Type of entity mentioned */\n  type: 'agent' | 'user' | 'team';\n  /** The @handle used in content (e.g., \"engineering-manager-backend\") */\n  identifier: string;\n  /** Resolved TeamMember ID if applicable */\n  teamMemberId?: string;\n  /** Resolved User ID for human users */\n  userId?: string;\n  /** Character position in content where mention starts */\n  position: number;\n}\n\n/**\n * Main discussion model interface\n * Follows existing collection patterns with UTC date strings\n */\nexport interface DiscussionModel {\n  // Base fields (following existing collection patterns)\n  id: string;\n  orgId: string;\n  workspaceId: string;\n  userId: string;\n  createdAt: string; // UTC ISO string following existing pattern\n  updatedAt: string; // UTC ISO string following existing pattern\n\n  // Polymorphic relationship fields\n  entityType: DiscussionEntityType;\n  entityId: string;\n\n  // Content fields\n  content: string; // Markdown text content\n  contentHtml?: string; // Optional cached HTML for performance optimization\n\n  // Threading fields\n  parentId?: string; // Reference to parent discussion for replies\n  threadDepth: number; // 0 for root discussions, increments for nested replies\n\n  // Metadata fields\n  isEdited: boolean;\n  editedAt?: string; // UTC ISO string when last edited\n  isDeleted: boolean;\n  deletedAt?: string; // UTC ISO string when soft deleted\n\n  // File attachments\n  attachments?: AttachmentModel[];\n\n  // User information (denormalized for performance)\n  userName: string;\n  userAvatar?: string;\n\n  /** Parsed @mentions from content */\n  mentions?: DiscussionMention[];\n\n  /** Emoji reaction tallies, keyed by emoji string (e.g. { \"👍\": 3 }). */\n  reactionCounts?: Record<string, number>;\n\n  // Optional fields for future extensibility\n  metadata?: Record<string, unknown>;\n\n  /** Tenant isolation identifier */\n  tenantId?: string;\n\n  /** Extensible object for future schema additions */\n  extended?: Record<string, unknown>;\n}\n\n/**\n * File attachment model interface\n * Stores metadata for files attached to discussions\n */\nexport interface AttachmentModel {\n  id: string;\n  name: string; // Original file name\n  size: number; // File size in bytes\n  type: string; // MIME type (e.g., 'image/png', 'application/pdf')\n  url: string; // Secure URL or storage reference\n  uploadedAt: string; // UTC ISO string\n  status: AttachmentStatus;\n\n  // Optional metadata\n  thumbnailUrl?: string; // For image/video previews\n  checksum?: string; // For integrity verification\n}","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaModel } from '../models/Schema'\nimport type { RecordModel } from '../models/Record'\nimport { createId, safeNanoid } from '../utils/id'\n\n/** Minimal query interface — only .exec() is used by the adapter.\n *  The REST CollectionAccessorAdapter does not support chainable\n *  .skip()/.limit()/.sort() so the VCA applies those client-side.\n *\n *  Returns `unknown[]` because RxDB documents have `.toJSON()` while\n *  REST responses are plain objects — {@link VirtualCollectionAdapter.toPlainObject}\n *  normalizes both at runtime. */\ninterface ExecutableQuery {\n  exec(): Promise<unknown[]>\n}\n\n/**\n * Structural interface for the subset of RxCollection methods used by the adapter.\n *\n * All operations are collection-level (not document-level) so the adapter\n * works with both RxDB local collections and REST client wrappers.\n */\nexport interface RecordCollection {\n  find(query: {\n    selector: Record<string, unknown>\n    sort?: Array<Record<string, string>>\n  }): ExecutableQuery\n  findOne(query: { selector: Record<string, unknown> }): {\n    exec(): Promise<Record<string, unknown> | null>\n  }\n  insert(doc: Partial<RecordModel>): Promise<Record<string, unknown>>\n  /** Update a document by ID. Returns the updated document. */\n  update(id: string, patch: Record<string, unknown>): Promise<Record<string, unknown>>\n  /** Delete a document by ID. */\n  delete(id: string): Promise<boolean>\n  /**\n   * Execute an aggregate query against the collection.\n   * Only supported by REST-backed implementations (D1 worker).\n   * RxDB local collections do not implement this method.\n   *\n   * @param spec - The AggregateRequest payload forwarded verbatim to the worker.\n   * @returns An object with a `documents` array of result rows.\n   */\n  aggregate?(spec: Record<string, unknown>): Promise<{ documents: Record<string, unknown>[] }>\n}\n\n/** Structural interface for the schemas collection used by SchemaRegistry. */\nexport interface SchemaCollection {\n  find(query: { selector: Record<string, unknown> }): {\n    exec(): Promise<Array<{ toJSON(): Record<string, unknown> }>>\n  }\n  findOne(query: { selector: Record<string, unknown> }): {\n    exec(): Promise<{ toJSON(): Record<string, unknown> } | null>\n  }\n}\n\n/**\n * Fields stored as top-level columns on RecordModel.\n * Used to distinguish between fields queried/sorted at root level\n * vs those that go into the `data` bag.\n *\n * This set must exactly match the properties declared in the RecordModel\n * interface (packages/db-collections/src/models/Record.ts). When a new\n * column is added to RecordModel / the Drizzle schema, add it here too.\n *\n * Why explicit enumeration rather than deriving from Record.schema.properties\n * at runtime: VCA is instantiated in contexts (browser, REST, test) where\n * importing the Record model would create a circular dependency or require\n * a live RxDB collection reference that is not available at construction\n * time. A compile-time constant is simpler and easier to audit.\n */\nconst TOP_LEVEL_FIELDS = new Set([\n  'id',\n  'schemaId',\n  'orgId',\n  'workspaceId',\n  'userId',\n  'createdAt',\n  'updatedAt',\n  'metadata',\n  'extended',\n  'title',\n  'status',\n  'parentId',\n  'parentCollection',\n  'data',\n  'archived',\n  'completed',\n  'completedAt',\n  'startedAt',\n  'sortOrder',\n  'assigneeId',\n  'priority',\n  'dueAt',\n  'amount',\n  'version',\n  'tenantId',\n])\n\n/**\n * Immutable fields that callers must never overwrite on an existing document.\n * These are silently dropped from update() and upsert() patch payloads.\n */\nconst IMMUTABLE_FIELDS = new Set([\n  'id',\n  'schemaId',\n  'orgId',\n  'workspaceId',\n  'userId',\n  'createdAt',\n])\n\n/**\n * Wraps the generic `records` RxCollection and scopes all operations\n * to a specific schemaId. Provides the same CRUD interface that consumers\n * expect from a dedicated collection.\n */\nexport class VirtualCollectionAdapter {\n  constructor(\n    private recordsCollection: RecordCollection,\n    private schemaDefinition: SchemaModel\n  ) {}\n\n  /**\n   * Safely extract a plain object from an RxDB document or REST response.\n   * RxDB documents have `.toJSON()`, REST clients return plain objects.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  private toPlainObject(doc: any): Record<string, unknown> {\n    return (typeof doc.toJSON === 'function' ? doc.toJSON() : doc) as Record<string, unknown>\n  }\n\n  get name(): string {\n    return this.schemaDefinition.name\n  }\n\n  get schemaId(): string {\n    return this.schemaDefinition.id\n  }\n\n  /**\n   * Map a flat document (as callers provide) into the RecordModel storage format.\n   *\n   * Any field present in TOP_LEVEL_FIELDS is written directly to the record\n   * object. Everything else is packed into the `data` bag.\n   *\n   * Using TOP_LEVEL_FIELDS as the single source of truth means that schema\n   * columns added to RecordModel (e.g. `extended`, `sortOrder`, `priority`)\n   * are automatically promoted without needing a matching change here.\n   */\n  mapToRecord(flatDoc: Record<string, unknown>): Partial<RecordModel> {\n    const record: Partial<RecordModel> = {\n      schemaId: this.schemaDefinition.id,\n      archived: false,\n    }\n\n    const data: Record<string, unknown> = {}\n\n    for (const [key, value] of Object.entries(flatDoc)) {\n      if (TOP_LEVEL_FIELDS.has(key)) {\n        // Promote to a real RecordModel column. The schemaId injected above\n        // takes precedence — callers must not pass a different schemaId.\n        if (key !== 'schemaId') {\n          ;(record as Record<string, unknown>)[key] = value\n        }\n      } else {\n        data[key] = value\n      }\n    }\n\n    // `title` and `archived` must always be present (required by the schema).\n    if (record.title === undefined) record.title = ''\n    record.data = data\n    return record\n  }\n\n  /**\n   * Map a RecordModel back to a flat document (as callers expect).\n   * Merges `data` fields to top level alongside standard fields.\n   */\n  mapFromRecord(record: RecordModel): Record<string, unknown> {\n    // Destructure to exclude RxDB internals and schemaId from the flat output\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const { data, schemaId, _rev, _meta, _deleted, _attachments, ...rest } =\n      record as unknown as Record<string, unknown>\n    return {\n      ...rest,\n      ...((data as Record<string, unknown>) ?? {}),\n    }\n  }\n\n  /**\n   * Rewrite a selector to scope it to this schema.\n   * Only includes top-level RecordModel fields that RxDB can query directly.\n   * Data-bag fields are omitted — use {@link extractDataFilter} to get them\n   * for client-side filtering after the query returns.\n   */\n  rewriteSelector(selector: Record<string, unknown>, isNested = false): Record<string, unknown> {\n    // Only inject schemaId at the top level. Nested sub-selectors (inside\n    // $and/$or) inherit the top-level constraint and must not duplicate it.\n    const rewritten: Record<string, unknown> = isNested\n      ? {}\n      : { schemaId: this.schemaDefinition.id }\n\n    for (const [key, value] of Object.entries(selector)) {\n      if (key.startsWith('$')) {\n        if (Array.isArray(value)) {\n          const items = value\n            .map((item: Record<string, unknown>) =>\n              typeof item === 'object' ? this.rewriteSelector(item, true) : item\n            )\n            .filter(\n              (item: unknown) =>\n                typeof item !== 'object' || Object.keys(item as Record<string, unknown>).length > 0\n            )\n          if (items.length > 0) {\n            rewritten[key] = items\n          }\n        } else {\n          rewritten[key] = value\n        }\n      } else if (TOP_LEVEL_FIELDS.has(key)) {\n        rewritten[key] = value\n      }\n      // Data-bag fields are intentionally omitted from the RxDB query.\n      // RxDB cannot query into the generic `data` object. Use\n      // extractDataFilter() + matchesDataFilter() for client-side filtering.\n    }\n\n    return rewritten\n  }\n\n  /**\n   * Extract data-bag field conditions from a selector for client-side filtering.\n   * Returns field conditions that are NOT top-level RecordModel fields and NOT\n   * logical operators ($and/$or).\n   *\n   * Note: data-bag fields inside $and/$or are not extracted — they are silently\n   * dropped from the RxDB query. For complex logical queries on data-bag fields,\n   * fetch all records for the schema and filter entirely client-side.\n   */\n  extractDataFilter(selector: Record<string, unknown>): Record<string, unknown> {\n    const filter: Record<string, unknown> = {}\n    for (const [key, value] of Object.entries(selector)) {\n      if (!key.startsWith('$') && !TOP_LEVEL_FIELDS.has(key)) {\n        filter[key] = value\n      }\n    }\n    return filter\n  }\n\n  /**\n   * Rewrite sort criteria, keeping only top-level RecordModel fields.\n   * Data-bag field sorts are omitted — use {@link extractClientSort} to get\n   * them for client-side sorting.\n   */\n  rewriteSort(sort: Array<Record<string, string>>): Array<Record<string, string>> {\n    return sort\n      .map(sortItem => {\n        if (typeof sortItem !== 'object' || sortItem === null || Array.isArray(sortItem)) {\n          return {}\n        }\n        const rewritten: Record<string, string> = {}\n        for (const [field, direction] of Object.entries(sortItem)) {\n          if (TOP_LEVEL_FIELDS.has(field)) {\n            rewritten[field] = direction\n          }\n        }\n        return rewritten\n      })\n      .filter(item => Object.keys(item).length > 0)\n  }\n\n  /**\n   * Extract data-bag field sorts for client-side sorting.\n   */\n  extractClientSort(sort: Array<Record<string, string>>): Array<Record<string, string>> {\n    return sort\n      .map(sortItem => {\n        const clientSort: Record<string, string> = {}\n        for (const [field, direction] of Object.entries(sortItem)) {\n          if (!TOP_LEVEL_FIELDS.has(field)) {\n            clientSort[field] = direction\n          }\n        }\n        return clientSort\n      })\n      .filter(item => Object.keys(item).length > 0)\n  }\n\n  /**\n   * Test whether a flat (mapped) document matches data-bag filter conditions.\n   * Supports direct equality and common MongoDB-style operators.\n   */\n  static matchesDataFilter(doc: Record<string, unknown>, filter: Record<string, unknown>): boolean {\n    for (const [key, condition] of Object.entries(filter)) {\n      const value = doc[key]\n      if (typeof condition === 'object' && condition !== null && !Array.isArray(condition)) {\n        const ops = condition as Record<string, unknown>\n        for (const [op, expected] of Object.entries(ops)) {\n          switch (op) {\n            case '$eq':\n              if (value !== expected) return false\n              break\n            case '$ne':\n              if (value === expected) return false\n              break\n            case '$gt':\n              if (!((value as number) > (expected as number))) return false\n              break\n            case '$gte':\n              if (!((value as number) >= (expected as number))) return false\n              break\n            case '$lt':\n              if (!((value as number) < (expected as number))) return false\n              break\n            case '$lte':\n              if (!((value as number) <= (expected as number))) return false\n              break\n            case '$in':\n              if (!Array.isArray(expected) || !expected.includes(value)) return false\n              break\n            case '$nin':\n              if (Array.isArray(expected) && expected.includes(value)) return false\n              break\n            case '$exists':\n              if (expected ? value === undefined : value !== undefined) return false\n              break\n            default:\n              break\n          }\n        }\n      } else {\n        // Direct equality: { isAgent: true }\n        if (value !== condition) return false\n      }\n    }\n    return true\n  }\n\n  /**\n   * Sort flat (mapped) documents by data-bag field criteria client-side.\n   */\n  static applyClientSort<T extends Record<string, unknown>>(\n    docs: T[],\n    sort: Array<Record<string, string>>\n  ): T[] {\n    if (sort.length === 0) return docs\n    return [...docs].sort((a, b) => {\n      for (const sortItem of sort) {\n        for (const [field, direction] of Object.entries(sortItem)) {\n          const aVal = a[field]\n          const bVal = b[field]\n          let cmp: number\n          if (typeof aVal === 'number' && typeof bVal === 'number') {\n            cmp = aVal - bVal\n          } else {\n            cmp = String(aVal ?? '').localeCompare(String(bVal ?? ''))\n          }\n          if (cmp !== 0) return direction === 'desc' ? -cmp : cmp\n        }\n      }\n      return 0\n    })\n  }\n\n  /** Query records scoped to this schema */\n  async find(\n    options: {\n      selector?: Record<string, unknown>\n      limit?: number\n      skip?: number\n      sort?: Array<Record<string, string>>\n    } = {}\n  ): Promise<Record<string, unknown>[]> {\n    const { selector = {}, limit, skip, sort } = options\n\n    const dataFilter = this.extractDataFilter(selector)\n    const hasDataFilter = Object.keys(dataFilter).length > 0\n\n    // Only pass selector to the DB query. Sort, skip, and limit are applied\n    // client-side for consistent behavior across RxDB and REST transports\n    // (the REST CollectionAccessorAdapter ignores sort/skip/limit in queries).\n    const query = this.recordsCollection.find({\n      selector: this.rewriteSelector(selector),\n    })\n    const docs = await query.exec()\n    let results = docs.map((doc: unknown) =>\n      this.mapFromRecord(this.toPlainObject(doc) as unknown as RecordModel)\n    )\n\n    if (hasDataFilter) {\n      results = results.filter(doc => VirtualCollectionAdapter.matchesDataFilter(doc, dataFilter))\n    }\n\n    // Apply full sort client-side — works on flat (mapped) documents where\n    // both top-level and data-bag fields are accessible at the top level.\n    if (sort && sort.length > 0) {\n      results = VirtualCollectionAdapter.applyClientSort(results, sort)\n    }\n\n    if (skip) results = results.slice(skip)\n    if (limit) results = results.slice(0, limit)\n\n    return results\n  }\n\n  /** Get a single record by ID */\n  async findOne(id: string): Promise<Record<string, unknown> | null> {\n    const doc = await this.recordsCollection\n      .findOne({\n        selector: { id, schemaId: this.schemaDefinition.id },\n      })\n      .exec()\n\n    return doc ? this.mapFromRecord(this.toPlainObject(doc) as unknown as RecordModel) : null\n  }\n\n  /**\n   * Generate an ID for a new record using the schema-declared prefix.\n   * Resolution order:\n   * 1. `metadata.idPrefix` from the schema definition (e.g. 'deal')\n   * 2. `createId(schemaName)` via ENTITY_TO_PREFIX lookup\n   * 3. `createId('records')` as last resort\n   */\n  private generateId(): string {\n    const meta = this.schemaDefinition.metadata as Record<string, unknown> | undefined\n    if (typeof meta?.idPrefix === 'string' && meta.idPrefix.length > 0) {\n      return `${meta.idPrefix}_${safeNanoid(10)}`\n    }\n    try {\n      return createId(this.schemaDefinition.name)\n    } catch {\n      return createId('records')\n    }\n  }\n\n  /** Insert a new record */\n  async insert(flatDoc: Record<string, unknown>): Promise<Record<string, unknown>> {\n    const id = (flatDoc.id as string) || this.generateId()\n    const docWithId = { ...flatDoc, id }\n    const record = this.mapToRecord(docWithId)\n\n    // Ensure required fields are present on the record object.\n    // mapToRecord propagates id via the contextFields loop, but we set it\n    // explicitly as a safeguard against any propagation issue.\n    if (!record.id) record.id = id\n    const now = new Date().toISOString()\n    if (!record.createdAt) record.createdAt = now\n    if (!record.updatedAt) record.updatedAt = now\n\n    // The Record schema marks `status`, `parentId`, `assigneeId`, and\n    // `workspaceId` as required (they're indexed for project/task-shaped\n    // queries). Connector-pulled rows and most simple virtual collections\n    // have no semantic counterpart for these fields. Default to empty\n    // strings so the records-table schema validates without forcing every\n    // virtual-collection caller to construct a project shape they don't\n    // need. Empty strings are valid per the schema's `type: 'string'`\n    // declaration; indexes treat them as standard tokens.\n    const r = record as Record<string, unknown>\n    if (r.status === undefined) r.status = ''\n    if (r.parentId === undefined) r.parentId = ''\n    if (r.assigneeId === undefined) r.assigneeId = ''\n    if (r.workspaceId === undefined) r.workspaceId = ''\n\n    const doc = await this.recordsCollection.insert(record)\n    return this.mapFromRecord(this.toPlainObject(doc) as unknown as RecordModel)\n  }\n\n  /**\n   * Update a record by ID with partial data.\n   *\n   * **Merge semantics:** Existing `data` fields are preserved; only provided\n   * fields are overwritten. Setting a field to `null` stores `null` but does\n   * NOT delete the key. To remove a field, callers should use a dedicated\n   * delete-field operation (not yet implemented).\n   *\n   * **Immutable fields:** `id`, `schemaId`, `orgId`, `workspaceId`, `userId`,\n   * and `createdAt` are silently dropped from updates.\n   *\n   * **Column routing:** Fields present in TOP_LEVEL_FIELDS are written to\n   * real RecordModel columns. Any field NOT in TOP_LEVEL_FIELDS and NOT\n   * immutable is packed into the `data` extension blob. The `data` key is\n   * only written when there are extension-only fields — callers that update\n   * only real columns do not cause an unintentional `data: {}` overwrite.\n   *\n   * Previously this method maintained a second, shorter hardcoded set of\n   * \"top-level\" fields that excluded RecordModel columns added after the\n   * initial implementation (`extended`, `sortOrder`, `priority`, `dueAt`,\n   * `amount`, `tenantId`). Those columns were silently routed to the `data`\n   * blob, leaving the real DB column NULL. The fix is to use the shared\n   * TOP_LEVEL_FIELDS constant which is kept in sync with RecordModel.\n   */\n  async update(\n    id: string,\n    updates: Record<string, unknown>\n  ): Promise<Record<string, unknown> | null> {\n    const doc = await this.recordsCollection\n      .findOne({\n        selector: { id, schemaId: this.schemaDefinition.id },\n      })\n      .exec()\n\n    if (!doc) return null\n\n    const existing = this.toPlainObject(doc) as unknown as RecordModel\n    const patch: Record<string, unknown> = {}\n    // Seed dataUpdates from the existing data blob so that extension fields\n    // that are NOT being changed in this update are preserved.\n    const dataUpdates: Record<string, unknown> = { ...(existing.data ?? {}) }\n    let hasDataUpdates = Object.keys(dataUpdates).length > 0\n\n    for (const [key, value] of Object.entries(updates)) {\n      if (IMMUTABLE_FIELDS.has(key)) {\n        // Silently drop — callers must not mutate identity/ownership fields.\n        continue\n      }\n      if (TOP_LEVEL_FIELDS.has(key)) {\n        // Route to a real RecordModel column.\n        patch[key] = value\n      } else {\n        // True extension field — pack into the data blob.\n        dataUpdates[key] = value\n        hasDataUpdates = true\n      }\n    }\n\n    // Only write the data blob when there are extension fields to persist.\n    // Omitting the key entirely avoids clobbering the existing data object\n    // with an empty {} on updates that only touch real columns.\n    if (hasDataUpdates) {\n      patch.data = dataUpdates\n    }\n\n    const updated = await this.recordsCollection.update(id, patch)\n    return this.mapFromRecord(this.toPlainObject(updated) as unknown as RecordModel)\n  }\n\n  /**\n   * Insert or update a record, handling cross-schema conflicts.\n   *\n   * Checks for existing documents proactively before insert to handle\n   * cross-org/cross-schema scenarios where the same external ID exists\n   * under a different schemaId/orgId. Falls back to CONFLICT catch for\n   * race conditions.\n   *\n   * Use this for sync workflows where the same external ID may have been\n   * previously imported under a different org or schema context.\n   */\n  async upsert(flatDoc: Record<string, unknown>): Promise<Record<string, unknown>> {\n    const id = flatDoc.id as string\n\n    // Fast path: record already belongs to this schema — update it\n    const existing = await this.recordsCollection\n      .findOne({ selector: { id, schemaId: this.schemaDefinition.id } })\n      .exec()\n\n    if (existing) {\n      const plain = this.toPlainObject(existing) as unknown as RecordModel\n      const record = this.mapToRecord(flatDoc)\n      // Merge data fields (preserve existing, overwrite with new)\n      const mergedData = { ...(plain.data ?? {}), ...(record.data ?? {}) }\n      const patch: Record<string, unknown> = { ...record, data: mergedData }\n      delete (patch as Record<string, unknown>).id // id is immutable primary key\n      const updated = await this.recordsCollection.update(id, patch)\n      return this.mapFromRecord(this.toPlainObject(updated) as unknown as RecordModel)\n    }\n\n    // Check if document exists under ANY schema (cross-org reclaim)\n    const anyExisting = await this.recordsCollection.findOne({ selector: { id } }).exec()\n\n    if (anyExisting) {\n      // Reclaim: overwrite with this adapter's schema and the caller's org context\n      const record = this.mapToRecord(flatDoc)\n      const fullPatch: Record<string, unknown> = { ...record }\n      delete (fullPatch as Record<string, unknown>).id\n      const updated = await this.recordsCollection.update(id, fullPatch)\n      return this.mapFromRecord(this.toPlainObject(updated) as unknown as RecordModel)\n    }\n\n    // New document — insert\n    try {\n      const record = this.mapToRecord(flatDoc)\n      const doc = await this.recordsCollection.insert(record)\n      return this.mapFromRecord(this.toPlainObject(doc) as unknown as RecordModel)\n    } catch (error: unknown) {\n      // Race condition fallback: document appeared between findOne and insert\n      const msg = error instanceof Error ? error.message : String(error)\n      if (msg.includes('CONFLICT') || msg.includes('conflict') || msg.includes('409')) {\n        const record = this.mapToRecord(flatDoc)\n        const fullPatch: Record<string, unknown> = { ...record }\n        delete (fullPatch as Record<string, unknown>).id\n        const updated = await this.recordsCollection.update(id, fullPatch)\n        return this.mapFromRecord(this.toPlainObject(updated) as unknown as RecordModel)\n      }\n      throw error\n    }\n  }\n\n  /** Delete a record by ID */\n  async remove(id: string): Promise<boolean> {\n    // Verify document belongs to this schema before deleting\n    const doc = await this.recordsCollection\n      .findOne({\n        selector: { id, schemaId: this.schemaDefinition.id },\n      })\n      .exec()\n\n    if (!doc) return false\n    return this.recordsCollection.delete(id)\n  }\n\n  /** Count records matching a selector */\n  async count(selector: Record<string, unknown> = {}): Promise<number> {\n    // Always count client-side via find() — the REST\n    // CollectionAccessorAdapter does not implement .count().\n    const docs = await this.find({ selector })\n    return docs.length\n  }\n\n  /**\n   * Execute an aggregate (GROUP BY / HAVING) query.\n   *\n   * Delegates directly to the underlying `RecordCollection.aggregate()`.\n   * Only REST-backed collections (D1 worker) implement this method —\n   * local RxDB collections do not support server-side aggregation.\n   *\n   * @param spec - Aggregate request spec forwarded verbatim to the worker.\n   * @throws Error if the underlying collection does not support aggregate.\n   */\n  async aggregate(spec: Record<string, unknown>): Promise<{ documents: Record<string, unknown>[] }> {\n    if (typeof this.recordsCollection.aggregate !== 'function') {\n      throw new Error(\n        `aggregate is not supported by the underlying collection for schema \"${this.schemaDefinition.name}\". ` +\n        'Only REST-backed (D1) collections support server-side aggregation.'\n      )\n    }\n    // Mirror find()/findOne(): inject schemaId so the D1 worker filters to the\n    // correct VCA schema. Without this, an aggregate call on 'journallines'\n    // would operate over ALL records rows for the org, ignoring the schema boundary.\n    const selector = ((spec.selector as Record<string, unknown>) ?? {})\n    const scopedSpec: Record<string, unknown> = {\n      ...spec,\n      selector: {\n        // Spread caller selector first, then assert our schemaId so the\n        // adapter's schema boundary always takes precedence over any\n        // caller-supplied schemaId value.\n        ...selector,\n        schemaId: this.schemaDefinition.id,\n      },\n    }\n    return this.recordsCollection.aggregate(scopedSpec)\n  }\n}\n\n/**\n * Wrap a raw RxDB collection to satisfy the RecordCollection interface.\n *\n * RxDB collections have document-level update/delete (doc.patch, doc.remove)\n * but not collection-level update(id, patch) or delete(id). This wrapper\n * bridges that gap so VirtualCollectionAdapter works in both browser (RxDB)\n * and REST (CollectionAccessorAdapter) contexts.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrapRxCollection(rxCollection: any): RecordCollection {\n  return {\n    find: query => rxCollection.find(query),\n    findOne: query => rxCollection.findOne(query),\n    insert: doc => rxCollection.insert(doc),\n    update: async (id: string, patch: Record<string, unknown>) => {\n      const doc = await rxCollection.findOne({ selector: { id } }).exec()\n      if (!doc) throw new Error(`Document ${id} not found`)\n      return doc.patch(patch)\n    },\n    delete: async (id: string) => {\n      const doc = await rxCollection.findOne({ selector: { id } }).exec()\n      if (!doc) return false\n      await doc.remove()\n      return true\n    },\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaModel } from '../models/Schema'\nimport type { VirtualCollectionAdapter } from './VirtualCollectionAdapter'\nimport type {\n  KeyRing,\n  EncryptionContext,\n  KeyLookupFn,\n  FieldEncryptionConfig,\n} from '@epicdm/flowstate-crypto'\nimport { encryptFields, decryptFields } from '@epicdm/flowstate-crypto'\n\n/**\n * Parse the encryption config from a schema record.\n * Returns an empty array if no encrypted fields are configured.\n *\n * Handles both pre-parsed arrays and JSON-string storage formats,\n * since RxDB may return the value as a plain object array while\n * REST responses may return it as a JSON string.\n */\nfunction parseEncryptionConfig(schema: SchemaModel): FieldEncryptionConfig[] {\n  const raw = (schema as unknown as Record<string, unknown>).encryptedFields\n  if (!raw) return []\n  try {\n    const parsed = typeof raw === 'string' ? JSON.parse(raw) : raw\n    return Array.isArray(parsed) ? (parsed as FieldEncryptionConfig[]) : []\n  } catch {\n    return []\n  }\n}\n\n/**\n * Decorator that adds transparent field-level encryption to a {@link VirtualCollectionAdapter}.\n *\n * - On write (insert/update/upsert): encrypts configured fields before passing to VCA\n * - On read (find/findOne): decrypts encrypted field envelopes after VCA returns\n * - When KeyRing is locked: reads return `'[encrypted]'` placeholders, writes throw\n *\n * The adapter does NOT mutate the VCA — it wraps it as a pure decorator.\n *\n * @example\n * ```typescript\n * const vca = new VirtualCollectionAdapter(records, schema)\n * const adapter = new EncryptedCollectionAdapter(vca, schema, keyRing, context)\n * const doc = await adapter.insert({ name: 'Alice', ssn: '123-45-6789' })\n * // ssn is stored encrypted in VCA, returned decrypted to caller\n * ```\n */\nexport class EncryptedCollectionAdapter {\n  private readonly encryptionConfig: FieldEncryptionConfig[]\n\n  /**\n   * @param vca - The VirtualCollectionAdapter to wrap\n   * @param schema - Schema definition containing encrypted field configuration\n   * @param keyRing - The KeyRing used for encrypt/decrypt operations\n   * @param context - Encryption context (orgId, workspaceId, userId)\n   * @param lookupKey - Optional key lookup function for group key resolution\n   */\n  constructor(\n    private readonly vca: VirtualCollectionAdapter,\n    schema: SchemaModel,\n    private readonly keyRing: KeyRing,\n    private readonly context: EncryptionContext,\n    private readonly lookupKey?: KeyLookupFn\n  ) {\n    this.encryptionConfig = parseEncryptionConfig(schema)\n  }\n\n  /** Delegates to the wrapped VCA's collection name. */\n  get name(): string {\n    return this.vca.name\n  }\n\n  /** Delegates to the wrapped VCA's schema ID. */\n  get schemaId(): string {\n    return this.vca.schemaId\n  }\n\n  /**\n   * Find records matching the given selector.\n   * Encrypted fields in returned documents are decrypted transparently.\n   * Returns `'[encrypted]'` placeholder strings when the KeyRing is locked.\n   */\n  async find(\n    options: {\n      selector?: Record<string, unknown>\n      limit?: number\n      skip?: number\n      sort?: Array<Record<string, string>>\n    } = {}\n  ): Promise<Record<string, unknown>[]> {\n    const results = await this.vca.find(options)\n    return Promise.all(results.map(doc => decryptFields(doc, this.keyRing)))\n  }\n\n  /**\n   * Find a single record by ID.\n   * Encrypted fields in the returned document are decrypted transparently.\n   * Returns `null` if no record is found.\n   */\n  async findOne(id: string): Promise<Record<string, unknown> | null> {\n    const doc = await this.vca.findOne(id)\n    if (!doc) return null\n    return decryptFields(doc, this.keyRing)\n  }\n\n  /**\n   * Insert a new record, encrypting configured fields before storage.\n   *\n   * @throws When the KeyRing is locked and there are fields to encrypt\n   */\n  async insert(flatDoc: Record<string, unknown>): Promise<Record<string, unknown>> {\n    const encrypted = await encryptFields(\n      flatDoc,\n      this.encryptionConfig,\n      this.keyRing,\n      this.context,\n      this.lookupKey\n    )\n    const result = await this.vca.insert(encrypted)\n    return decryptFields(result, this.keyRing)\n  }\n\n  /**\n   * Update an existing record by ID, encrypting any configured fields in the patch.\n   * Returns the updated document with encrypted fields decrypted, or `null` if not found.\n   *\n   * @throws When the KeyRing is locked and the patch contains fields to encrypt\n   */\n  async update(\n    id: string,\n    updates: Record<string, unknown>\n  ): Promise<Record<string, unknown> | null> {\n    const encrypted = await encryptFields(\n      updates,\n      this.encryptionConfig,\n      this.keyRing,\n      this.context,\n      this.lookupKey\n    )\n    const result = await this.vca.update(id, encrypted)\n    if (!result) return null\n    return decryptFields(result, this.keyRing)\n  }\n\n  /**\n   * Remove a record by ID. Delegates directly to VCA — no encryption needed for deletes.\n   * Returns `true` if the record was found and removed, `false` otherwise.\n   */\n  async remove(id: string): Promise<boolean> {\n    return this.vca.remove(id)\n  }\n\n  /**\n   * Upsert a record, encrypting configured fields before storage.\n   * Inserts if no record with the given ID exists, updates otherwise.\n   *\n   * @throws When the KeyRing is locked and there are fields to encrypt\n   */\n  async upsert(flatDoc: Record<string, unknown>): Promise<Record<string, unknown>> {\n    const encrypted = await encryptFields(\n      flatDoc,\n      this.encryptionConfig,\n      this.keyRing,\n      this.context,\n      this.lookupKey\n    )\n    const result = await this.vca.upsert(encrypted)\n    return decryptFields(result, this.keyRing)\n  }\n}\n\n/**\n * Derive the encryptedFields config from a schema's field definitions.\n * Called by schema save handlers to keep the encryptedFields column in sync.\n *\n * @param fields - Array of field definitions from the schema\n * @returns Array of encrypted field configurations containing fieldName and encryptionScope\n *\n * @example\n * ```typescript\n * const encryptedFields = deriveEncryptedFieldsConfig(schema.fields)\n * // [{ fieldName: 'ssn', encryptionScope: 'owner' }]\n * ```\n */\nexport function deriveEncryptedFieldsConfig(\n  fields: Array<{ name: string; config?: { encrypted?: boolean; encryptionScope?: string } }>\n): Array<{ fieldName: string; encryptionScope: string }> {\n  return fields\n    .filter(f => f.config?.encrypted)\n    .map(f => ({\n      fieldName: f.name,\n      encryptionScope: f.config?.encryptionScope ?? 'owner',\n    }))\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaModel } from '../models/Schema'\nimport { VirtualCollectionAdapter } from './VirtualCollectionAdapter'\nimport type { RecordCollection, SchemaCollection } from './VirtualCollectionAdapter'\nimport { EncryptedCollectionAdapter } from './EncryptedCollectionAdapter'\nimport type { KeyRing, EncryptionContext, KeyLookupFn } from '@epicdm/flowstate-crypto'\n\n/**\n * Manages schema definitions and provides VirtualCollectionAdapters.\n * Central routing point for the schema-in-db system.\n *\n * When encryption is configured via {@link setEncryptionContext}, callers\n * can use {@link getEncryptedAdapter} / {@link getEncryptedAdapterLazy}\n * to get adapters that transparently encrypt/decrypt fields.\n * The base {@link getAdapter} / {@link getAdapterLazy} always return\n * plain VCA instances for callers that need VCA-specific internals\n * (reactive queries, selector rewriting, etc.).\n */\n/**\n * Per-(user, org) encryption configuration. Stored in a Map keyed by\n * `${userId}:${orgId}` so a single registry instance can serve many\n * unlocked sessions concurrently — multi-org service accounts and\n * users with concurrent unlocked sessions in different orgs each get\n * their own keyRing/context/lookupKey without overwriting one\n * another. Surfaced during Phase 8 acceptance: a singleton\n * encryption context here meant that unlocking org B silently\n * overwrote org A's crypto for every encrypted CRUD call, even\n * after vault-state itself was correctly per-(user, org).\n */\ninterface EncryptionEntry {\n  keyRing: KeyRing\n  context: EncryptionContext\n  lookupKey?: KeyLookupFn\n}\n\nfunction encryptionContextKey(userId: string, orgId: string): string {\n  if (!userId) throw new Error('SchemaRegistry: userId is required for encryption context')\n  if (!orgId) throw new Error('SchemaRegistry: orgId is required for encryption context')\n  return `${userId}:${orgId}`\n}\n\nfunction encryptedAdapterCacheKey(userId: string, orgId: string, name: string): string {\n  return `${userId}:${orgId}:${name}`\n}\n\nexport class SchemaRegistry {\n  private schemas = new Map<string, SchemaModel>()\n  private adapterCache = new Map<string, VirtualCollectionAdapter>()\n  /**\n   * Encrypted-adapter cache keyed by `${userId}:${orgId}:${name}` so\n   * adapters created under one org's keyRing are NOT served to\n   * another org's request. The plain (`adapterCache` above) is org-\n   * agnostic because the underlying VCA reads the records table\n   * directly with no encryption involved.\n   */\n  private encryptedAdapterCache = new Map<string, EncryptedCollectionAdapter>()\n\n  /**\n   * Per-(user, org) encryption entries. Set via\n   * `setEncryptionContext(userId, orgId, ...)` after a successful\n   * vault-unlock; cleared via `clearEncryptionContext(userId, orgId)`\n   * on vault-lock or session end. Concurrent unlocked sessions in\n   * different orgs each have their own entry.\n   */\n  private encryptionContexts = new Map<string, EncryptionEntry>()\n\n  constructor(\n    private schemasCollection: SchemaCollection | null,\n    private recordsCollection: RecordCollection | null\n  ) {}\n\n  /**\n   * Load all schema definitions for an org from the database.\n   * Uses query-then-swap: existing cache is preserved if the DB query fails.\n   *\n   * @param orgId - The organization ID to filter schemas by\n   */\n  async loadSchemas(orgId: string): Promise<void> {\n    if (!this.schemasCollection) return\n    const docs = await this.schemasCollection\n      .find({\n        selector: { orgId, archived: false },\n      })\n      .exec()\n\n    // Query succeeded — build new maps, then swap atomically\n    const newSchemas = new Map<string, SchemaModel>()\n    for (const doc of docs) {\n      const schema = SchemaRegistry.docToSchema(doc)\n      newSchemas.set(schema.name, schema)\n    }\n    if (this.schemas.size > 0 && newSchemas.size === 0) {\n      console.warn(\n        `[SchemaRegistry] loadSchemas returned 0 results but cache had ${this.schemas.size} schema(s) — replacing anyway`\n      )\n    }\n    this.schemas = newSchemas\n    this.adapterCache = new Map()\n    this.encryptedAdapterCache = new Map()\n  }\n\n  /**\n   * Load all non-archived schema definitions across all orgs.\n   * Uses query-then-swap: existing cache is preserved if the DB query fails.\n   */\n  async loadAllSchemas(): Promise<void> {\n    if (!this.schemasCollection) return\n    const docs = await this.schemasCollection\n      .find({\n        selector: { archived: false },\n      })\n      .exec()\n\n    const newSchemas = new Map<string, SchemaModel>()\n    for (const doc of docs) {\n      const schema = SchemaRegistry.docToSchema(doc)\n      newSchemas.set(schema.name, schema)\n    }\n    if (this.schemas.size > 0 && newSchemas.size === 0) {\n      console.warn(\n        `[SchemaRegistry] loadAllSchemas returned 0 results but cache had ${this.schemas.size} schema(s) — replacing anyway`\n      )\n    }\n    this.schemas = newSchemas\n    this.adapterCache = new Map()\n    this.encryptedAdapterCache = new Map()\n  }\n\n  /**\n   * Lazy single-schema resolution with DB fallback.\n   * Checks the in-memory cache first; on miss, queries the DB and caches the result.\n   *\n   * @param name - Schema name\n   * @param orgId - Organization ID for the DB query\n   * @returns The schema if found, undefined otherwise\n   */\n  async getSchemaLazy(name: string, orgId: string): Promise<SchemaModel | undefined> {\n    const cached = this.schemas.get(name)\n    if (cached) return cached\n\n    if (!this.schemasCollection) return undefined\n\n    const doc = await this.schemasCollection\n      .findOne({ selector: { name, orgId, archived: false } })\n      .exec()\n\n    if (!doc) return undefined\n\n    const schema = SchemaRegistry.docToSchema(doc)\n    this.schemas.set(schema.name, schema)\n    return schema\n  }\n\n  /**\n   * Lazy adapter resolution with DB fallback.\n   * Checks adapter cache, then schema cache, then falls back to DB query.\n   *\n   * @param name - Schema/virtual collection name\n   * @param orgId - Organization ID for the DB query\n   * @returns A VirtualCollectionAdapter if the schema targets 'records', undefined otherwise\n   */\n  async getAdapterLazy(name: string, orgId: string): Promise<VirtualCollectionAdapter | undefined> {\n    const cached = this.adapterCache.get(name)\n    if (cached) return cached\n\n    const schema = this.schemas.get(name) ?? await this.getSchemaLazy(name, orgId)\n    if (!schema || schema.target !== 'records') return undefined\n    if (!this.recordsCollection) return undefined\n\n    const adapter = new VirtualCollectionAdapter(this.recordsCollection, schema)\n    this.adapterCache.set(name, adapter)\n    return adapter\n  }\n\n  /**\n   * Lazy encrypted adapter resolution with DB fallback.\n   * Returns an {@link EncryptedCollectionAdapter} when a KeyRing is configured,\n   * otherwise returns a plain {@link VirtualCollectionAdapter}.\n   *\n   * Use this when you need transparent field-level encryption on CRUD operations.\n   * Use {@link getAdapterLazy} when you need VCA-specific internals (reactive queries,\n   * selector rewriting, etc.).\n   *\n   * @param name - Schema/virtual collection name\n   * @param orgId - Organization ID for the DB query\n   */\n  async getEncryptedAdapterLazy(\n    name: string,\n    userId: string,\n    orgId: string\n  ): Promise<VirtualCollectionAdapter | EncryptedCollectionAdapter | undefined> {\n    const cacheKey = encryptedAdapterCacheKey(userId, orgId, name)\n    const cached = this.encryptedAdapterCache.get(cacheKey)\n    if (cached) return cached\n\n    const vca = await this.getAdapterLazy(name, orgId)\n    if (!vca) return undefined\n\n    return this.wrapWithEncryption(userId, orgId, name, vca)\n  }\n\n  /** Register a schema directly (for seed/testing without DB) */\n  registerSchema(schema: SchemaModel): void {\n    this.schemas.set(schema.name, schema)\n    this.adapterCache.delete(schema.name)\n    this.encryptedAdapterCache.delete(schema.name)\n  }\n\n  /** Check if a name matches a registered schema */\n  hasSchema(name: string): boolean {\n    return this.schemas.has(name)\n  }\n\n  /** Get the schema definition by name */\n  getSchema(name: string): SchemaModel | undefined {\n    return this.schemas.get(name)\n  }\n\n  /** Get all registered schema names */\n  getSchemaNames(): string[] {\n    return Array.from(this.schemas.keys()).sort()\n  }\n\n  /** Get all registered schemas */\n  getAllSchemas(): SchemaModel[] {\n    return Array.from(this.schemas.values())\n  }\n\n  /** Get or create a VirtualCollectionAdapter for a schema name */\n  getAdapter(name: string): VirtualCollectionAdapter | undefined {\n    const cached = this.adapterCache.get(name)\n    if (cached) return cached\n\n    const schema = this.schemas.get(name)\n    if (!schema || schema.target !== 'records') return undefined\n    if (!this.recordsCollection) return undefined\n\n    const adapter = new VirtualCollectionAdapter(this.recordsCollection, schema)\n    this.adapterCache.set(name, adapter)\n    return adapter\n  }\n\n  /**\n   * Get or create an encrypted adapter for a schema name.\n   * Returns an {@link EncryptedCollectionAdapter} when a KeyRing is configured,\n   * otherwise returns a plain {@link VirtualCollectionAdapter}.\n   *\n   * Use this when you need transparent field-level encryption on CRUD operations.\n   * Use {@link getAdapter} when you need VCA-specific internals (reactive queries,\n   * selector rewriting, etc.).\n   */\n  getEncryptedAdapter(\n    name: string,\n    userId: string,\n    orgId: string\n  ): VirtualCollectionAdapter | EncryptedCollectionAdapter | undefined {\n    const cacheKey = encryptedAdapterCacheKey(userId, orgId, name)\n    const cached = this.encryptedAdapterCache.get(cacheKey)\n    if (cached) return cached\n\n    const vca = this.getAdapter(name)\n    if (!vca) return undefined\n\n    return this.wrapWithEncryption(userId, orgId, name, vca)\n  }\n\n  /** Get schemas that overlay a primitive collection */\n  getOverlays(primitiveCollection: string): SchemaModel[] {\n    return Array.from(this.schemas.values()).filter(s => s.target === primitiveCollection)\n  }\n\n  /** Clear all cached state */\n  clear(): void {\n    this.schemas.clear()\n    this.adapterCache.clear()\n    this.encryptedAdapterCache.clear()\n    this.encryptionContexts.clear()\n  }\n\n  /**\n   * Configure field-level encryption for the (user, org) session.\n   *\n   * Multi-org callers (service accounts spanning orgs, users with\n   * concurrent vault-unlocks in different orgs) each get their own\n   * encryption entry. Setting context for (userA, orgB) does NOT\n   * disturb (userA, orgA) — earlier sessions stay unlocked.\n   *\n   * Invalidates only the (userId, orgId)-scoped slice of the\n   * encrypted-adapter cache so other unlocked sessions keep their\n   * cached encrypted adapters.\n   *\n   * @param userId  - Caller's verified userId (from JWT sub/userId claim)\n   * @param orgId   - Caller's verified orgId (from JWT orgId claim)\n   * @param keyRing - The KeyRing used for encrypt/decrypt operations\n   * @param context - Encryption context (orgId, workspaceId, userId)\n   * @param lookupKey - Optional key lookup function for group key resolution\n   */\n  setEncryptionContext(\n    userId: string,\n    orgId: string,\n    keyRing: KeyRing,\n    context: EncryptionContext,\n    lookupKey?: KeyLookupFn\n  ): void {\n    const ctxKey = encryptionContextKey(userId, orgId)\n    const entry: EncryptionEntry = lookupKey\n      ? { keyRing, context, lookupKey }\n      : { keyRing, context }\n    this.encryptionContexts.set(ctxKey, entry)\n    // Invalidate only this session's encrypted-adapter cache so a\n    // pending re-lock followed by a fresh unlock rebuilds adapters\n    // against the new keyRing — other (user, org) sessions keep\n    // their cached adapters.\n    const prefix = `${ctxKey}:`\n    for (const cacheKey of this.encryptedAdapterCache.keys()) {\n      if (cacheKey.startsWith(prefix)) this.encryptedAdapterCache.delete(cacheKey)\n    }\n  }\n\n  /**\n   * Clear the (user, org) encryption entry — encrypted adapters for\n   * THIS session resolve to plain VCA again. Other unlocked\n   * sessions are unaffected.\n   */\n  clearEncryptionContext(userId: string, orgId: string): void {\n    const ctxKey = encryptionContextKey(userId, orgId)\n    this.encryptionContexts.delete(ctxKey)\n    const prefix = `${ctxKey}:`\n    for (const cacheKey of this.encryptedAdapterCache.keys()) {\n      if (cacheKey.startsWith(prefix)) this.encryptedAdapterCache.delete(cacheKey)\n    }\n  }\n\n  /**\n   * Drop ALL encryption contexts and cached encrypted adapters.\n   * Called from `MCPServer.close()` during shutdown so key material\n   * doesn't outlive the process.\n   */\n  clearAllEncryptionContexts(): void {\n    this.encryptionContexts.clear()\n    this.encryptedAdapterCache.clear()\n  }\n\n  /**\n   * Optionally wrap a VCA with encryption if KeyRing is configured.\n   * Caches the result in the encrypted adapter cache.\n   */\n  private wrapWithEncryption(\n    userId: string,\n    orgId: string,\n    name: string,\n    vca: VirtualCollectionAdapter\n  ): VirtualCollectionAdapter | EncryptedCollectionAdapter {\n    const ctxKey = encryptionContextKey(userId, orgId)\n    const entry = this.encryptionContexts.get(ctxKey)\n    if (entry) {\n      const schema = this.schemas.get(name)\n      if (schema) {\n        const encrypted = new EncryptedCollectionAdapter(\n          vca,\n          schema,\n          entry.keyRing,\n          entry.context,\n          entry.lookupKey\n        )\n        this.encryptedAdapterCache.set(encryptedAdapterCacheKey(userId, orgId, name), encrypted)\n        return encrypted\n      }\n    }\n    return vca\n  }\n\n  /** Normalize a DB document (RxDB or REST plain object) to a SchemaModel. */\n  private static docToSchema(doc: unknown): SchemaModel {\n    const obj = doc as { toJSON?: () => Record<string, unknown> }\n    return (typeof obj.toJSON === 'function'\n      ? obj.toJSON()\n      : doc) as unknown as SchemaModel\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview One-time migration from legacy dedicated collections to the\n * generic `records` collection introduced by the schema-in-db consolidation.\n *\n * The 62 legacy domain collections (deals, contacts, campaigns, etc.) are\n * replaced by 13 primitive collections discriminated by `schemaId`. This\n * module provides the migration utilities to move existing data.\n */\n\nimport { createId } from '../utils/id';\nimport type { SchemaModel } from '../models/Schema';\nimport type { RecordModel } from '../models/Record';\n\n/**\n * Result of a migration run for a single collection.\n */\nexport interface MigrationResult {\n  /** The schema name (== legacy collection name) that was migrated. */\n  collection: string;\n  /** Number of documents successfully written to `records`. */\n  migrated: number;\n  /** Number of documents that failed to insert. */\n  errors: number;\n  /** Per-document error details for failed inserts. */\n  errorDetails: Array<{ id: string; error: string }>;\n}\n\n/**\n * Top-level fields that carry context about the document origin.\n * These are never copied into the `data` bag.\n */\nconst CONTEXT_FIELDS = new Set([\n  'id',\n  'orgId',\n  'workspaceId',\n  'userId',\n  'createdAt',\n  'updatedAt',\n  '_rev',\n  '_meta',\n  '_deleted',\n  '_attachments',\n]);\n\n/**\n * Fields that are promoted to top-level `RecordModel` properties rather than\n * being stored in the `data` bag. The record schema has first-class columns\n * for these, enabling indexed queries without unpacking the data blob.\n */\nconst PROMOTED_FIELDS = new Set([\n  'title',\n  'status',\n  'parentId',\n  'parentCollection',\n  'archived',\n  'completed',\n  'completedAt',\n  'startedAt',\n]);\n\n/**\n * Migrate all documents from a legacy collection into the records collection.\n *\n * For each document:\n * 1. Map promoted fields (`title`, `status`, etc.) to top-level RecordModel fields\n * 2. Map remaining domain fields into the `data` bag\n * 3. Preserve `orgId`, `workspaceId`, `userId`, timestamps\n * 4. Set `schemaId` from the provided schema definition\n * 5. Generate a new record ID (`rec_` prefix)\n *\n * Idempotent: skips documents that already exist in `records` with a matching\n * `metadata.sourceId`. The source ID is stored in `metadata.sourceId` for\n * traceability and to make repeated runs safe.\n *\n * @param legacyCollection - The source RxDB collection (or compatible mock).\n * @param recordsCollection - The target `records` RxDB collection.\n * @param schema - The SchemaModel that governs the migrated entity type.\n * @returns Counts and per-document error details for the migration run.\n */\nexport async function migrateCollectionToRecords(\n  legacyCollection: {\n    find(query: { selector: Record<string, unknown> }): { exec(): Promise<unknown[]> };\n  },\n  recordsCollection: {\n    findOne(query: { selector: Record<string, unknown> }): { exec(): Promise<unknown> };\n    insert(doc: RecordModel): Promise<unknown>;\n  },\n  schema: SchemaModel,\n): Promise<MigrationResult> {\n  let migrated = 0;\n  let errors = 0;\n  const errorDetails: Array<{ id: string; error: string }> = [];\n\n  // Fetch all documents from the legacy collection in one pass.\n  // RxDB queries are local, so there is no pagination concern here.\n  const docs = await legacyCollection.find({ selector: {} }).exec();\n\n  for (const doc of docs) {\n    // Normalise: RxDB documents expose toJSON(); plain objects do not.\n    const legacy = (typeof (doc as { toJSON?: () => Record<string, unknown> }).toJSON === 'function')\n      ? (doc as { toJSON: () => Record<string, unknown> }).toJSON()\n      : (doc as Record<string, unknown>);\n\n    const sourceId = (legacy['id'] as string | undefined) ?? 'unknown';\n\n    try {\n      // Idempotency check: skip if a record with this sourceId already exists.\n      const existing = await recordsCollection.findOne({\n        selector: {\n          schemaId: schema.id,\n          'metadata.sourceId': sourceId,\n        },\n      }).exec();\n\n      if (existing) {\n        continue;\n      }\n\n      // All fields not in CONTEXT_FIELDS or PROMOTED_FIELDS go into data bag.\n      const data: Record<string, unknown> = {};\n      for (const [key, value] of Object.entries(legacy)) {\n        if (!CONTEXT_FIELDS.has(key) && !PROMOTED_FIELDS.has(key)) {\n          data[key] = value;\n        }\n      }\n\n      const now = new Date().toISOString();\n\n      const record: RecordModel = {\n        id: createId('records'),\n        schemaId: schema.id,\n        orgId: (legacy['orgId'] as string | undefined) ?? '',\n        workspaceId: (legacy['workspaceId'] as string | undefined) ?? '',\n        // Fall back to empty string when no userId is present.\n        // Empty string is explicit about the absence of an owner and does not\n        // pollute audit queries with a placeholder value.\n        userId: (legacy['userId'] as string | undefined) ?? '',\n        title: (legacy['title'] as string | undefined)\n          ?? (legacy['name'] as string | undefined)\n          ?? '',\n        status: (legacy['status'] as string | undefined) ?? '',\n        parentId: (legacy['parentId'] as string | undefined) ?? '',\n        assigneeId: (legacy['assigneeId'] as string | undefined) ?? '',\n        archived: (legacy['archived'] as boolean | undefined) ?? false,\n        version: 1,\n        data,\n        metadata: {\n          sourceId,\n          sourceCollection: schema.name,\n          migratedAt: now,\n        },\n        createdAt: (legacy['createdAt'] as string | undefined) ?? now,\n        updatedAt: (legacy['updatedAt'] as string | undefined) ?? now,\n      };\n\n      // Conditionally set optional promoted fields only when present in source.\n      if (legacy['parentId'] !== undefined) {\n        record.parentId = legacy['parentId'] as string;\n      }\n      if (legacy['parentCollection'] !== undefined) {\n        record.parentCollection = legacy['parentCollection'] as string;\n      }\n      if (legacy['completed'] !== undefined) {\n        record.completed = legacy['completed'] as boolean;\n      }\n      if (legacy['completedAt'] !== undefined) {\n        record.completedAt = legacy['completedAt'] as string;\n      }\n      if (legacy['startedAt'] !== undefined) {\n        record.startedAt = legacy['startedAt'] as string;\n      }\n\n      await recordsCollection.insert(record);\n      migrated++;\n    } catch (error) {\n      errors++;\n      errorDetails.push({\n        id: sourceId,\n        error: (error as Error).message,\n      });\n    }\n  }\n\n  return {\n    collection: schema.name,\n    migrated,\n    errors,\n    errorDetails,\n  };\n}\n\n/**\n * Run migration for multiple legacy collections in sequence.\n *\n * Each mapping entry pairs a legacy collection with the SchemaModel it should\n * be migrated under. The `recordsCollection` is shared across all migrations.\n *\n * Errors within a single collection do not abort other collections; per-item\n * errors are captured inside each {@link MigrationResult}.\n *\n * @param mappings - Array of `{ name, legacyCollection, schema }` descriptors.\n * @param recordsCollection - The shared target `records` RxDB collection.\n * @returns One {@link MigrationResult} per mapping entry, in order.\n */\nexport async function migrateAll(\n  mappings: Array<{\n    /** Display name used for logging; typically matches schema.name. */\n    name: string;\n    legacyCollection: {\n      find(query: { selector: Record<string, unknown> }): { exec(): Promise<unknown[]> };\n    };\n    schema: SchemaModel;\n  }>,\n  recordsCollection: {\n    findOne(query: { selector: Record<string, unknown> }): { exec(): Promise<unknown> };\n    insert(doc: RecordModel): Promise<unknown>;\n  },\n): Promise<MigrationResult[]> {\n  const results: MigrationResult[] = [];\n\n  for (const mapping of mappings) {\n    const result = await migrateCollectionToRecords(\n      mapping.legacyCollection,\n      recordsCollection,\n      mapping.schema,\n    );\n    results.push(result);\n  }\n\n  return results;\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview Seeds the four built-in org roles (owner, manager,\n * contributor, viewer) into a given org. This seeder is idempotent\n * and is safe to call on every application startup.\n *\n * Call order: this seeder must complete before\n * {@link migrateTeamMembersToRoleMemberships} is invoked, because\n * the migration resolves role names against the seeded records.\n */\n\nimport { createId } from '../utils/id'\nimport type { RoleModel } from '../models/Role'\nimport type { TeamMemberRole } from '../types/teamMember'\n\nconst BUILT_IN_ROLES: ReadonlyArray<{ name: TeamMemberRole; title: string; description: string }> = [\n  { name: 'owner', title: 'Owner', description: 'Full administrative access' },\n  { name: 'manager', title: 'Manager', description: 'Manage team members and settings' },\n  { name: 'contributor', title: 'Contributor', description: 'Create and edit content' },\n  { name: 'viewer', title: 'Viewer', description: 'Read-only access' },\n]\n\n/** RxDB-compatible collection interface required by {@link seedBuiltInRoles}. */\ninterface RolesCollectionLike {\n  findOne(query: { selector: Record<string, unknown> }): {\n    exec(): Promise<{ id: string; name: string } | null>\n  }\n  insert(doc: RoleModel): Promise<unknown>\n}\n\n/**\n * Seeds the four built-in org roles (owner, manager, contributor, viewer) if they\n * do not already exist for the given org. Safe to call multiple times — existing\n * roles are detected via a compound selector on `name + orgId + builtIn`.\n *\n * @param rolesCollection - RxDB (or compatible) collection for roles\n * @param orgId - The org to seed roles for\n * @returns Counts of created and skipped roles\n */\nexport async function seedBuiltInRoles(\n  rolesCollection: RolesCollectionLike,\n  orgId: string\n): Promise<{ created: number; skipped: number }> {\n  let created = 0\n  let skipped = 0\n\n  for (const def of BUILT_IN_ROLES) {\n    const existing = await rolesCollection\n      .findOne({ selector: { name: def.name, orgId, builtIn: true } })\n      .exec()\n\n    if (existing) {\n      skipped++\n      continue\n    }\n\n    const now = new Date().toISOString()\n    await rolesCollection.insert({\n      id: createId('roles'),\n      name: def.name,\n      title: def.title,\n      description: def.description,\n      orgId,\n      scopeType: '',\n      scopeId: '',\n      builtIn: true,\n      archived: false,\n      createdAt: now,\n      updatedAt: now,\n    })\n    created++\n  }\n\n  return { created, skipped }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview One-time migration that promotes existing TeamMember records\n * to RoleMembership records in the new RBAC system.\n *\n * Idempotent — safe to run multiple times. Members who already have a\n * matching RoleMembership are skipped. Per-member errors are accumulated\n * in the returned {@link MigrationResult.errors} array rather than\n * aborting the whole run.\n *\n * Pre-condition: {@link seedBuiltInRoles} must have been called for the\n * org before this migration runs.\n */\n\nimport { createId } from '../utils/id'\nimport type { TeamMemberModel } from '../models/TeamMember'\nimport type { RoleModel } from '../models/Role'\nimport type { RoleMembershipModel } from '../models/RoleMembership'\n\nexport interface MigrationDependencies {\n  orgId: string\n  systemUserId: string\n  getTeamMembers(): Promise<TeamMemberModel[]>\n  findRoleByName(name: string): Promise<Pick<RoleModel, 'id' | 'name'> | null>\n  existsMembership(userId: string, roleId: string, orgId: string): Promise<boolean>\n  insertMembership(membership: RoleMembershipModel): Promise<void>\n}\n\nexport interface MigrationResult {\n  migrated: number\n  skipped: number\n  errors: Array<{ userId: string; reason: string }>\n}\n\n/**\n * One-time migration: for each teamMember, create a rolemembership for their\n * org-level role if one does not already exist.\n *\n * Idempotent — safe to run multiple times. Already-migrated members are skipped.\n *\n * All side effects are injected via `deps` so this function is fully testable\n * without a live database. The caller is responsible for supplying correct\n * collection accessors scoped to the target org.\n *\n * @param deps - Injected dependencies (collections + context IDs)\n * @returns Counts of migrated, skipped, and errored members\n */\nexport async function migrateTeamMembersToRoleMemberships(\n  deps: MigrationDependencies\n): Promise<MigrationResult> {\n  const { orgId, systemUserId } = deps\n  let migrated = 0\n  let skipped = 0\n  const errors: MigrationResult['errors'] = []\n\n  const members = await deps.getTeamMembers()\n\n  for (const member of members) {\n    if (!member.userId) {\n      errors.push({ userId: '', reason: `TeamMember ${member.id ?? 'unknown'} missing userId` })\n      continue\n    }\n    try {\n      const role = await deps.findRoleByName(member.role)\n      if (!role) {\n        errors.push({ userId: member.userId, reason: `Built-in role '${member.role}' not found` })\n        continue\n      }\n\n      const alreadyExists = await deps.existsMembership(member.userId, role.id, orgId)\n      if (alreadyExists) {\n        skipped++\n        continue\n      }\n\n      const now = new Date().toISOString()\n      await deps.insertMembership({\n        id: createId('rolememberships'),\n        roleId: role.id,\n        userId: member.userId,\n        grantedBy: systemUserId,\n        orgId,\n        scopeType: '',\n        scopeId: '',\n        expiresAt: '',\n        status: 'active',\n        createdAt: now,\n        updatedAt: now,\n      })\n      migrated++\n    } catch (err) {\n      errors.push({ userId: member.userId, reason: String(err) })\n    }\n  }\n\n  return { migrated, skipped, errors }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * @fileoverview One-time migration that promotes `lastHeartbeat` and\n * `containerStatus` from the TeamMember `metadata` blob to schema-level\n * fields.\n *\n * Idempotent — safe to run multiple times. Records where `lastHeartbeat`\n * is already set at the schema level are skipped. Per-record errors are\n * accumulated in the returned {@link PromotionResult.errors} array rather\n * than aborting the whole run.\n */\n\nimport type { TeamMemberModel } from '../models/TeamMember'\n\nexport interface PromotionDependencies {\n  orgId: string\n  getTeamMembers(): Promise<TeamMemberModel[]>\n  updateTeamMember(id: string, patch: Partial<TeamMemberModel>): Promise<void>\n}\n\nexport interface PromotionResult {\n  migrated: number\n  skipped: number\n  errors: Array<{ id: string; reason: string }>\n}\n\n/**\n * Promote `lastHeartbeat` and `containerStatus` from metadata to\n * schema-level fields on every TeamMember record in the given org.\n *\n * Idempotent — records where `lastHeartbeat` is already set at the\n * schema level are skipped. Records with no metadata values to promote\n * are also skipped.\n *\n * All side effects are injected via `deps` so this function is fully\n * testable without a live database.\n */\nexport async function promoteTeamMemberAgentFields(\n  deps: PromotionDependencies,\n): Promise<PromotionResult> {\n  let migrated = 0\n  let skipped = 0\n  const errors: PromotionResult['errors'] = []\n\n  const members = await deps.getTeamMembers()\n\n  for (const member of members) {\n    try {\n      // Already migrated — skip\n      if (member.lastHeartbeat) {\n        skipped++\n        continue\n      }\n\n      const metadata = member.metadata ?? {}\n      const metaHeartbeat = metadata.lastHeartbeat as string | undefined\n      const metaContainerStatus = metadata.containerStatus as\n        | TeamMemberModel['containerStatus']\n        | undefined\n\n      // Nothing to promote — skip\n      if (!metaHeartbeat && !metaContainerStatus) {\n        skipped++\n        continue\n      }\n\n      const patch: Partial<TeamMemberModel> = {}\n      if (metaHeartbeat) {\n        patch.lastHeartbeat = metaHeartbeat\n      }\n      patch.containerStatus = metaContainerStatus ?? 'unknown'\n\n      await deps.updateTeamMember(member.id, patch)\n      migrated++\n    } catch (err) {\n      errors.push({ id: member.id, reason: String(err) })\n    }\n  }\n\n  return { migrated, skipped, errors }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaModel } from '../../models/Schema'\n\n/**\n * Placeholder orgId used in built-in seed schemas.\n * Replaced with the real orgId by the seed runner at initialization time.\n */\nexport const SEED_ORG_PLACEHOLDER = '__SEED_ORG__'\n\n/**\n * Placeholder workspaceId used in built-in seed schemas.\n * Replaced with the real workspaceId by the seed runner at initialization time.\n */\nexport const SEED_WORKSPACE_PLACEHOLDER = '__SEED_WORKSPACE__'\n\n/**\n * A seed schema is a SchemaModel without the auto-generated fields that\n * the seed runner fills in (id, createdAt, updatedAt).\n */\nexport type SeedSchema = Omit<SchemaModel, 'id' | 'createdAt' | 'updatedAt'>\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SEED_ORG_PLACEHOLDER, SEED_WORKSPACE_PLACEHOLDER } from './constants'\nimport type { SeedSchema } from './constants'\n\n/**\n * Seed schema for the proposals collection.\n * Agent work requests that flow through the gate before becoming missions.\n */\nexport const proposalsSchema: SeedSchema = {\n  name: 'proposals',\n  title: 'Proposals',\n  description: 'Agent work requests submitted for gate review before execution',\n  category: 'orchestration',\n  target: 'records',\n  titleField: 'title',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'prps' },\n  defaultSort: { field: 'createdAt', direction: 'desc' },\n  fields: [\n    {\n      name: 'agentId',\n      label: 'Agent',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { placeholder: 'Agent identifier' },\n    },\n    {\n      name: 'title',\n      label: 'Title',\n      type: 'text',\n      required: true,\n      order: 2,\n      config: { placeholder: 'Proposal title' },\n    },\n    {\n      name: 'description',\n      label: 'Description',\n      type: 'richtext',\n      required: false,\n      order: 3,\n      config: { placeholder: 'Detailed proposal description' },\n    },\n    {\n      name: 'status',\n      label: 'Status',\n      type: 'select',\n      required: true,\n      defaultValue: 'pending',\n      order: 4,\n      options: [\n        { value: 'pending', label: 'Pending', color: '#f59e0b' },\n        { value: 'accepted', label: 'Accepted', color: '#22c55e' },\n        { value: 'rejected', label: 'Rejected', color: '#ef4444' },\n      ],\n      config: { renderer: 'badge' },\n    },\n    {\n      name: 'proposedSteps',\n      label: 'Proposed Steps',\n      type: 'json',\n      required: true,\n      order: 5,\n      config: { helpText: 'Array of step definitions the agent plans to execute' },\n    },\n    {\n      name: 'gateResults',\n      label: 'Gate Results',\n      type: 'json',\n      required: false,\n      order: 6,\n      config: { helpText: 'Automated gate evaluation results (scope, risk, policy checks)' },\n    },\n    {\n      name: 'rejectionReason',\n      label: 'Rejection Reason',\n      type: 'text',\n      required: false,\n      order: 7,\n      config: { placeholder: 'Why the proposal was rejected' },\n    },\n    {\n      name: 'source',\n      label: 'Source',\n      type: 'select',\n      required: false,\n      order: 8,\n      options: [\n        { value: 'agent_initiative', label: 'Agent Initiative', color: '#6366f1' },\n        { value: 'trigger', label: 'Trigger', color: '#0ea5e9' },\n        { value: 'reaction', label: 'Reaction', color: '#8b5cf6' },\n        { value: 'human', label: 'Human', color: '#22c55e' },\n      ],\n      config: { renderer: 'badge' },\n    },\n  ],\n}\n\n/**\n * Seed schema for the missions collection.\n * Approved proposals become executable missions with tracked lifecycle.\n */\nexport const missionsSchema: SeedSchema = {\n  name: 'missions',\n  title: 'Missions',\n  description: 'Approved proposals promoted to executable work units with tracked lifecycle',\n  category: 'orchestration',\n  target: 'records',\n  titleField: 'title',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 3,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'misn' },\n  defaultSort: { field: 'createdAt', direction: 'desc' },\n  fields: [\n    {\n      name: 'title',\n      label: 'Title',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { placeholder: 'Mission title' },\n    },\n    {\n      name: 'description',\n      label: 'Description',\n      type: 'richtext',\n      required: false,\n      order: 2,\n      config: { placeholder: 'Mission description carried from proposal' },\n    },\n    {\n      name: 'status',\n      label: 'Status',\n      type: 'select',\n      required: true,\n      defaultValue: 'approved',\n      order: 3,\n      options: [\n        { value: 'approved', label: 'Approved', color: '#3b82f6' },\n        { value: 'running', label: 'Running', color: '#f59e0b' },\n        { value: 'succeeded', label: 'Succeeded', color: '#22c55e' },\n        { value: 'failed', label: 'Failed', color: '#ef4444' },\n      ],\n      config: { renderer: 'badge' },\n    },\n    {\n      name: 'proposalId',\n      label: 'Proposal',\n      type: 'text',\n      required: true,\n      order: 4,\n      config: { helpText: 'ID of the accepted proposal that created this mission' },\n    },\n    {\n      name: 'agentId',\n      label: 'Agent',\n      type: 'text',\n      required: true,\n      order: 5,\n      config: { placeholder: 'Agent that owns this mission' },\n    },\n    {\n      name: 'executingAgentId',\n      label: 'Executing Agent',\n      type: 'text',\n      required: false,\n      order: 6,\n      config: { helpText: 'Agent assigned to execute this work (may differ from proposer)' },\n    },\n    {\n      name: 'stepCount',\n      label: 'Step Count',\n      type: 'number',\n      required: false,\n      order: 7,\n      config: { helpText: 'Total number of steps in this mission' },\n    },\n    {\n      name: 'completedAt',\n      label: 'Completed At',\n      type: 'date',\n      required: false,\n      order: 8,\n      config: {},\n    },\n  ],\n}\n\n/**\n * Seed schema for the mission_steps collection.\n * Concrete execution units within a mission, claimed and run by agents.\n */\nexport const missionStepsSchema: SeedSchema = {\n  name: 'mission_steps',\n  title: 'Mission Steps',\n  description: 'Concrete execution units within a mission, claimed and run by agents',\n  category: 'orchestration',\n  target: 'records',\n  titleField: 'title',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 2,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'mstp' },\n  defaultSort: { field: 'createdAt', direction: 'asc' },\n  fields: [\n    {\n      name: 'missionId',\n      label: 'Mission',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { helpText: 'Parent mission ID' },\n    },\n    {\n      name: 'title',\n      label: 'Title',\n      type: 'text',\n      required: true,\n      order: 2,\n      config: { placeholder: 'Step title' },\n    },\n    {\n      name: 'kind',\n      label: 'Kind',\n      type: 'select',\n      required: true,\n      order: 3,\n      options: [\n        { value: 'analyze', label: 'Analyze', color: '#6366f1' },\n        { value: 'code_change', label: 'Code Change', color: '#3b82f6' },\n        { value: 'draft', label: 'Draft', color: '#8b5cf6' },\n        { value: 'review', label: 'Review', color: '#0ea5e9' },\n        { value: 'deploy', label: 'Deploy', color: '#f97316' },\n        { value: 'research', label: 'Research', color: '#a855f7' },\n        { value: 'test', label: 'Test', color: '#22c55e' },\n        { value: 'custom', label: 'Custom', color: '#6b7280' },\n      ],\n      config: { renderer: 'badge' },\n    },\n    {\n      name: 'status',\n      label: 'Status',\n      type: 'select',\n      required: true,\n      defaultValue: 'queued',\n      order: 4,\n      options: [\n        { value: 'queued', label: 'Queued', color: '#94a3b8' },\n        { value: 'running', label: 'Running', color: '#f59e0b' },\n        { value: 'succeeded', label: 'Succeeded', color: '#22c55e' },\n        { value: 'failed', label: 'Failed', color: '#ef4444' },\n      ],\n      config: { renderer: 'badge' },\n    },\n    {\n      name: 'payload',\n      label: 'Payload',\n      type: 'json',\n      required: false,\n      order: 5,\n      config: { helpText: 'Input data for this step' },\n    },\n    {\n      name: 'executingAgentId',\n      label: 'Executing Agent',\n      type: 'text',\n      required: false,\n      order: 6,\n      config: { helpText: 'Agent assigned to execute this step (may differ from proposer)' },\n    },\n    {\n      name: 'claimedBy',\n      label: 'Claimed By',\n      type: 'text',\n      required: false,\n      order: 7,\n      config: { placeholder: 'Agent that claimed this step' },\n    },\n    {\n      name: 'claimedAt',\n      label: 'Claimed At',\n      type: 'date',\n      required: false,\n      order: 8,\n      config: {},\n    },\n    {\n      name: 'result',\n      label: 'Result',\n      type: 'json',\n      required: false,\n      order: 9,\n      config: { helpText: 'Output data from step execution' },\n    },\n    {\n      name: 'ordinal',\n      label: 'Order',\n      type: 'number',\n      required: false,\n      order: 10,\n      config: { helpText: 'Execution order within the mission' },\n    },\n  ],\n}\n\n/**\n * Seed schema for the agent_events collection.\n * Immutable event log for all agent activity across the orchestration system.\n */\nexport const agentEventsSchema: SeedSchema = {\n  name: 'agent_events',\n  title: 'Agent Events',\n  description: 'Immutable event log for all agent activity in the orchestration system',\n  category: 'orchestration',\n  target: 'records',\n  titleField: 'title',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'aevt' },\n  defaultSort: { field: 'createdAt', direction: 'desc' },\n  fields: [\n    {\n      name: 'agentId',\n      label: 'Agent',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { placeholder: 'Agent identifier' },\n    },\n    {\n      name: 'kind',\n      label: 'Event Kind',\n      type: 'select',\n      required: true,\n      order: 2,\n      options: [\n        { value: 'proposal_created', label: 'Proposal Created', color: '#6366f1' },\n        { value: 'proposal_rejected', label: 'Proposal Rejected', color: '#ef4444' },\n        { value: 'mission_created', label: 'Mission Created', color: '#3b82f6' },\n        { value: 'mission_succeeded', label: 'Mission Succeeded', color: '#22c55e' },\n        { value: 'mission_failed', label: 'Mission Failed', color: '#ef4444' },\n        { value: 'step_claimed', label: 'Step Claimed', color: '#f59e0b' },\n        { value: 'step_completed', label: 'Step Completed', color: '#22c55e' },\n        { value: 'step_failed', label: 'Step Failed', color: '#ef4444' },\n        { value: 'agent_circuit_break', label: 'Circuit Break', color: '#dc2626' },\n        { value: 'coordinator_started', label: 'Coordinator Started', color: '#0ea5e9' },\n        { value: 'trigger_fired', label: 'Trigger Fired', color: '#8b5cf6' },\n      ],\n      config: { renderer: 'badge' },\n    },\n    {\n      name: 'title',\n      label: 'Title',\n      type: 'text',\n      required: false,\n      order: 3,\n      config: { placeholder: 'Event summary' },\n    },\n    {\n      name: 'payload',\n      label: 'Payload',\n      type: 'json',\n      required: false,\n      order: 4,\n      config: { helpText: 'Arbitrary event data (proposalId, missionId, etc.)' },\n    },\n    {\n      name: 'summary',\n      label: 'Summary',\n      type: 'richtext',\n      required: false,\n      order: 5,\n      config: { placeholder: 'Detailed event description' },\n    },\n    {\n      name: 'tags',\n      label: 'Tags',\n      type: 'json',\n      required: false,\n      order: 6,\n      config: { helpText: 'Array of string tags for filtering and categorization' },\n    },\n    {\n      name: 'relatedEntityId',\n      label: 'Related Entity ID',\n      type: 'text',\n      required: false,\n      order: 6,\n      config: { helpText: 'ID of the related proposal, mission, or step' },\n    },\n    {\n      name: 'relatedEntityType',\n      label: 'Related Entity Type',\n      type: 'select',\n      required: false,\n      order: 7,\n      options: [\n        { value: 'proposal', label: 'Proposal', color: '#f59e0b' },\n        { value: 'mission', label: 'Mission', color: '#3b82f6' },\n        { value: 'step', label: 'Step', color: '#0ea5e9' },\n        { value: 'task', label: 'Task', color: '#22c55e' },\n      ],\n      config: { renderer: 'badge' },\n    },\n  ],\n}\n\n/**\n * Seed schema for the trigger_rules collection.\n * Declarative rules that create proposals when conditions are met.\n */\nexport const triggerRulesSchema: SeedSchema = {\n  name: 'trigger_rules',\n  title: 'Trigger Rules',\n  description: 'Declarative rules that create proposals when conditions are met',\n  category: 'orchestration',\n  target: 'records',\n  titleField: 'name',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'trul' },\n  defaultSort: { field: 'name', direction: 'asc' },\n  fields: [\n    {\n      name: 'name',\n      label: 'Name',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { placeholder: 'Rule name' },\n    },\n    {\n      name: 'triggerType',\n      label: 'Trigger Type',\n      type: 'select',\n      required: true,\n      order: 2,\n      options: [\n        { value: 'reactive', label: 'Reactive', color: '#f59e0b' },\n        { value: 'proactive', label: 'Proactive', color: '#6366f1' },\n      ],\n      config: { renderer: 'badge' },\n    },\n    {\n      name: 'triggerEvent',\n      label: 'Trigger Event',\n      type: 'text',\n      required: true,\n      order: 3,\n      config: { placeholder: 'Event name or cron expression' },\n    },\n    {\n      name: 'conditions',\n      label: 'Conditions',\n      type: 'json',\n      required: false,\n      order: 4,\n      config: { helpText: 'JSON conditions that must be satisfied for the rule to fire' },\n    },\n    {\n      name: 'actionConfig',\n      label: 'Action Config',\n      type: 'json',\n      required: true,\n      order: 5,\n      config: { helpText: 'Configuration for the proposal created when this rule fires' },\n    },\n    {\n      name: 'cooldownMinutes',\n      label: 'Cooldown (min)',\n      type: 'number',\n      required: true,\n      order: 6,\n      config: { helpText: 'Minimum minutes between firings' },\n    },\n    {\n      name: 'enabled',\n      label: 'Enabled',\n      type: 'boolean',\n      required: true,\n      defaultValue: true,\n      order: 7,\n      config: {},\n    },\n    {\n      name: 'fireCount',\n      label: 'Fire Count',\n      type: 'number',\n      required: false,\n      order: 8,\n      config: { helpText: 'Number of times this rule has fired' },\n    },\n    {\n      name: 'lastFiredAt',\n      label: 'Last Fired At',\n      type: 'date',\n      required: false,\n      order: 9,\n      config: {},\n    },\n    {\n      name: 'skipProbability',\n      label: 'Skip Probability',\n      type: 'number',\n      required: false,\n      order: 10,\n      config: { helpText: 'Probability (0-1) of skipping a firing for randomization' },\n    },\n    {\n      name: 'jitterMinutes',\n      label: 'Jitter (min)',\n      type: 'number',\n      required: false,\n      order: 11,\n      config: { helpText: 'Random delay range in minutes added to scheduling' },\n    },\n    {\n      name: 'intervalMinutes',\n      label: 'Interval (min)',\n      type: 'number',\n      required: false,\n      order: 12,\n      config: { helpText: 'Recurring interval in minutes for proactive triggers' },\n    },\n  ],\n}\n\n/**\n * Seed schema for the ops_policy collection.\n * Runtime configuration stored as key-value pairs (configuration as data).\n */\nexport const opsPolicySchema: SeedSchema = {\n  name: 'ops_policy',\n  title: 'Ops Policy',\n  description: 'Runtime configuration for the orchestration system stored as key-value pairs',\n  category: 'orchestration',\n  target: 'records',\n  titleField: 'key',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'opol' },\n  defaultSort: { field: 'key', direction: 'asc' },\n  fields: [\n    {\n      name: 'key',\n      label: 'Key',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { placeholder: 'Policy key (e.g., max_concurrent_missions)' },\n    },\n    {\n      name: 'value',\n      label: 'Value',\n      type: 'json',\n      required: true,\n      order: 2,\n      config: { helpText: 'Policy value (any JSON-serializable value)' },\n    },\n    {\n      name: 'description',\n      label: 'Description',\n      type: 'richtext',\n      required: false,\n      order: 3,\n      config: { placeholder: 'What this policy controls' },\n    },\n    {\n      name: 'enabled',\n      label: 'Enabled',\n      type: 'boolean',\n      required: true,\n      defaultValue: true,\n      order: 4,\n      config: {},\n    },\n  ],\n}\n\n/**\n * Seed schema for the agent_affinities collection.\n * Pairwise relationship scores between agents that affect conversation dynamics.\n */\nexport const agentAffinitiesSchema: SeedSchema = {\n  name: 'agent_affinities',\n  title: 'Agent Affinities',\n  description: 'Pairwise relationship scores between agents affecting conversation dynamics',\n  category: 'orchestration',\n  target: 'records',\n  titleField: 'agentA',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'aaff' },\n  defaultSort: { field: 'score', direction: 'desc' },\n  fields: [\n    {\n      name: 'agentA',\n      label: 'Agent A',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { helpText: 'Alphabetically first agent ID in the pair' },\n    },\n    {\n      name: 'agentB',\n      label: 'Agent B',\n      type: 'text',\n      required: true,\n      order: 2,\n      config: { helpText: 'Alphabetically second agent ID in the pair' },\n    },\n    {\n      name: 'score',\n      label: 'Affinity Score',\n      type: 'number',\n      required: true,\n      order: 3,\n      config: { helpText: 'Relationship score from 0.10 (antagonistic) to 0.95 (close allies)' },\n    },\n    {\n      name: 'lastUpdated',\n      label: 'Last Updated',\n      type: 'date',\n      required: true,\n      order: 4,\n      config: { helpText: 'ISO timestamp of last score change' },\n    },\n    {\n      name: 'history',\n      label: 'History',\n      type: 'json',\n      required: false,\n      order: 5,\n      config: { helpText: 'Last 10 score changes with drift, reason, and roundtableId' },\n    },\n  ],\n}\n\n/**\n * All orchestration seed schemas for the closed-loop agent system.\n */\nexport const orchestrationSeeds: SeedSchema[] = [\n  proposalsSchema,\n  missionsSchema,\n  missionStepsSchema,\n  agentEventsSchema,\n  triggerRulesSchema,\n  opsPolicySchema,\n  agentAffinitiesSchema,\n]\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SEED_ORG_PLACEHOLDER, SEED_WORKSPACE_PLACEHOLDER } from './constants'\nimport type { SeedSchema } from './constants'\n\n/**\n * Seed schema for the entityassignments collection.\n * Generalized junction table linking team members to any entity with roles.\n */\nexport const entityAssignmentsSchema: SeedSchema = {\n  name: 'entityassignments',\n  title: 'Entity Assignments',\n  description: 'Junction records linking team members to any entity with role classification',\n  category: 'core',\n  target: 'records',\n  titleField: 'entityId',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'easn' },\n  defaultSort: { field: 'assignedAt', direction: 'desc' },\n  fields: [\n    {\n      name: 'entityType',\n      label: 'Entity Type',\n      type: 'select',\n      required: true,\n      order: 1,\n      options: [\n        { value: 'task', label: 'Task' },\n        { value: 'project', label: 'Project' },\n        { value: 'milestone', label: 'Milestone' },\n        { value: 'goal', label: 'Goal' },\n        { value: 'initiative', label: 'Initiative' },\n        { value: 'product', label: 'Product' },\n        { value: 'businessplan', label: 'Business Plan' },\n        { value: 'roadmap', label: 'Roadmap' },\n        { value: 'document', label: 'Document' },\n        { value: 'proposal', label: 'Proposal' },\n        { value: 'mission', label: 'Mission' },\n        { value: 'deal', label: 'Deal' },\n        { value: 'campaign', label: 'Campaign' },\n        { value: 'codebase', label: 'Codebase' },\n      ],\n      config: { renderer: 'badge' },\n    },\n    {\n      name: 'entityId',\n      label: 'Entity',\n      type: 'text',\n      required: true,\n      order: 2,\n      config: { helpText: 'ID of the assigned entity' },\n    },\n    {\n      name: 'teamMemberId',\n      label: 'Team Member',\n      type: 'relation',\n      required: true,\n      order: 3,\n      relationSchema: 'teammembers',\n      config: {},\n    },\n    {\n      name: 'role',\n      label: 'Role',\n      type: 'select',\n      required: true,\n      order: 4,\n      options: [\n        { value: 'owner', label: 'Owner' },\n        { value: 'contributor', label: 'Contributor' },\n        { value: 'reviewer', label: 'Reviewer' },\n        { value: 'observer', label: 'Observer' },\n      ],\n      config: { renderer: 'badge' },\n    },\n    {\n      name: 'assignedAt',\n      label: 'Assigned At',\n      type: 'date',\n      required: true,\n      order: 5,\n      config: { helpText: 'Timestamp when the assignment was created' },\n    },\n    {\n      name: 'assignedBy',\n      label: 'Assigned By',\n      type: 'text',\n      required: true,\n      order: 6,\n      config: { helpText: 'User ID of the person who created this assignment' },\n    },\n  ],\n}\n\nexport const assignmentSeeds: SeedSchema[] = [entityAssignmentsSchema]\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SEED_ORG_PLACEHOLDER, SEED_WORKSPACE_PLACEHOLDER } from './constants'\nimport type { SeedSchema } from './constants'\n\n/**\n * Seed schema for the dashboards virtual collection.\n * Stores JSON-driven dashboard configurations.\n */\nexport const dashboardsSchema: SeedSchema = {\n  name: 'dashboards',\n  title: 'Dashboards',\n  description: 'JSON-driven configurable dashboard configurations',\n  category: 'dashboard',\n  target: 'records',\n  titleField: 'title',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'dash' },\n  defaultSort: { field: 'sortOrder', direction: 'asc' },\n  fields: [\n    {\n      name: 'title',\n      label: 'Title',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { placeholder: 'Dashboard name' },\n    },\n    {\n      name: 'slug',\n      label: 'Slug',\n      type: 'text',\n      required: true,\n      order: 2,\n      config: { placeholder: 'url-friendly-identifier' },\n    },\n    {\n      name: 'description',\n      label: 'Description',\n      type: 'text',\n      required: false,\n      order: 3,\n      config: { placeholder: 'Optional description' },\n    },\n    {\n      name: 'scopeType',\n      label: 'Scope Type',\n      type: 'select',\n      required: true,\n      order: 4,\n      options: [\n        { label: 'Organization', value: 'org' },\n        { label: 'Workspace', value: 'workspace' },\n        { label: 'Project', value: 'project' },\n      ],\n    },\n    {\n      name: 'scopeId',\n      label: 'Scope ID',\n      type: 'text',\n      required: false,\n      order: 5,\n      config: { placeholder: 'Workspace or project ID' },\n    },\n    {\n      name: 'userId',\n      label: 'Owner User ID',\n      type: 'text',\n      required: false,\n      order: 6,\n      config: { placeholder: 'Owner for personal dashboards' },\n    },\n    {\n      name: 'visibility',\n      label: 'Visibility',\n      type: 'select',\n      required: true,\n      order: 7,\n      options: [\n        { label: 'Private', value: 'private' },\n        { label: 'Team', value: 'team' },\n        { label: 'Public', value: 'public' },\n      ],\n    },\n    {\n      name: 'layout',\n      label: 'Layout',\n      type: 'json',\n      required: true,\n      order: 8,\n      config: {},\n    },\n    {\n      name: 'dataSources',\n      label: 'Data Sources',\n      type: 'json',\n      required: true,\n      order: 9,\n      config: {},\n    },\n    {\n      name: 'hooks',\n      label: 'Hooks',\n      type: 'json',\n      required: false,\n      order: 10,\n      config: {},\n    },\n    {\n      name: 'interactions',\n      label: 'Interactions',\n      type: 'json',\n      required: false,\n      order: 11,\n      config: {},\n    },\n    {\n      name: 'templateId',\n      label: 'Source Template',\n      type: 'text',\n      required: false,\n      order: 12,\n      config: {},\n    },\n    {\n      name: 'builtIn',\n      label: 'Built-In',\n      type: 'boolean',\n      required: true,\n      order: 13,\n      config: {},\n    },\n    {\n      name: 'isDefault',\n      label: 'Is Default',\n      type: 'boolean',\n      required: false,\n      order: 14,\n      config: {},\n    },\n    {\n      name: 'sortOrder',\n      label: 'Sort Order',\n      type: 'number',\n      required: false,\n      order: 15,\n      config: {},\n    },\n  ],\n}\n\n/**\n * Seed schema for the dashboardtemplates virtual collection.\n * Stores reusable dashboard template configurations.\n */\nexport const dashboardtemplatesSchema: SeedSchema = {\n  name: 'dashboardtemplates',\n  title: 'Dashboard Templates',\n  description: 'Reusable dashboard template configurations for cloning',\n  category: 'dashboard',\n  target: 'records',\n  titleField: 'title',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'dtpl' },\n  defaultSort: { field: 'title', direction: 'asc' },\n  fields: [\n    {\n      name: 'title',\n      label: 'Title',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { placeholder: 'Template name' },\n    },\n    {\n      name: 'slug',\n      label: 'Slug',\n      type: 'text',\n      required: true,\n      order: 2,\n      config: { placeholder: 'url-friendly-identifier' },\n    },\n    {\n      name: 'description',\n      label: 'Description',\n      type: 'text',\n      required: false,\n      order: 3,\n      config: { placeholder: 'What this template provides' },\n    },\n    {\n      name: 'category',\n      label: 'Category',\n      type: 'select',\n      required: true,\n      order: 4,\n      options: [\n        { label: 'Projects', value: 'projects' },\n        { label: 'Sales', value: 'sales' },\n        { label: 'Marketing', value: 'marketing' },\n        { label: 'Finance', value: 'finance' },\n        { label: 'SaaS', value: 'saas' },\n        { label: 'General', value: 'general' },\n      ],\n    },\n    {\n      name: 'targetScope',\n      label: 'Target Scope',\n      type: 'select',\n      required: true,\n      order: 5,\n      options: [\n        { label: 'Organization', value: 'org' },\n        { label: 'Workspace', value: 'workspace' },\n        { label: 'Project', value: 'project' },\n      ],\n    },\n    {\n      name: 'layout',\n      label: 'Layout',\n      type: 'json',\n      required: true,\n      order: 6,\n      config: {},\n    },\n    {\n      name: 'dataSources',\n      label: 'Data Sources',\n      type: 'json',\n      required: true,\n      order: 7,\n      config: {},\n    },\n    {\n      name: 'hooks',\n      label: 'Hooks',\n      type: 'json',\n      required: false,\n      order: 8,\n      config: {},\n    },\n    {\n      name: 'interactions',\n      label: 'Interactions',\n      type: 'json',\n      required: false,\n      order: 9,\n      config: {},\n    },\n    {\n      name: 'requiredComponents',\n      label: 'Required Components',\n      type: 'json',\n      required: false,\n      order: 10,\n      config: {},\n    },\n    {\n      name: 'requiredCollections',\n      label: 'Required Collections',\n      type: 'json',\n      required: false,\n      order: 11,\n      config: {},\n    },\n    {\n      name: 'builtIn',\n      label: 'Built-In',\n      type: 'boolean',\n      required: true,\n      order: 12,\n      config: {},\n    },\n    {\n      name: 'previewImageUrl',\n      label: 'Preview Image URL',\n      type: 'text',\n      required: false,\n      order: 13,\n      config: { placeholder: 'Preview screenshot URL' },\n    },\n  ],\n}\n\n/**\n * Seed schema for the dashboardcomponents virtual collection.\n * Stores component manifests for discovery by LLM agents and the dashboard editor.\n */\nexport const dashboardcomponentsSchema: SeedSchema = {\n  name: 'dashboardcomponents',\n  title: 'Dashboard Components',\n  description: 'Component manifests for dashboard plugins',\n  category: 'dashboard',\n  target: 'records',\n  titleField: 'name',\n  orgId: SEED_ORG_PLACEHOLDER,\n  workspaceId: SEED_WORKSPACE_PLACEHOLDER,\n  builtIn: true,\n  version: 1,\n  archived: false,\n  ownerPluginId: '',\n  metadata: { idPrefix: 'dcmp' },\n  defaultSort: { field: 'name', direction: 'asc' },\n  fields: [\n    {\n      name: 'componentId',\n      label: 'Component ID',\n      type: 'text',\n      required: true,\n      order: 1,\n      config: { placeholder: 'Namespaced ID (e.g., fs.data-table)' },\n    },\n    {\n      name: 'name',\n      label: 'Name',\n      type: 'text',\n      required: true,\n      order: 2,\n      config: { placeholder: 'Display name' },\n    },\n    {\n      name: 'description',\n      label: 'Description',\n      type: 'text',\n      required: false,\n      order: 3,\n      config: { placeholder: 'What this component does' },\n    },\n    {\n      name: 'category',\n      label: 'Category',\n      type: 'select',\n      required: true,\n      order: 4,\n      options: [\n        { label: 'Layout', value: 'layout' },\n        { label: 'View', value: 'view' },\n        { label: 'UI Element', value: 'ui' },\n      ],\n    },\n    {\n      name: 'icon',\n      label: 'Icon',\n      type: 'text',\n      required: false,\n      order: 5,\n      config: { placeholder: 'Lucide icon name' },\n    },\n    {\n      name: 'propsSchema',\n      label: 'Props Schema',\n      type: 'json',\n      required: true,\n      order: 6,\n      config: {},\n    },\n    {\n      name: 'dataSchema',\n      label: 'Data Schema',\n      type: 'json',\n      required: false,\n      order: 7,\n      config: {},\n    },\n    {\n      name: 'slots',\n      label: 'Slots',\n      type: 'json',\n      required: false,\n      order: 8,\n      config: {},\n    },\n    {\n      name: 'events',\n      label: 'Events',\n      type: 'json',\n      required: false,\n      order: 9,\n      config: {},\n    },\n    {\n      name: 'constraints',\n      label: 'Constraints',\n      type: 'json',\n      required: false,\n      order: 10,\n      config: {},\n    },\n    {\n      name: 'source',\n      label: 'Source',\n      type: 'select',\n      required: true,\n      order: 11,\n      options: [\n        { label: 'Built-In', value: 'builtin' },\n        { label: 'Marketplace', value: 'marketplace' },\n        { label: 'User', value: 'user' },\n      ],\n    },\n    {\n      name: 'pluginId',\n      label: 'Plugin ID',\n      type: 'text',\n      required: false,\n      order: 12,\n      config: { placeholder: 'Marketplace plugin ID' },\n    },\n    {\n      name: 'builtIn',\n      label: 'Built-In',\n      type: 'boolean',\n      required: true,\n      order: 13,\n      config: {},\n    },\n  ],\n}\n\nexport const dashboardSeeds: SeedSchema[] = [\n  dashboardsSchema,\n  dashboardtemplatesSchema,\n  dashboardcomponentsSchema,\n]\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nexport { SEED_ORG_PLACEHOLDER, SEED_WORKSPACE_PLACEHOLDER } from './constants'\nexport type { SeedSchema } from './constants'\nimport type { SeedSchema } from './constants'\n\nimport { orchestrationSeeds } from './orchestration'\nimport { assignmentSeeds } from './assignments'\nimport { dashboardSeeds } from './dashboard'\nimport { gitSeeds } from './git'\n\n/**\n * Core seeds required by the shell infrastructure.\n * These are always seeded regardless of which apps are installed:\n * - orchestration: agent pipeline (proposals, missions, steps, events, triggers, policies, affinities)\n * - assignments: generic entity→team-member linking (category: 'core')\n * - dashboard: dashboard rendering framework (dashboards, templates, components)\n *\n * Domain seeds (crm, sales, finance, etc.) are contributed by their\n * respective app plugins via `contributes.schemas` manifests.\n */\nexport const coreSeeds: SeedSchema[] = [\n  ...orchestrationSeeds,\n  ...assignmentSeeds,\n  ...dashboardSeeds,\n]\n\nexport { orchestrationSeeds, assignmentSeeds, dashboardSeeds, gitSeeds }\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SEED_ORG_PLACEHOLDER, SEED_WORKSPACE_PLACEHOLDER, coreSeeds } from './index'\nimport type { SeedSchema } from './constants'\nimport type { SchemaModel } from '../../models/Schema'\n\n/**\n * Generate a deterministic schema ID from orgId + name.\n *\n * Unlike `createId('schemas')` which produces a random nanoid each call,\n * this always returns the same ID for the same (orgId, name) pair. This\n * makes seed operations idempotent: the `ON CONFLICT (id) DO UPDATE SET`\n * upsert at the server correctly updates existing schemas instead of\n * colliding with the (orgId, name) unique index.\n *\n * Uses djb2a hash × 2 seeds to produce a 10-char base36 suffix.\n */\nfunction deterministicSchemaId(orgId: string, name: string): string {\n  const djb2a = (str: string): number => {\n    let hash = 5381\n    for (let i = 0; i < str.length; i++) {\n      hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\n    }\n    return hash >>> 0\n  }\n  const key = `${orgId}:${name}`\n  const h1 = djb2a(`${key}:0`)\n  const h2 = djb2a(`${key}:1`)\n  const combined = h1.toString(36) + h2.toString(36)\n  return `schm_${combined.slice(0, 10)}`\n}\n\n/**\n * Result returned by {@link seedSchemas} describing what happened.\n */\nexport interface SeedResult {\n  /** Number of schemas inserted during this run. */\n  created: number\n  /** Number of schemas that already existed and were left untouched. */\n  skipped: number\n}\n\n/**\n * Options for controlling seed behavior.\n */\nexport interface SeedOptions {\n  /**\n   * Number of schemas to insert per batch before yielding.\n   * Smaller batches produce smaller replication push payloads (local insert)\n   * or smaller REST request bodies (REST write).\n   * @default 5\n   */\n  batchSize?: number\n\n  /**\n   * Milliseconds to wait between batches so replication can flush.\n   * @default 200\n   */\n  batchDelayMs?: number\n\n  /**\n   * Optional orgs collection for org-existence validation.\n   * When provided, seedSchemas will verify the orgId exists before\n   * inserting any schemas. If the org doesn't exist, returns immediately\n   * with { created: 0, skipped: 0 }.\n   * When omitted, no validation is performed (backward compatible).\n   */\n  orgsCollection?: {\n    findOne(query: { selector: { id: string } }): {\n      exec(): Promise<{ id: string } | null>\n    }\n  }\n\n  /**\n   * Custom seed list to use instead of the default `coreSeeds`.\n   * Pass any subset of SeedSchema[] for targeted seeding.\n   * When omitted, falls back to `coreSeeds` (shell infrastructure only).\n   */\n  seeds?: SeedSchema[]\n\n  /**\n   * When provided, missing schemas are written directly to the server via\n   * this function instead of being inserted into the local RxDB collection.\n   *\n   * This avoids triggering replication push for bulk seed operations, which\n   * causes RC_PUSH timeout errors when many schemas are created at once.\n   * The caller is responsible for triggering a pull re-sync after seeding\n   * to bring the server-side documents into the local IndexedDB.\n   *\n   * Receives a batch of fully-constructed {@link SchemaModel} documents.\n   * Called once per batch; awaits completion before moving to the next.\n   */\n  writeViaRest?: (docs: SchemaModel[]) => Promise<void>\n}\n\n/**\n * Minimal interface for the RxDB schemas collection expected by the runner.\n * Using a structural interface instead of the full RxDB type so callers can\n * pass mocks in tests without dragging in the RxDB peer dependency.\n */\ninterface SchemasCollection {\n  findOne(query: { selector: { name: string; orgId: string } }): {\n    exec(): Promise<SchemaModel | null>\n  }\n  find(query: { selector: Record<string, unknown> }): {\n    exec(): Promise<SchemaModel[]>\n  }\n  insert(doc: SchemaModel): Promise<unknown>\n}\n\n/**\n * Seeds built-in schema definitions into the schemas collection.\n *\n * Idempotent — fetches all existing schemas for the org in a single bulk\n * query and only inserts the ones that are missing. Safe to call on every\n * application startup.\n *\n * Placeholder values (`__SEED_ORG__`, `__SEED_WORKSPACE__`) in seed data\n * are replaced with the provided `orgId` and `workspaceId` before insert.\n *\n * Inserts are batched to avoid overwhelming replication with large push\n * payloads (which causes PayloadTooLargeError on the server).\n *\n * @param schemasCollection - An RxDB collection (or compatible mock) for schemas.\n * @param orgId - The target organisation ID; replaces {@link SEED_ORG_PLACEHOLDER}.\n * @param workspaceId - The target workspace ID; replaces {@link SEED_WORKSPACE_PLACEHOLDER}.\n * @param options - Optional batching configuration.\n * @returns Counts of created and skipped schemas.\n *\n * @example\n * const result = await seedSchemas(db.schemas, 'org_abc123', 'work_def456');\n * console.log(`created=${result.created} skipped=${result.skipped}`);\n */\nexport async function seedSchemas(\n  schemasCollection: SchemasCollection,\n  orgId: string,\n  workspaceId: string,\n  options?: SeedOptions\n): Promise<SeedResult> {\n  const batchSize = options?.batchSize ?? 5\n  const batchDelayMs = options?.batchDelayMs ?? 200\n\n  // Validate org exists if orgsCollection is provided.\n  // This prevents seeding schemas for non-existent or placeholder orgs.\n  if (options?.orgsCollection) {\n    const org = await options.orgsCollection.findOne({ selector: { id: orgId } }).exec()\n    if (!org) {\n      console.warn(`[seedSchemas] Skipping: org \"${orgId}\" not found in orgs collection`)\n      return { created: 0, skipped: 0 }\n    }\n  }\n\n  // Resolve seed list — callers can pass a subset via options.seeds.\n  const seeds = options?.seeds ?? coreSeeds\n\n  // Bulk-fetch all existing schema names for this org in a single query.\n  // This replaces N individual findOne() calls with 1 bulk find().\n  const existingDocs = await schemasCollection.find({ selector: { orgId } }).exec()\n  const existingNames = new Set(existingDocs.map(d => d.name))\n\n  const missing = seeds.filter(seed => !existingNames.has(seed.name))\n  const skipped = seeds.length - missing.length\n\n  // Fast path: all schemas already exist — nothing to insert.\n  if (missing.length === 0) {\n    return { created: 0, skipped }\n  }\n\n  // Build all documents with resolved IDs, org/workspace, and timestamps.\n  const now = new Date().toISOString()\n  const docsToCreate: SchemaModel[] = missing.map(seed => ({\n    ...seed,\n    id: deterministicSchemaId(seed.orgId === SEED_ORG_PLACEHOLDER ? orgId : seed.orgId, seed.name),\n    orgId: seed.orgId === SEED_ORG_PLACEHOLDER ? orgId : seed.orgId,\n    workspaceId: seed.workspaceId === SEED_WORKSPACE_PLACEHOLDER ? workspaceId : seed.workspaceId,\n    createdAt: now,\n    updatedAt: now,\n  }))\n\n  let created = 0\n\n  if (options?.writeViaRest) {\n    // Write directly to the server REST API in batches.\n    // Avoids local RxDB insert, which would trigger replication push with a\n    // massive payload — the root cause of RC_PUSH timeout errors on seed.\n    for (let i = 0; i < docsToCreate.length; i += batchSize) {\n      const batch = docsToCreate.slice(i, i + batchSize)\n      await options.writeViaRest(batch)\n      created += batch.length\n\n      // Yield between batches to avoid overwhelming the server\n      if (i + batchSize < docsToCreate.length) {\n        await new Promise(resolve => setTimeout(resolve, batchDelayMs))\n      }\n    }\n  } else {\n    // Original path: insert into local RxDB collection.\n    // Replication push syncs each batch to the server.\n    let batchCount = 0\n    for (const doc of docsToCreate) {\n      await schemasCollection.insert(doc)\n      created++\n      batchCount++\n\n      // Yield between batches so replication can flush smaller push payloads\n      if (batchCount >= batchSize) {\n        batchCount = 0\n        await new Promise(resolve => setTimeout(resolve, batchDelayMs))\n      }\n    }\n  }\n\n  return { created, skipped }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaMigration } from './types'\n\n/**\n * In-memory registry of all known schema migrations.\n *\n * Migrations are registered by schema name and version. The registry ensures\n * versions are unique per schema and provides sorted access for the runner.\n *\n * Design note: sorting on insert (not on read) keeps getMigrationsForSchema\n * O(1) at the cost of a slightly more expensive register(). Since registration\n * happens at startup and reads happen at runtime, this is the right trade-off.\n */\nexport class MigrationRegistry {\n  private readonly migrations = new Map<string, SchemaMigration[]>()\n\n  /**\n   * Register a migration.\n   *\n   * @throws {Error} If a migration with the same schema name and version\n   *   is already registered. Duplicate versions indicate a programming error\n   *   that must be caught at startup, not silently overwritten.\n   */\n  register(migration: SchemaMigration): void {\n    const existing = this.migrations.get(migration.schema) ?? []\n\n    if (existing.some(m => m.version === migration.version)) {\n      throw new Error(\n        `Duplicate migration version ${migration.version} for schema '${migration.schema}'`\n      )\n    }\n\n    existing.push(migration)\n    existing.sort((a, b) => a.version - b.version)\n    this.migrations.set(migration.schema, existing)\n  }\n\n  /**\n   * Get all migrations for a schema, sorted by version ascending.\n   * Returns an empty array for schemas with no registered migrations.\n   */\n  getMigrationsForSchema(name: string): SchemaMigration[] {\n    return this.migrations.get(name) ?? []\n  }\n\n  /**\n   * Get migrations with version strictly greater than `currentVersion`,\n   * sorted ascending. These are the migrations the runner must apply next.\n   */\n  getPendingMigrations(name: string, currentVersion: number): SchemaMigration[] {\n    return this.getMigrationsForSchema(name).filter(m => m.version > currentVersion)\n  }\n\n  /**\n   * Get all registered migrations grouped by schema name.\n   * Returns a defensive copy — callers cannot mutate registry state.\n   */\n  getAllMigrations(): Map<string, SchemaMigration[]> {\n    return new Map(this.migrations)\n  }\n\n  /**\n   * Get all schema names that have at least one registered migration,\n   * sorted alphabetically.\n   */\n  getSchemaNames(): string[] {\n    return Array.from(this.migrations.keys()).sort()\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaModel } from '../../models/Schema'\nimport type { RecordModel } from '../../models/Record'\nimport type { MigrationHistoryEntry, MigrationRunnerOptions, SchemaMigrationResult } from './types'\nimport type { MigrationRegistry } from './registry'\n\n/**\n * Structural interface for the schemas collection.\n * Accepts both RxDB collections and REST-compatible wrappers.\n */\ninterface SchemasCollection {\n  find(query: { selector: Record<string, unknown> }): {\n    exec(): Promise<SchemaModel[]>\n  }\n  update(id: string, patch: Partial<SchemaModel>): Promise<unknown>\n}\n\n/**\n * Structural interface for the records collection.\n */\ninterface RecordsCollection {\n  find(query: { selector: Record<string, unknown> }): {\n    exec(): Promise<RecordModel[]>\n  }\n  update(id: string, patch: Partial<RecordModel>): Promise<unknown>\n}\n\n/**\n * Determine the effective migration version for a schema.\n *\n * If the schema has `metadata.lastMigrationVersion`, use that value.\n * Otherwise fall back to the schema's own `version` field — this treats\n * schemas that predate the migration system as already at their declared\n * version, so no spurious re-migrations are triggered on first run.\n */\nfunction getEffectiveVersion(schema: SchemaModel): number {\n  const metadata = (schema as any).metadata as Record<string, unknown> | undefined\n  if (metadata && typeof metadata.lastMigrationVersion === 'number') {\n    return metadata.lastMigrationVersion\n  }\n  return schema.version\n}\n\n/**\n * Run all pending migrations across all orgs.\n *\n * Algorithm:\n * 1. Discover all builtIn schemas from the collection\n * 2. Extract the distinct set of orgIds across those schemas\n * 3. For each org, iterate every builtIn schema and compute pending migrations\n * 4. Apply schema-definition changes (field additions, renames, etc.)\n * 5. Optionally migrate existing record data via `migrateData` transforms\n * 6. Persist the updated schema (with audit history) unless dryRun is set\n *\n * Isolation contract: record write errors are captured per-record and do NOT\n * abort the migration for that schema. The schema definition is still updated\n * so subsequent runs can proceed cleanly. Callers should inspect\n * `result.errors` and re-drive failed records through compensating logic.\n *\n * @param registry     - The populated MigrationRegistry for this deployment\n * @param schemasCollection - Collection holding SchemaModel documents\n * @param recordsCollection - Collection holding RecordModel documents\n * @param options       - Optional runner controls (dryRun, filter, etc.)\n * @returns One result per (org, schema) pair that had pending migrations\n */\nexport async function runMigrations(\n  registry: MigrationRegistry,\n  schemasCollection: SchemasCollection,\n  recordsCollection: RecordsCollection,\n  options: MigrationRunnerOptions = {}\n): Promise<SchemaMigrationResult[]> {\n  const { dryRun = false, schemas: schemaFilter } = options\n  const results: SchemaMigrationResult[] = []\n\n  // 1. Discover all builtIn schemas — non-builtIn schemas are user-defined\n  //    and must never be touched by the product migration runner.\n  const allSchemas = await schemasCollection.find({ selector: { builtIn: true } }).exec()\n\n  // 2. Get distinct orgIds so we process each tenant independently.\n  const orgIds = [...new Set(allSchemas.map(s => s.orgId))]\n\n  // 3. Iterate per org, then per schema within that org.\n  for (const orgId of orgIds) {\n    const orgSchemas = allSchemas.filter(s => s.orgId === orgId)\n\n    for (const schema of orgSchemas) {\n      // Apply the optional name filter supplied by the caller.\n      if (schemaFilter && !schemaFilter.includes(schema.name)) continue\n\n      const currentVersion = getEffectiveVersion(schema)\n      const pending = registry.getPendingMigrations(schema.name, currentVersion)\n\n      // Nothing to do for this schema in this org.\n      if (pending.length === 0) continue\n\n      const result: SchemaMigrationResult = {\n        schema: schema.name,\n        orgId,\n        fromVersion: currentVersion,\n        toVersion: pending[pending.length - 1].version,\n        migrationsApplied: pending.length,\n        recordsUpdated: 0,\n        errors: [],\n        dryRun,\n      }\n\n      // 4. Apply each migration's schema changes in ascending version order.\n      //    We accumulate the transformed schema in memory so each migration\n      //    sees the output of the previous one, not the original.\n      let currentSchema = { ...schema }\n\n      for (const migration of pending) {\n        const changes = migration.schemaChanges(currentSchema)\n        currentSchema = { ...currentSchema, ...changes }\n\n        // 5. Migrate existing record data when the migration defines it.\n        if (migration.migrateData) {\n          const records = await recordsCollection.find({ selector: { schemaId: schema.id } }).exec()\n\n          for (const record of records) {\n            try {\n              const transformed = migration.migrateData(record)\n              if (!dryRun) {\n                await recordsCollection.update(record.id, transformed)\n              }\n              result.recordsUpdated++\n            } catch (err) {\n              // Capture but do not rethrow — schema upgrade continues.\n              result.errors.push({\n                recordId: record.id,\n                error: (err as Error).message,\n              })\n            }\n          }\n        }\n      }\n\n      // 6. Persist the updated schema definition with migration audit trail.\n      if (!dryRun) {\n        const existingMetadata = (currentSchema as any).metadata ?? {}\n        const existingHistory: MigrationHistoryEntry[] =\n          (existingMetadata.migrationHistory as MigrationHistoryEntry[]) ?? []\n\n        const newHistory: MigrationHistoryEntry[] = [\n          ...existingHistory,\n          ...pending.map(m => ({\n            version: m.version,\n            appliedAt: new Date().toISOString(),\n            description: m.description,\n          })),\n        ]\n\n        await schemasCollection.update(schema.id, {\n          ...currentSchema,\n          metadata: {\n            ...existingMetadata,\n            lastMigrationVersion: result.toVersion,\n            migrationHistory: newHistory,\n          },\n        } as any)\n      }\n\n      results.push(result)\n    }\n  }\n\n  return results\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaMigration } from '../types'\n\n/**\n * Baseline migration for contentpieces.\n * Establishes version 1 as the starting point for migration tracking.\n * No data changes — existing records are already at this schema version.\n */\nexport const migration: SchemaMigration = {\n  schema: 'contentpieces',\n  version: 1,\n  description: 'Establish baseline for contentpieces schema',\n  schemaChanges: schema => ({\n    ...schema,\n    version: 1,\n  }),\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaMigration } from '../types'\nimport { migration as baseline } from './001-baseline'\n\n/** All contentpieces migrations in version order. */\nexport const contentpiecesMigrations: SchemaMigration[] = [baseline]\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaMigration } from '../types'\n\n/**\n * Add `description` field to missions schema.\n *\n * ProposalService carries the proposal description forward to the mission,\n * but the v1 schema omitted the field. This migration adds it as an optional\n * richtext field and bumps all existing records to v2 (no data transform\n * needed — existing missions simply have no description).\n */\nexport const migration: SchemaMigration = {\n  schema: 'missions',\n  version: 2,\n  description: 'Add description field to missions schema',\n  schemaChanges: schema => {\n    const existingFields: Record<string, unknown>[] = schema.fields ?? []\n\n    // Insert description after title (order 2), bump subsequent orders\n    const updatedFields: Record<string, unknown>[] = existingFields.map(f => {\n      const order = (f.order as number) ?? 0\n      return {\n        ...f,\n        order: order >= 2 ? order + 1 : order,\n      }\n    })\n\n    updatedFields.push({\n      name: 'description',\n      label: 'Description',\n      type: 'richtext',\n      required: false,\n      order: 2,\n      config: { placeholder: 'Mission description carried from proposal' },\n    })\n\n    return {\n      ...schema,\n      version: 2,\n      fields: updatedFields,\n    }\n  },\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaMigration } from '../types'\nimport { migration as v002 } from './002-add-description'\n\nexport const missionsMigrations: SchemaMigration[] = [v002]\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SchemaMigration } from './types'\nimport { MigrationRegistry } from './registry'\nimport { contentpiecesMigrations } from './contentpieces/index'\nimport { missionsMigrations } from './missions/index'\n\n/**\n * All known schema migrations aggregated from per-schema directories.\n *\n * When adding a new schema's migrations, import them here and add to the array.\n */\nconst allMigrationArrays: SchemaMigration[][] = [\n  contentpiecesMigrations,\n  missionsMigrations,\n  // Add new schema migrations here as they are created:\n  // dealsMigrations,\n  // audiencesMigrations,\n]\n\n/** Flat list of all migrations across all schemas. */\nexport const allMigrations: SchemaMigration[] = allMigrationArrays.flat()\n\n/**\n * Create a MigrationRegistry pre-loaded with all known migrations.\n * This is the primary entry point for the CLI and other consumers.\n */\nexport function createMigrationRegistry(): MigrationRegistry {\n  const registry = new MigrationRegistry()\n  for (const migration of allMigrations) {\n    registry.register(migration)\n  }\n  return registry\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ClassLevelPermissions } from '../../types/schema'\nexport type { ClassLevelPermissions } from '../../types/schema'\n\n/**\n * Default CLP applied to all built-in collections.\n * Matches current implicit behavior: authenticated users can read;\n * contributor role can create/update/delete.\n */\nexport const DEFAULT_CLP: ClassLevelPermissions = {\n  create: { 'role:contributor': true },\n  read: { authenticated: true },\n  list: { authenticated: true },\n  update: { 'role:contributor': true },\n  delete: { 'role:manager': true },\n  share: { 'role:owner': true },\n  aclEnabled: false,\n}\n\n/** Collections that opt in to row-level ACL. */\nexport const ACL_ENABLED_COLLECTIONS = ['documents', 'records'] as const\n\n/** Per-collection CLP overrides (merged over DEFAULT_CLP during seeding). */\nexport const COLLECTION_CLP_OVERRIDES: Record<string, Partial<ClassLevelPermissions>> = {\n  documents: { aclEnabled: true },\n  records: { aclEnabled: true },\n  servicekeys: {\n    create: { 'role:manager': true },\n    read: { 'role:manager': true },\n    list: { 'role:manager': true },\n    update: { 'role:manager': true },\n    delete: { 'role:manager': true },\n    share: { 'role:owner': true },\n    aclEnabled: true,\n  },\n  vaults: {\n    create: { 'role:manager': true },\n    read: { 'role:manager': true },\n    list: { 'role:manager': true },\n    update: { 'role:manager': true },\n    delete: { 'role:manager': true },\n    share: { 'role:owner': true },\n    aclEnabled: true,\n  },\n  vaultitems: {\n    create: { 'role:manager': true },\n    read: { 'role:manager': true },\n    list: { 'role:manager': true },\n    update: { 'role:manager': true },\n    delete: { 'role:manager': true },\n    share: { 'role:owner': true },\n    aclEnabled: true,\n  },\n  discord_mappings: {\n    create: { 'role:manager': true },\n    update: { 'role:manager': true },\n  },\n  discord_channels: {\n    create: { 'role:manager': true },\n    update: { 'role:manager': true },\n  },\n}\n\n/**\n * Built-in collection names that receive a default CLP schema record.\n * These match the collection names registered in db-collections/src/index.ts.\n * RBAC collections and system collections (users, workers) are excluded.\n */\nexport const BUILT_IN_COLLECTION_NAMES: string[] = [\n  'activities',\n  'appsnapshots',\n  'approvals',\n  'attributes',\n  'codebases',\n  'conversations',\n  'discussions',\n  'documents',\n  'goals',\n  'messages',\n  'milestones',\n  'orgs',\n  'processexecutions',\n  'processsteps',\n  'processes',\n  'projects',\n  'records',\n  'relations',\n  'schemas',\n  'servicekeys',\n  'steptemplates',\n  'tasks',\n  'teammembers',\n  'templates',\n  'timeentries',\n  'vaults',\n  'vaultitems',\n  'workspaces',\n  'discord_mappings',\n  'discord_channels',\n]\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\nimport { createId } from '../../utils/id'\nimport { BUILT_IN_COLLECTION_NAMES, COLLECTION_CLP_OVERRIDES, DEFAULT_CLP } from './clpSeeds'\nimport type { ClassLevelPermissions } from './clpSeeds'\n\nexport interface SeedBuiltInCLPResult {\n  total: number\n  created: number\n  updated: number\n  skipped: number\n}\n\ninterface SchemasLike {\n  find(query: { selector: Record<string, unknown> }): {\n    exec(): Promise<\n      Array<{\n        id: string\n        classLevelPermissions?: ClassLevelPermissions\n        update?: (patch: { $set: Record<string, unknown> }) => Promise<unknown>\n        [key: string]: unknown\n      }>\n    >\n  }\n  update?: (id: string, patch: Record<string, unknown>) => Promise<unknown>\n  upsert(doc: object): Promise<unknown>\n}\n\n/**\n * Idempotent: seeds a default CLP schema record for each built-in collection.\n * Skips collections that already have a builtIn schema record.\n *\n * These are marker records — they carry no field definitions. Their sole purpose\n * is to attach a {@link ClassLevelPermissions} object to each native RxDB\n * collection so the RBAC enforcement layer has something to evaluate against.\n *\n * @param schemasCollection - RxDB schemas collection or a compatible mock.\n * @param orgId - The organisation to seed CLP records for.\n * @param clp - The CLP to apply; defaults to {@link DEFAULT_CLP}.\n * @returns Counts of created, skipped, and total records processed.\n */\nexport async function seedBuiltInCLP(\n  schemasCollection: SchemasLike,\n  orgId: string,\n  clp: ClassLevelPermissions = DEFAULT_CLP\n): Promise<SeedBuiltInCLPResult> {\n  let created = 0\n  let updated = 0\n  let skipped = 0\n\n  for (const collectionName of BUILT_IN_COLLECTION_NAMES) {\n    const effectiveCLP = COLLECTION_CLP_OVERRIDES[collectionName]\n      ? { ...clp, ...COLLECTION_CLP_OVERRIDES[collectionName] }\n      : clp\n\n    const results = await schemasCollection\n      .find({ selector: { name: collectionName, orgId, builtIn: true } })\n      .exec()\n\n    if (results.length > 0) {\n      const existing = results[0]\n      if (\n        existing &&\n        shouldUpgradeBuiltInCLP(collectionName, existing.classLevelPermissions, effectiveCLP, clp)\n      ) {\n        await updateExistingBuiltInCLP(schemasCollection, existing, effectiveCLP)\n        updated++\n        continue\n      }\n      skipped++\n      continue\n    }\n\n    const now = new Date().toISOString()\n    await schemasCollection.upsert({\n      id: createId('schemas'),\n      name: collectionName,\n      title: collectionName.charAt(0).toUpperCase() + collectionName.slice(1),\n      description: `Built-in collection: ${collectionName}`,\n      category: 'system',\n      // 'records' is required by SchemaModel but has no semantic meaning here — these are\n      // CLP marker records for native collections, not VCA-backed virtual collections.\n      target: 'records',\n      titleField: 'title',\n      orgId,\n      builtIn: true,\n      version: 1,\n      archived: false,\n      fields: [],\n      classLevelPermissions: effectiveCLP,\n      createdAt: now,\n      updatedAt: now,\n    })\n    created++\n  }\n\n  return { total: BUILT_IN_COLLECTION_NAMES.length, created, updated, skipped }\n}\n\nfunction shouldUpgradeBuiltInCLP(\n  collectionName: string,\n  existingCLP: ClassLevelPermissions | undefined,\n  effectiveCLP: ClassLevelPermissions,\n  defaultCLP: ClassLevelPermissions\n): boolean {\n  if (!COLLECTION_CLP_OVERRIDES[collectionName]) return false\n  if (deepEqual(existingCLP, effectiveCLP)) return false\n  return existingCLP === undefined || deepEqual(existingCLP, defaultCLP)\n}\n\nasync function updateExistingBuiltInCLP(\n  schemasCollection: SchemasLike,\n  existing: {\n    id: string\n    update?: (patch: { $set: Record<string, unknown> }) => Promise<unknown>\n    [key: string]: unknown\n  },\n  classLevelPermissions: ClassLevelPermissions\n): Promise<void> {\n  const patch = {\n    classLevelPermissions,\n    updatedAt: new Date().toISOString(),\n  }\n\n  if (schemasCollection.update) {\n    await schemasCollection.update(existing.id, patch)\n    return\n  }\n\n  if (existing.update) {\n    await existing.update({ $set: patch })\n    return\n  }\n\n  await schemasCollection.upsert({ ...existing, ...patch })\n}\n\nfunction deepEqual(left: unknown, right: unknown): boolean {\n  return JSON.stringify(left) === JSON.stringify(right)\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Collection tier definitions for community vs premium editions.\n *\n * RxDB free tier limits databases to 13 collections. This module defines\n * which collections are included in the community (free) tier and provides\n * a selector function used by host apps at database initialization time.\n */\n\nimport type { CollectionMode } from './config/CollectionModeConfig'\n\n/**\n * Collections included in the free community edition (max 13 for RxDB free tier).\n *\n * These cover core project management, document storage, team collaboration,\n * and the schema/record system needed for virtual collection support.\n */\nexport const COMMUNITY_COLLECTIONS = [\n  'orgs',\n  'users',\n  'workspaces',\n  'projects',\n  'milestones',\n  'tasks',\n  'documents',\n  'discussions',\n  'teammembers',\n  'schemas',\n  'records',\n  'goals',\n  'templates',\n] as const;\n\nexport type CommunityCollectionName = (typeof COMMUNITY_COLLECTIONS)[number];\n\n/**\n * All 32 core collection names across both community and premium tiers.\n */\nexport const ALL_COLLECTION_NAMES = [\n  ...COMMUNITY_COLLECTIONS,\n  'appsnapshots',\n  'approvals',\n  'activities',\n  'attributes',\n  'codebases',\n  'conversations',\n  'messages',\n  'processexecutions',\n  'processes',\n  'processsteps',\n  'steptemplates',\n  'relations',\n  'rolememberships',\n  'roles',\n  'servicekeys',\n  'timeentries',\n  'vaultitems',\n  'vaults',\n  'workers',\n] as const;\n\nexport type CollectionName = (typeof ALL_COLLECTION_NAMES)[number];\n\n/**\n * Build per-collection mode map based on premium status.\n *\n * - Premium: all 32 collections → 'local' (empty map, defaultMode handles it)\n * - Community: 13 community collections → 'local', remaining 19 → 'remote'\n */\nexport function buildCollectionModes(\n  premium: boolean,\n): Record<string, CollectionMode> {\n  // Premium: return empty map — defaultMode 'local' handles all\n  if (premium) return {}\n\n  const communitySet = new Set<string>(COMMUNITY_COLLECTIONS)\n  const result: Record<string, CollectionMode> = {}\n  for (const name of ALL_COLLECTION_NAMES) {\n    result[name] = communitySet.has(name) ? 'local' : 'remote'\n  }\n  return result\n}\n\n/**\n * Select collections for the active tier.\n *\n * @param allCollections - Full collection map (all 32 collections)\n * @param premium - Whether premium edition is active\n * @returns Filtered collection map (13 for free, all for premium)\n */\nexport function getCollectionsForTier(\n  allCollections: Record<string, any>,\n  premium: boolean,\n): Record<string, any> {\n  if (premium) return allCollections;\n\n  const allowed = new Set<string>(COMMUNITY_COLLECTIONS);\n  const result: Record<string, any> = {};\n  for (const name of allowed) {\n    if (allCollections[name]) {\n      result[name] = allCollections[name];\n    }\n  }\n  return result;\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Collection storage mode configuration.\n *\n * Determines whether each collection is served from local RxDB (IndexedDB)\n * or remote D1 REST API. Community tier routes 19 collections to remote;\n * premium tier keeps all 32 local.\n */\n\nexport type CollectionMode = 'local' | 'remote'\n\nexport interface CollectionModeConfig {\n  /** Base URL for D1 REST API (remote collections) */\n  apiBaseUrl: string\n  /** Auth token getter for remote requests */\n  getAuthToken: () => Promise<string>\n  /** Default mode when collection not explicitly listed */\n  defaultMode: CollectionMode\n  /** Per-collection mode overrides */\n  collections: Record<string, CollectionMode>\n  /** react-query defaults for remote collections */\n  remoteDefaults?: {\n    staleTime?: number // default: 30_000 (30s)\n    refetchInterval?: number // default: false (manual)\n    gcTime?: number // default: 300_000 (5min)\n  }\n}\n\n/**\n * Resolve the storage mode for a given collection.\n *\n * Checks explicit per-collection overrides first, then falls back to defaultMode.\n */\nexport function getCollectionMode(\n  config: CollectionModeConfig,\n  name: string,\n): CollectionMode {\n  return config.collections[name] ?? config.defaultMode\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * D1 REST API client for remote collection access.\n *\n * Provides typed query/get/set methods matching the D1 REST endpoint\n * conventions. Used by remote hooks to fetch and mutate collection data\n * when a collection is in 'remote' mode (community tier).\n */\n\nimport type { CollectionModeConfig } from '../../config/CollectionModeConfig'\n\nexport interface D1QueryParams {\n  selector?: Record<string, unknown>\n  sort?: Array<Record<string, 'asc' | 'desc'>>\n  limit?: number\n  skip?: number\n}\n\nexport class D1Client {\n  constructor(private readonly config: CollectionModeConfig) {}\n\n  async query<T = Record<string, unknown>>(\n    collection: string,\n    params: D1QueryParams = {},\n  ): Promise<T[]> {\n    const res = await this.fetch(`/${collection}-rest/v1/query`, {\n      method: 'POST',\n      body: JSON.stringify(params),\n    })\n    const json = await res.json()\n    return (json as { results?: T[] }).results ?? []\n  }\n\n  async get<T = Record<string, unknown>>(\n    collection: string,\n    ids: string[],\n  ): Promise<T[]> {\n    const res = await this.fetch(`/${collection}-rest/v1/get`, {\n      method: 'POST',\n      body: JSON.stringify({ ids }),\n    })\n    const json = await res.json()\n    return (json as { results?: T[] }).results ?? []\n  }\n\n  async set<T = Record<string, unknown>>(\n    collection: string,\n    doc: Partial<T>,\n  ): Promise<T> {\n    const res = await this.fetch(`/${collection}-rest/v1/set`, {\n      method: 'POST',\n      body: JSON.stringify(doc),\n    })\n    return res.json() as Promise<T>\n  }\n\n  private async fetch(path: string, init: RequestInit): Promise<Response> {\n    const token = await this.config.getAuthToken()\n    const res = await globalThis.fetch(`${this.config.apiBaseUrl}${path}`, {\n      ...init,\n      headers: {\n        'Content-Type': 'application/json',\n        Authorization: `Bearer ${token}`,\n        ...init.headers,\n      },\n    })\n    if (!res.ok) {\n      throw new D1ClientError(res.status, await res.text(), path)\n    }\n    return res\n  }\n}\n\nexport class D1ClientError extends Error {\n  constructor(\n    public readonly status: number,\n    public readonly body: string,\n    public readonly path: string,\n  ) {\n    super(`D1 REST ${status}: ${path}`)\n    this.name = 'D1ClientError'\n  }\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Query key factory for @tanstack/react-query cache management.\n *\n * Follows the query key factory pattern so that cache invalidation\n * can target all queries for a collection, a specific query shape,\n * or a single document.\n */\n\nimport type { D1QueryParams } from './d1Client'\n\nexport const collectionKeys = {\n  all:    (name: string) => [name] as const,\n  query:  (name: string, params: D1QueryParams) => [name, 'query', params] as const,\n  get:    (name: string, ids: string[]) => [name, 'get', ids] as const,\n  single: (name: string, id: string) => [name, 'single', id] as const,\n}\n","// Copyright 2026 Epic Digital Interactive Media LLC\n// SPDX-License-Identifier: Apache-2.0\n\n// Re-export ID utilities\nimport { createId } from './utils/id'\nexport {\n  createId,\n  safeNanoid,\n  ENTITY_TO_PREFIX,\n  ID_PREFIX_TO_COLLECTION,\n  getCollectionFromId,\n  getEntityTypeFromId,\n} from './utils/id'\n\n// Utilities\nexport * from './utils'\n\n// Query libs\nexport { getInbox, getAgentInbox } from './queries/agentInbox'\nexport type {\n  TaskInboxItem,\n  MentionInboxItem,\n  ReplyInboxItem,\n  ConversationInboxItem,\n  ApprovalInboxItem,\n  DescriptionMentionInboxItem,\n  AgentInboxResult,\n  InboxIdentity,\n  AgentInboxIdentity,\n  UserInboxIdentity,\n  AgentInboxOpts,\n  AgentInboxCollections,\n} from './queries/agentInbox'\nexport {\n  getDirectReports,\n  getDescendants,\n  assertCanControl,\n  assertCanReport,\n} from './queries/agentHierarchy'\nexport type {\n  AgentHierarchyRecord,\n  AgentHierarchyCollections,\n  AgentHierarchyInput,\n} from './queries/agentHierarchy'\nexport { getSubordinateReport } from './queries/subordinateReport'\nexport type {\n  SubordinateReportOptions,\n  SubordinateControlPlaneReport,\n  SubordinateAgentReport,\n  SubordinateInboxSummary,\n  SubordinateBlockerReference,\n  SubordinateReportCollections,\n  SubordinateTeamMemberRecord,\n  TeamMemberReportSource,\n  AgentRecordSource,\n} from './queries/subordinateReport'\n\n// Zod validation schemas\nexport * from './schemas/index'\n\nimport { Collection as AppSnapshotCollection } from './models/AppSnapshot'\nimport { Collection as ApprovalCollection } from './models/Approval'\nimport { Collection as CodebaseCollection } from './models/Codebase'\nimport { Collection as DiscussionCollection } from './models/Discussion'\nimport { Collection as MilestoneCollection } from './models/Milestone'\nimport { Collection as OrgCollection } from './models/Org'\nimport { Collection as ProjectCollection } from './models/Project'\nimport { Collection as DocumentCollection } from './models/Document'\nimport { Collection as TaskCollection } from './models/Task'\nimport { Collection as TemplateCollection } from './models/Template'\nimport { Collection as UserCollection } from './models/User'\nimport { Collection as WorkspaceCollection } from './models/Workspace'\nimport { Collection as SchemaCollection } from './models/Schema'\nimport { Collection as RecordCollection } from './models/Record'\nimport { Collection as RelationCollection } from './models/Relation'\nimport { Collection as VaultCollection } from './models/Vault'\nimport { Collection as VaultItemCollection } from './models/VaultItem'\nimport { Collection as ServiceKeyCollection } from './models/ServiceKey'\nimport { Collection as WorkerCollection } from './models/Worker'\nimport { Collection as AttributeCollection } from './models/Attribute'\nimport { Collection as ActivityCollection } from './models/Activity'\nimport { Collection as TeamMemberCollection } from './models/TeamMember'\nimport { Collection as TimeEntryCollection } from './models/TimeEntry'\nimport { Collection as ConversationCollection } from './models/Conversation'\nimport { Collection as MessageCollection } from './models/Message'\nimport { Collection as GoalCollection } from './models/Goal'\nimport { Collection as ProcessesCollection } from './models/Processes'\nimport { Collection as ProcessExecutionsCollection } from './models/ProcessExecutions'\nimport { Collection as ProcessStepsCollection } from './models/ProcessSteps'\nimport { Collection as StepTemplatesCollection } from './models/StepTemplates'\nimport { Collection as RoleCollection } from './models/Role'\nimport { Collection as RoleMembershipCollection } from './models/RoleMembership'\n\n// Export all models (using actual export names from each file)\nexport type { FinAccountModel } from './virtual/types/FinAccount'\nexport type { AppSnapshotModel } from './models/AppSnapshot'\nexport type { ApprovalModel } from './models/Approval'\nexport type { AttributeModel } from './models/Attribute'\nexport type { BudgetModel } from './virtual/types/FinBudget'\nexport type { FinCategoryModel } from './virtual/types/FinCategory'\nexport type { ClientModel } from './virtual/types/Client'\nexport type { CodebaseModel } from './models/Codebase'\nexport type { ContactModel } from './virtual/types/Contact'\nexport type { ConversationModel } from './models/Conversation'\nexport type { ConversationSettings, ConversationMetadata } from './types/conversation'\nexport type { DiscussionModel } from './models/Discussion'\nexport type { FlowModel } from './virtual/types/Flow'\nexport type { GoalModel } from './models/Goal'\nexport type {\n  GoalMetric,\n  GoalMetricType,\n  GoalMetricTrend,\n  GoalStatus,\n  GoalProgressMode,\n  GoalCategory,\n} from './types/goal'\nexport type { MessageModel } from './models/Message'\nexport type { MessageMetadata, ToolCall } from './types/message'\nexport type { MilestoneModel } from './models/Milestone'\nexport type { MilestoneMetadata } from './types/milestone'\nexport type { OpportunityModel } from './virtual/types/Opportunity'\nexport type { OrgModel } from './models/Org'\nexport type { OrgMetadata } from './types/org'\nexport type {\n  ProductModel,\n  ProductType,\n  ProductPhase,\n  ProductKpi,\n  KpiTrend,\n  PhaseHistoryEntry,\n  ProductMetadata,\n} from './virtual/types/Product'\nexport type { ProjectModel } from './models/Project'\nexport type { ProjectMetadata } from './types/project'\nexport type { RoadmapModel } from './virtual/types/Roadmap'\nexport type { FinScheduledTransactionModel } from './virtual/types/FinScheduledTransaction'\nexport type {\n  SessionModel,\n  SessionContext,\n  TerminalConnectionStatus,\n  ShellType,\n  SessionScopeEntityType,\n} from './virtual/types/Session'\nexport type { DocumentModel } from './models/Document'\nexport type { DocumentStorageInfo } from './types/document'\nexport type { TaskModel } from './models/Task'\nexport type { TaskMetadata } from './types/task'\nexport type { TemplateModel } from './models/Template'\nexport type {\n  TemplateCategory,\n  TemplateItem,\n  MilestoneTemplateItem,\n  TaskTemplateItem,\n  SubtaskTemplateItem,\n  ProjectTemplateData,\n} from './types/template'\nexport type { TimeEntryModel } from './models/TimeEntry'\nexport type { FinTransactionModel } from './virtual/types/FinTransaction'\nexport type {\n  FinIncomeStatementModel,\n  LinkedStatementRef,\n  StatementPeriod,\n} from './virtual/types/FinIncomeStatement'\nexport type { UserModel } from './models/User'\nexport type { VariablesModel } from './virtual/types/Variables'\nexport type { WorkspaceModel } from './models/Workspace'\nexport type { SyncConfigModel, SyncFieldMapping } from './virtual/types/SyncConfig'\nexport type { ProcessesModel } from './models/Processes'\n// ProcessModel alias for backward compat\nexport type { ProcessesModel as ProcessModel } from './models/Processes'\nexport type {\n  ProcessMetadata,\n  ProcessTriggerType,\n  ProcessTrigger,\n  ProcessSchema,\n  ProcessStatistics,\n  ProcessExecutionConfig,\n  QueueBehavior,\n  FlowStateEntityTrigger,\n  FlowStateTriggerCondition,\n  TriggerConditionOperator,\n  TriggerDebounceConfig,\n  TriggerEntityType,\n} from './types/process'\n// ProcessStatus and ProcessCategory already in types.ts — re-export from there\nexport type { ProcessStatus, ProcessCategory } from './types'\nexport type { ProcessStepsModel } from './models/ProcessSteps'\n// ProcessStepModel alias for backward compat\nexport type { ProcessStepsModel as ProcessStepModel } from './models/ProcessSteps'\nexport type {\n  ProcessStepMetadata,\n  ProcessStepStatus,\n  StepAction,\n  StepCondition,\n  StepOutput,\n  StepPosition,\n  SubprocessConfig,\n  SubprocessFailureStrategy,\n  AgentTaskConfig,\n  CommandConfig,\n  ContainerConfig,\n  ContainerVolumeMount,\n  ContainerResources,\n} from './types/processStep'\n// ProcessStepType already in types.ts — re-export from there\nexport type { ProcessStepType } from './types'\nexport type { ProcessExecutionsModel } from './models/ProcessExecutions'\n// ProcessExecutionModel alias for backward compat\nexport type { ProcessExecutionsModel as ProcessExecutionModel } from './models/ProcessExecutions'\nexport type {\n  ProcessExecutionMetadata,\n  ProcessExecutionStatus,\n  StepExecutionRecord,\n  ExecutionContext,\n  TriggerSourceEntity,\n} from './types/processExecution'\nexport type { StepTemplatesModel } from './models/StepTemplates'\n// StepTemplateModel alias for backward compat\nexport type { StepTemplatesModel as StepTemplateModel } from './models/StepTemplates'\nexport type { ProductGoalModel } from './virtual/types/ProductGoal'\n// generateActivityId was in hand-crafted Activity.ts; now Activity.ts is generated,\n// so we define it here using the already-imported createId utility.\nexport const generateActivityId = (): string => createId('activity')\nexport type { ProductProjectModel, ProductProjectRole } from './virtual/types/ProductProject'\nexport type {\n  ProductTeamMemberModel,\n  ProductTeamMemberRole,\n} from './virtual/types/ProductTeamMember'\nexport type { ActivityModel } from './models/Activity'\nexport type { ActivityEntityType, ActivityAction, ActivityChanges } from './types/activity'\nexport type { TeamMemberModel } from './models/TeamMember'\nexport type { TeamMemberRole, RaciType, RaciAssignment } from './types/teamMember'\nexport type { OrgThemeModel } from './virtual/types/OrgTheme'\nexport type { BusinessPlanModel } from './virtual/types/BusinessPlan'\nexport type {\n  MarketAnalysisModel,\n  MarketSize,\n  TargetSegment,\n  SwotAnalysis,\n} from './virtual/types/MarketAnalysis'\nexport type { CompetitorModel } from './virtual/types/Competitor'\nexport type {\n  OfferModel,\n  OfferValueStackItem,\n  OfferBonus,\n  OfferStatus,\n  OfferType,\n  GuaranteeType,\n  ScarcityType,\n  UrgencyType,\n} from './virtual/types/Offer'\nexport type {\n  CampaignModel,\n  CampaignType,\n  CampaignStatus,\n  CampaignChannel,\n  CampaignGoalType,\n} from './virtual/types/Campaign'\nexport type {\n  AudienceModel,\n  AudienceType,\n  AudienceSource,\n  AudiencePillar,\n} from './virtual/types/Audience'\nexport type {\n  LeadMagnetModel,\n  LeadMagnetType,\n  LeadMagnetDelivery,\n  LeadMagnetStatus,\n} from './virtual/types/LeadMagnet'\nexport type { CampaignContactModel, CampaignContactStatus } from './virtual/types/CampaignContact'\nexport type { CampaignProductModel, CampaignProductRole } from './virtual/types/CampaignProduct'\nexport type { DealModel, DealStage } from './virtual/types/Deal'\nexport type { PipelineModel } from './virtual/types/Pipeline'\nexport type { PipelineStageModel, PipelineStageType } from './virtual/types/PipelineStage'\nexport type { QuoteModel, QuoteStatus } from './virtual/types/Quote'\nexport type { InvoiceModel, InvoiceStatus } from './virtual/types/Invoice'\nexport type { LineItemModel, LineItemParentType } from './virtual/types/LineItem'\nexport type { DealProductModel } from './virtual/types/DealProduct'\nexport type { DealProjectModel, DealProjectRelationship } from './virtual/types/DealProject'\nexport type {\n  PartnershipModel,\n  PartnershipType,\n  PartnershipStatus,\n} from './virtual/types/Partnership'\nexport type {\n  ContentPieceModel,\n  ContentPieceStatus,\n  ContentPieceType,\n  ContentPlatform,\n  ContentPieceMetrics,\n  MessagingFramework,\n  AwarenessLevel,\n  ContentFunnelStageLevel,\n  OutlineSection,\n} from './virtual/types/ContentPiece'\nexport type { ContentPillarModel, PillarCategory } from './virtual/types/ContentPillar'\nexport type {\n  HookTemplateModel,\n  HookCategory,\n  HookSource,\n  HookVariable,\n} from './virtual/types/HookTemplate'\nexport type { ConversionCodeModel, ConversionCategory } from './virtual/types/ConversionCode'\nexport type {\n  ContentFunnelModel,\n  FunnelStatus,\n  FunnelStage,\n  FunnelMetrics,\n} from './virtual/types/ContentFunnel'\nexport type {\n  PaymentPlanModel,\n  PaymentPlanType,\n  PaymentPlanStatus,\n} from './virtual/types/PaymentPlan'\nexport type { OutreachTargetModel } from './virtual/types/OutreachTarget'\nexport type { OfferWorksheetModel, OfferWorksheetStatus } from './virtual/types/OfferWorksheet'\nexport type {\n  OfferFunnelModel,\n  OfferFunnelType,\n  OfferFunnelStatus,\n} from './virtual/types/OfferFunnel'\nexport type { SchemaModel } from './models/Schema'\nexport type {\n  FieldDefinition,\n  FieldConfig,\n  FieldType,\n  FieldRenderer,\n  SelectOption,\n  SchemaTarget,\n  ClassLevelPermissions,\n} from './types/schema'\nexport type { RoleModel } from './models/Role'\nexport type { RoleMembershipModel } from './models/RoleMembership'\nexport type { RecordModel } from './models/Record'\nexport type { RelationModel } from './models/Relation'\nexport type { VaultModel } from './models/Vault'\nexport type { VaultItemModel } from './models/VaultItem'\nexport type { VaultItemType } from './types/vaultItem'\nexport type { ServiceKeyModel } from './models/ServiceKey'\nexport type {\n  TicketModel,\n  TicketStatus,\n  TicketSeverity,\n  TicketType,\n  TicketSource,\n} from './virtual/types/Ticket'\nexport type {\n  FeedbackItemModel,\n  FeedbackType,\n  FeedbackSentiment,\n  FeedbackStatus,\n} from './virtual/types/FeedbackItem'\nexport type {\n  KbArticleModel,\n  KbArticleVisibility,\n  KbArticleStatus,\n} from './virtual/types/KbArticle'\nexport type { HealthScoreModel, PaymentStatus, HealthTrend } from './virtual/types/HealthScore'\nexport type {\n  IntegrationModel,\n  IntegrationProductType,\n  IntegrationStatus,\n} from './virtual/types/Integration'\nexport type { WorkerModel } from './models/Worker'\n\n// Export conversation management types\nexport type {\n  ConversationTurn,\n  TurnMetadata,\n  ConversationState,\n  CompressedHistory,\n  ConversationConfig,\n} from './types'\n\n// Export YNAB/Financial types\nexport type {\n  AccountType,\n  LoanAccountPeriodicValue,\n  SubtransactionSummary,\n  ScheduledTransactionFrequency,\n  TransactionFlagColor,\n  TransactionFlagName,\n  TransactionClearedStatus,\n} from './types'\n\n// Export Discussion types\nexport type { AttachmentModel, AttachmentStatus, DiscussionMention } from './types'\n\nexport { DEFAULT_CONVERSATION_CONFIG } from './types'\n\n// Export core collection classes\nexport { Collection as AppSnapshotCollection } from './models/AppSnapshot'\nexport { Collection as ApprovalCollection } from './models/Approval'\nexport { Collection as CodebaseCollection } from './models/Codebase'\nexport { Collection as DiscussionCollection } from './models/Discussion'\nexport { Collection as MilestoneCollection } from './models/Milestone'\nexport { Collection as OrgCollection } from './models/Org'\nexport { Collection as ProjectCollection } from './models/Project'\nexport { Collection as DocumentCollection } from './models/Document'\nexport { Collection as TaskCollection } from './models/Task'\nexport { Collection as TemplateCollection } from './models/Template'\nexport { Collection as UserCollection } from './models/User'\nexport { Collection as WorkspaceCollection } from './models/Workspace'\nexport { Collection as SchemaCollection } from './models/Schema'\nexport { Collection as RecordCollection } from './models/Record'\nexport { Collection as RelationCollection } from './models/Relation'\nexport { Collection as VaultCollection } from './models/Vault'\nexport { Collection as VaultItemCollection } from './models/VaultItem'\nexport { Collection as ServiceKeyCollection } from './models/ServiceKey'\nexport { Collection as WorkerCollection } from './models/Worker'\nexport { Collection as AttributeCollection } from './models/Attribute'\nexport { Collection as ActivityCollection } from './models/Activity'\nexport { Collection as TeamMemberCollection } from './models/TeamMember'\nexport { Collection as TimeEntryCollection } from './models/TimeEntry'\nexport { Collection as ConversationCollection } from './models/Conversation'\nexport { Collection as MessageCollection } from './models/Message'\nexport { Collection as GoalCollection } from './models/Goal'\nexport { Collection as ProcessesCollection } from './models/Processes'\nexport { Collection as ProcessExecutionsCollection } from './models/ProcessExecutions'\nexport { Collection as ProcessStepsCollection } from './models/ProcessSteps'\nexport { Collection as StepTemplatesCollection } from './models/StepTemplates'\nexport { Collection as RoleCollection } from './models/Role'\nexport { Collection as RoleMembershipCollection } from './models/RoleMembership'\n\nexport { VirtualCollectionAdapter, wrapRxCollection } from './core/VirtualCollectionAdapter'\nexport type { RecordCollection as RecordCollectionInterface } from './core/VirtualCollectionAdapter'\nexport { SchemaRegistry } from './core/SchemaRegistry'\nexport {\n  EncryptedCollectionAdapter,\n  deriveEncryptedFieldsConfig,\n} from './core/EncryptedCollectionAdapter'\n\nexport { migrateCollectionToRecords, migrateAll } from './migrations/migrateToRecords'\nexport type { MigrationResult } from './migrations/migrateToRecords'\n\nexport { seedBuiltInRoles } from './migrations/seedBuiltInRoles'\nexport { migrateTeamMembersToRoleMemberships } from './migrations/migrateTeamMembersToRoleMemberships'\nexport type {\n  MigrationDependencies,\n  MigrationResult as TeamMigrationResult,\n} from './migrations/migrateTeamMembersToRoleMemberships'\nexport { promoteTeamMemberAgentFields } from './migrations/promoteTeamMemberAgentFields'\nexport type {\n  PromotionDependencies,\n  PromotionResult,\n} from './migrations/promoteTeamMemberAgentFields'\n\nexport { coreSeeds, SEED_ORG_PLACEHOLDER, SEED_WORKSPACE_PLACEHOLDER } from './virtual'\nexport type { SeedSchema } from './virtual'\nexport { seedSchemas } from './virtual/seeds/runner'\nexport type { SeedResult, SeedOptions } from './virtual/seeds/runner'\nexport { seedBuiltInCLP } from './virtual/seeds/seedBuiltInCLP'\nexport type { SeedBuiltInCLPResult } from './virtual/seeds/seedBuiltInCLP'\nexport { DEFAULT_CLP, BUILT_IN_COLLECTION_NAMES } from './virtual/seeds/clpSeeds'\n\nexport {\n  MigrationRegistry,\n  runMigrations,\n  allMigrations,\n  createMigrationRegistry,\n} from './virtual/migrations/index'\nexport type {\n  SchemaMigration,\n  SchemaMigrationResult,\n  MigrationRunnerOptions,\n  MigrationHistoryEntry,\n} from './virtual/migrations/index'\n\n// Collection tier selection (community vs premium)\nexport {\n  COMMUNITY_COLLECTIONS,\n  ALL_COLLECTION_NAMES,\n  getCollectionsForTier,\n  buildCollectionModes,\n} from './tiers'\nexport type { CommunityCollectionName, CollectionName } from './tiers'\n\n// Collection mode configuration (local/remote routing)\nexport type { CollectionModeConfig, CollectionMode } from './config/CollectionModeConfig'\nexport { getCollectionMode } from './config/CollectionModeConfig'\n\n// Remote D1 adapters\nexport { D1Client, D1ClientError } from './adapters/remote/d1Client'\nexport type { D1QueryParams } from './adapters/remote/d1Client'\nexport { collectionKeys } from './adapters/remote/queryKeys'\n\nexport const collections = {\n  [AppSnapshotCollection.name]: AppSnapshotCollection,\n  [ApprovalCollection.name]: ApprovalCollection,\n  [DiscussionCollection.name]: DiscussionCollection,\n  [MilestoneCollection.name]: MilestoneCollection,\n  [OrgCollection.name]: OrgCollection,\n  [ProjectCollection.name]: ProjectCollection,\n  [DocumentCollection.name]: DocumentCollection,\n  [TaskCollection.name]: TaskCollection,\n  [TemplateCollection.name]: TemplateCollection,\n  [UserCollection.name]: UserCollection,\n  [WorkspaceCollection.name]: WorkspaceCollection,\n  [SchemaCollection.name]: SchemaCollection,\n  [RecordCollection.name]: RecordCollection,\n  [RelationCollection.name]: RelationCollection,\n  [VaultCollection.name]: VaultCollection,\n  [VaultItemCollection.name]: VaultItemCollection,\n  [ServiceKeyCollection.name]: ServiceKeyCollection,\n  [WorkerCollection.name]: WorkerCollection,\n  [AttributeCollection.name]: AttributeCollection,\n  [ActivityCollection.name]: ActivityCollection,\n  [TeamMemberCollection.name]: TeamMemberCollection,\n  [TimeEntryCollection.name]: TimeEntryCollection,\n  [ConversationCollection.name]: ConversationCollection,\n  [MessageCollection.name]: MessageCollection,\n  [GoalCollection.name]: GoalCollection,\n  [CodebaseCollection.name]: CodebaseCollection,\n  [ProcessesCollection.name]: ProcessesCollection,\n  [ProcessExecutionsCollection.name]: ProcessExecutionsCollection,\n  [ProcessStepsCollection.name]: ProcessStepsCollection,\n  [StepTemplatesCollection.name]: StepTemplatesCollection,\n  [RoleCollection.name]: RoleCollection,\n  [RoleMembershipCollection.name]: RoleMembershipCollection,\n}\n"]}