/**
 * Mock vault entries and bulk entry generator.
 * Provides realistic VaultEntry[] data for browser dev mode.
 */

import type { VaultEntry } from '../types'

const now = Date.now() / 1000

export const MOCK_ENTRIES: VaultEntry[] = [
  {
    path: '/Users/luca/Laputa/26q1-laputa-app.md',
    filename: '26q1-laputa-app.md',
    title: 'Build Laputa App',
    isA: 'Project',
    aliases: ['Laputa App'],
    belongsTo: ['[[q1-2026]]'],
    relatedTo: ['[[software-development]]'],
    status: 'Active',
    archived: false,
    modifiedAt: now,
    createdAt: now - 86400 * 60,
    fileSize: 2048,
    snippet: 'This paragraph has bold text, italic text, bold italic, strikethrough, and inline code. Here\'s a regular link and a wiki-link to Matteo Cellini.',
    wordCount: 342,
    relationships: {
      'Belongs to': ['[[q1-2026]]'],
      'Related to': ['[[software-development]]'],
      'Type': ['[[project]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['q1-2026', 'software-development', 'matteo-cellini', 'maria-bianchi', 'marco-verdi'],
    properties: { Priority: 'High', 'Due date': '2026-06-15', Owner: 'Luca Rossi' },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/grow-newsletter.md',
    filename: 'grow-newsletter.md',
    title: 'Grow Newsletter',
    isA: 'Responsibility',
    aliases: [],
    belongsTo: [],
    relatedTo: ['[[growth]]'],
    status: 'Active',
    archived: false,
    modifiedAt: now - 3600,
    createdAt: now - 86400 * 180,
    fileSize: 1024,
    snippet: 'Build a sustainable audience through high-quality weekly essays on engineering leadership, AI, and personal systems.',
    wordCount: 215,
    relationships: {
      'Has': [
        '[[on-writing-well|On Writing Well]]',
        '[[engineering-leadership-101|Engineering Leadership 101]]',
        '[[ai-agents-primer|AI Agents Primer]]',
      ],
      'Topics': ['[[growth]]', '[[writing]]'],
      'Related to': ['[[growth]]'],
      'Type': ['[[responsibility]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['on-writing-well', 'engineering-leadership-101', 'ai-agents-primer', 'growth', 'writing'],
    properties: { Priority: 'High', Rating: 5, Cadence: 'Weekly', Owner: 'Luca Rossi' },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/manage-sponsorships.md',
    filename: 'manage-sponsorships.md',
    title: 'Manage Sponsorships',
    isA: 'Responsibility',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: 'Active',
    archived: false,
    modifiedAt: now - 7200,
    createdAt: now - 86400 * 150,
    fileSize: 890,
    snippet: 'Revenue stream from newsletter sponsorships. Matteo Cellini handles day-to-day operations.',
    wordCount: 180,
    relationships: {
      'Owner': ['[[matteo-cellini|Matteo Cellini]]'],
      'Type': ['[[responsibility]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['matteo-cellini'],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/write-weekly-essays.md',
    filename: 'write-weekly-essays.md',
    title: 'Write Weekly Essays',
    isA: 'Procedure',
    aliases: [],
    belongsTo: ['[[grow-newsletter]]'],
    relatedTo: [],
    status: 'Paused',
    archived: false,
    modifiedAt: now - 86400,
    createdAt: now - 86400 * 120,
    fileSize: 512,
    snippet: 'Monday: Pick topic, outline Tuesday: First draft Wednesday: Edit and polish Thursday: Schedule for Tuesday send',
    wordCount: 95,
    relationships: {
      'Belongs to': ['[[grow-newsletter]]'],
      'Type': ['[[procedure]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['grow-newsletter'],
    properties: { Owner: 'Luca Rossi', Cadence: 'Weekly' },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/run-sponsorships.md',
    filename: 'run-sponsorships.md',
    title: 'Run Sponsorships',
    isA: 'Procedure',
    aliases: [],
    belongsTo: ['[[manage-sponsorships]]'],
    relatedTo: [],
    status: 'Done',
    archived: false,
    modifiedAt: now - 86400 * 2,
    createdAt: now - 86400 * 100,
    fileSize: 640,
    snippet: 'Review pipeline in CRM Follow up with pending proposals Schedule confirmed sponsors Send performance reports to completed sponsors',
    wordCount: 128,
    relationships: {
      'Belongs to': ['[[manage-sponsorships]]'],
      'Type': ['[[procedure]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['manage-sponsorships'],
    properties: { Owner: 'Matteo Cellini', Cadence: 'Weekly' },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/stock-screener.md',
    filename: 'stock-screener.md',
    title: 'Stock Screener — EMA200 Wick Bounce',
    isA: 'Experiment',
    aliases: ['Trading Screener'],
    belongsTo: [],
    relatedTo: ['[[trading]]', '[[algorithmic-trading]]'],
    status: 'Paused',
    archived: false,
    modifiedAt: now - 86400,
    createdAt: now - 86400 * 45,
    fileSize: 3200,
    snippet: 'Stocks that wick below the 200-day EMA and close above it show a statistically significant bounce in the following 5-10 days.',
    wordCount: 520,
    relationships: {
      'Related to': ['[[trading]]', '[[algorithmic-trading]]'],
      'Has Data': ['[[ema200-backtest-results]]'],
      'Type': ['[[experiment]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['trading', 'algorithmic-trading', 'ema200-backtest-results'],
    properties: { Priority: 'Low', 'Due date': '2026-03-01', Owner: 'Luca Rossi' },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/facebook-ads-strategy.md',
    filename: 'facebook-ads-strategy.md',
    title: 'Facebook Ads Strategy',
    isA: 'Note',
    aliases: [],
    belongsTo: ['[[26q1-laputa-app]]'],
    relatedTo: ['[[growth]]', '[[ads]]'],
    status: null,
    archived: false,
    modifiedAt: now - 3600 * 5,
    createdAt: now - 86400 * 30,
    fileSize: 847,
    snippet: 'Lookalike audiences from newsletter subscribers convert 3x better than interest-based targeting Video ads outperform static images by 40% on engagement',
    wordCount: 267,
    relationships: {
      'Belongs to': ['[[26q1-laputa-app]]'],
      'Related to': ['[[growth]]', '[[ads]]'],
      'Type': ['[[note]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['26q1-laputa-app', 'growth', 'ads'],
    properties: { Priority: 'Medium', Rating: 4 },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/budget-allocation.md',
    filename: 'budget-allocation.md',
    title: 'Budget Allocation',
    isA: 'Note',
    aliases: [],
    belongsTo: ['[[26q1-laputa-app]]'],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400,
    createdAt: now - 86400 * 20,
    fileSize: 560,
    snippet: 'Under budget on ads due to improved targeting efficiency Consider reallocating savings to content production',
    wordCount: 150,
    relationships: {
      'Belongs to': ['[[26q1-laputa-app]]'],
      'Type': ['[[note]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['26q1-laputa-app'],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/matteo-cellini.md',
    filename: 'matteo-cellini.md',
    title: 'Matteo Cellini',
    isA: 'Person',
    aliases: ['Matteo'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 7,
    createdAt: now - 86400 * 200,
    fileSize: 320,
    snippet: 'Sponsorship manager — handles all sponsor relationships, proposals, and reporting.',
    wordCount: 88,
    relationships: {
      'Type': ['[[person]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: { Company: 'Acme Corp', Role: 'Engineering Lead' },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/maria-bianchi.md',
    filename: 'maria-bianchi.md',
    title: 'Maria Bianchi',
    isA: 'Person',
    aliases: ['Maria'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 3,
    createdAt: now - 86400 * 150,
    fileSize: 280,
    snippet: 'Product designer — leads UX research and design sprints for the app.',
    wordCount: 120,
    relationships: {
      'Type': ['[[person]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: { Company: 'TechStart', Role: 'Product Manager' },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/marco-verdi.md',
    filename: 'marco-verdi.md',
    title: 'Marco Verdi',
    isA: 'Person',
    aliases: ['Marco'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 5,
    createdAt: now - 86400 * 120,
    fileSize: 240,
    snippet: 'Frontend engineer — focuses on React performance and accessibility.',
    wordCount: 95,
    relationships: {
      'Type': ['[[person]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/elena-russo.md',
    filename: 'elena-russo.md',
    title: 'Elena Russo',
    isA: 'Person',
    aliases: ['Elena'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 10,
    createdAt: now - 86400 * 90,
    fileSize: 200,
    snippet: 'Content strategist — plans newsletter topics and manages the editorial calendar.',
    wordCount: 75,
    relationships: {
      'Type': ['[[person]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/2026-02-14-laputa-app-kickoff.md',
    filename: '2026-02-14-laputa-app-kickoff.md',
    title: 'Laputa App Design Session',
    isA: 'Event',
    aliases: [],
    belongsTo: [],
    relatedTo: ['[[26q1-laputa-app]]', '[[matteo-cellini]]'],
    status: null,
    archived: false,
    modifiedAt: now - 3600 * 2,
    createdAt: now - 86400 * 7,
    fileSize: 1200,
    snippet: 'Agreed on four-panel layout inspired by Bear Notes CodeMirror 6 for the editor — live preview is critical MVP by end of Q1.',
    wordCount: 310,
    relationships: {
      'Related to': ['[[26q1-laputa-app]]', '[[matteo-cellini]]'],
      'Type': ['[[event]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['26q1-laputa-app', 'matteo-cellini'],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/software-development.md',
    filename: 'software-development.md',
    title: 'Software Development',
    isA: 'Topic',
    aliases: ['Dev', 'Coding'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 30,
    createdAt: now - 86400 * 365,
    fileSize: 256,
    snippet: 'A broad topic covering everything from frontend to systems programming.',
    wordCount: 45,
    relationships: {
      'Notes': ['[[facebook-ads-strategy]]', '[[budget-allocation]]'],
      'Type': ['[[topic]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/trading.md',
    filename: 'trading.md',
    title: 'Trading',
    isA: 'Topic',
    aliases: ['Algorithmic Trading'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 14,
    createdAt: now - 86400 * 300,
    fileSize: 180,
    snippet: 'Technical analysis (EMA, RSI, volume patterns) Algorithmic screening and alerts Risk management and position sizing',
    wordCount: 60,
    relationships: {
      'Notes': ['[[stock-screener]]'],
      'Type': ['[[topic]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/on-writing-well.md',
    filename: 'on-writing-well.md',
    title: 'On Writing Well',
    isA: 'Essay',
    aliases: [],
    belongsTo: ['[[grow-newsletter]]'],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 3,
    createdAt: now - 86400 * 14,
    fileSize: 4200,
    snippet: 'Good writing is lean and confident. Every sentence should serve a purpose.',
    wordCount: 180,
    relationships: {
      'Belongs to': ['[[grow-newsletter]]'],
      'Type': ['[[essay]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['grow-newsletter'],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/engineering-leadership-101.md',
    filename: 'engineering-leadership-101.md',
    title: 'Engineering Leadership 101',
    isA: 'Essay',
    aliases: [],
    belongsTo: ['[[grow-newsletter]]'],
    relatedTo: ['[[software-development]]'],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 7,
    createdAt: now - 86400 * 30,
    fileSize: 3800,
    snippet: 'The transition from IC to manager is the hardest career shift in engineering.',
    wordCount: 640,
    relationships: {
      'Belongs to': ['[[grow-newsletter]]'],
      'Related to': ['[[software-development]]'],
      'Type': ['[[essay]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['grow-newsletter', 'software-development'],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/ai-agents-primer.md',
    filename: 'ai-agents-primer.md',
    title: 'AI Agents Primer',
    isA: 'Essay',
    aliases: [],
    belongsTo: ['[[grow-newsletter]]'],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 10,
    createdAt: now - 86400 * 21,
    fileSize: 5100,
    snippet: 'AI agents are autonomous systems that can plan, execute, and adapt to achieve goals.',
    wordCount: 410,
    relationships: {
      'Belongs to': ['[[grow-newsletter]]'],
      'Type': ['[[essay]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: ['grow-newsletter'],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  // --- Type documents ---
  {
    path: '/Users/luca/Laputa/project.md',
    filename: 'project.md',
    title: 'Project',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 320,
    snippet: 'A time-bound initiative that advances a Responsibility. Projects have a clear start, end, and deliverables.',
    wordCount: 280,
    relationships: {},
    icon: null,
    color: null,
    order: 0,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/responsibility.md',
    filename: 'responsibility.md',
    title: 'Responsibility',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 280,
    snippet: 'An ongoing area of ownership — something you\'re accountable for indefinitely.',
    wordCount: 50,
    relationships: {},
    icon: null,
    color: null,
    order: 1,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/procedure.md',
    filename: 'procedure.md',
    title: 'Procedure',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 310,
    snippet: 'A recurring process tied to a Responsibility. Procedures have a cadence and describe how to do something.',
    wordCount: 45,
    relationships: {},
    icon: null,
    color: null,
    order: 2,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/experiment.md',
    filename: 'experiment.md',
    title: 'Experiment',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 290,
    snippet: 'A hypothesis-driven investigation with a clear test and measurable outcome.',
    wordCount: 55,
    relationships: {},
    icon: null,
    color: null,
    order: 3,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: false,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/person.md',
    filename: 'person.md',
    title: 'Person',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 200,
    snippet: 'A person you interact with — team members, collaborators, contacts.',
    wordCount: 40,
    relationships: {},
    icon: null,
    color: null,
    order: 4,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/event.md',
    filename: 'event.md',
    title: 'Event',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 180,
    snippet: 'A point-in-time occurrence — meetings, launches, milestones.',
    wordCount: 35,
    relationships: {},
    icon: null,
    color: null,
    order: 5,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/topic.md',
    filename: 'topic.md',
    title: 'Topic',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 170,
    snippet: 'A subject area for categorization. Topics group related notes, projects, and resources by theme.',
    wordCount: 30,
    relationships: {},
    icon: null,
    color: null,
    order: 6,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/essay.md',
    filename: 'essay.md',
    title: 'Essay',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 200,
    snippet: 'A published piece of writing — newsletter essays, blog posts, articles.',
    wordCount: 50,
    relationships: {},
    icon: null,
    color: null,
    order: 7,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/note.md',
    filename: 'note.md',
    title: 'Note',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 190,
    snippet: 'A general-purpose document — research notes, meeting notes, strategy docs.',
    wordCount: 60,
    relationships: {},
    icon: null,
    color: null,
    order: 8,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  // --- Custom type documents ---
  {
    path: '/Users/luca/Laputa/config.md',
    filename: 'config.md',
    title: 'Config',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 30,
    createdAt: now - 86400 * 365,
    fileSize: 300,
    snippet: 'Vault configuration files. These control how AI agents, tools, and other integrations interact with this vault.',
    wordCount: 25,
    relationships: {},
    icon: 'gear-six',
    color: 'gray',
    order: 90,
    sidebarLabel: 'Config',
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/recipe.md',
    filename: 'recipe.md',
    title: 'Recipe',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 30,
    createdAt: now - 86400 * 365,
    fileSize: 250,
    snippet: 'A recipe for cooking or baking. Recipes have ingredients, steps, and serving info.',
    wordCount: 45,
    relationships: {},
    icon: 'cooking-pot',
    color: 'orange',
    order: 9,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/book.md',
    filename: 'book.md',
    title: 'Book',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 30,
    createdAt: now - 86400 * 365,
    fileSize: 220,
    snippet: 'A book you\'re reading or have read. Track reading progress, notes, and key takeaways.',
    wordCount: 190,
    relationships: {},
    icon: 'book-open',
    color: 'green',
    order: 10,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  // --- Instances of custom types ---
  {
    path: '/Users/luca/Laputa/config/agents.md',
    filename: 'agents.md',
    title: 'Agent Instructions',
    isA: 'Config',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 5,
    createdAt: now - 86400 * 30,
    fileSize: 1200,
    snippet: 'Vault instructions for AI agents. Defines how tools and integrations interact with this vault.',
    wordCount: 200,
    relationships: {
      'Type': ['[[config]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/pasta-carbonara.md',
    filename: 'pasta-carbonara.md',
    title: 'Pasta Carbonara',
    isA: 'Recipe',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 5,
    createdAt: now - 86400 * 10,
    fileSize: 420,
    snippet: 'Classic Roman pasta dish with eggs, pecorino, guanciale, and black pepper.',
    wordCount: 310,
    relationships: {
      'Type': ['[[recipe]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: { Difficulty: 'Easy', 'Prep time': '30 min', Servings: 4 },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/designing-data-intensive-applications.md',
    filename: 'designing-data-intensive-applications.md',
    title: 'Designing Data-Intensive Applications',
    isA: 'Book',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 14,
    createdAt: now - 86400 * 60,
    fileSize: 380,
    snippet: 'Essential reading for anyone building distributed systems. Covers replication, partitioning, transactions.',
    wordCount: 100,
    relationships: {
      'Type': ['[[book]]'],
    },
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: { Author: 'Martin Kleppmann', Rating: 5, 'Year published': 2017 },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  // --- Archived entries ---
  {
    path: '/Users/luca/Laputa/25q3-website-redesign.md',
    filename: '25q3-website-redesign.md',
    title: 'Website Redesign',
    isA: 'Project',
    aliases: [],
    belongsTo: ['[[q3-2025]]'],
    relatedTo: [],
    status: 'Done',
    archived: true,
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: { Owner: 'Luca Rossi' },
    modifiedAt: now - 86400 * 120,
    createdAt: now - 86400 * 200,
    fileSize: 680,
    snippet: 'Completed redesign of the company website. Migrated from WordPress to Next.js with improved performance and SEO.',
    wordCount: 342,
    relationships: {
      'Belongs to': ['[[q3-2025]]'],
      'Type': ['[[project]]'],
    },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/twitter-thread-experiment.md',
    filename: 'twitter-thread-experiment.md',
    title: 'Twitter Thread Growth Experiment',
    isA: 'Experiment',
    aliases: [],
    belongsTo: [],
    relatedTo: ['[[grow-newsletter]]'],
    status: 'Done',
    archived: true,
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: { Owner: 'Luca Rossi' },
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 150,
    fileSize: 520,
    snippet: 'Publishing 3 Twitter threads per week instead of 1 will increase newsletter signups by 50%. Result: only 12% increase.',
    wordCount: 215,
    relationships: {
      'Related to': ['[[grow-newsletter]]'],
      'Type': ['[[experiment]]'],
    },
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  // --- Refactoring entries for exact-match search testing ---
  {
    path: '/Users/luca/Laputa/refactoring.md',
    filename: 'refactoring.md',
    title: 'Refactoring',
    isA: 'Area',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: 'Active',
    archived: false,
    modifiedAt: now - 86400 * 30,
    createdAt: now - 86400 * 365,
    fileSize: 1200,
    snippet: 'Area note covering refactoring practices and principles.',
    wordCount: 180,
    relationships: {},
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/refactoring-ideas.md',
    filename: 'refactoring-ideas.md',
    title: 'Refactoring Ideas',
    isA: 'Note',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 5,
    createdAt: now - 86400 * 60,
    fileSize: 800,
    snippet: 'Ideas for refactoring the codebase.',
    wordCount: 120,
    relationships: {},
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/refactoring-key-ideas.md',
    filename: 'refactoring-key-ideas.md',
    title: 'Refactoring Key Ideas',
    isA: 'Note',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 10,
    createdAt: now - 86400 * 90,
    fileSize: 600,
    snippet: 'Key ideas from the refactoring book.',
    wordCount: 95,
    relationships: {},
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
  {
    path: '/Users/luca/Laputa/refactoring-patterns.md',
    filename: 'refactoring-patterns.md',
    title: 'Refactoring Patterns',
    isA: 'Note',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    archived: false,
    modifiedAt: now - 86400 * 15,
    createdAt: now - 86400 * 120,
    fileSize: 950,
    snippet: 'Common refactoring patterns and when to apply them.',
    wordCount: 150,
    relationships: {},
    icon: null,
    color: null,
    order: null,
    sidebarLabel: null,
    template: null, sort: null, view: null, visible: null,
    outgoingLinks: [],
    properties: {},
    organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
  },
]

// --- Bulk entry generator for large vault testing ---

const BULK_TYPES = ['Note', 'Project', 'Experiment', 'Responsibility', 'Procedure', 'Person', 'Event', 'Essay', 'Topic']
const BULK_ADJECTIVES = ['Quick', 'Advanced', 'Daily', 'Weekly', 'Annual', 'Draft', 'Final', 'Revised', 'Archived', 'New']
const BULK_NOUNS = ['Meeting', 'Strategy', 'Review', 'Plan', 'Analysis', 'Summary', 'Report', 'Guide', 'Checklist', 'Template', 'Framework', 'Workflow', 'Retrospective', 'Brainstorm', 'Proposal']
const BULK_SNIPPETS = [
  'Key findings from the latest analysis session.',
  'Notes on process improvements and next steps.',
  'Summary of decisions made during the review.',
  'Action items and follow-ups from discussion.',
  'Draft outline for upcoming deliverable.',
  'Reference material for the ongoing initiative.',
  'Tracking progress on quarterly objectives.',
  'Comparison of different approaches considered.',
]

function generateBulkEntries(count: number): VaultEntry[] {
  const entries: VaultEntry[] = []
  for (let i = 0; i < count; i++) {
    const type = BULK_TYPES[i % BULK_TYPES.length]
    const adj = BULK_ADJECTIVES[i % BULK_ADJECTIVES.length]
    const noun = BULK_NOUNS[i % BULK_NOUNS.length]
    const title = `${adj} ${noun} ${i + 1}`
    const slug = title.toLowerCase().replace(/\s+/g, '-')
    entries.push({
      path: `/Users/luca/Laputa/${slug}.md`,
      filename: `${slug}.md`,
      title,
      isA: type,
      aliases: [],
      belongsTo: [],
      relatedTo: [],
      status: i % 4 === 0 ? 'Active' : i % 4 === 1 ? 'Paused' : i % 4 === 2 ? 'Done' : null,
      archived: false,
      modifiedAt: now - i * 600,
      createdAt: now - 86400 * 90 - i * 3600,
      fileSize: 500 + (i % 2000),
      snippet: BULK_SNIPPETS[i % BULK_SNIPPETS.length],
      wordCount: 50 + (i % 200),
      relationships: {},
      icon: null,
      color: null,
      order: null,
      outgoingLinks: Array.from({ length: i % 8 }, (_j, j) => `link-target-${(i + j) % 50}`),
      sidebarLabel: null,
      template: null, sort: null, view: null, visible: null,
      properties: {},
      organized: false, favorite: false, favoriteIndex: null, listPropertiesDisplay: [], hasH1: false,
    })
  }
  return entries
}

// Append 9000 generated entries for realistic large-vault testing
MOCK_ENTRIES.push(...generateBulkEntries(9000))
