{
  "version": 1,
  "generated_at": "2026-04-18T11:44:23",
  "project_name": "insuwiki",
  "project_path": "/home/jay/projects/insuwiki",
  "depth": 2,
  "include_tests": false,
  "files": {
    "functions/src/regulationChangeDetector.ts": {
      "hash": "d57658c97724a530e6cefab1f4bdeb6a11614c5ea3804d3d6bf5c65aedb29d51",
      "section": "types",
      "data": {
        "types": [
          "RegulationChangeResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/reviewerAssignment.ts": {
      "hash": "fc97ab3b21e244eafa37c30c6d3ea8edb88518f342857fa82a7a8d95ef3f0568",
      "section": "types",
      "data": {
        "types": [
          "ReviewerCandidate"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/pdfIndexing.ts": {
      "hash": "3a161a96ff047c28587b317e44370c487c05b9feb4d8584adce4f9399b65a4a0",
      "section": "types",
      "data": {
        "types": [
          "AppendixType"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/embeddingMatching.ts": {
      "hash": "791e57fb52f22207de67753e14d6a2127c27d02656d8958fec476e552d2c90b2",
      "section": "types",
      "data": {
        "types": [
          "EmbeddingMatchResult",
          "MergedResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/backlogMonitoring.ts": {
      "hash": "5ea3f3a035d15a8b5be86606fb6b1976d55779e9c3279e84ac670ac53fe0be5a",
      "section": "types",
      "data": {
        "types": [
          "SLALevel",
          "BacklogStats",
          "SLAAssessment"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/staticMatching.ts": {
      "hash": "7612a3dd5a7bcc3d862a5ce43c461245b6b1f51dbd530a485c28a00cdacd6560",
      "section": "types",
      "data": {
        "types": [
          "LinkMethod",
          "LinkCreatedBy",
          "LinkStatus",
          "InsuranceTerm",
          "AiSuggestion",
          "MatchResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/types/review.ts": {
      "hash": "1ad5452e0e353eef4523e278d7d7441c05af3c100baaea3d5574255aa2bcaac1",
      "section": "types",
      "data": {
        "types": [
          "ReviewDocumentStatus",
          "RiskLevel",
          "ReviewDecision",
          "Review",
          "AuditAction",
          "AuditLogEntry"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/types/version.ts": {
      "hash": "0dd18797da8dedb629a80bc0cd438d4e5ec589fdeb15c111c39c5b050d9bef20",
      "section": "types",
      "data": {
        "types": [
          "VersionRetentionConfig",
          "VersionInfo"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/types/reliability.ts": {
      "hash": "28188d32106834054cd19629310ed6021cd96ea33290303c81fe9cefd01a91e1",
      "section": "types",
      "data": {
        "types": [
          "ReliabilityDimension",
          "FreshnessInterval",
          "ReliabilityWeightsConfig",
          "ReliabilityInput",
          "ReliabilityOutput"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "functions/src/types/report.ts": {
      "hash": "36a0e54dee1d42edb403dec840585019583bb23da9fad681c688bbf0f209bd5a",
      "section": "types",
      "data": {
        "types": [
          "ReportReasonType",
          "ErrorReport"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "scripts/prompts/summary-prompts.ts": {
      "hash": "be969fabb8f31a4204269c2fcf076110e7a4ef04c7ac1319878aacfeb6ebbbde",
      "section": "types",
      "data": {
        "types": [
          "SummaryJobItem"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/lib/constants.ts": {
      "hash": "531024bbfdcb09eed48735fbad61f40349d8735b592a189e108e7f37cda9ea4c",
      "section": "types",
      "data": {
        "types": [
          "BadgeInfo",
          "TrustLevel",
          "TrustBadgeInfo",
          "VerificationVisualState",
          "BannerSeverity"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/lib/auth-middleware.ts": {
      "hash": "71253d9b4213f8b8727944a74ce1894ef4bc1ce09e0ba4a25a6249fcbd8c98b4",
      "section": "types",
      "data": {
        "types": [
          "AuthResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/lib/tiptap/WikiAutoLink.ts": {
      "hash": "4448caf626ed8847a2ce61269227e039c7b79d14e2d1b64c109906c5a0ad04fa",
      "section": "types",
      "data": {
        "types": [
          "WikiAutoLinkOptions"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/lib/ai/answerValidator.ts": {
      "hash": "ec7936d3e13023dc6db7b994242514433c79798c7d0c0d30d6029e8f72235483",
      "section": "types",
      "data": {
        "types": [
          "SimilarityGateResult",
          "AnswerSourceType",
          "ValidationResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/lib/ai/queryRouter.ts": {
      "hash": "6c1b2e750b0eb84d4807d17e5f3f24d34859b4c9d45561fb2e31aec0ad6d974f",
      "section": "types",
      "data": {
        "types": [
          "QueryType",
          "QueryContext"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/lib/monitoring/costMonitor.ts": {
      "hash": "199bca4ae74a6a4745c6c8d8b7e4eb1e55aa3f05733bf2c3ca79f1c7093f4b20",
      "section": "types",
      "data": {
        "types": [
          "ApiUsageDaily",
          "UsageType",
          "DailyUsageBudget"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/lib/security/injectionFilter.ts": {
      "hash": "ac93a765da62904983e96433a4b94beb4f3cea390864b8a6e23ac6f7dcb6390b",
      "section": "types",
      "data": {
        "types": [
          "InjectionCheckResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/lib/security/rateLimiter.ts": {
      "hash": "2b3190cda2aac3d09524e25ad1c80a3f8b5d3e248bcc558401551c43eaee6281",
      "section": "types",
      "data": {
        "types": [
          "RateLimitResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/types/firestore.ts": {
      "hash": "39dee1743163de512ff896293b9b04b5ae7d750bea1e596b716329dd0cb0b701",
      "section": "types",
      "data": {
        "types": [
          "User",
          "AISettings",
          "ApiKeyService",
          "ApiKey",
          "Visibility",
          "DocumentStatus",
          "Priority",
          "DocumentCategory",
          "SourceType",
          "VerificationStatus",
          "SourceMeta",
          "SourceRef",
          "DocumentProperties",
          "Document",
          "DocumentVersion",
          "DocumentTag",
          "LinkMethod",
          "LinkCreatedBy",
          "LinkStatus",
          "Link",
          "AiSuggestion",
          "DailyNote",
          "Draft",
          "AutoSaveDraft",
          "WhitelistEntry",
          "JobStatus",
          "QueryType",
          "Job",
          "GeminiFileCache",
          "GenerationType",
          "InsuranceMetadata",
          "InsuranceChunk",
          "InsuranceChunkArchive",
          "InsuranceAppendix",
          "IndexLog",
          "ApiUsageDaily",
          "InsuranceTerm",
          "SummaryLevel",
          "InsuranceSummary",
          "SummaryJobStatus",
          "SummaryJob",
          "QueryCache",
          "RateLimitWindow",
          "RateLimitRecord",
          "FeedbackRating",
          "FeedbackErrorType",
          "AiFeedback",
          "FeedbackType",
          "AnswerFeedback",
          "QueryLog",
          "ConversationSession",
          "YoutubeChannel",
          "SummaryStatus",
          "YoutubeKnowledge",
          "ReviewDecision",
          "RiskLevel",
          "AuditAction",
          "EvidenceType",
          "ErrorReportReason",
          "SourceAttachment",
          "Review",
          "ErrorReport",
          "AuditLogEntry"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/shared/types/roles.ts": {
      "hash": "b714e3def69f5f9df49c30dfacda8cebcbe0830c7c1edb5f34ccabac5fc19cee",
      "section": "types",
      "data": {
        "types": [
          "UserRole"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/utils/documentLock.ts": {
      "hash": "a6e4e6cb059153b76179d8340e152815a95c50353dfde4d4ee62e0e1cab2efbc",
      "section": "types",
      "data": {
        "types": [
          "LockInfo",
          "AcquireLockResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useAIPolling.ts": {
      "hash": "d8a1541927ddda62f0d99657f50dd5c4403fd7d455314b34d4ecef7564ee3fcf",
      "section": "types",
      "data": {
        "types": [
          "AIJobStatus"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useReviewQueueListener.ts": {
      "hash": "2d6db2175a4261071b9e697a8609bfdfc218845476f578c1b77b6dc1d24fac8b",
      "section": "types",
      "data": {
        "types": [
          "ReviewQueueItem",
          "UseReviewQueueListenerReturn"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useDraftAutoSave.ts": {
      "hash": "1101b239a8bfa48a50c532274e5aca7c7a1ba030a8263e8e1b64b5a82f61506a",
      "section": "types",
      "data": {
        "types": [
          "UseDraftAutoSaveOptions",
          "UseDraftAutoSaveReturn"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useAudioRecorder.ts": {
      "hash": "0b5409ea0de64ed99c6793ce9f92cfaa94dce7d4296f5ef1b664b90970cdd156",
      "section": "types",
      "data": {
        "types": [
          "RecordingState"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useWikiMap.ts": {
      "hash": "7f83ee4a33af84e4cae0de961badab4fc5acfffa284c2e4f472ae0c7bac73f7d",
      "section": "types",
      "data": {
        "types": [
          "WikiEntry"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useWikiFilter.ts": {
      "hash": "88498923ae332fce24bfb5a566fbe69d009dee32a77efb27163a2005c48a5b2c",
      "section": "types",
      "data": {
        "types": [
          "WikiCategory",
          "WikiSortBy",
          "WikiDocument",
          "WikiFilterState",
          "WikiFilterActions"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useDocumentReviewListener.ts": {
      "hash": "1bc8a9a8c2a1571c254dbf9535b78bba2383f1974a08296507143122369025fc",
      "section": "types",
      "data": {
        "types": [
          "DocumentReviewState"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useReviewPermission.ts": {
      "hash": "b6ac4176f90d805f99c74224921f36ab03c65494329a05063483aff4ee6fc13e",
      "section": "types",
      "data": {
        "types": [
          "ReviewPermissions"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/hooks/useVoiceCommand.ts": {
      "hash": "17587584731d69176e067385e6d76f23b5e0c7b9c74b7e9becf6ee80951b6eda",
      "section": "types",
      "data": {
        "types": [
          "VoiceCommandHandlers",
          "VoiceCommandOptions",
          "VoiceCommandReturn"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/search-summary/utils.ts": {
      "hash": "1626caa279797f318e9c627cb0c804594cf9630eb2daf3a0d7ccfcfb71726657",
      "section": "types",
      "data": {
        "types": [
          "SearchResult"
        ]
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/drive-upload/route.ts": {
      "hash": "c7f559a657dc2ff6370a5ddc1b17e988b4d85b23e0ad498f073e917effc75117",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/admin/drive-upload"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/fcm-token/route.ts": {
      "hash": "2813c7ec2ec1351d481d61b7159955a202a6fa5ca6f56833545f6945838c7759",
      "section": "routes",
      "data": {
        "methods": [
          "POST",
          "DELETE"
        ],
        "url": "/api/admin/fcm-token"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/insurance/reindex/route.ts": {
      "hash": "765ad756dd32698eb6f92c516a13875a25eff13c411fed6ce617c86a48baf598",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/admin/insurance/reindex"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/insurance/reindex/switch/route.ts": {
      "hash": "855aac94cf862595f31323bbdff98625ce41d6f2471fc34a02751b98ae99b746",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/admin/insurance/reindex/switch"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/insurance/terms/route.ts": {
      "hash": "a0d4197334ae9afdd49ac6d2770321b35391ccdae9e95b06e13dfbba0d5983ec",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/admin/insurance/terms"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/insurance/terms/[productId]/route.ts": {
      "hash": "560c26806f9d4f8151549dd18b4192c40dbe18bc9599d5a4f4249a580994690a",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/admin/insurance/terms/[productId]"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/insurance/terms/[productId]/chunks/route.ts": {
      "hash": "c488b6665e89826f5b9dfde613bfea491a3b5e6d459ca68d2b1415b6a2a17020",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/admin/insurance/terms/[productId]/chunks"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/insurance/terms/[productId]/history/route.ts": {
      "hash": "8889a5959b233f2d4f8e61866f16413f7d8e76a64885ed75be7bd8ccaf2d82c5",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/admin/insurance/terms/[productId]/history"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/insurance/terms/[productId]/search/route.ts": {
      "hash": "3ef743f748ce07dad609a4950de5f35241007f96372cd8404325f2350f1e4ae5",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/admin/insurance/terms/[productId]/search"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/insurance/terms/[productId]/summaries/route.ts": {
      "hash": "dd84a60f4955538a86ac8654a29e0528b94c6159fcb43719b72f66ff10915eb8",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/admin/insurance/terms/[productId]/summaries"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/monitoring/route.ts": {
      "hash": "b1d6cb84c4c08696e86f9806bcf5c34d6380064b0ebda4c89e7a2edf1a8dd038",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/admin/monitoring"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/purge/route.ts": {
      "hash": "8c80890ca5a0762dec269a5fac6c07b1afaa6c8de101559a29482085da8e55c2",
      "section": "routes",
      "data": {
        "methods": [
          "DELETE"
        ],
        "url": "/api/admin/purge"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/summary-generate/route.ts": {
      "hash": "f761a86df6d8be9ff0289714397c50ba2788ff256109ea6f3ee824bebd0cc22e",
      "section": "routes",
      "data": {
        "methods": [
          "GET",
          "POST"
        ],
        "url": "/api/admin/summary-generate"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/admin/summary-jobs/route.ts": {
      "hash": "c4343240dd08bcf10508791e8c52196b11256413645b1d175392ab5b6758b35a",
      "section": "routes",
      "data": {
        "methods": [
          "GET",
          "PATCH"
        ],
        "url": "/api/admin/summary-jobs"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/autocomplete/route.ts": {
      "hash": "90174828d3576c587b5307e6ead6d4ef3ba5510d9f0d222db6434615dce6a4cd",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/ai/autocomplete"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/feedback/route.ts": {
      "hash": "1470f846590d59d25106826ca7064b0e6e5d2de98b7b3554dc9b7dd2e805044d",
      "section": "routes",
      "data": {
        "methods": [
          "POST",
          "PATCH"
        ],
        "url": "/api/ai/feedback"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/index-wiki/route.ts": {
      "hash": "c803ec432a47867d44d5f37bca90d7a93b9017e7ffd39f795398032f1d3b289e",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/ai/index-wiki"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/invalidate-cache/route.ts": {
      "hash": "025bd5f5a91f48d00b922d81a770ecce28167c8d3145250d3b03bf59df229571",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/ai/invalidate-cache"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/query/route.ts": {
      "hash": "395a870c76a81c76a89770091f0931f8db97d8d3b1cdb9c9eb3b74fbe4177fc6",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/ai/query"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/search-summary/route.ts": {
      "hash": "cb9253b761c8445b7429d4e853ae7b7f9d19c5e7a958cd9d8aaffa7e6391810c",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/ai/search-summary"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/search-wiki/route.ts": {
      "hash": "35659c1a60c42fcd82ff654a33fa2e9b14ccf880a8c03bd5046108218c27a4fb",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/ai/search-wiki"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/settings/route.ts": {
      "hash": "354479c3dd4f0e21c65e60f0a20f4835ad7c41c6e92b9c6572aac8f280a922af",
      "section": "routes",
      "data": {
        "methods": [
          "GET",
          "POST"
        ],
        "url": "/api/ai/settings"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/status/route.ts": {
      "hash": "e224790355516e9c6675eeb86ca452567a69a6fb05387f9896ce4d7cb9e4709f",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/ai/status"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/summarize/route.ts": {
      "hash": "0e9715b889cb4ac44394624400c60583e3c9d88fe467fe8b6fad1025ed8f9fde",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/ai/summarize"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/vector-search/route.ts": {
      "hash": "42c7ad75040697caeda2b26ef4e310aa447d3550829c6123984b36acd8f12fe3",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/ai/vector-search"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/ai/versions/route.ts": {
      "hash": "90c47309600ee1290d7a888cd7a7c5c08ff20378bfa9a11062887103b5d0c3c4",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/ai/versions"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/drive-image/[fileId]/route.ts": {
      "hash": "212151bec2e3dc5870f6ff1b1d077d45058d7c87d8307dea93d9c1885e19ebb9",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/drive-image/[fileId]"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/share-target/route.ts": {
      "hash": "e471924663c16ed652677c452ec313126fc797f1e6a87d3685a28b60d6b69ccc",
      "section": "routes",
      "data": {
        "methods": [
          "GET"
        ],
        "url": "/api/share-target"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/upload/route.ts": {
      "hash": "5a57e8d2a7c5fae32461bb161845e3ec3d9c031dbff975b6b04575e68e92851f",
      "section": "routes",
      "data": {
        "methods": [
          "POST",
          "DELETE"
        ],
        "url": "/api/upload"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/wiki/entries/[id]/error-report/route.ts": {
      "hash": "be8121d3179e076c0f7c9a9d050ef6c581b45127a93032ab846ad3a66cc2f8df",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/wiki/entries/[id]/error-report"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/wiki/entries/[id]/report/route.ts": {
      "hash": "c7a86a4e30356e8c2efeff6a7ad3615f0348070085dffa7cbb76b5f53f84f6b3",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/wiki/entries/[id]/report"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/wiki/entries/[id]/review/route.ts": {
      "hash": "77821d8570115bcdaec9f849d984c5dce6f006599767ae93834683c644854b9d",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/wiki/entries/[id]/review"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/app/api/wiki/insights/[id]/review/route.ts": {
      "hash": "c7006bacebdd2e2a516fea4b72240a76daa741394bd10dca59eb735864560f31",
      "section": "routes",
      "data": {
        "methods": [
          "POST"
        ],
        "url": "/api/wiki/insights/[id]/review"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/ActionTooltip.tsx": {
      "hash": "22a70733b1b7554c97d4e69903900d1f451e7693e4952ba7888423779d0dbe75",
      "section": "components",
      "data": {
        "name": "ActionTooltip"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/AIEmptyState.tsx": {
      "hash": "aa7cef6794155a5cf5aa58005d35ae83fd33c8cd2594a9f23b0fd7d20e9ceed3",
      "section": "components",
      "data": {
        "name": "AIEmptyState"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/AIResults.tsx": {
      "hash": "7ab9f0206d2e18e6a79699d8c0a3393a4236b412e0cbc63dc599f7370db966bb",
      "section": "components",
      "data": {
        "name": "AIResults"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/AISettingsModal.tsx": {
      "hash": "752677f8ade779c1ea2c64debdaa5834813371b0081fa46d0dbcb8b450a6c513",
      "section": "components",
      "data": {
        "name": "AISettingsModal"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/AISidepanel.tsx": {
      "hash": "c908bc243ef192475695d2beaae1fe04d10b1baf983e55e2794ecdf7f01443af",
      "section": "components",
      "data": {
        "name": "AISidepanel"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/AIWhispers.tsx": {
      "hash": "579e2f438b4fc1d5bf50efc16a1267449e66ac6a9ada4cacadd55eed872f7aab",
      "section": "components",
      "data": {
        "name": "AIWhispers"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/AnswerCard.tsx": {
      "hash": "f6e1c613dc55b0ef15f354559b428a8cd449684e0b4f85324338ac900aa8135d",
      "section": "components",
      "data": {
        "name": "AnswerCard"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/AudioRecorderButton.tsx": {
      "hash": "d9726b3b723dd14c4000a3ba3e98e00d983966f3a7640c16eada7067a90d88b7",
      "section": "components",
      "data": {
        "name": "AudioRecorderButton"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/BacklinksPanel.tsx": {
      "hash": "ca001210679474c3cb2b8330bbb9009ff980fd2edb1076ab38bcef82746e5052",
      "section": "components",
      "data": {
        "name": "BacklinksPanel"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/ConfirmDialog.tsx": {
      "hash": "f86d9a595bca581e3a913428fa1fc4c85ec64fa49f720a979d7ccea36ab72086",
      "section": "components",
      "data": {
        "name": "ConfirmDialog"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/ConnectionBanner.tsx": {
      "hash": "21f5268f010c20f9f2566ea68e0059b8bdfa4941f7aadefae04c1959428e78dd",
      "section": "components",
      "data": {
        "name": "ConnectionBanner"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/DailyNoteButton.tsx": {
      "hash": "4c45bb881f443fcaa8a8deeeda3db69d5998398ae679b554167f97afd1eb9800",
      "section": "components",
      "data": {
        "name": "DailyNoteButton"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/DisambiguationPanel.tsx": {
      "hash": "feacad0085968ccb391fc04e955da2af58c5cb5b1fd72caae5b3afa5ea6b285f",
      "section": "components",
      "data": {
        "name": "DisambiguationPanel"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/DraftRecoveryModal.tsx": {
      "hash": "55c9458dc21ef7bb80c928ea71d997c3bb733fc0c1823846b5c7a7a119d56563",
      "section": "components",
      "data": {
        "name": "DraftRecoveryModal"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/EditorToolbar.tsx": {
      "hash": "4ae21c599e224eee1575dcfac973ea675d92aad6aba2c329f6e1f9bc434d0cfa",
      "section": "components",
      "data": {
        "name": "EditorToolbar"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/ErrorReportButton.tsx": {
      "hash": "83b9108505e432797f659ce152445e0529344f8f3429e2c3110f6e52982a9e6b",
      "section": "components",
      "data": {
        "name": "ErrorReportButton"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/FeedbackButtons.tsx": {
      "hash": "6e2b4bef2d15dd0d1c1e0d721f429f9e474c9b2e419fc2c32a484777c774cda2",
      "section": "components",
      "data": {
        "name": "FeedbackButtons"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/FloatingTermDetection.tsx": {
      "hash": "ef7ba354f2b993677bab9675ffdec31259fa6edfd7f0d6616ed99ddf75c02b1c",
      "section": "components",
      "data": {
        "name": "FloatingTermDetection"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/GlobalHeader.tsx": {
      "hash": "e8bbece43195915bc8646d4af8c082c02985d4375fd74810c3eca8df6732f74e",
      "section": "components",
      "data": {
        "name": "GlobalHeader"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/HubDocuments.tsx": {
      "hash": "38419edfa43bc06a85a7a68784acb55f22a0f77e3ad6be91b2293d2b7933a4f6",
      "section": "components",
      "data": {
        "name": "HubDocuments"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/review/InlineReviewPanel.tsx": {
      "hash": "f6691c81e164130bf3d98f2ce89e640056157157dbdb735c324539a5f455f3cf",
      "section": "components",
      "data": {
        "name": "InlineReviewPanel"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/InsurancePDFQuery.tsx": {
      "hash": "a6fa682f8ac1a0bcabfce503878134c964d13460f0bf4c3522a422175d84c0d9",
      "section": "components",
      "data": {
        "name": "InsurancePDFQuery"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/InsuranceTermsList.tsx": {
      "hash": "d777db01f77a8c0c451efde81a3c13ec459b7e3a4429d112c67b17e28625cb5b",
      "section": "components",
      "data": {
        "name": "InsuranceTermsList"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/LeaveConfirmModal.tsx": {
      "hash": "a4f102496509b3e2733ae9bd9c0f9b6c8aeca58ee88af6db104d2899df26db16",
      "section": "components",
      "data": {
        "name": "LeaveConfirmModal"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/Level1Card.tsx": {
      "hash": "49c9de231dc58af9fa5d1765fef26e5fce138c08a382eeb8290bae829ea9d545",
      "section": "components",
      "data": {
        "name": "Level1Card"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/Level2Accordion.tsx": {
      "hash": "b8ce1bd3763074f69d6ab54f5eb01db4e3c928e10a834f607bbc44aaa6ceee68",
      "section": "components",
      "data": {
        "name": "Level2Accordion"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/Level3Search.tsx": {
      "hash": "e82413292c33c3d71dc5cded5e2b3da22ac92ded942f8214492ac0fa439af4f4",
      "section": "components",
      "data": {
        "name": "Level3Search"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/MobileAIBar.tsx": {
      "hash": "552cf2295172a154c938e3e1cba2b3be93caae0dda8a22cf550c4b84cd336bd6",
      "section": "components",
      "data": {
        "name": "MobileAIBar"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/NormalResults.tsx": {
      "hash": "5d945c5187317f11036d42e86b99110450e95a8e4406f38a3ef767d3aed8393f",
      "section": "components",
      "data": {
        "name": "NormalResults"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/QnaRenderer.tsx": {
      "hash": "51b104b4849c0b19c4c0630d8ddc632f7bf61c485cdd030014dffc163951a59a",
      "section": "components",
      "data": {
        "name": "QnaRenderer"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/QueryTypePicker.tsx": {
      "hash": "217aa77e2625acbd84f78bacdd9b06fe28693e0d34b4362a8e308137f622005a",
      "section": "components",
      "data": {
        "name": "QueryTypePicker"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/RecordingConsentModal.tsx": {
      "hash": "3787d2fe5ed164d20286812c67e23f6c7872d87093ee32cb00229b024b0d6792",
      "section": "components",
      "data": {
        "name": "RecordingConsentModal"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/ReflectEditor.tsx": {
      "hash": "4f8d00dd55d91ca0fcb47d27e7b44fd82c89f8dea7afeeda8a9899bab7d4ce04",
      "section": "components",
      "data": {
        "name": "ReflectEditor"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/RelatedDocsSidebar.tsx": {
      "hash": "8cb30be5bc21103752e49a6ab3fb684289f56e9b38a8d9c1adcbd25ca5fe8ae6",
      "section": "components",
      "data": {
        "name": "RelatedDocsSidebar"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/review/ReviewActions.tsx": {
      "hash": "e128c6d9b46d049ceaca6de80c56ce1fc1bf4ea988fda9ff20e8e52f24c6757b",
      "section": "components",
      "data": {
        "name": "ReviewActions"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/review/ReviewStatusPopover.tsx": {
      "hash": "b114ce2156c9aa94cd43c7356e1d534df6ddb2a83f58c77d80ca0485099b550b",
      "section": "components",
      "data": {
        "name": "ReviewStatusPopover"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/review/ReviewTimeline.tsx": {
      "hash": "07352ce9e0774ae80719c329be1cd5a876ac5a2372631483388cff8e0cf3bcf7",
      "section": "components",
      "data": {
        "name": "ReviewTimeline"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/RevisionHistoryModal.tsx": {
      "hash": "20df58b93630eae24a64f6d89ae59c293fbf58ec54b5da8600e5c0cca02c5b63",
      "section": "components",
      "data": {
        "name": "RevisionHistoryModal"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/SearchFooter.tsx": {
      "hash": "2fccc4de7d8f4d765b14dd04201cd481f4d261f9c56d13919b450f479d4758e8",
      "section": "components",
      "data": {
        "name": "SearchFooter"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/SearchInput.tsx": {
      "hash": "03f3d9091ac1c94bf36e2b91794390cfce68f0f787cf22d0ebe21f1dffccc28f",
      "section": "components",
      "data": {
        "name": "SearchInput"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/SearchModal.tsx": {
      "hash": "553a3e9c557ec93ddc620d3a02af84a86c2fb9136641272e850a633d02b385df",
      "section": "components",
      "data": {
        "name": "SearchModal"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/SearchModal.tsx": {
      "hash": "90378e585025e2291b16bdd451ac3897596b2833bdae8290da3df0bdd54a8044",
      "section": "components",
      "data": {
        "name": "SearchModal"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/search/SearchSummaryCard.tsx": {
      "hash": "1827b1f571be3c033fb75d78a402a27c3c91a0dafc859c0b586ca490bde4f39b",
      "section": "components",
      "data": {
        "name": "SearchSummaryCard"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/ServiceWorkerRegistrar.tsx": {
      "hash": "8e6fe29d8efc4c2844dbf1b54236ee29b89fe099c89f5c6db2edb05c038b1c24",
      "section": "components",
      "data": {
        "name": "ServiceWorkerRegistrar"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/ShadowIndicator.tsx": {
      "hash": "b6d190748a745573f1af64cdc4c22aeeaa13252dfd8d94d55af88ef9fbe7f545",
      "section": "components",
      "data": {
        "name": "ShadowIndicator"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/SourceBadge.tsx": {
      "hash": "191a0a597a4141aba980215d16a349971564a4f2ecb5a38f795d4ebca364049c",
      "section": "components",
      "data": {
        "name": "SourceBadge"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/TableOfContents.tsx": {
      "hash": "9863d232b8fb4065eb54675458d3b8ad954d8875ce016c6afd97197dd94e7f84",
      "section": "components",
      "data": {
        "name": "TableOfContents"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/TermSummaryView.tsx": {
      "hash": "7524d618e22b79cbb13b1c9e320af532c649aaf61b27abea532572c6bdbe0c51",
      "section": "components",
      "data": {
        "name": "TermSummaryView"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/trust/TrustBadge.tsx": {
      "hash": "8b33cf6066abf7e4aafeaa561558c79f2c7aa66caac958280b8ad0edfbc50f43",
      "section": "components",
      "data": {
        "name": "TrustBadge"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/trust/UnverifiedBanner.tsx": {
      "hash": "d8c57d1751a6902192beaf0bd27cb6c5e922f528627a078d1481829d5d9ad066",
      "section": "components",
      "data": {
        "name": "UnverifiedBanner"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/trust/VerificationTag.tsx": {
      "hash": "175010678ac3b047d980de633b65ea8d9dbb50e0e787cc6acb9d173600df584e",
      "section": "components",
      "data": {
        "name": "VerificationTag"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/review/VersionDiff.tsx": {
      "hash": "6b02527a26ee43fc72975e1f6a6f5c35d48eb5872de36c6c25d0796144e74aae",
      "section": "components",
      "data": {
        "name": "VersionDiff"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/VoiceCommandProvider.tsx": {
      "hash": "092560ba3847b3f4eb1b82ccbb58575bae4455f7286175d7a61b13b6b3dae49f",
      "section": "components",
      "data": {
        "name": "VoiceCommandProvider"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/WikiLinkList.tsx": {
      "hash": "d9594fa033a89ce02b0bbed9dd6eb096c76bc1300dddc2b83325ffdfb53b9c71",
      "section": "components",
      "data": {
        "name": "WikiLinkList"
      },
      "updated_at": "2026-04-18T11:44:23"
    },
    "nextapp/src/components/WikiLinkPreview.tsx": {
      "hash": "36171def67c6518fcfe0b3401a68bb52319c4a7ac9e76e3872dd559f8612fcc8",
      "section": "components",
      "data": {
        "name": "WikiLinkPreview"
      },
      "updated_at": "2026-04-18T11:44:23"
    }
  },
  "tree_lines": [
    "insuwiki/",
    "├── chrome_profile_notebooklm/",
    "│   ├── BrowserMetrics/",
    "│   ├── Crashpad/",
    "│   ├── Default/",
    "│   ├── segmentation_platform/",
    "│   ├── ShaderCache/",
    "│   ├── CrashpadMetrics-active.pma",
    "│   ├── CrashpadMetrics.pma",
    "│   ├── Last Version",
    "│   ├── Local State",
    "│   └── Variations",
    "├── data/",
    "│   ├── batches_20260416_1657/",
    "│   ├── batches_20260416_1947/",
    "│   ├── batches_20260416_2126/",
    "│   ├── chroma_db/",
    "│   ├── dictionaries/",
    "│   ├── insights/",
    "│   ├── graph.json",
    "│   ├── insights_index.json",
    "│   ├── insights_v2_20260413_1734.json",
    "│   ├── insights_v2_20260413_1735.json",
    "│   ├── insights_v2_20260413_1738.json",
    "│   ├── insights_v2_20260413_1804.json",
    "│   ├── insights_v2_20260416_1657.json",
    "│   ├── wiki.db",
    "│   └── wiki.db.bak.pre-march",
    "├── docs/",
    "│   ├── decisions/",
    "│   ├── guides/",
    "│   ├── meetings/",
    "│   ├── plans/",
    "│   ├── reports/",
    "│   ├── reviews/",
    "│   ├── rules/",
    "│   ├── specs/",
    "│   ├── tasks/",
    "│   ├── user-guide/",
    "│   └── walkthroughs/",
    "├── functions/",
    "│   ├── lib/",
    "│   ├── src/",
    "│   ├── deploy-with-creds.ps1",
    "│   ├── package-lock.json",
    "│   ├── package.json",
    "│   ├── run_pipeline.js",
    "│   ├── testLoad.js",
    "│   └── tsconfig.json",
    "├── memory/",
    "│   └── reports/",
    "├── nextapp/",
    "│   ├── public/",
    "│   ├── scripts/",
    "│   ├── src/",
    "│   ├── .gitignore",
    "│   ├── eslint.config.mjs",
    "│   ├── firebase.json",
    "│   ├── firestore-debug.log",
    "│   ├── next-env.d.ts",
    "│   ├── next.config.ts",
    "│   ├── package-lock.json",
    "│   ├── package.json",
    "│   ├── postcss.config.mjs",
    "│   ├── README.md",
    "│   ├── tsconfig.json",
    "│   ├── tsconfig.tsbuildinfo",
    "│   └── vitest.config.ts",
    "├── plans/",
    "│   ├── plan-task-136.1.md",
    "│   ├── plan-task-137.1.md",
    "│   ├── plan-task-141.1.md",
    "│   ├── plan-task-143.1.md",
    "│   ├── plan-task-145.1.md",
    "│   └── plan-task-146.1.md",
    "├── scripts/",
    "│   ├── __tests__/",
    "│   ├── kakao_knowledge/",
    "│   ├── lib/",
    "│   ├── prompts/",
    "│   ├── samples/",
    "│   ├── youtube-pipeline/",
    "│   ├── aggregate-backlinks.ts",
    "│   ├── backfill-authority-tier.ts",
    "│   ├── backfill-custom-claims.ts",
    "│   ├── backfill-links-schema.ts",
    "│   ├── backfill-user-names.ts",
    "│   ├── checkFirestoreState.ts",
    "│   ├── delete-old-youtube-docs.js",
    "│   ├── deploy.sh",
    "│   ├── enable-embedding-config.ts",
    "│   ├── evaluate-embedding-matching.ts",
    "│   ├── evaluate-static-matching.ts",
    "│   ├── evaluation-results-phase1b.json",
    "│   ├── evaluation-results.json",
    "│   ├── fix-author-names.ts",
    "│   ├── fix-broken-underline-tags.ts",
    "│   ├── fix-unknown-reviewers.ts",
    "│   ├── manual-classification-needed.json",
    "│   ├── migrate-links-to-outgoing.ts",
    "│   ├── migrate-review-fields.ts",
    "│   ├── poc-table-parser.ts",
    "│   ├── rollback_wiki_sync.py",
    "│   ├── seed-ai-linking-config.ts",
    "│   ├── seed-and-evaluate-embeddings.ts",
    "│   ├── seed-insurance-metadata.ts",
    "│   ├── seed-normalize-map.ts",
    "│   ├── seed-youtube-channels.ts",
    "│   ├── seedInsuranceTerms.ts",
    "│   ├── strip-underline-tags.ts",
    "│   ├── summary-pipeline.ts",
    "│   ├── task00001-260207-08.00.py",
    "│   ├── task00002-260207-08.30.py",
    "│   ├── task00003-260207-09.00.py",
    "│   ├── task00004-260207-10.00.py",
    "│   ├── triggerStaticMatching.ts",
    "│   ├── tsconfig.json",
    "│   ├── verify-underline-tags.ts",
    "│   ├── youtube-get-pending.ts",
    "│   └── youtube-upload-summary.ts",
    "├── tests/",
    "│   ├── golden/",
    "│   ├── youtube/",
    "│   └── test_e2e_blog_generate.py",
    "├── .firebaserc",
    "├── .gitignore",
    "├── eslint.config.mjs",
    "├── firebase.json",
    "├── firestore-debug.log",
    "├── firestore.indexes.json",
    "├── firestore.rules",
    "├── next.config.ts",
    "├── notebooklm-config.json",
    "├── package-lock.json",
    "├── package.json",
    "├── postcss.config.mjs",
    "├── README.md",
    "├── START.md",
    "├── tsconfig.json",
    "├── tsconfig.tsbuildinfo",
    "└── 프롬프트(노트북LM-안티그래피티 연결).txt"
  ],
  "config": {
    "packages": [
      {
        "file": "package.json",
        "name": "nextapp",
        "version": "0.1.0",
        "dependencies": [
          "@google/generative-ai",
          "dotenv",
          "next",
          "react",
          "react-dom"
        ],
        "devDependencies": [
          "@tailwindcss/postcss",
          "@types/node",
          "@types/react",
          "@types/react-dom",
          "eslint",
          "eslint-config-next",
          "firebase-admin",
          "tailwindcss",
          "typescript"
        ],
        "scripts": [
          "dev",
          "build",
          "start",
          "lint"
        ]
      },
      {
        "file": "functions/package.json",
        "name": "functions",
        "version": "(unknown)",
        "dependencies": [
          "@google-cloud/firestore",
          "@google/generative-ai",
          "@opendataloader/pdf",
          "firebase-admin",
          "firebase-functions",
          "googleapis"
        ],
        "devDependencies": [
          "typescript"
        ],
        "scripts": [
          "build",
          "serve",
          "shell",
          "start",
          "deploy",
          "logs",
          "test"
        ]
      },
      {
        "file": "nextapp/package.json",
        "name": "nextapp",
        "version": "0.1.0",
        "dependencies": [
          "@google/generative-ai",
          "@tailwindcss/typography",
          "@tiptap/extension-image",
          "@tiptap/extension-link",
          "@tiptap/extension-placeholder",
          "@tiptap/extension-underline",
          "@tiptap/pm",
          "@tiptap/react",
          "@tiptap/starter-kit",
          "@tiptap/suggestion",
          "@types/diff",
          "diff",
          "es-hangul",
          "firebase",
          "firebase-admin",
          "fuse.js",
          "googleapis",
          "hangul-js",
          "next",
          "react",
          "react-dom",
          "react-markdown",
          "rehype-raw",
          "remark-gfm",
          "sonner",
          "tippy.js",
          "tiptap-markdown"
        ],
        "devDependencies": [
          "@tailwindcss/postcss",
          "@testing-library/jest-dom",
          "@testing-library/react",
          "@testing-library/user-event",
          "@types/node",
          "@types/react",
          "@types/react-dom",
          "@vitest/coverage-v8",
          "@vitest/ui",
          "eslint",
          "eslint-config-next",
          "jsdom",
          "tailwindcss",
          "typescript",
          "vitest"
        ],
        "scripts": [
          "dev",
          "build",
          "start",
          "lint",
          "test",
          "test:watch",
          "test:coverage"
        ]
      }
    ],
    "tsconfig": [
      {
        "file": "functions/tsconfig.json",
        "compilerOptions": {
          "target": "es2017",
          "module": "commonjs",
          "strict": true,
          "outDir": "lib"
        }
      },
      {
        "file": "scripts/tsconfig.json",
        "compilerOptions": {
          "target": "ES2017",
          "module": "commonjs",
          "moduleResolution": "node",
          "strict": true,
          "baseUrl": "../nextapp",
          "esModuleInterop": true,
          "noEmit": true
        },
        "paths": {
          "firebase-admin": [
            "node_modules/firebase-admin/lib/index.d.ts"
          ],
          "firebase-admin/*": [
            "node_modules/firebase-admin/lib/*"
          ],
          "dotenv": [
            "node_modules/dotenv/lib/main.d.ts"
          ]
        }
      }
    ]
  },
  "recent_files": [
    {
      "file": "tests/test_e2e_blog_generate.py",
      "date": "2026-04-18"
    },
    {
      "file": "scripts/kakao_knowledge/tests/test_knowledge_extractor_v2.py",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1657/batch_001.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1657/batch_002.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1657/batch_003.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1657/batch_004.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1657/batch_005.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1947/batch_001.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1947/batch_002.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1947/batch_003.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1947/batch_004.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_1947/batch_005.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_2126/batch_001.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_2126/batch_002.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_2126/batch_003.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_2126/batch_004.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_2126/batch_005.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/batches_20260416_2126/batch_006.json",
      "date": "2026-04-17"
    },
    {
      "file": "data/insights_v2_20260416_1657.json",
      "date": "2026-04-17"
    },
    {
      "file": "scripts/kakao_knowledge/knowledge_extractor_v2.py",
      "date": "2026-04-17"
    }
  ]
}