Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

ModeNameSize
-rw-r--r--.claude/commands/ask.md20L
-rw-r--r--.claude/commands/sweep.md39L
-rw-r--r--.claude/settings.json5L
-rw-r--r--.diarize/README.md197L
-rw-r--r--.dockerignore47L
-rw-r--r--.env.example178L
-rw-r--r--.gitignore193L
-rw-r--r--AGENTS.md443L
-rw-r--r--CHANNEL.md74L
-rw-r--r--CITATIONS.md137L
-rw-r--r--CLAUDE.md1L
-rw-r--r--COMMANDS.md207L
-rw-r--r--CONTRIBUTING.md190L
-rw-r--r--Dockerfile549L
-rw-r--r--Dockerfile.build72L
-rw-r--r--Dockerfile.build.dockerignore41L
-rw-r--r--Dockerfile.test40L
-rw-r--r--ENVIRONMENT.md229L
-rw-r--r--LICENSE21L
-rw-r--r--OPERATING.md181L
-rw-r--r--PLAN.md693L
-rw-r--r--PUBLISH.md1097L
-rw-r--r--README.md659L
-rw-r--r--REPORT.md113L
-rw-r--r--RUNNING_IN_DOCKER.md814L
-rw-r--r--SCHEDULED_SYNC.md120L
-rw-r--r--SETTINGS.md889L
-rw-r--r--SETUP.md331L
-rw-r--r--SITE.md260L
-rw-r--r--WORKTREES.md235L
-rw-r--r--common/architecture.test.ts318L
-rw-r--r--common/bin/_cli.test.ts510L
-rw-r--r--common/bin/_cli.ts213L
-rw-r--r--common/bin/_lmdb.ts12L
-rw-r--r--common/bin/_parseFlags.ts71L
-rw-r--r--common/bin/_publicFile.test.ts112L
-rw-r--r--common/bin/_publicFile.ts39L
-rw-r--r--common/bin/_spawnBin.ts81L
-rw-r--r--common/bin/archilyzer.ts775L
-rw-r--r--common/bin/archive-org-refresh.ts37L
-rw-r--r--common/bin/brand-media.test.ts88L
-rw-r--r--common/bin/brand-media.ts235L
-rw-r--r--common/bin/build-archives.ts89L
-rw-r--r--common/bin/build-chart-templates.ts25L
-rw-r--r--common/bin/build-index.ts18L
-rw-r--r--common/bin/build-stats.ts18L
-rw-r--r--common/bin/check-post-availability.ts54L
-rw-r--r--common/bin/cli-docs.test.ts140L
-rw-r--r--common/bin/cli-docs.ts274L
-rw-r--r--common/bin/compose-homepage.ts77L
-rw-r--r--common/bin/compose-hub.test.ts378L
-rw-r--r--common/bin/compose-hub.ts257L
-rw-r--r--common/bin/compose-site.postsVisibility.test.ts410L
-rw-r--r--common/bin/compose-site.test.ts143L
-rw-r--r--common/bin/compose-site.ts1188L
-rw-r--r--common/bin/diarize-backfill.ts407L
-rw-r--r--common/bin/digest-plan.ts284L
-rw-r--r--common/bin/digest-validate.ts351L
-rw-r--r--common/bin/doctor.test.ts999L
-rw-r--r--common/bin/doctor.ts1334L
-rw-r--r--common/bin/duplicate-shorts.ts52L
-rw-r--r--common/bin/env-docs.ts34L
-rw-r--r--common/bin/feeds-backfill-metadata.ts41L
-rw-r--r--common/bin/fetch-posts.ts76L
-rw-r--r--common/bin/file-schemas-docs.ts60L
-rw-r--r--common/bin/gen-media-glyphs.py244L
-rw-r--r--common/bin/gen-wordmark-metrics.py110L
-rw-r--r--common/bin/mcp.test.ts59L
-rw-r--r--common/bin/mcp.ts23L
-rw-r--r--common/bin/media-attach.ts76L
-rw-r--r--common/bin/media-playable.ts61L
-rw-r--r--common/bin/migrate-channel-priority.ts342L
-rw-r--r--common/bin/migrate-media-tier.test.ts652L
-rw-r--r--common/bin/migrate-media-tier.ts1277L
-rw-r--r--common/bin/posts-import-html.ts35L
-rw-r--r--common/bin/publish-out.test.ts97L
-rw-r--r--common/bin/publish.ts434L
-rw-r--r--common/bin/publishNow.test.ts75L
-rw-r--r--common/bin/publishNow.ts127L
-rw-r--r--common/bin/reconcile-video-dirs.ts81L
-rw-r--r--common/bin/release.ts171L
-rw-r--r--common/bin/reports-attach-video.ts49L
-rw-r--r--common/bin/reports-check.test.ts286L
-rw-r--r--common/bin/reports-check.ts276L
-rw-r--r--common/bin/reports-convert.test.ts212L
-rw-r--r--common/bin/reports-convert.ts140L
-rw-r--r--common/bin/reports-export.ts38L
-rw-r--r--common/bin/reports-prepare.ts52L
-rw-r--r--common/bin/run-operation.test.ts204L
-rw-r--r--common/bin/run-operation.ts188L
-rw-r--r--common/bin/seed.ts65L
-rw-r--r--common/bin/settings-example.ts55L
-rw-r--r--common/bin/storage-report.test.ts93L
-rw-r--r--common/bin/storage-report.ts158L
-rw-r--r--common/bin/sync-tick.ts70L
-rw-r--r--common/bin/verify-transcripts.ts23L
-rw-r--r--common/bin/wayback-refresh.ts70L
-rw-r--r--common/components.json20L
-rw-r--r--common/components/BrandMark.test.ts75L
-rw-r--r--common/components/BrandMark.tsx92L
-rw-r--r--common/components/Changelog.tsx140L
-rw-r--r--common/components/CopyLinkButton.tsx46L
-rw-r--r--common/components/FilePlayer.tsx94L
-rw-r--r--common/components/FiltersContainer.tsx99L
-rw-r--r--common/components/FiltersPanel.tsx1142L
-rw-r--r--common/components/KickPlayer.tsx117L
-rw-r--r--common/components/LayerSwatch.tsx53L
-rw-r--r--common/components/Markdown.tsx96L
-rw-r--r--common/components/OdyseePlayer.tsx47L
-rw-r--r--common/components/PlayerProvider.tsx1288L
-rw-r--r--common/components/PostModal.test.ts77L
-rw-r--r--common/components/PostModal.tsx364L
-rw-r--r--common/components/QueryBuilder.tsx164L
-rw-r--r--common/components/QueryGroupView.tsx199L
-rw-r--r--common/components/QueryLeafView.tsx354L
-rw-r--r--common/components/QueryProvider.tsx23L
-rw-r--r--common/components/RumblePlayer.tsx47L
-rw-r--r--common/components/SearchBar.tsx281L
-rw-r--r--common/components/SearchDataContext.tsx869L
-rw-r--r--common/components/SearchResults.tsx1044L
-rw-r--r--common/components/SearchSessionContext.tsx2310L
-rw-r--r--common/components/SocialLinks.tsx109L
-rw-r--r--common/components/SocialScroll.tsx52L
-rw-r--r--common/components/StreamActionLog.tsx259L
-rw-r--r--common/components/ThemeProvider.tsx189L
-rw-r--r--common/components/ThemeScript.tsx25L
-rw-r--r--common/components/ThemeToggle.tsx55L
-rw-r--r--common/components/TranscriptModal.tsx843L
-rw-r--r--common/components/TranscriptSearch.tsx32L
-rw-r--r--common/components/TwitchPlayer.tsx65L
-rw-r--r--common/components/VirtualRow.tsx35L
-rw-r--r--common/components/Wordmark.tsx59L
-rw-r--r--common/components/WorkspaceSearchBar.tsx35L
-rw-r--r--common/components/aliasesCache.ts42L
-rw-r--r--common/components/archiveCaches.test.ts303L
-rw-r--r--common/components/badges.tsx122L
-rw-r--r--common/components/charts/ChartCard.tsx134L
-rw-r--r--common/components/charts/ChartConfigEditor.tsx361L
-rw-r--r--common/components/charts/ChartMessage.tsx10L
-rw-r--r--common/components/charts/ChartPanel.tsx39L
-rw-r--r--common/components/charts/ChartShapeControls.tsx352L
-rw-r--r--common/components/charts/ChartView.test.ts73L
-rw-r--r--common/components/charts/ChartView.tsx205L
-rw-r--r--common/components/charts/ChartsDashboard.tsx290L
-rw-r--r--common/components/charts/CrossSiteChart.tsx149L
-rw-r--r--common/components/charts/FilterBar.tsx119L
-rw-r--r--common/components/charts/LeaderboardChart.tsx99L
-rw-r--r--common/components/charts/MomentumChart.tsx121L
-rw-r--r--common/components/charts/SearchChartPanel.tsx112L
-rw-r--r--common/components/charts/SmallMultiples.tsx109L
-rw-r--r--common/components/charts/channelSites.tsx31L
-rw-r--r--common/components/charts/chartExport.ts129L
-rw-r--r--common/components/charts/surfaceGap.ts14L
-rw-r--r--common/components/charts/useSearchSeries.ts122L
-rw-r--r--common/components/citations/CitationCard.tsx300L
-rw-r--r--common/components/citations/CitationsContext.tsx31L
-rw-r--r--common/components/citations/CitedMarkdown.tsx61L
-rw-r--r--common/components/citations/InlineCite.tsx206L
-rw-r--r--common/components/citations/ReferenceList.tsx46L
-rw-r--r--common/components/citations/VerificationBadge.tsx71L
-rw-r--r--common/components/citations/citations.test.ts222L
-rw-r--r--common/components/digestCache.ts141L
-rw-r--r--common/components/digestStore.ts204L
-rw-r--r--common/components/duplicatesCache.ts91L
-rw-r--r--common/components/exportAdvancedStorage.ts99L
-rw-r--r--common/components/exportFilterStorage.test.ts83L
-rw-r--r--common/components/exportFilterStorage.ts291L
-rw-r--r--common/components/originId.ts38L
-rw-r--r--common/components/postsCache.ts158L
-rw-r--r--common/components/report/VerdictChip.test.ts37L
-rw-r--r--common/components/report/VerdictChip.tsx58L
-rw-r--r--common/components/report/exportSlides.test.ts146L
-rw-r--r--common/components/report/slides/ReportOverview.tsx351L
-rw-r--r--common/components/report/slides/ReportReader.tsx253L
-rw-r--r--common/components/report/slides/ReportSlides.tsx245L
-rw-r--r--common/components/report/slides/Slide.tsx422L
-rw-r--r--common/components/report/slides/SlidesHost.tsx44L
-rw-r--r--common/components/report/slides/ViewSwitch.tsx55L
-rw-r--r--common/components/report/slides/useReaderPlace.tsx52L
-rw-r--r--common/components/searchIndex.worker.ts163L
-rw-r--r--common/components/searchIndexWorkerClient.ts100L
-rw-r--r--common/components/searchIndexWorkerProtocol.ts23L
-rw-r--r--common/components/searchLayerCache.ts309L
-rw-r--r--common/components/searchPipeline.ts68L
-rw-r--r--common/components/shareUrl.test.ts171L
-rw-r--r--common/components/shareUrl.ts187L
-rw-r--r--common/components/siteRegistry.test.ts119L
-rw-r--r--common/components/siteRegistry.ts411L
-rw-r--r--common/components/statsCache.ts56L
-rw-r--r--common/components/subsCache.ts95L
-rw-r--r--common/components/summariesCache.ts75L
-rw-r--r--common/components/tagsCache.ts45L
-rw-r--r--common/components/themeConfig.test.ts237L
-rw-r--r--common/components/themeConfig.ts4L
-rw-r--r--common/components/themeTokens.test.ts281L
-rw-r--r--common/components/transcriptCache.ts68L
-rw-r--r--common/components/transcriptStore.ts174L
-rw-r--r--common/components/ui/alert.tsx79L
-rw-r--r--common/components/ui/badge.tsx59L
-rw-r--r--common/components/ui/button.tsx64L
-rw-r--r--common/components/ui/card.tsx92L
-rw-r--r--common/components/ui/chart.tsx369L
-rw-r--r--common/components/ui/checkbox.tsx33L
-rw-r--r--common/components/ui/collapsible.tsx34L
-rw-r--r--common/components/ui/command.tsx184L
-rw-r--r--common/components/ui/dialog.tsx158L
-rw-r--r--common/components/ui/dropdown-menu.tsx257L
-rw-r--r--common/components/ui/hover-card.tsx44L
-rw-r--r--common/components/ui/input.tsx21L
-rw-r--r--common/components/ui/label.tsx24L
-rw-r--r--common/components/ui/progress.tsx32L
-rw-r--r--common/components/ui/select.tsx190L
-rw-r--r--common/components/ui/separator.tsx28L
-rw-r--r--common/components/ui/sheet.tsx148L
-rw-r--r--common/components/ui/sonner.tsx48L
-rw-r--r--common/components/ui/tabs.tsx91L
-rw-r--r--common/components/ui/tooltip.tsx57L
-rw-r--r--common/components/urlState.ts228L
-rw-r--r--common/components/virtualizer.ts13L
-rw-r--r--common/controller/acceptListing.test.ts171L
-rw-r--r--common/controller/acceptListing.ts113L
-rw-r--r--common/controller/archiveLiveChat.ts515L
-rw-r--r--common/controller/archiveOrgDownload.test.ts422L
-rw-r--r--common/controller/archiveOrgDownload.ts545L
-rw-r--r--common/controller/archiveOrgImport.test.ts410L
-rw-r--r--common/controller/archiveOrgImport.ts654L
-rw-r--r--common/controller/archiveOrgRefresh.test.ts167L
-rw-r--r--common/controller/archiveOrgRefresh.ts106L
-rw-r--r--common/controller/archiveTranscripts.ts637L
-rw-r--r--common/controller/attachMedia.test.ts297L
-rw-r--r--common/controller/attachMedia.ts503L
-rw-r--r--common/controller/attributeOne.ts645L
-rw-r--r--common/controller/attributionTarget.ts83L
-rw-r--r--common/controller/autoRunner.test.ts792L
-rw-r--r--common/controller/autoRunner.ts2457L
-rw-r--r--common/controller/backfillAvailability.ts78L
-rw-r--r--common/controller/backfillReacquire.test.ts464L
-rw-r--r--common/controller/backfillReacquire.ts517L
-rw-r--r--common/controller/backupSavedVideos.test.ts157L
-rw-r--r--common/controller/backupSavedVideos.ts257L
-rw-r--r--common/controller/batchRecency.test.ts129L
-rw-r--r--common/controller/batchRecency.ts51L
-rw-r--r--common/controller/bitchuteImport.test.ts77L
-rw-r--r--common/controller/bitchuteImport.ts52L
-rw-r--r--common/controller/buildIndex.test.ts811L
-rw-r--r--common/controller/buildIndex.ts2616L
-rw-r--r--common/controller/buildIndexAltTracks.test.ts211L
-rw-r--r--common/controller/buildIndexCaptionTrack.test.ts184L
-rw-r--r--common/controller/buildIndexPlatformLabels.test.ts201L
-rw-r--r--common/controller/buildIndexRecordedDate.test.ts164L
-rw-r--r--common/controller/buildStats.test.ts702L
-rw-r--r--common/controller/buildStats.ts794L
-rw-r--r--common/controller/capturePosts.test.ts219L
-rw-r--r--common/controller/capturePosts.ts255L
-rw-r--r--common/controller/channelCoverage.test.ts95L
-rw-r--r--common/controller/channelCoverage.ts196L
-rw-r--r--common/controller/channelProjection.test.ts229L
-rw-r--r--common/controller/channelSets.test.ts152L
-rw-r--r--common/controller/channelSets.ts94L
-rw-r--r--common/controller/channelSnapshot.test.ts856L
-rw-r--r--common/controller/channelSnapshot.ts1754L
-rw-r--r--common/controller/channelWriters.test.ts280L
-rw-r--r--common/controller/channelWriters.ts217L
-rw-r--r--common/controller/channels.test.ts228L
-rw-r--r--common/controller/channels.ts611L
-rw-r--r--common/controller/checkAvailability.test.ts132L
-rw-r--r--common/controller/checkAvailability.ts365L
-rw-r--r--common/controller/checkKeptDeleted.ts90L
-rw-r--r--common/controller/checkPostAvailability.ts209L
-rw-r--r--common/controller/cleanAudioFromTranscribed.ts201L
-rw-r--r--common/controller/cleanExtraAudioFormats.ts88L
-rw-r--r--common/controller/compactJsonWriters.test.ts98L
-rw-r--r--common/controller/curatedTagsBuild.test.ts396L
-rw-r--r--common/controller/curatedTagsIndex.test.ts608L
-rw-r--r--common/controller/curatedTagsIndex.ts632L
-rw-r--r--common/controller/curatedTagsPreview.test.ts361L
-rw-r--r--common/controller/curatedTagsPreview.ts17368B
-rw-r--r--common/controller/cutRelease.test.ts663L
-rw-r--r--common/controller/cutRelease.ts471L
-rw-r--r--common/controller/diarizeAll.ts142L
-rw-r--r--common/controller/diarizeOne.ts195L
-rw-r--r--common/controller/digestPlan.test.ts333L
-rw-r--r--common/controller/digestPlan.ts653L
-rw-r--r--common/controller/digestSharing.test.ts186L
-rw-r--r--common/controller/digestSharing.ts322L
-rw-r--r--common/controller/digestTarget.ts112L
-rw-r--r--common/controller/digestVideo.ts402L
-rw-r--r--common/controller/digestYield.test.ts231L
-rw-r--r--common/controller/digestYield.ts187L
-rw-r--r--common/controller/duplicateShorts.ts1141L
-rw-r--r--common/controller/evictClipWindows.test.ts279L
-rw-r--r--common/controller/evictClipWindows.ts238L
-rw-r--r--common/controller/failedTranscriptions.ts58L
-rw-r--r--common/controller/feedMetadataBackfill.test.ts363L
-rw-r--r--common/controller/feedMetadataBackfill.ts505L
-rw-r--r--common/controller/feedMetadataJob.ts61L
-rw-r--r--common/controller/fetchOlderPosts.test.ts649L
-rw-r--r--common/controller/fetchPosts.test.ts324L
-rw-r--r--common/controller/fetchPosts.ts572L
-rw-r--r--common/controller/fetchWindows.test.ts373L
-rw-r--r--common/controller/fetchWindows.ts574L
-rw-r--r--common/controller/importForumPages.test.ts116L
-rw-r--r--common/controller/importForumPages.ts154L
-rw-r--r--common/controller/keepVideosMatching.test.ts223L
-rw-r--r--common/controller/keepVideosMatching.ts247L
-rw-r--r--common/controller/keptVideos.test.ts168L
-rw-r--r--common/controller/keptVideos.ts144L
-rw-r--r--common/controller/laneForOperation.test.ts127L
-rw-r--r--common/controller/laneGuards.test.ts163L
-rw-r--r--common/controller/laneGuards.ts198L
-rw-r--r--common/controller/llmWorkers.test.ts122L
-rw-r--r--common/controller/llmWorkers.ts107L
-rw-r--r--common/controller/maybeMissingBuild.test.ts149L
-rw-r--r--common/controller/maybeMissingStore.ts68L
-rw-r--r--common/controller/mediaTierHooks.test.ts145L
-rw-r--r--common/controller/metadataScanJob.ts80L
-rw-r--r--common/controller/metadataScanStore.test.ts323L
-rw-r--r--common/controller/metadataScanStore.ts358L
-rw-r--r--common/controller/migrateToSites.ts155L
-rw-r--r--common/controller/noCorpusWalkInRenderPaths.test.ts155L
-rw-r--r--common/controller/normalizeAll.test.ts288L
-rw-r--r--common/controller/normalizeAll.ts134L
-rw-r--r--common/controller/normalizeAllLiveChat.ts93L
-rw-r--r--common/controller/normalizeCaptionTrack.test.ts160L
-rw-r--r--common/controller/normalizeLiveChat.ts165L
-rw-r--r--common/controller/normalizeTranscript.ts362L
-rw-r--r--common/controller/operationBatch.test.ts552L
-rw-r--r--common/controller/operationBatch.ts2044L
-rw-r--r--common/controller/operationBatchRelocation.test.ts143L
-rw-r--r--common/controller/operationJobs.ts362L
-rw-r--r--common/controller/operationLane.ts51L
-rw-r--r--common/controller/persistKept.test.ts85L
-rw-r--r--common/controller/persistKept.ts181L
-rw-r--r--common/controller/persistKeptForceMedia.test.ts182L
-rw-r--r--common/controller/persistVideos.test.ts511L
-rw-r--r--common/controller/persistVideos.ts527L
-rw-r--r--common/controller/planOrder.test.ts101L
-rw-r--r--common/controller/planOrder.ts52L
-rw-r--r--common/controller/poolSummary.test.ts61L
-rw-r--r--common/controller/poolSummary.ts111L
-rw-r--r--common/controller/preparePlayable.test.ts275L
-rw-r--r--common/controller/preparePlayable.ts361L
-rw-r--r--common/controller/pruneSavedVideos.test.ts107L
-rw-r--r--common/controller/pruneSavedVideos.ts79L
-rw-r--r--common/controller/purgeSupersededAutoSubs.ts111L
-rw-r--r--common/controller/quickAvailabilityCheck.ts121L
-rw-r--r--common/controller/recencyIndex.test.ts337L
-rw-r--r--common/controller/recencyIndex.ts583L
-rw-r--r--common/controller/reconcileVideoDirs.test.ts166L
-rw-r--r--common/controller/reconcileVideoDirs.ts201L
-rw-r--r--common/controller/refreshVideoMetadata.test.ts457L
-rw-r--r--common/controller/refreshVideoMetadata.ts508L
-rw-r--r--common/controller/refreshVideoMetadataJob.ts121L
-rw-r--r--common/controller/relocateChannelMedia.test.ts1910L
-rw-r--r--common/controller/relocateChannelMedia.ts1351L
-rw-r--r--common/controller/relocateDir.test.ts514L
-rw-r--r--common/controller/relocateDir.ts782L
-rw-r--r--common/controller/relocateSavedVideos.test.ts549L
-rw-r--r--common/controller/relocateSavedVideos.ts781L
-rw-r--r--common/controller/remoteCapacity.test.ts129L
-rw-r--r--common/controller/remoteCapacity.ts102L
-rw-r--r--common/controller/remoteListing.test.ts87L
-rw-r--r--common/controller/remoteListing.ts122L
-rw-r--r--common/controller/remoteTranscribe.ts232L
-rw-r--r--common/controller/remoteUnit.test.ts213L
-rw-r--r--common/controller/remoteUnit.ts222L
-rw-r--r--common/controller/removeWrongFormatAudio.ts86L
-rw-r--r--common/controller/renameChannel.test.ts288L
-rw-r--r--common/controller/renameChannel.ts280L
-rw-r--r--common/controller/rosterStore.test.ts298L
-rw-r--r--common/controller/rosterStore.ts405L
-rw-r--r--common/controller/savedVideoInventory.test.ts67L
-rw-r--r--common/controller/savedVideoInventory.ts134L
-rw-r--r--common/controller/scanCorruptMedia.ts454L
-rw-r--r--common/controller/seeder.test.ts192L
-rw-r--r--common/controller/seeder.ts372L
-rw-r--r--common/controller/shard.ts169L
-rw-r--r--common/controller/snapshotYield.test.ts39L
-rw-r--r--common/controller/storageLocations.test.ts870L
-rw-r--r--common/controller/storageLocations.ts1111L
-rw-r--r--common/controller/storageStall.test.ts649L
-rw-r--r--common/controller/storageWatch.test.ts663L
-rw-r--r--common/controller/storageWatch.ts623L
-rw-r--r--common/controller/transcode.ts65L
-rw-r--r--common/controller/transcribeError.ts19L
-rw-r--r--common/controller/transcribeFile.test.ts554L
-rw-r--r--common/controller/transcribeFile.ts608L
-rw-r--r--common/controller/transcribeOne.test.ts73L
-rw-r--r--common/controller/transcribeOne.ts511L
-rw-r--r--common/controller/transcribeOneFromQueue.ts168L
-rw-r--r--common/controller/undownloadedVideos.ts51L
-rw-r--r--common/controller/verifyBeforeClean.test.ts356L
-rw-r--r--common/controller/verifyBeforeClean.ts237L
-rw-r--r--common/controller/verifyTranscripts.ts65L
-rw-r--r--common/controller/videoCues.ts152L
-rw-r--r--common/controller/videoOperations.test.ts273L
-rw-r--r--common/controller/videoOperations.ts135L
-rw-r--r--common/controller/videoTitles.test.ts328L
-rw-r--r--common/controller/videoTitles.ts337L
-rw-r--r--common/controller/waybackRefresh.test.ts242L
-rw-r--r--common/controller/waybackRefresh.ts342L
-rw-r--r--common/controller/whisperBatch.ts261L
-rw-r--r--common/controller/workerServer.ts421L
-rw-r--r--common/jobs/autoQueuePolicy.test.ts1442L
-rw-r--r--common/jobs/autoQueuePolicy.ts534L
-rw-r--r--common/jobs/autoQueueState.test.ts234L
-rw-r--r--common/jobs/autoQueueState.ts354L
-rw-r--r--common/jobs/bootQueuedJobs.test.ts597L
-rw-r--r--common/jobs/bootQueuedJobs.ts472L
-rw-r--r--common/jobs/channelPriorityCompile.test.ts275L
-rw-r--r--common/jobs/channelPrioritySanitize.test.ts101L
-rw-r--r--common/jobs/concurrentRunner.test.ts175L
-rw-r--r--common/jobs/concurrentRunner.ts134L
-rw-r--r--common/jobs/deepSync.test.ts93L
-rw-r--r--common/jobs/deepSync.ts43L
-rw-r--r--common/jobs/downloadBackoff.test.ts251L
-rw-r--r--common/jobs/downloadBackoff.ts249L
-rw-r--r--common/jobs/drainStream.ts16L
-rw-r--r--common/jobs/jobDetail.test.ts66L
-rw-r--r--common/jobs/jobDetail.ts42L
-rw-r--r--common/jobs/jobKinds.test.ts321L
-rw-r--r--common/jobs/jobKinds.ts1104L
-rw-r--r--common/jobs/jobMeta.ts97L
-rw-r--r--common/jobs/jobSpec.test.ts53L
-rw-r--r--common/jobs/jobSpec.ts82L
-rw-r--r--common/jobs/laneMigration.test.ts299L
-rw-r--r--common/jobs/listJobs.test.ts197L
-rw-r--r--common/jobs/listJobs.ts340L
-rw-r--r--common/jobs/platformBackoff.test.ts265L
-rw-r--r--common/jobs/platformBackoff.ts632L
-rw-r--r--common/jobs/platformGap.test.ts72L
-rw-r--r--common/jobs/platformGap.ts82L
-rw-r--r--common/jobs/progressParsers.test.ts261L
-rw-r--r--common/jobs/progressParsers.ts552L
-rw-r--r--common/jobs/registry.test.ts149L
-rw-r--r--common/jobs/registry.ts512L
-rw-r--r--common/jobs/runChild.test.ts98L
-rw-r--r--common/jobs/runChild.ts135L
-rw-r--r--common/jobs/scheduler.test.ts182L
-rw-r--r--common/jobs/scheduler.ts213L
-rw-r--r--common/jobs/shutdownCancel.ts69L
-rw-r--r--common/jobs/snapshotScheduler.test.ts185L
-rw-r--r--common/jobs/snapshotScheduler.ts424L
-rw-r--r--common/jobs/streamCommand.test.ts316L
-rw-r--r--common/jobs/streamCommand.ts497L
-rw-r--r--common/jobs/syncJobs.ts42L
-rw-r--r--common/jobs/syncScheduler.test.ts262L
-rw-r--r--common/jobs/syncScheduler.ts306L
-rw-r--r--common/jobs/syncSchedulerState.ts184L
-rw-r--r--common/jobs/taskHooks.ts121L
-rw-r--r--common/jobs/ulid.test.ts37L
-rw-r--r--common/jobs/ulid.ts58L
-rw-r--r--common/jobs/unitOutcome.test.ts302L
-rw-r--r--common/jobs/unitOutcome.ts166L
-rw-r--r--common/jobs/windowJobs.test.ts71L
-rw-r--r--common/jobs/windowJobs.ts71L
-rw-r--r--common/jobs/workerDefaults.ts59L
-rw-r--r--common/jobs/workerPool.test.ts501L
-rw-r--r--common/jobs/workerPool.ts725L
-rw-r--r--common/lib/__fixtures__/demo-podcast.rss54L
-rw-r--r--common/lib/__fixtures__/vtt-cue-blocks.vtt29L
-rw-r--r--common/lib/__fixtures__/vtt-rolling.vtt31L
-rw-r--r--common/lib/accent.test.ts127L
-rw-r--r--common/lib/accent.ts132L
-rw-r--r--common/lib/aiHandoff.test.ts101L
-rw-r--r--common/lib/aiHandoff.ts116L
-rw-r--r--common/lib/aliasesStore.test.ts101L
-rw-r--r--common/lib/aliasesStore.ts71L
-rw-r--r--common/lib/archive.ts40L
-rw-r--r--common/lib/archive/contract.test.ts284L
-rw-r--r--common/lib/archive/contract.ts254L
-rw-r--r--common/lib/archive/headers.test.ts202L
-rw-r--r--common/lib/archive/headers.ts151L
-rw-r--r--common/lib/archive/io-stats.ts40L
-rw-r--r--common/lib/archive/offlineUrls.test.ts181L
-rw-r--r--common/lib/archive/offlineUrls.ts102L
-rw-r--r--common/lib/archive/reader-fs.ts406L
-rw-r--r--common/lib/archive/reader-hub.ts335L
-rw-r--r--common/lib/archive/reader-reports.test.ts235L
-rw-r--r--common/lib/archive/reader.test.ts454L
-rw-r--r--common/lib/archive/reader.ts1012L
-rw-r--r--common/lib/archive/readers.test.ts181L
-rw-r--r--common/lib/archive/readers.ts73L
-rw-r--r--common/lib/archive/serviceWorkerRouting.test.ts141L
-rw-r--r--common/lib/archiveOptions.ts72L
-rw-r--r--common/lib/archiveOrg-server.test.ts113L
-rw-r--r--common/lib/archiveOrg-server.ts155L
-rw-r--r--common/lib/archiveOrg.test.ts444L
-rw-r--r--common/lib/archiveOrg.ts646L
-rw-r--r--common/lib/archiveOrgClient.test.ts237L
-rw-r--r--common/lib/archiveOrgClient.ts360L
-rw-r--r--common/lib/archiveOrgId.test.ts157L
-rw-r--r--common/lib/archiveOrgId.ts236L
-rw-r--r--common/lib/archiveOrgTorrent-server.test.ts156L
-rw-r--r--common/lib/archiveOrgTorrent-server.ts301L
-rw-r--r--common/lib/archiveOrgTorrent.test.ts196L
-rw-r--r--common/lib/archiveOrgTorrent.ts304L
-rw-r--r--common/lib/attachMediaPlan.test.ts178L
-rw-r--r--common/lib/attachMediaPlan.ts343L
-rw-r--r--common/lib/attribution-server.ts37L
-rw-r--r--common/lib/attribution.test.ts420L
-rw-r--r--common/lib/attribution.ts314L
-rw-r--r--common/lib/attributionPrompt.ts664L
-rw-r--r--common/lib/attributionScore.test.ts331L
-rw-r--r--common/lib/attributionScore.ts325L
-rw-r--r--common/lib/attributionStatus.ts56L
-rw-r--r--common/lib/attributionTurns.test.ts151L
-rw-r--r--common/lib/attributionTurns.ts155L
-rw-r--r--common/lib/autoQueueSchema.ts284L
-rw-r--r--common/lib/autoQueueTypes.ts221L
-rw-r--r--common/lib/availability-server.ts186L
-rw-r--r--common/lib/availability.test.ts217L
-rw-r--r--common/lib/availability.ts382L
-rw-r--r--common/lib/bencode.ts133L
-rw-r--r--common/lib/bitchute.test.ts117L
-rw-r--r--common/lib/bitchute.ts40L
-rw-r--r--common/lib/boundaryScore.test.ts111L
-rw-r--r--common/lib/boundaryScore.ts208L
-rw-r--r--common/lib/brand.test.ts251L
-rw-r--r--common/lib/brand.ts245L
-rw-r--r--common/lib/brandIconFiles.ts59L
-rw-r--r--common/lib/brandIcons.test.ts201L
-rw-r--r--common/lib/brandIcons.ts116L
-rw-r--r--common/lib/brandMedia.test.ts184L
-rw-r--r--common/lib/brandMedia.ts479L
-rw-r--r--common/lib/brandMediaGlyphs.ts90L
-rw-r--r--common/lib/builtExport.test.ts549L
-rw-r--r--common/lib/builtExport.ts605L
-rw-r--r--common/lib/captionTrack.test.ts117L
-rw-r--r--common/lib/captionTracks-server.ts129L
-rw-r--r--common/lib/captionTracks.test.ts189L
-rw-r--r--common/lib/captionTracks.ts225L
-rw-r--r--common/lib/changelog.test.ts99L
-rw-r--r--common/lib/changelog.ts199L
-rw-r--r--common/lib/channelConfig.ts434L
-rw-r--r--common/lib/channelConfigSchema.test.ts172L
-rw-r--r--common/lib/channelConfigSchema.ts94L
-rw-r--r--common/lib/channelGroups.ts127L
-rw-r--r--common/lib/channelMedia.test.ts450L
-rw-r--r--common/lib/channelMedia.ts724L
-rw-r--r--common/lib/channelMediaHold.ts93L
-rw-r--r--common/lib/channelPriority.test.ts1378L
-rw-r--r--common/lib/channelPriority.ts1078L
-rw-r--r--common/lib/channelSignature.ts94L
-rw-r--r--common/lib/chartAggregate.ts350L
-rw-r--r--common/lib/chartConfig.ts545L
-rw-r--r--common/lib/chartSeriesFromSlugs.ts89L
-rw-r--r--common/lib/chartShare.ts255L
-rw-r--r--common/lib/chartsStore.ts104L
-rw-r--r--common/lib/citations/citations.test.ts276L
-rw-r--r--common/lib/citations/docs.ts167L
-rw-r--r--common/lib/citations/inline.ts94L
-rw-r--r--common/lib/citations/moments.ts151L
-rw-r--r--common/lib/citations/schema.ts285L
-rw-r--r--common/lib/citations/validate.ts295L
-rw-r--r--common/lib/citations/verify.test.ts49L
-rw-r--r--common/lib/citations/verify.ts97L
-rw-r--r--common/lib/clipWindow-server.test.ts91L
-rw-r--r--common/lib/clipWindow-server.ts110L
-rw-r--r--common/lib/clipWindow.test.ts152L
-rw-r--r--common/lib/clipWindow.ts231L
-rw-r--r--common/lib/concurrency.ts30L
-rw-r--r--common/lib/cookiePolicy.test.ts109L
-rw-r--r--common/lib/cookiePolicy.ts86L
-rw-r--r--common/lib/corpus.test.ts246L
-rw-r--r--common/lib/corpus.ts600L
-rw-r--r--common/lib/cueWiden.mjs99L
-rw-r--r--common/lib/curatedTags.test.ts606L
-rw-r--r--common/lib/curatedTags.ts704L
-rw-r--r--common/lib/curatedTagsStore.test.ts481L
-rw-r--r--common/lib/curatedTagsStore.ts315L
-rw-r--r--common/lib/detectPlatform.mjs69L
-rw-r--r--common/lib/diarization-server.ts38L
-rw-r--r--common/lib/diarization.test.ts126L
-rw-r--r--common/lib/diarization.ts246L
-rw-r--r--common/lib/digest-server.test.ts221L
-rw-r--r--common/lib/digest-server.ts319L
-rw-r--r--common/lib/digest.test.ts358L
-rw-r--r--common/lib/digest.ts593L
-rw-r--r--common/lib/digestApps.ts446L
-rw-r--r--common/lib/digestContext-server.ts75L
-rw-r--r--common/lib/digestParse.test.ts422L
-rw-r--r--common/lib/digestParse.ts354L
-rw-r--r--common/lib/digestPrompt.test.ts172L
-rw-r--r--common/lib/digestPrompt.ts320L
-rw-r--r--common/lib/digests.test.ts180L
-rw-r--r--common/lib/digests.ts158L
-rw-r--r--common/lib/dirSignature.ts54L
-rw-r--r--common/lib/diskSpace.test.ts258L
-rw-r--r--common/lib/diskSpace.ts297L
-rw-r--r--common/lib/doNotClean-server.ts39L
-rw-r--r--common/lib/doNotClean.ts18L
-rw-r--r--common/lib/downloadFilters.test.ts500L
-rw-r--r--common/lib/downloadFilters.ts375L
-rw-r--r--common/lib/downloadOutcome-server.ts39L
-rw-r--r--common/lib/downloadOutcome.ts139L
-rw-r--r--common/lib/duplicates.test.ts564L
-rw-r--r--common/lib/duplicates.ts739L
-rw-r--r--common/lib/duration.test.ts143L
-rw-r--r--common/lib/duration.ts116L
-rw-r--r--common/lib/engineTiming.ts60L
-rw-r--r--common/lib/envVars.test.ts193L
-rw-r--r--common/lib/envVars.ts287L
-rw-r--r--common/lib/evidenceClip-server.test.ts248L
-rw-r--r--common/lib/evidenceClip-server.ts451L
-rw-r--r--common/lib/evidenceClip.mjs400L
-rw-r--r--common/lib/excludeTruncatedCheck-server.ts46L
-rw-r--r--common/lib/excludeTruncatedCheck.ts20L
-rw-r--r--common/lib/fieldDocs.ts14L
-rw-r--r--common/lib/fileSchemaDocs.test.ts60L
-rw-r--r--common/lib/fileSchemaDocs.ts210L
-rw-r--r--common/lib/format.ts37L
-rw-r--r--common/lib/forumPosts.test.ts147L
-rw-r--r--common/lib/git.test.ts34L
-rw-r--r--common/lib/git.ts61L
-rw-r--r--common/lib/homepage.test.ts60L
-rw-r--r--common/lib/homepage.ts140L
-rw-r--r--common/lib/homepageChart.ts251L
-rw-r--r--common/lib/homepageChartData.test.ts127L
-rw-r--r--common/lib/homepageChartData.ts235L
-rw-r--r--common/lib/homepageSummary.test.ts357L
-rw-r--r--common/lib/homepageSummary.ts623L
-rw-r--r--common/lib/hubSummary.test.ts318L
-rw-r--r--common/lib/hubSummary.ts243L
-rw-r--r--common/lib/idleBoot.test.ts27L
-rw-r--r--common/lib/idleBoot.ts34L
-rw-r--r--common/lib/jsonFile-server.test.ts206L
-rw-r--r--common/lib/jsonFile-server.ts268L
-rw-r--r--common/lib/laneMigration.ts217L
-rw-r--r--common/lib/lastResortSeeder.test.ts162L
-rw-r--r--common/lib/lastResortSeeder.ts153L
-rw-r--r--common/lib/liveChat.ts112L
-rw-r--r--common/lib/manifest.ts101L
-rw-r--r--common/lib/mediaFiles.test.ts186L
-rw-r--r--common/lib/mediaFiles.ts170L
-rw-r--r--common/lib/mediaScan.test.ts130L
-rw-r--r--common/lib/mediaScan.ts187L
-rw-r--r--common/lib/mediaTier-server.test.ts340L
-rw-r--r--common/lib/mediaTier-server.ts423L
-rw-r--r--common/lib/mediaTier.test.ts89L
-rw-r--r--common/lib/mediaTier.ts117L
-rw-r--r--common/lib/metadataHistory-server.test.ts177L
-rw-r--r--common/lib/metadataHistory-server.ts190L
-rw-r--r--common/lib/metadataHistory.test.ts215L
-rw-r--r--common/lib/metadataHistory.ts399L
-rw-r--r--common/lib/momentUrl.ts211L
-rw-r--r--common/lib/normalizeSocialSvg.test.ts574L
-rw-r--r--common/lib/operationUnit.test.ts228L
-rw-r--r--common/lib/operations.test.ts1673L
-rw-r--r--common/lib/operations.ts1958L
-rw-r--r--common/lib/pagesDeploy.test.ts255L
-rw-r--r--common/lib/pagesDeploy.ts217L
-rw-r--r--common/lib/parseStdoutJson.ts58L
-rw-r--r--common/lib/paths.ts338L
-rw-r--r--common/lib/pauseGates.test.ts254L
-rw-r--r--common/lib/pauseGates.ts135L
-rw-r--r--common/lib/platform.test.ts20L
-rw-r--r--common/lib/platform.ts120L
-rw-r--r--common/lib/playableMedia.test.ts140L
-rw-r--r--common/lib/playableMedia.ts218L
-rw-r--r--common/lib/ports.mjs97L
-rw-r--r--common/lib/ports.test.ts139L
-rw-r--r--common/lib/posts-server.test.ts244L
-rw-r--r--common/lib/posts-server.ts502L
-rw-r--r--common/lib/posts.ts522L
-rw-r--r--common/lib/postsVisibility.test.ts99L
-rw-r--r--common/lib/postsVisibility.ts75L
-rw-r--r--common/lib/project.ts56L
-rw-r--r--common/lib/publishedTags.test.ts123L
-rw-r--r--common/lib/publishedTags.ts151L
-rw-r--r--common/lib/queueKeys.test.ts52L
-rw-r--r--common/lib/queueKeys.ts120L
-rw-r--r--common/lib/recordedDate.test.ts80L
-rw-r--r--common/lib/recordedDate.ts136L
-rw-r--r--common/lib/report/citedIn.ts53L
-rw-r--r--common/lib/report/convert-server.ts123L
-rw-r--r--common/lib/report/convert.test.ts618L
-rw-r--r--common/lib/report/convertAsk.ts172L
-rw-r--r--common/lib/report/convertManifest.ts559L
-rw-r--r--common/lib/report/convertShared.ts628L
-rw-r--r--common/lib/report/convertSweep.ts52L
-rw-r--r--common/lib/report/docs.test.ts46L
-rw-r--r--common/lib/report/docs.ts145L
-rw-r--r--common/lib/report/entries.ts57L
-rw-r--r--common/lib/report/export.test.ts255L
-rw-r--r--common/lib/report/exportHtml.ts758L
-rw-r--r--common/lib/report/exportMarkdown.ts265L
-rw-r--r--common/lib/report/exportSlidesHtml.ts432L
-rw-r--r--common/lib/report/feeds.test.ts133L
-rw-r--r--common/lib/report/feeds.ts194L
-rw-r--r--common/lib/report/report.test.ts326L
-rw-r--r--common/lib/report/revisions.test.ts144L
-rw-r--r--common/lib/report/revisions.ts359L
-rw-r--r--common/lib/report/schema.ts213L
-rw-r--r--common/lib/report/slideRules.ts44L
-rw-r--r--common/lib/report/slides.test.ts316L
-rw-r--r--common/lib/report/slides.ts501L
-rw-r--r--common/lib/report/timeline.test.ts233L
-rw-r--r--common/lib/report/uses.ts103L
-rw-r--r--common/lib/report/validate.ts315L
-rw-r--r--common/lib/report/verdicts.mjs81L
-rw-r--r--common/lib/report/verdicts.ts40L
-rw-r--r--common/lib/report/views.test.ts417L
-rw-r--r--common/lib/report/views.ts847L
-rw-r--r--common/lib/rssFeed.test.ts120L
-rw-r--r--common/lib/rssFeed.ts237L
-rw-r--r--common/lib/safeStreamController.test.ts64L
-rw-r--r--common/lib/safeStreamController.ts60L
-rw-r--r--common/lib/savedVideo-server.ts225L
-rw-r--r--common/lib/savedVideo.test.ts218L
-rw-r--r--common/lib/savedVideo.ts207L
-rw-r--r--common/lib/savedVideoBackup.ts80L
-rw-r--r--common/lib/savedVideoStore.test.ts168L
-rw-r--r--common/lib/savedVideoStore.ts115L
-rw-r--r--common/lib/savedVideoWindow-server.test.ts206L
-rw-r--r--common/lib/savedVideoWindow-server.ts208L
-rw-r--r--common/lib/search/collapse.test.ts102L
-rw-r--r--common/lib/search/collapse.ts81L
-rw-r--r--common/lib/search/evalTree.test.ts395L
-rw-r--r--common/lib/search/evalTree.ts398L
-rw-r--r--common/lib/search/leafPipeline.test.ts311L
-rw-r--r--common/lib/search/leafPipeline.ts830L
-rw-r--r--common/lib/search/policy.test.ts26L
-rw-r--r--common/lib/search/policy.ts51L
-rw-r--r--common/lib/search/rank.test.ts37L
-rw-r--r--common/lib/search/rank.ts49L
-rw-r--r--common/lib/search/searchIn.test.ts347L
-rw-r--r--common/lib/search/searchIn.ts94L
-rw-r--r--common/lib/search/window.test.ts130L
-rw-r--r--common/lib/search/window.ts210L
-rw-r--r--common/lib/searchAliases.test.ts188L
-rw-r--r--common/lib/searchAliases.ts217L
-rw-r--r--common/lib/searchEval.ts716L
-rw-r--r--common/lib/searchQuery.test.ts201L
-rw-r--r--common/lib/searchQuery.ts592L
-rw-r--r--common/lib/seederCompose.test.ts80L
-rw-r--r--common/lib/seederSettings.test.ts40L
-rw-r--r--common/lib/seederSettings.ts96L
-rw-r--r--common/lib/selection.test.ts48L
-rw-r--r--common/lib/selection.ts25L
-rw-r--r--common/lib/settings.ts250L
-rw-r--r--common/lib/settingsDocs.test.ts63L
-rw-r--r--common/lib/settingsDocs.ts361L
-rw-r--r--common/lib/settingsFieldSchemas.ts63L
-rw-r--r--common/lib/settingsSchema.test.ts572L
-rw-r--r--common/lib/settingsSchema.ts1846L
-rw-r--r--common/lib/settingsWrite.test.ts123L
-rw-r--r--common/lib/sidecar-server.test.ts173L
-rw-r--r--common/lib/sidecar-server.ts104L
-rw-r--r--common/lib/site.ts310L
-rw-r--r--common/lib/siteColor.test.ts242L
-rw-r--r--common/lib/siteColor.ts140L
-rw-r--r--common/lib/siteDescriptor.test.ts40L
-rw-r--r--common/lib/siteDescriptor.ts100L
-rw-r--r--common/lib/siteSchema.test.ts534L
-rw-r--r--common/lib/siteSchema.ts539L
-rw-r--r--common/lib/socialLinks.test.ts191L
-rw-r--r--common/lib/socialLinks.ts133L
-rw-r--r--common/lib/socialSvg.ts485L
-rw-r--r--common/lib/socialSvg.vectors.ts140L
-rw-r--r--common/lib/sourceManifest.test.ts89L
-rw-r--r--common/lib/sourceManifest.ts150L
-rw-r--r--common/lib/stats.ts92L
-rw-r--r--common/lib/storageHealth.test.ts691L
-rw-r--r--common/lib/storageHealth.ts847L
-rw-r--r--common/lib/storageHealthCounters.test.ts260L
-rw-r--r--common/lib/storageHealthProbe.test.ts128L
-rw-r--r--common/lib/storageHealthTimings.test.ts138L
-rw-r--r--common/lib/storageHealthTimings.ts166L
-rw-r--r--common/lib/storageLocations.test.ts114L
-rw-r--r--common/lib/storageLocations.ts250L
-rw-r--r--common/lib/storageSettings.test.ts256L
-rw-r--r--common/lib/storageVolumes.test.ts270L
-rw-r--r--common/lib/storageVolumes.ts780L
-rw-r--r--common/lib/subs.ts19L
-rw-r--r--common/lib/subtitleProvenance.test.ts133L
-rw-r--r--common/lib/subtitleProvenance.ts177L
-rw-r--r--common/lib/themeConfig.ts217L
-rw-r--r--common/lib/toolProbe.mjs94L
-rw-r--r--common/lib/transcribeOutcome-server.ts29L
-rw-r--r--common/lib/transcribeOutcome.ts23L
-rw-r--r--common/lib/transcriptCoverage.ts83L
-rw-r--r--common/lib/transcriptPin-server.ts39L
-rw-r--r--common/lib/transcriptToMarkdown.test.ts130L
-rw-r--r--common/lib/transcriptToMarkdown.ts153L
-rw-r--r--common/lib/transcriptWindow.test.ts153L
-rw-r--r--common/lib/transcriptWindow.ts148L
-rw-r--r--common/lib/transcriptionApps.test.ts27L
-rw-r--r--common/lib/transcriptionApps.ts307L
-rw-r--r--common/lib/transcripts-server.test.ts55L
-rw-r--r--common/lib/transcripts-server.ts294L
-rw-r--r--common/lib/transcripts.ts98L
-rw-r--r--common/lib/useMediaQuery.ts39L
-rw-r--r--common/lib/utils.ts6L
-rw-r--r--common/lib/videoId.ts100L
-rw-r--r--common/lib/videoState.test.ts185L
-rw-r--r--common/lib/videoStatus.ts406L
-rw-r--r--common/lib/vodExpiry.ts44L
-rw-r--r--common/lib/vtt.test.ts97L
-rw-r--r--common/lib/vtt.ts144L
-rw-r--r--common/lib/wayback-server.ts43L
-rw-r--r--common/lib/wayback.test.ts162L
-rw-r--r--common/lib/wayback.ts211L
-rw-r--r--common/lib/whisper.ts104L
-rw-r--r--common/lib/widgetPresets.ts172L
-rw-r--r--common/lib/wordmarkMetrics.ts58L
-rw-r--r--common/lib/wordmarkWidth.test.ts46L
-rw-r--r--common/lib/wordmarkWidth.ts44L
-rw-r--r--common/lib/workerToken.test.ts121L
-rw-r--r--common/lib/workerToken.ts43L
-rw-r--r--common/lib/workers.test.ts128L
-rw-r--r--common/lib/workers.ts420L
-rw-r--r--common/lib/ymd.ts18L
-rw-r--r--common/lib/zipReader.test.ts176L
-rw-r--r--common/lib/zipReader.ts308L
-rw-r--r--common/package.json100L
-rw-r--r--common/publish/__fixtures__/fakeStagit.ts82L
-rw-r--r--common/publish/__fixtures__/stamps.ts40L
-rw-r--r--common/publish/build.test.ts274L
-rw-r--r--common/publish/build.ts1001L
-rw-r--r--common/publish/buildImage.test.ts175L
-rw-r--r--common/publish/bundle.test.ts257L
-rw-r--r--common/publish/citedPostCaptures.test.ts132L
-rw-r--r--common/publish/citedPostCaptures.ts149L
-rw-r--r--common/publish/composeReports.test.ts888L
-rw-r--r--common/publish/composeReports.ts976L
-rw-r--r--common/publish/composeReportsArchiveOrg.test.ts60L
-rw-r--r--common/publish/composeReportsWayback.test.ts54L
-rw-r--r--common/publish/deployStage.test.ts689L
-rw-r--r--common/publish/deployStage.ts571L
-rw-r--r--common/publish/inputSig.test.ts215L
-rw-r--r--common/publish/inputSig.ts260L
-rw-r--r--common/publish/liveCheck.test.ts274L
-rw-r--r--common/publish/liveCheck.ts287L
-rw-r--r--common/publish/missingEvidenceWindows.test.ts131L
-rw-r--r--common/publish/publishLaneState.ts73L
-rw-r--r--common/publish/publishPlan.test.ts543L
-rw-r--r--common/publish/publishPlan.ts878L
-rw-r--r--common/publish/publishRunner.test.ts352L
-rw-r--r--common/publish/publishRunner.ts333L
-rw-r--r--common/publish/publishStages.test.ts195L
-rw-r--r--common/publish/publishStages.ts202L
-rw-r--r--common/publish/publishState.test.ts196L
-rw-r--r--common/publish/publishState.ts406L
-rw-r--r--common/publish/reportExportFiles.ts144L
-rw-r--r--common/publish/reportExports.ts777L
-rw-r--r--common/publish/reportHistory.test.ts248L
-rw-r--r--common/publish/reportHistory.ts473L
-rw-r--r--common/publish/reportMedia.test.ts255L
-rw-r--r--common/publish/reportMedia.ts535L
-rw-r--r--common/publish/reportVideo.ts251L
-rw-r--r--common/publish/source.test.ts1039L
-rw-r--r--common/publish/source.ts1467L
-rw-r--r--common/publish/sourceAudit.test.ts195L
-rw-r--r--common/publish/sourceAudit.ts656L
-rw-r--r--common/publish/sourceHistory.test.ts632L
-rw-r--r--common/publish/sourceHistory.ts767L
-rw-r--r--common/publish/sourceTree.test.ts96L
-rw-r--r--common/publish/sourceTree.ts186L
-rw-r--r--common/publish/stageBodies.ts616L
-rw-r--r--common/publish/stageLock.test.ts205L
-rw-r--r--common/publish/stageLock.ts291L
-rw-r--r--common/publish/stageRun.test.ts321L
-rw-r--r--common/publish/stageRun.ts178L
-rw-r--r--common/publish/stages.test.ts377L
-rw-r--r--common/publish/stages.ts426L
-rw-r--r--common/publish/stamps.test.ts138L
-rw-r--r--common/publish/stamps.ts275L
-rw-r--r--common/publish/tombstones.test.ts176L
-rw-r--r--common/publish/tombstones.ts183L
-rw-r--r--common/social/__fixtures__/bluesky-author-feed.json813L
-rw-r--r--common/social/__fixtures__/firefoxCookieStore.ts90L
-rw-r--r--common/social/__fixtures__/x-article.html1L
-rw-r--r--common/social/__fixtures__/xenforoPages.ts222L
-rw-r--r--common/social/blueskyFetcher.test.ts99L
-rw-r--r--common/social/blueskyFetcher.ts541L
-rw-r--r--common/social/fetchers.ts385L
-rw-r--r--common/social/forumSession.ts406L
-rw-r--r--common/social/htmlReader.ts121L
-rw-r--r--common/social/nodeSqlite.ts36L
-rw-r--r--common/social/olderBackfill.test.ts133L
-rw-r--r--common/social/olderBackfill.ts166L
-rw-r--r--common/social/playwrightRuntime.ts148L
-rw-r--r--common/social/postCapture.test.ts215L
-rw-r--r--common/social/postCapture.ts244L
-rw-r--r--common/social/xArticle.test.ts204L
-rw-r--r--common/social/xArticle.ts446L
-rw-r--r--common/social/xArticleCapture.test.ts472L
-rw-r--r--common/social/xArticleCapture.ts392L
-rw-r--r--common/social/xBrowser.test.ts162L
-rw-r--r--common/social/xBrowser.ts242L
-rw-r--r--common/social/xBrowserLogin.test.ts357L
-rw-r--r--common/social/xBrowserLogin.ts561L
-rw-r--r--common/social/xCookieSource.test.ts102L
-rw-r--r--common/social/xCookieSource.ts152L
-rw-r--r--common/social/xGalleryDlFetcher.test.ts418L
-rw-r--r--common/social/xGalleryDlFetcher.ts1350L
-rw-r--r--common/social/xNitterFetcher.test.ts132L
-rw-r--r--common/social/xNitterFetcher.ts433L
-rw-r--r--common/social/xNormalize.test.ts571L
-rw-r--r--common/social/xNormalize.ts258L
-rw-r--r--common/social/xPlaywrightFetcher.ts254L
-rw-r--r--common/social/xPostCapture.test.ts436L
-rw-r--r--common/social/xPostCapture.ts481L
-rw-r--r--common/social/xSessionBroker.test.ts157L
-rw-r--r--common/social/xSessionBroker.ts392L
-rw-r--r--common/social/xenforoFetcher.test.ts578L
-rw-r--r--common/social/xenforoFetcher.ts681L
-rw-r--r--common/social/xenforoParse.test.ts263L
-rw-r--r--common/social/xenforoParse.ts854L
-rw-r--r--common/styles/fonts.ts56L
-rw-r--r--common/styles/slides.css1303L
-rw-r--r--common/styles/tokens.css417L
-rw-r--r--common/testing/chartPixels.ts110L
-rw-r--r--common/testing/makeZip.ts95L
-rw-r--r--common/tsconfig.json13L
-rw-r--r--common/types/webtorrent-modules.d.ts128L
-rw-r--r--common/views/actionableCounts.test.ts116L
-rw-r--r--common/views/actionableCounts.ts108L
-rw-r--r--common/views/activeJobs.test.ts376L
-rw-r--r--common/views/activeJobs.ts429L
-rw-r--r--common/views/autoQueueLanes.test.ts102L
-rw-r--r--common/views/autoQueueLanes.ts139L
-rw-r--r--common/views/autoQueueStatus.test.ts341L
-rw-r--r--common/views/autoQueueStatus.ts375L
-rw-r--r--common/views/builtInPresets.ts63L
-rw-r--r--common/views/channelGroupSections.test.ts488L
-rw-r--r--common/views/channelGroupSections.ts344L
-rw-r--r--common/views/channelPriority.ts54L
-rw-r--r--common/views/channelRow.test.ts177L
-rw-r--r--common/views/channelRow.ts229L
-rw-r--r--common/views/cleanable.test.ts32L
-rw-r--r--common/views/cleanable.ts42L
-rw-r--r--common/views/freeUpSelection.test.ts107L
-rw-r--r--common/views/freeUpSelection.ts129L
-rw-r--r--common/views/inputs.ts66L
-rw-r--r--common/views/jobRowView.ts105L
-rw-r--r--common/views/jobRows.test.ts475L
-rw-r--r--common/views/jobRows.ts374L
-rw-r--r--common/views/laneState.test.ts50L
-rw-r--r--common/views/laneState.ts79L
-rw-r--r--common/views/metadataHistoryView.test.ts129L
-rw-r--r--common/views/metadataHistoryView.ts155L
-rw-r--r--common/views/names.test.ts30L
-rw-r--r--common/views/names.ts55L
-rw-r--r--common/views/pipeline/band.ts275L
-rw-r--r--common/views/pipeline/buildBands.test.ts435L
-rw-r--r--common/views/pipeline/buildBands.ts248L
-rw-r--r--common/views/pipeline/channelFlow.test.ts339L
-rw-r--r--common/views/pipeline/channelFlow.ts618L
-rw-r--r--common/views/pipeline/stageOrder.test.ts69L
-rw-r--r--common/views/pipeline/stageStatus.ts633L
-rw-r--r--common/views/pipeline/tone.ts41L
-rw-r--r--common/views/publishStatus.ts41L
-rw-r--r--common/views/pulse.test.ts153L
-rw-r--r--common/views/pulse.ts108L
-rw-r--r--common/views/review.test.ts60L
-rw-r--r--common/views/review.ts58L
-rw-r--r--common/views/schedulerStatus.test.ts70L
-rw-r--r--common/views/schedulerStatus.ts64L
-rw-r--r--common/views/storage.test.ts509L
-rw-r--r--common/views/storage.ts715L
-rw-r--r--common/views/streamAction.test.ts30L
-rw-r--r--common/views/streamAction.ts28L
-rw-r--r--common/views/widgetActionable.test.ts67L
-rw-r--r--common/views/widgetActionable.ts47L
-rw-r--r--common/views/widgetSync.test.ts240L
-rw-r--r--common/views/widgetSync.ts333L
-rw-r--r--common/views/workers.test.ts191L
-rw-r--r--common/views/workers.ts113L
-rw-r--r--common/ytdlp/audioCheckCadence.test.ts112L
-rw-r--r--common/ytdlp/audioCheckCadence.ts60L
-rw-r--r--common/ytdlp/audioCheckedDownload.ts1290L
-rw-r--r--common/ytdlp/channelArgs.test.ts218L
-rw-r--r--common/ytdlp/channelArgs.ts110L
-rw-r--r--common/ytdlp/downloadFormat.test.ts114L
-rw-r--r--common/ytdlp/downloadFormat.ts234L
-rw-r--r--common/ytdlp/downloadOneManaged.test.ts140L
-rw-r--r--common/ytdlp/downloadOneManaged.ts1827L
-rw-r--r--common/ytdlp/fetchWindowManaged.test.ts124L
-rw-r--r--common/ytdlp/fetchWindowManaged.ts372L
-rw-r--r--common/ytdlp/ffmpegStreamClassify.test.ts70L
-rw-r--r--common/ytdlp/ffmpegStreamClassify.ts43L
-rw-r--r--common/ytdlp/ffmpegStreamProbe.ts72L
-rw-r--r--common/ytdlp/ffprobeDuration.test.ts46L
-rw-r--r--common/ytdlp/ffprobeDuration.ts82L
-rw-r--r--common/ytdlp/finalizeAppExtraction.ts129L
-rw-r--r--common/ytdlp/forceMedia.test.ts413L
-rw-r--r--common/ytdlp/managedDownloadsSleep.test.ts306L
-rw-r--r--common/ytdlp/metadataScan.test.ts81L
-rw-r--r--common/ytdlp/metadataScan.ts745L
-rw-r--r--common/ytdlp/persistFormatPreset.test.ts216L
-rw-r--r--common/ytdlp/persistencePlan.test.ts70L
-rw-r--r--common/ytdlp/persistencePlan.ts96L
-rw-r--r--common/ytdlp/platformArgs.mjs188L
-rw-r--r--common/ytdlp/platformClean.test.ts58L
-rw-r--r--common/ytdlp/prefetchRateLimit.test.ts115L
-rw-r--r--common/ytdlp/runOneYtdlp.ts99L
-rw-r--r--common/ytdlp/runYtdlp.ts2226L
-rw-r--r--common/ytdlp/subtitleRateLimit.test.ts175L
-rw-r--r--common/ytdlp/sweepIncomplete.test.ts111L
-rw-r--r--docker-compose.authelia.yml42L
-rw-r--r--docker-compose.gpu.yml44L
-rw-r--r--docker-compose.seeder.yml108L
-rw-r--r--docker-compose.source.yml36L
-rw-r--r--docker-compose.tinyauth.yml47L
-rw-r--r--docker-compose.vulkan.yml75L
-rw-r--r--docker-compose.yml214L
-rw-r--r--docker-compose.ytdlp.yml25L
-rw-r--r--docker/Caddyfile84L
-rw-r--r--docker/authelia/configuration.yml.example47L
-rw-r--r--docker/authelia/users_database.yml.example13L
-rwxr-xr-xdocker/build-site.sh108L
-rwxr-xr-xdocker/caddy-start.sh47L
-rwxr-xr-xdocker/entrypoint.sh375L
-rwxr-xr-xdocker/guard-exposure.sh96L
-rwxr-xr-xdocker/publish-site.sh54L
-rwxr-xr-xdocker/yt-dlp-from-source.sh20L
-rw-r--r--editor/CHANGELOG.md515L
-rw-r--r--editor/app/api/auto-queue/control/route.ts77L
-rw-r--r--editor/app/api/channels/[slug]/videos/[id]/files/[name]/route.test.ts68L
-rw-r--r--editor/app/api/channels/[slug]/videos/[id]/files/[name]/route.ts231L
-rw-r--r--editor/app/api/channels/[slug]/videos/[id]/subtitle-deferral/route.ts26L
-rw-r--r--editor/app/api/jobs/[id]/log/route.ts62L
-rw-r--r--editor/app/api/media/fetch-window/[jobId]/route.ts109L
-rw-r--r--editor/app/api/media/fetch-window/route.saved.test.ts151L
-rw-r--r--editor/app/api/media/fetch-window/route.test.ts137L
-rw-r--r--editor/app/api/media/fetch-window/route.ts226L
-rw-r--r--editor/app/api/ops/_door.test.ts144L
-rw-r--r--editor/app/api/ops/_jobs.ts153L
-rw-r--r--editor/app/api/ops/_lib.test.ts126L
-rw-r--r--editor/app/api/ops/_lib.ts436L
-rw-r--r--editor/app/api/ops/_publish.ts95L
-rw-r--r--editor/app/api/ops/_read.test.ts146L
-rw-r--r--editor/app/api/ops/_read.ts55L
-rw-r--r--editor/app/api/ops/_testCorpus.ts186L
-rw-r--r--editor/app/api/ops/_writes.test.ts168L
-rw-r--r--editor/app/api/ops/attach-media/route.test.ts91L
-rw-r--r--editor/app/api/ops/attach-media/route.ts70L
-rw-r--r--editor/app/api/ops/auto-queue/route.ts16L
-rw-r--r--editor/app/api/ops/build-cues/route.test.ts99L
-rw-r--r--editor/app/api/ops/build-cues/route.ts32L
-rw-r--r--editor/app/api/ops/build-deploy/route.ts83L
-rw-r--r--editor/app/api/ops/build-homepage/route.ts43L
-rw-r--r--editor/app/api/ops/build-hub/route.ts43L
-rw-r--r--editor/app/api/ops/build-index/route.ts23L
-rw-r--r--editor/app/api/ops/build-site/route.test.ts53L
-rw-r--r--editor/app/api/ops/build-site/route.ts50L
-rw-r--r--editor/app/api/ops/capture-posts/route.test.ts137L
-rw-r--r--editor/app/api/ops/capture-posts/route.ts46L
-rw-r--r--editor/app/api/ops/channel-config/route.ts103L
-rw-r--r--editor/app/api/ops/channel-priority/route.ts91L
-rw-r--r--editor/app/api/ops/channel/[slug]/route.ts100L
-rw-r--r--editor/app/api/ops/channels/route.ts44L
-rw-r--r--editor/app/api/ops/cleanup/[slug]/route.ts52L
-rw-r--r--editor/app/api/ops/cleanup/route.ts43L
-rw-r--r--editor/app/api/ops/clear-platform-hold/route.ts21L
-rw-r--r--editor/app/api/ops/coverage/route.test.ts49L
-rw-r--r--editor/app/api/ops/coverage/route.ts53L
-rw-r--r--editor/app/api/ops/create-channel/route.ts74L
-rw-r--r--editor/app/api/ops/cut-release/route.ts69L
-rw-r--r--editor/app/api/ops/delete-channel/route.ts26L
-rw-r--r--editor/app/api/ops/delete-file/route.ts26L
-rw-r--r--editor/app/api/ops/deploy-homepage/route.test.ts47L
-rw-r--r--editor/app/api/ops/deploy-homepage/route.ts36L
-rw-r--r--editor/app/api/ops/deploy-hub/route.test.ts56L
-rw-r--r--editor/app/api/ops/deploy-hub/route.ts36L
-rw-r--r--editor/app/api/ops/deploy-site/route.test.ts102L
-rw-r--r--editor/app/api/ops/deploy-site/route.ts42L
-rw-r--r--editor/app/api/ops/do-not-clean/route.ts23L
-rw-r--r--editor/app/api/ops/download-missing/route.ts21L
-rw-r--r--editor/app/api/ops/evict-clips/route.ts31L
-rw-r--r--editor/app/api/ops/feed-metadata/route.ts21L
-rw-r--r--editor/app/api/ops/fetch-posts/route.test.ts139L
-rw-r--r--editor/app/api/ops/fetch-posts/route.ts50L
-rw-r--r--editor/app/api/ops/fetch-windows/route.test.ts187L
-rw-r--r--editor/app/api/ops/fetch-windows/route.ts188L
-rw-r--r--editor/app/api/ops/import-archive-org/route.test.ts52L
-rw-r--r--editor/app/api/ops/import-archive-org/route.ts102L
-rw-r--r--editor/app/api/ops/import-video/route.ts17L
-rw-r--r--editor/app/api/ops/job/[id]/route.ts52L
-rw-r--r--editor/app/api/ops/job/route.test.ts212L
-rw-r--r--editor/app/api/ops/job/route.ts113L
-rw-r--r--editor/app/api/ops/jobs/route.ts63L
-rw-r--r--editor/app/api/ops/keep-videos/route.ts57L
-rw-r--r--editor/app/api/ops/lane/route.ts124L
-rw-r--r--editor/app/api/ops/metadata-scan/route.ts16L
-rw-r--r--editor/app/api/ops/persist-videos/route.test.ts73L
-rw-r--r--editor/app/api/ops/persist-videos/route.ts65L
-rw-r--r--editor/app/api/ops/prepare-playable/route.test.ts66L
-rw-r--r--editor/app/api/ops/prepare-playable/route.ts41L
-rw-r--r--editor/app/api/ops/publish/route.test.ts95L
-rw-r--r--editor/app/api/ops/publish/route.ts187L
-rw-r--r--editor/app/api/ops/refresh-metadata/route.test.ts83L
-rw-r--r--editor/app/api/ops/refresh-metadata/route.ts30L
-rw-r--r--editor/app/api/ops/refresh-report/route.ts59L
-rw-r--r--editor/app/api/ops/relocate-back/route.ts20L
-rw-r--r--editor/app/api/ops/relocate/route.ts64L
-rw-r--r--editor/app/api/ops/remote-listing/route.test.ts74L
-rw-r--r--editor/app/api/ops/remote-listing/route.ts16L
-rw-r--r--editor/app/api/ops/rename-channel/route.test.ts153L
-rw-r--r--editor/app/api/ops/rename-channel/route.ts34L
-rw-r--r--editor/app/api/ops/reports-export/route.test.ts55L
-rw-r--r--editor/app/api/ops/reports-export/route.ts33L
-rw-r--r--editor/app/api/ops/reports-prepare/route.test.ts49L
-rw-r--r--editor/app/api/ops/reports-prepare/route.ts23L
-rw-r--r--editor/app/api/ops/retry-bucket/route.test.ts45L
-rw-r--r--editor/app/api/ops/retry-bucket/route.ts85L
-rw-r--r--editor/app/api/ops/scheduler/route.ts16L
-rw-r--r--editor/app/api/ops/settings/patch.ts66L
-rw-r--r--editor/app/api/ops/settings/route.ts75L
-rw-r--r--editor/app/api/ops/sites/route.ts28L
-rw-r--r--editor/app/api/ops/storage/route.ts15L
-rw-r--r--editor/app/api/ops/sync/route.ts20L
-rw-r--r--editor/app/api/ops/tag-videos/route.test.ts46L
-rw-r--r--editor/app/api/ops/tag-videos/route.ts74L
-rw-r--r--editor/app/api/ops/tags/route.ts122L
-rw-r--r--editor/app/api/ops/transcribe-bucket/route.ts63L
-rw-r--r--editor/app/api/ops/transcribe-one/route.ts36L
-rw-r--r--editor/app/api/ops/transcribe/route.test.ts86L
-rw-r--r--editor/app/api/ops/transcribe/route.ts33L
-rw-r--r--editor/app/api/ops/transcript/route.ts33L
-rw-r--r--editor/app/api/ops/workers/route.ts48L
-rw-r--r--editor/app/api/scheduler/tick/route.ts16L
-rw-r--r--editor/app/api/test/_guard.ts27L
-rw-r--r--editor/app/api/test/invalidate-cache/route.ts138L
-rw-r--r--editor/app/api/test/resume-lane/route.ts62L
-rw-r--r--editor/app/api/test/settle-running-metas/route.ts26L
-rw-r--r--editor/app/api/test/stuck-job/route.ts117L
-rw-r--r--editor/app/api/test/uncaught-count/route.ts77L
-rw-r--r--editor/app/api/test/worker-token/route.ts57L
-rw-r--r--editor/app/api/view/[name]/route.test.ts126L
-rw-r--r--editor/app/api/view/[name]/route.ts41L
-rw-r--r--editor/app/api/view/pulseView.ts57L
-rw-r--r--editor/app/api/view/views.test.ts84L
-rw-r--r--editor/app/api/view/views.ts78L
-rw-r--r--editor/app/api/widget/presets/route.ts31L
-rw-r--r--editor/app/api/worker/health/route.ts20L
-rw-r--r--editor/app/api/worker/transcribe/[id]/events/route.ts25L
-rw-r--r--editor/app/api/worker/transcribe/[id]/result/route.ts33L
-rw-r--r--editor/app/api/worker/transcribe/[id]/route.ts29L
-rw-r--r--editor/app/api/worker/transcribe/route.ts58L
-rw-r--r--editor/app/api/worker/unit/[id]/events/route.ts26L
-rw-r--r--editor/app/api/worker/unit/[id]/result/route.ts31L
-rw-r--r--editor/app/api/worker/unit/[id]/route.ts30L
-rw-r--r--editor/app/api/worker/unit/route.test.ts197L
-rw-r--r--editor/app/api/worker/unit/route.ts51L
-rw-r--r--editor/app/changelog/page.tsx52L
-rw-r--r--editor/app/channels/[slug]/attachMediaActions.ts94L
-rw-r--r--editor/app/channels/[slug]/availabilityActions.ts141L
-rw-r--r--editor/app/channels/[slug]/backfillActions.ts40L
-rw-r--r--editor/app/channels/[slug]/bulkVideoActions.ts290L
-rw-r--r--editor/app/channels/[slug]/components/ChannelTabs.tsx48L
-rw-r--r--editor/app/channels/[slug]/components/MediaNotAnswering.tsx72L
-rw-r--r--editor/app/channels/[slug]/components/NoReportYet.tsx42L
-rw-r--r--editor/app/channels/[slug]/components/PipelineStageCard.tsx116L
-rw-r--r--editor/app/channels/[slug]/components/RefreshSnapshotButton.tsx54L
-rw-r--r--editor/app/channels/[slug]/components/RetryBucketControl.tsx134L
-rw-r--r--editor/app/channels/[slug]/components/SocialChannelPanel.tsx407L
-rw-r--r--editor/app/channels/[slug]/components/VideoIdList.tsx47L
-rw-r--r--editor/app/channels/[slug]/components/VideoListPane.tsx903L
-rw-r--r--editor/app/channels/[slug]/components/flow/AttentionStrip.tsx149L
-rw-r--r--editor/app/channels/[slug]/components/flow/ChannelLine.tsx83L
-rw-r--r--editor/app/channels/[slug]/components/flow/FlowGap.tsx83L
-rw-r--r--editor/app/channels/[slug]/components/flow/FlowStation.tsx156L
-rw-r--r--editor/app/channels/[slug]/components/flow/NextAction.tsx57L
-rw-r--r--editor/app/channels/[slug]/components/flow/OverviewPanel.tsx193L
-rw-r--r--editor/app/channels/[slug]/components/flow/SidingList.tsx112L
-rw-r--r--editor/app/channels/[slug]/components/flow/StageSwitcher.tsx111L
-rw-r--r--editor/app/channels/[slug]/components/stages/CleanupStage.tsx544L
-rw-r--r--editor/app/channels/[slug]/components/stages/DiagnosticsStage.tsx782L
-rw-r--r--editor/app/channels/[slug]/components/stages/DigestStage.tsx270L
-rw-r--r--editor/app/channels/[slug]/components/stages/DownloadStage.tsx498L
-rw-r--r--editor/app/channels/[slug]/components/stages/OperationWork.tsx96L
-rw-r--r--editor/app/channels/[slug]/components/stages/PlaylistStage.tsx255L
-rw-r--r--editor/app/channels/[slug]/components/stages/SpeakersStage.tsx267L
-rw-r--r--editor/app/channels/[slug]/components/stages/StorageStage.tsx744L
-rw-r--r--editor/app/channels/[slug]/components/stages/TranscribeStage.tsx541L
-rw-r--r--editor/app/channels/[slug]/digestActions.ts209L
-rw-r--r--editor/app/channels/[slug]/incompleteTranscriptActions.ts218L
-rw-r--r--editor/app/channels/[slug]/layout.tsx73L
-rw-r--r--editor/app/channels/[slug]/lib/channelConfigCache.ts15L
-rw-r--r--editor/app/channels/[slug]/lib/fixIncompleteTranscript.ts158L
-rw-r--r--editor/app/channels/[slug]/lib/metadataScanView.ts38L
-rw-r--r--editor/app/channels/[slug]/lib/videoDirFiles.ts81L
-rw-r--r--editor/app/channels/[slug]/lib/videoRows.test.ts47L
-rw-r--r--editor/app/channels/[slug]/lib/videoRows.ts180L
-rw-r--r--editor/app/channels/[slug]/lib/videoRowsServer.ts121L
-rw-r--r--editor/app/channels/[slug]/lib/videoTagRows.ts58L
-rw-r--r--editor/app/channels/[slug]/normalizeActions.ts85L
-rw-r--r--editor/app/channels/[slug]/page.tsx861L
-rw-r--r--editor/app/channels/[slug]/persistActions.ts218L
-rw-r--r--editor/app/channels/[slug]/pipelineActions.ts1001L
-rw-r--r--editor/app/channels/[slug]/playableActions.ts67L
-rw-r--r--editor/app/channels/[slug]/shardActions.ts154L
-rw-r--r--editor/app/channels/[slug]/socialActions.ts395L
-rw-r--r--editor/app/channels/[slug]/storageActions.ts241L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/DigestBody.tsx488L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/MediaPlayer.tsx133L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/MetadataHistoryDetails.tsx81L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/OperationPanel.tsx137L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/PipelineStatusStrip.tsx51L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/RefreshMetadataControl.tsx46L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/SpeakerBodies.tsx303L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/SubtitleDeferralLine.tsx56L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/TagsPanel.tsx224L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/TextFilePreview.tsx90L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/VideoNavStrip.tsx60L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/VideoPanel.tsx481L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/AvailabilityHistoryList.tsx44L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/DeleteVideoDirSection.tsx59L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/DoNotCleanSection.tsx60L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/DownloadOutcomeBadge.tsx81L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/ExcludeTruncatedCheckSection.tsx64L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/FetchedWindows.tsx83L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/FilesList.tsx107L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/Heading.tsx8L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/IncompleteTranscriptBanner.tsx96L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/MarkUntranscribableSection.tsx49L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/PerFileTranscodeRow.tsx81L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/PerFileTranscribeRow.tsx96L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/RedownloadSection.tsx125L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/ShortAudioBanner.tsx92L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/SourceVideoSection.tsx243L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/TranscriptSourceSection.tsx119L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/TranscriptTracksReader.tsx100L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/cards/videoFiles.ts68L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/operationState.test.ts95L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/components/operationState.ts88L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/lib/videoChoreCards.test.ts47L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/lib/videoChoreCards.ts149L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/lib/videoOperationPanels.ts171L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/lib/videoTags.ts157L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/operationActions.ts57L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/page.tsx442L
-rw-r--r--editor/app/channels/[slug]/videos/[id]/videoActions.ts1427L
-rw-r--r--editor/app/channels/[slug]/videos/components/VideoWorkspace.tsx71L
-rw-r--r--editor/app/channels/[slug]/videos/fetchWindowsAction.test.ts155L
-rw-r--r--editor/app/channels/[slug]/videos/fetchWindowsAction.ts479L
-rw-r--r--editor/app/channels/[slug]/videos/page.tsx321L
-rw-r--r--editor/app/channels/[slug]/whisperActions.ts419L
-rw-r--r--editor/app/channels/actions.ts1085L
-rw-r--r--editor/app/channels/bulkStorageActions.ts136L
-rw-r--r--editor/app/channels/components/ChannelAvailabilityButton.tsx83L
-rw-r--r--editor/app/channels/components/ChannelBuildToggle.tsx45L
-rw-r--r--editor/app/channels/components/ChannelFocusBar.tsx134L
-rw-r--r--editor/app/channels/components/ChannelForm.tsx1178L
-rw-r--r--editor/app/channels/components/ChannelFormClient.tsx61L
-rw-r--r--editor/app/channels/components/ChannelGroupHeaderRow.tsx96L
-rw-r--r--editor/app/channels/components/ChannelGroupLine.tsx264L
-rw-r--r--editor/app/channels/components/ChannelSelectionDeck.tsx311L
-rw-r--r--editor/app/channels/components/ChannelSyncButton.tsx82L
-rw-r--r--editor/app/channels/components/ChannelTierSelect.tsx321L
-rw-r--r--editor/app/channels/components/ChannelVolumeBar.tsx196L
-rw-r--r--editor/app/channels/components/ChannelsRack.tsx263L
-rw-r--r--editor/app/channels/components/ChannelsTable.tsx710L
-rw-r--r--editor/app/channels/components/DeleteChannelForm.tsx61L
-rw-r--r--editor/app/channels/components/EndFocusButton.tsx55L
-rw-r--r--editor/app/channels/components/FocusBanner.tsx102L
-rw-r--r--editor/app/channels/components/RefreshAllReportsButton.tsx76L
-rw-r--r--editor/app/channels/components/RenameChannelForm.tsx73L
-rw-r--r--editor/app/channels/components/SiteMembershipsSection.tsx199L
-rw-r--r--editor/app/channels/components/SyncAllChannelsButton.tsx94L
-rw-r--r--editor/app/channels/components/channelColumnPresets.ts96L
-rw-r--r--editor/app/channels/components/channelColumns.tsx351L
-rw-r--r--editor/app/channels/components/channelConfigToForm.ts199L
-rw-r--r--editor/app/channels/components/parseChannelForm.test.ts63L
-rw-r--r--editor/app/channels/components/parseChannelForm.ts393L
-rw-r--r--editor/app/channels/components/rackLayout.test.ts23L
-rw-r--r--editor/app/channels/components/rackLayout.ts59L
-rw-r--r--editor/app/channels/groupActions.ts269L
-rw-r--r--editor/app/channels/lib/mediaBusy.ts68L
-rw-r--r--editor/app/channels/lib/moveDestination.ts42L
-rw-r--r--editor/app/channels/lib/queueForSlugs.ts55L
-rw-r--r--editor/app/channels/lib/relocationJob.ts128L
-rw-r--r--editor/app/channels/lib/siteMemberships.ts152L
-rw-r--r--editor/app/channels/new/page.tsx37L
-rw-r--r--editor/app/channels/page.tsx462L
-rw-r--r--editor/app/cleanup/components/ChannelCleanupCard.tsx177L
-rw-r--r--editor/app/cleanup/components/ChannelCleanupToggle.tsx47L
-rw-r--r--editor/app/cleanup/components/HoldSieve.tsx311L
-rw-r--r--editor/app/cleanup/components/ReleaseLedger.tsx370L
-rw-r--r--editor/app/cleanup/lib/loadCleanup.ts369L
-rw-r--r--editor/app/cleanup/page.tsx191L
-rw-r--r--editor/app/components/AppFrame.tsx36L
-rw-r--r--editor/app/components/AutoRefresh.tsx108L
-rw-r--r--editor/app/components/ChangelogNavLink.tsx48L
-rw-r--r--editor/app/components/CleanableBadge.tsx27L
-rw-r--r--editor/app/components/CommandPalette.tsx274L
-rw-r--r--editor/app/components/ConcurrencyControl.tsx32L
-rw-r--r--editor/app/components/DurationField.tsx270L
-rw-r--r--editor/app/components/MarkChangelogSeen.tsx20L
-rw-r--r--editor/app/components/MediaLocationBadge.tsx162L
-rw-r--r--editor/app/components/QueueControl.tsx108L
-rw-r--r--editor/app/components/ShardControl.tsx177L
-rw-r--r--editor/app/components/SidebarBadges.tsx47L
-rw-r--r--editor/app/components/SiteScopeProvider.tsx224L
-rw-r--r--editor/app/components/SiteScopeSelect.tsx115L
-rw-r--r--editor/app/components/SocialLinksField.tsx132L
-rw-r--r--editor/app/components/actions/InlineActionButton.tsx228L
-rw-r--r--editor/app/components/actions/PrioritizeButton.tsx41L
-rw-r--r--editor/app/components/channelWork/ChannelWorkTable.tsx139L
-rw-r--r--editor/app/components/channelWork/FixAllIncompleteButton.tsx101L
-rw-r--r--editor/app/components/channelWork/sections.test.ts97L
-rw-r--r--editor/app/components/channelWork/sections.tsx268L
-rw-r--r--editor/app/components/dashboard/DashboardCockpit.tsx145L
-rw-r--r--editor/app/components/dashboard/NeedsWorkPanel.tsx113L
-rw-r--r--editor/app/components/dashboard/PipelineBand.tsx228L
-rw-r--r--editor/app/components/dashboard/QuickAddPanel.tsx62L
-rw-r--r--editor/app/components/forms/Controlled.tsx83L
-rw-r--r--editor/app/components/forms/Field.tsx144L
-rw-r--r--editor/app/components/lanes/LaneActionButton.tsx91L
-rw-r--r--editor/app/components/lanes/LaneCard.tsx146L
-rw-r--r--editor/app/components/lanes/LaneDeck.tsx600L
-rw-r--r--editor/app/components/lanes/LaneRail.tsx43L
-rw-r--r--editor/app/components/lanes/pauseControl.tsx146L
-rw-r--r--editor/app/components/pipelines/StateBand.tsx119L
-rw-r--r--editor/app/components/pulse.ts147L
-rw-r--r--editor/app/components/socialLinksJson.test.ts23L
-rw-r--r--editor/app/components/socialLinksJson.ts23L
-rw-r--r--editor/app/error.tsx72L
-rw-r--r--editor/app/exported/[...path]/route.ts35L
-rw-r--r--editor/app/globals.css15L
-rw-r--r--editor/app/icon.svg1L
-rw-r--r--editor/app/jobs/[id]/components/JobLogTail.tsx130L
-rw-r--r--editor/app/jobs/[id]/page.tsx141L
-rw-r--r--editor/app/jobs/actions.ts314L
-rw-r--r--editor/app/jobs/active/buildActiveJobs.ts112L
-rw-r--r--editor/app/jobs/components/CancelJobButton.tsx32L
-rw-r--r--editor/app/jobs/components/ClearLogsMenu.tsx59L
-rw-r--r--editor/app/jobs/components/DrainAllButton.tsx34L
-rw-r--r--editor/app/jobs/components/DrainJobButton.tsx41L
-rw-r--r--editor/app/jobs/components/ForceReleaseJobButton.tsx38L
-rw-r--r--editor/app/jobs/components/JobProgressBars.tsx273L
-rw-r--r--editor/app/jobs/components/JobRow.tsx593L
-rw-r--r--editor/app/jobs/components/JobsTable.tsx348L
-rw-r--r--editor/app/jobs/components/LaneStrip.tsx89L
-rw-r--r--editor/app/jobs/components/ReapStuckButton.tsx37L
-rw-r--r--editor/app/jobs/components/ReorderJobButtons.tsx74L
-rw-r--r--editor/app/jobs/components/RetryAllFailedButton.tsx27L
-rw-r--r--editor/app/jobs/components/RetryJobButton.tsx42L
-rw-r--r--editor/app/jobs/components/RunningJobsList.tsx39L
-rw-r--r--editor/app/jobs/jobKindLabels.ts6L
-rw-r--r--editor/app/jobs/jobReplayRegistry.ts471L
-rw-r--r--editor/app/jobs/jobsFilterStorage.ts92L
-rw-r--r--editor/app/jobs/page.tsx83L
-rw-r--r--editor/app/jobs/runJobSpec.ts18L
-rw-r--r--editor/app/layout.tsx222L
-rw-r--r--editor/app/lib/actionable/actions.ts65L
-rw-r--r--editor/app/lib/actionable/loadActionable.ts191L
-rw-r--r--editor/app/lib/activeSite.test.ts122L
-rw-r--r--editor/app/lib/activeSite.ts141L
-rw-r--r--editor/app/lib/activeSiteActions.ts31L
-rw-r--r--editor/app/lib/activeSiteServer.ts35L
-rw-r--r--editor/app/lib/brandIcon.test.ts18L
-rw-r--r--editor/app/lib/formState.test.ts105L
-rw-r--r--editor/app/lib/formState.ts91L
-rw-r--r--editor/app/lib/formatElapsed.ts14L
-rw-r--r--editor/app/lib/liveInputs.ts79L
-rw-r--r--editor/app/lib/nav.test.ts53L
-rw-r--r--editor/app/lib/nav.ts134L
-rw-r--r--editor/app/lib/requestCache.ts45L
-rw-r--r--editor/app/lib/safeRevalidate.test.ts178L
-rw-r--r--editor/app/lib/safeRevalidate.ts202L
-rw-r--r--editor/app/lib/usePolledPayload.test.ts15L
-rw-r--r--editor/app/lib/usePolledPayload.ts119L
-rw-r--r--editor/app/operations/[id]/page.tsx328L
-rw-r--r--editor/app/operations/actions.ts272L
-rw-r--r--editor/app/operations/channelPriorityView.ts82L
-rw-r--r--editor/app/operations/components/ClaimLadder.tsx59L
-rw-r--r--editor/app/operations/components/HowPriorityWorks.tsx88L
-rw-r--r--editor/app/operations/components/InFlightList.tsx91L
-rw-r--r--editor/app/operations/components/LadderRung.tsx604L
-rw-r--r--editor/app/operations/components/LaneHeader.tsx210L
-rw-r--r--editor/app/operations/components/LaneOrder.tsx86L
-rw-r--r--editor/app/operations/components/NextUp.tsx102L
-rw-r--r--editor/app/operations/components/OperationDetail.tsx340L
-rw-r--r--editor/app/operations/components/OperationRail.tsx285L
-rw-r--r--editor/app/operations/components/OperationsBoard.tsx69L
-rw-r--r--editor/app/operations/components/PolicyTreeEditor.tsx397L
-rw-r--r--editor/app/operations/components/PublishLaneView.tsx190L
-rw-r--r--editor/app/operations/components/RunnerOperationView.tsx462L
-rw-r--r--editor/app/operations/components/SaveBar.tsx88L
-rw-r--r--editor/app/operations/components/SnoozeControl.tsx92L
-rw-r--r--editor/app/operations/components/dispatch.ts257L
-rw-r--r--editor/app/operations/components/railStates.ts77L
-rw-r--r--editor/app/operations/components/settings/AttributionSettingsForm.tsx167L
-rw-r--r--editor/app/operations/components/settings/DiarizationSettingsForm.tsx236L
-rw-r--r--editor/app/operations/components/settings/DigestAppsField.tsx185L
-rw-r--r--editor/app/operations/components/settings/DigestSettingsForm.tsx281L
-rw-r--r--editor/app/operations/components/settings/LaneSettingsForm.tsx182L
-rw-r--r--editor/app/operations/components/settings/PublishSettingsForm.tsx164L
-rw-r--r--editor/app/operations/components/sync/BulkCadenceBar.tsx99L
-rw-r--r--editor/app/operations/components/sync/ChannelCadenceEditor.tsx127L
-rw-r--r--editor/app/operations/components/sync/SchedulerSettingsForm.tsx225L
-rw-r--r--editor/app/operations/components/sync/SyncConsole.tsx365L
-rw-r--r--editor/app/operations/components/sync/cadence.ts16L
-rw-r--r--editor/app/operations/components/useOperationsStatus.ts47L
-rw-r--r--editor/app/operations/pacingActions.ts41L
-rw-r--r--editor/app/operations/page.tsx33L
-rw-r--r--editor/app/operations/publish/page.tsx44L
-rw-r--r--editor/app/operations/settingsActions.ts335L
-rw-r--r--editor/app/operations/status.ts105L
-rw-r--r--editor/app/operations/syncRow.ts65L
-rw-r--r--editor/app/page.tsx137L
-rw-r--r--editor/app/review/actions.ts189L
-rw-r--r--editor/app/review/components/DuplicateClusterReview.tsx122L
-rw-r--r--editor/app/review/components/MediaScanFindingRow.tsx121L
-rw-r--r--editor/app/review/components/ResumeAutoPausedButton.tsx68L
-rw-r--r--editor/app/review/components/RunDuplicateDetectionButton.tsx85L
-rw-r--r--editor/app/review/components/RunMediaScanButton.tsx93L
-rw-r--r--editor/app/review/lib/loadReview.ts73L
-rw-r--r--editor/app/review/page.tsx328L
-rw-r--r--editor/app/saved-videos/backupActions.ts124L
-rw-r--r--editor/app/saved-videos/components/SavedVideosControls.tsx138L
-rw-r--r--editor/app/saved-videos/page.tsx179L
-rw-r--r--editor/app/scheduler/actions.ts205L
-rw-r--r--editor/app/scheduler/auth.ts13L
-rw-r--r--editor/app/scheduler/heartbeat.ts103L
-rw-r--r--editor/app/scheduler/intervalPresets.ts27L
-rw-r--r--editor/app/scheduler/runTick.ts291L
-rw-r--r--editor/app/scheduler/status.ts30L
-rw-r--r--editor/app/settings/actions.ts267L
-rw-r--r--editor/app/settings/components/SettingsForm.tsx428L
-rw-r--r--editor/app/settings/components/XPostsVisibilityControl.tsx74L
-rw-r--r--editor/app/settings/components/XSessionSection.tsx264L
-rw-r--r--editor/app/settings/page.tsx136L
-rw-r--r--editor/app/settings/saveSettings.test.ts136L
-rw-r--r--editor/app/settings/saveSettings.ts58L
-rw-r--r--editor/app/settings/xSessionActions.ts179L
-rw-r--r--editor/app/sites/[siteId]/aliases/page.tsx47L
-rw-r--r--editor/app/sites/[siteId]/charts/page.tsx36L
-rw-r--r--editor/app/sites/[siteId]/components/SiteTabs.tsx71L
-rw-r--r--editor/app/sites/[siteId]/layout.tsx68L
-rw-r--r--editor/app/sites/[siteId]/lib/siteCache.ts21L
-rw-r--r--editor/app/sites/[siteId]/page.tsx40L
-rw-r--r--editor/app/sites/[siteId]/publish/page.tsx129L
-rw-r--r--editor/app/sites/[siteId]/reports/page.tsx413L
-rw-r--r--editor/app/sites/[siteId]/tags/page.tsx56L
-rw-r--r--editor/app/sites/actions.ts326L
-rw-r--r--editor/app/sites/components/ArchiveOptionsControl.tsx87L
-rw-r--r--editor/app/sites/components/BuildButtons.tsx284L
-rw-r--r--editor/app/sites/components/BuildDeployButton.tsx70L
-rw-r--r--editor/app/sites/components/BuildExportButton.tsx47L
-rw-r--r--editor/app/sites/components/CutReleaseForm.tsx94L
-rw-r--r--editor/app/sites/components/DeployButton.tsx157L
-rw-r--r--editor/app/sites/components/EditorAliasesClient.tsx359L
-rw-r--r--editor/app/sites/components/EditorChartsClient.tsx78L
-rw-r--r--editor/app/sites/components/ExportReportsButton.tsx25L
-rw-r--r--editor/app/sites/components/FetchMissingEvidenceButton.tsx91L
-rw-r--r--editor/app/sites/components/HomepageConfigForm.tsx116L
-rw-r--r--editor/app/sites/components/JobLane.tsx248L
-rw-r--r--editor/app/sites/components/PrepareReportMediaButton.tsx24L
-rw-r--r--editor/app/sites/components/PublishPanel.tsx512L
-rw-r--r--editor/app/sites/components/ReportRowActions.tsx93L
-rw-r--r--editor/app/sites/components/SiteForm.tsx891L
-rw-r--r--editor/app/sites/components/SiteListActions.tsx51L
-rw-r--r--editor/app/sites/components/SiteTagsClient.tsx240L
-rw-r--r--editor/app/sites/lib/aliasesActions.ts30L
-rw-r--r--editor/app/sites/lib/buildAction.ts113L
-rw-r--r--editor/app/sites/lib/chartsActions.ts22L
-rw-r--r--editor/app/sites/lib/cutReleaseAction.ts52L
-rw-r--r--editor/app/sites/lib/homepageActions.ts67L
-rw-r--r--editor/app/sites/lib/publishActions.ts186L
-rw-r--r--editor/app/sites/lib/publishCore.ts220L
-rw-r--r--editor/app/sites/lib/publishRunStream.ts101L
-rw-r--r--editor/app/sites/lib/reportList.test.ts217L
-rw-r--r--editor/app/sites/lib/reportList.ts211L
-rw-r--r--editor/app/sites/lib/reportListServer.ts69L
-rw-r--r--editor/app/sites/lib/reportSiteKeys.test.ts31L
-rw-r--r--editor/app/sites/lib/reportSiteKeys.ts23L
-rw-r--r--editor/app/sites/lib/reportsActions.ts65L
-rw-r--r--editor/app/sites/lib/reportsExportAction.ts90L
-rw-r--r--editor/app/sites/lib/reportsPrepareAction.ts65L
-rw-r--r--editor/app/sites/lib/reportsQueue.ts4L
-rw-r--r--editor/app/sites/lib/revalidateAfterReleaseCut.ts12L
-rw-r--r--editor/app/sites/new/page.tsx53L
-rw-r--r--editor/app/sites/page.tsx243L
-rw-r--r--editor/app/storage/actions.ts534L
-rw-r--r--editor/app/storage/buildStorage.ts181L
-rw-r--r--editor/app/storage/components/ClipWindowsCard.tsx219L
-rw-r--r--editor/app/storage/components/HealthTimingForm.tsx121L
-rw-r--r--editor/app/storage/components/LocationForm.tsx161L
-rw-r--r--editor/app/storage/components/SavedVideosStoreCard.tsx199L
-rw-r--r--editor/app/storage/components/StorageLocationsTable.tsx430L
-rw-r--r--editor/app/storage/lib/evictClipsJob.ts70L
-rw-r--r--editor/app/storage/lib/healthTimingsForm.test.ts95L
-rw-r--r--editor/app/storage/lib/healthTimingsForm.ts91L
-rw-r--r--editor/app/storage/lib/measureStore.ts89L
-rw-r--r--editor/app/storage/lib/repointJob.ts41L
-rw-r--r--editor/app/storage/lib/savedVideosJob.ts86L
-rw-r--r--editor/app/storage/lib/storeBusy.ts95L
-rw-r--r--editor/app/storage/page.tsx37L
-rw-r--r--editor/app/tags/actions.ts240L
-rw-r--r--editor/app/tags/components/EditorTagsClient.tsx899L
-rw-r--r--editor/app/tags/page.tsx66L
-rw-r--r--editor/app/widget/builder/components/LayoutBoard.tsx562L
-rw-r--r--editor/app/widget/builder/components/SectionCard.tsx209L
-rw-r--r--editor/app/widget/builder/components/SectionMini.tsx121L
-rw-r--r--editor/app/widget/builder/components/WidgetBuilder.tsx203L
-rw-r--r--editor/app/widget/builder/page.tsx33L
-rw-r--r--editor/app/widget/builder/widgetConfigStorage.ts155L
-rw-r--r--editor/app/widget/components/MonitorWidget.tsx1102L
-rw-r--r--editor/app/widget/components/PresetsRow.tsx208L
-rw-r--r--editor/app/widget/components/WidgetControls.tsx186L
-rw-r--r--editor/app/widget/components/WidgetFields.tsx107L
-rw-r--r--editor/app/widget/components/WidgetMenu.tsx82L
-rw-r--r--editor/app/widget/components/WidgetSection.tsx100L
-rw-r--r--editor/app/widget/lib/builtInPresets.test.ts82L
-rw-r--r--editor/app/widget/lib/config.ts257L
-rw-r--r--editor/app/widget/lib/placement.test.ts514L
-rw-r--r--editor/app/widget/lib/placement.ts605L
-rw-r--r--editor/app/widget/lib/relativeTime.ts32L
-rw-r--r--editor/app/widget/lib/sections.ts197L
-rw-r--r--editor/app/widget/lib/syncInputs.ts26L
-rw-r--r--editor/app/widget/page.tsx74L
-rw-r--r--editor/app/widget/presetActions.ts60L
-rw-r--r--editor/app/workers/actions.ts116L
-rw-r--r--editor/app/workers/buildWorkers.ts20L
-rw-r--r--editor/app/workers/components/WorkersConfigForm.tsx75L
-rw-r--r--editor/app/workers/components/WorkersField.tsx566L
-rw-r--r--editor/app/workers/components/WorkersView.tsx366L
-rw-r--r--editor/app/workers/page.tsx40L
-rw-r--r--editor/e2e/aliases.spec.ts70L
-rw-r--r--editor/e2e/attribution.spec.ts487L
-rw-r--r--editor/e2e/audio-check-scenarios.spec.ts651L
-rw-r--r--editor/e2e/auto-queue.spec.ts1547L
-rw-r--r--editor/e2e/auto-refresh.spec.ts168L
-rw-r--r--editor/e2e/auto-report-refresh.spec.ts72L
-rw-r--r--editor/e2e/auto-subs-replace.spec.ts437L
-rw-r--r--editor/e2e/availability-backfill.spec.ts115L
-rw-r--r--editor/e2e/availability.spec.ts219L
-rw-r--r--editor/e2e/backfill.spec.ts1368L
-rw-r--r--editor/e2e/baseUrl.ts9L
-rw-r--r--editor/e2e/branding.spec.ts97L
-rw-r--r--editor/e2e/build.spec.ts100L
-rw-r--r--editor/e2e/bulk-actions.spec.ts322L
-rw-r--r--editor/e2e/cadence-ui.spec.ts289L
-rw-r--r--editor/e2e/cancel.spec.ts50L
-rw-r--r--editor/e2e/channel-build-toggle.spec.ts103L
-rw-r--r--editor/e2e/channel-embedded-video.spec.ts69L
-rw-r--r--editor/e2e/channel-groups.spec.ts288L
-rw-r--r--editor/e2e/channel-line.spec.ts291L
-rw-r--r--editor/e2e/channel-priority.spec.ts517L
-rw-r--r--editor/e2e/channel-rename.spec.ts230L
-rw-r--r--editor/e2e/channel-site-membership.spec.ts196L
-rw-r--r--editor/e2e/channel-stage-selection.spec.ts129L
-rw-r--r--editor/e2e/channel-storage.spec.ts1361L
-rw-r--r--editor/e2e/channel-work.spec.ts258L
-rw-r--r--editor/e2e/channels-actions.spec.ts63L
-rw-r--r--editor/e2e/channels-counts.spec.ts97L
-rw-r--r--editor/e2e/channels-rack-audit.spec.ts143L
-rw-r--r--editor/e2e/channels-rack-layers.spec.ts191L
-rw-r--r--editor/e2e/channels-sort.spec.ts88L
-rw-r--r--editor/e2e/channels-storage-columns.spec.ts250L
-rw-r--r--editor/e2e/channels.spec.ts111L
-rw-r--r--editor/e2e/chat-only.spec.ts379L
-rw-r--r--editor/e2e/chough.spec.ts91L
-rw-r--r--editor/e2e/cleanup-actionable.spec.ts142L
-rw-r--r--editor/e2e/cleanup-holds.spec.ts202L
-rw-r--r--editor/e2e/cleanup-page.spec.ts82L
-rw-r--r--editor/e2e/cookies-mode.spec.ts355L
-rw-r--r--editor/e2e/cut-release.spec.ts108L
-rw-r--r--editor/e2e/dashboard-answers.spec.ts356L
-rw-r--r--editor/e2e/dashboard-paths.spec.ts33L
-rw-r--r--editor/e2e/dashboard.spec.ts141L
-rw-r--r--editor/e2e/deploy-page.spec.ts118L
-rw-r--r--editor/e2e/diagnostics-retry-log.spec.ts159L
-rw-r--r--editor/e2e/diarization.spec.ts308L
-rw-r--r--editor/e2e/digest.spec.ts840L
-rw-r--r--editor/e2e/disk-space.spec.ts334L
-rw-r--r--editor/e2e/do-not-clean.spec.ts121L
-rw-r--r--editor/e2e/download-format-guard.spec.ts261L
-rw-r--r--editor/e2e/download-part-files.spec.ts43L
-rw-r--r--editor/e2e/duplicate-shorts.spec.ts392L
-rw-r--r--editor/e2e/exclude-from-counts.spec.ts110L
-rw-r--r--editor/e2e/export-player-platform-cache.spec.ts199L
-rw-r--r--editor/e2e/export-search.spec.ts701L
-rw-r--r--editor/e2e/exportOutLink.ts25L
-rw-r--r--editor/e2e/fetch-window.spec.ts600L
-rw-r--r--editor/e2e/fixtureProcs.ts121L
-rw-r--r--editor/e2e/fixtures/bin/_watchdog.mjs56L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-chough.mjs61L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-claude.mjs90L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-diarize.mjs81L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-ffmpeg.mjs72L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-ffprobe.mjs36L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-findmnt.mjs115L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-gallery-dl.mjs92L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-next.mjs45L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-parakeet-stitch.mjs120L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-udisksctl.mjs65L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-whisper.mjs64L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-wrangler.mjs120L
-rwxr-xr-xeditor/e2e/fixtures/bin/fake-ytdlp.mjs1013L
-rwxr-xr-xeditor/e2e/fixtures/ollama-stub.mjs232L
-rw-r--r--editor/e2e/fixtures/sites/testsite/site.json17L
-rw-r--r--editor/e2e/fixtures/test-settings.default.json10L
-rw-r--r--editor/e2e/fixtures/test-transcripts/audio-check-channel/channels/test-audio-check/config.json13L
-rw-r--r--editor/e2e/fixtures/test-transcripts/audio-check-channel/channels/test-audio-check/playlist1L
-rw-r--r--editor/e2e/fixtures/test-transcripts/availability-baseline/channels/availability-test/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/availability-baseline/channels/availability-test/data/viddeleted1/metadata.info.json15L
-rw-r--r--editor/e2e/fixtures/test-transcripts/availability-baseline/channels/availability-test/data/vidmembers1/metadata.info.json15L
-rw-r--r--editor/e2e/fixtures/test-transcripts/availability-baseline/channels/availability-test/data/vidneedsauth1/metadata.info.json15L
-rw-r--r--editor/e2e/fixtures/test-transcripts/availability-baseline/channels/availability-test/data/vidprivate1/metadata.info.json15L
-rw-r--r--editor/e2e/fixtures/test-transcripts/availability-baseline/channels/availability-test/data/vidpublic1/metadata.info.json15L
-rw-r--r--editor/e2e/fixtures/test-transcripts/availability-baseline/channels/availability-test/data/vidpublic2/metadata.info.json15L
-rw-r--r--editor/e2e/fixtures/test-transcripts/channel-with-counts/channels/counted/archive3L
-rw-r--r--editor/e2e/fixtures/test-transcripts/channel-with-counts/channels/counted/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/channel-with-counts/channels/counted/playlist7L
-rw-r--r--editor/e2e/fixtures/test-transcripts/cookies-mode-channel/channels/test-cookies/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/cookies-mode-channel/channels/test-cookies/playlist2L
-rw-r--r--editor/e2e/fixtures/test-transcripts/curated-tags-channel/channels/tagchan/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/curated-tags-channel/channels/tagchan/data/20240101_small0000/metadata.info.json17L
-rw-r--r--editor/e2e/fixtures/test-transcripts/curated-tags-channel/channels/tagchan/data/20240101_small0000/transcript.en.vtt9L
-rw-r--r--editor/e2e/fixtures/test-transcripts/curated-tags-channel/channels/tagchan/data/20240102_bigdesc000/metadata.info.json17L
-rw-r--r--editor/e2e/fixtures/test-transcripts/curated-tags-channel/channels/tagchan/data/20240102_bigdesc000/transcript.en.vtt126L
-rw-r--r--editor/e2e/fixtures/test-transcripts/curated-tags-channel/channels/tagchan/data/a-rumble-url-slug/metadata.info.json17L
-rw-r--r--editor/e2e/fixtures/test-transcripts/curated-tags-channel/channels/tagchan/data/a-rumble-url-slug/transcript.en.vtt6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/empty/.gitkeep0B
-rw-r--r--editor/e2e/fixtures/test-transcripts/livechat-fallback-channel/channels/test-livechat/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/livechat-fallback-channel/channels/test-livechat/playlist3L
-rw-r--r--editor/e2e/fixtures/test-transcripts/metadata-scan-botcheck/channels/test-botcheck/config.json6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/metadata-scan-botcheck/channels/test-botcheck/playlist5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/metadata-scan-softblock/channels/test-softblock/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/metadata-scan-softblock/channels/test-softblock/playlist23L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-transcribe-channel-with-audio/channels/test-transcribe/archive3L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-transcribe-channel-with-audio/channels/test-transcribe/config.json6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-transcribe-channel-with-audio/channels/test-transcribe/data/vidA/audio.m4a1L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-transcribe-channel-with-audio/channels/test-transcribe/data/vidB/audio.m4a1L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-transcribe-channel-with-audio/channels/test-transcribe/data/vidC/audio.m4a1L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-transcribe-channel/channels/test-transcribe/config.json6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-youtube-channel-with-data/channels/test-youtube/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-youtube-channel-with-data/channels/test-youtube/data/20240101_test1234567/metadata.info.json17L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-youtube-channel-with-data/channels/test-youtube/data/20240101_test1234567/transcript.en.vtt12L
-rw-r--r--editor/e2e/fixtures/test-transcripts/one-youtube-channel/channels/test-youtube/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/skip-live-channel/channels/test-live/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/skip-live-channel/channels/test-live/playlist4L
-rw-r--r--editor/e2e/fixtures/test-transcripts/slow-pipeline-channel/channels/slow-channel/config.json6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/sync-already-archived/channels/archived-channel/archive3L
-rw-r--r--editor/e2e/fixtures/test-transcripts/sync-already-archived/channels/archived-channel/config.json6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/test-pipeline/channels/test-pipeline/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/title-filter-channel/channels/test-filter/config.json8L
-rw-r--r--editor/e2e/fixtures/test-transcripts/title-filter-channel/channels/test-filter/playlist6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/two-slow-channels/channels/slow-a/config.json6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/two-slow-channels/channels/slow-b/config.json6L
-rw-r--r--editor/e2e/fixtures/test-transcripts/youtube-with-playlist/channels/test-youtube/archive1L
-rw-r--r--editor/e2e/fixtures/test-transcripts/youtube-with-playlist/channels/test-youtube/config.json5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/youtube-with-playlist/channels/test-youtube/data/fake00000001/metadata.info.json17L
-rw-r--r--editor/e2e/fixtures/test-transcripts/youtube-with-playlist/channels/test-youtube/data/fake00000001/transcript.en.vtt5L
-rw-r--r--editor/e2e/fixtures/test-transcripts/youtube-with-playlist/channels/test-youtube/playlist5L
-rw-r--r--editor/e2e/focus-banner.spec.ts326L
-rw-r--r--editor/e2e/forms-keep-input.spec.ts791L
-rw-r--r--editor/e2e/globalSetup.ts19L
-rw-r--r--editor/e2e/globalTeardown.ts19L
-rw-r--r--editor/e2e/helpers.ts493L
-rw-r--r--editor/e2e/import-video.spec.ts136L
-rw-r--r--editor/e2e/incomplete-transcript.spec.ts388L
-rw-r--r--editor/e2e/job-stream-cancel.spec.ts78L
-rw-r--r--editor/e2e/jobs-active-order.spec.ts59L
-rw-r--r--editor/e2e/jobs-batch-tasks-drain.spec.ts340L
-rw-r--r--editor/e2e/jobs-channel.spec.ts53L
-rw-r--r--editor/e2e/jobs-filters.spec.ts188L
-rw-r--r--editor/e2e/jobs-reorder.spec.ts109L
-rw-r--r--editor/e2e/jobs-retry.spec.ts155L
-rw-r--r--editor/e2e/jobs.spec.ts41L
-rw-r--r--editor/e2e/lane-runner.spec.ts550L
-rw-r--r--editor/e2e/maybe-missing.spec.ts234L
-rw-r--r--editor/e2e/media-file-abort.spec.ts66L
-rw-r--r--editor/e2e/metadata-scan-botcheck.spec.ts91L
-rw-r--r--editor/e2e/metadata-scan-softblock.spec.ts61L
-rw-r--r--editor/e2e/navigation.spec.ts164L
-rw-r--r--editor/e2e/new-channel-onboarding.spec.ts167L
-rw-r--r--editor/e2e/no-orphan-fixtures.spec.ts103L
-rw-r--r--editor/e2e/no-subs-fallback.spec.ts167L
-rw-r--r--editor/e2e/operation-settings.spec.ts244L
-rw-r--r--editor/e2e/ops-api.spec.ts924L
-rw-r--r--editor/e2e/ops-cut-release.spec.ts207L
-rw-r--r--editor/e2e/pacing.spec.ts233L
-rw-r--r--editor/e2e/parakeet-partial.spec.ts222L
-rw-r--r--editor/e2e/parakeet.spec.ts92L
-rw-r--r--editor/e2e/partial-downloads-bucket.spec.ts112L
-rw-r--r--editor/e2e/perf-budget.spec.ts58L
-rw-r--r--editor/e2e/persist-youtube-handling.spec.ts220L
-rw-r--r--editor/e2e/pipeline.spec.ts194L
-rw-r--r--editor/e2e/pre-clean-availability.spec.ts209L
-rw-r--r--editor/e2e/publish-lane.spec.ts138L
-rw-r--r--editor/e2e/publish.spec.ts305L
-rw-r--r--editor/e2e/pulse.spec.ts78L
-rw-r--r--editor/e2e/queue.spec.ts60L
-rw-r--r--editor/e2e/queues.spec.ts240L
-rw-r--r--editor/e2e/rate-limit.spec.ts377L
-rw-r--r--editor/e2e/reconcile.spec.ts98L
-rw-r--r--editor/e2e/reconstruct-download-url.spec.ts46L
-rw-r--r--editor/e2e/regional-vtt-fallback.spec.ts72L
-rw-r--r--editor/e2e/retry-bucket.spec.ts119L
-rw-r--r--editor/e2e/review.spec.ts119L
-rw-r--r--editor/e2e/rumble-sweep.spec.ts172L
-rw-r--r--editor/e2e/saved-videos.spec.ts168L
-rw-r--r--editor/e2e/scheduler.spec.ts317L
-rw-r--r--editor/e2e/settings.spec.ts92L
-rw-r--r--editor/e2e/shard.spec.ts392L
-rw-r--r--editor/e2e/site-publish-preview.spec.ts119L
-rw-r--r--editor/e2e/site-scope.spec.ts466L
-rw-r--r--editor/e2e/sites-crud.spec.ts622L
-rw-r--r--editor/e2e/sites-homepage.spec.ts253L
-rw-r--r--editor/e2e/skip-live.spec.ts183L
-rw-r--r--editor/e2e/social-channel.spec.ts266L
-rw-r--r--editor/e2e/social-fetcher-picker.spec.ts61L
-rw-r--r--editor/e2e/storage-locations.spec.ts776L
-rw-r--r--editor/e2e/sync-break-on-existing.spec.ts47L
-rw-r--r--editor/e2e/sync-deep.spec.ts469L
-rw-r--r--editor/e2e/tags.spec.ts527L
-rw-r--r--editor/e2e/theme.spec.ts135L
-rw-r--r--editor/e2e/title-filter.spec.ts540L
-rw-r--r--editor/e2e/transcript-source.spec.ts155L
-rw-r--r--editor/e2e/transcription-app-migration.spec.ts39L
-rw-r--r--editor/e2e/truncated-check.spec.ts100L
-rw-r--r--editor/e2e/undownloaded.spec.ts86L
-rw-r--r--editor/e2e/video-filter-combine.spec.ts87L
-rw-r--r--editor/e2e/video-page.spec.ts486L
-rw-r--r--editor/e2e/video-titles.spec.ts115L
-rw-r--r--editor/e2e/view-route.spec.ts41L
-rw-r--r--editor/e2e/whisper-video.spec.ts142L
-rw-r--r--editor/e2e/whisper.spec.ts277L
-rw-r--r--editor/e2e/widget.spec.ts827L
-rw-r--r--editor/e2e/worker-remote.spec.ts192L
-rw-r--r--editor/e2e/workers.spec.ts347L
-rw-r--r--editor/e2e/x-session.spec.ts119L
-rw-r--r--editor/instrumentation.ts244L
-rw-r--r--editor/lib/tagsStore.ts26L
-rw-r--r--editor/next.config.ts161L
-rw-r--r--editor/package.json36L
-rw-r--r--editor/playwright.config.ts261L
-rw-r--r--editor/postcss.config.mjs7L
-rw-r--r--editor/scripts/measure-nav.mjs197L
-rw-r--r--editor/tsconfig.json20L
-rw-r--r--export/CHANGELOG.md247L
-rw-r--r--export/app/(workspace)/SiteWorkspace.tsx57L
-rw-r--r--export/app/(workspace)/WorkspaceNav.tsx65L
-rw-r--r--export/app/(workspace)/WorkspaceView.tsx147L
-rw-r--r--export/app/(workspace)/ask/page.tsx55L
-rw-r--r--export/app/(workspace)/layout.tsx28L
-rw-r--r--export/app/(workspace)/page.tsx64L
-rw-r--r--export/app/ask/AskChat.tsx489L
-rw-r--r--export/app/ask/AskHub.tsx61L
-rw-r--r--export/app/ask/AskScope.tsx26L
-rw-r--r--export/app/ask/Composer.tsx114L
-rw-r--r--export/app/ask/ContextPanel.tsx110L
-rw-r--r--export/app/ask/GroundingPalette.tsx206L
-rw-r--r--export/app/ask/LinkedCopy.tsx21L
-rw-r--r--export/app/ask/MessageBubble.tsx199L
-rw-r--r--export/app/ask/PinnedResultsPanel.tsx381L
-rw-r--r--export/app/ask/PipelineStatus.tsx69L
-rw-r--r--export/app/ask/ProviderSettings.tsx329L
-rw-r--r--export/app/ask/ReportPanel.tsx131L
-rw-r--r--export/app/ask/SavedChatsRow.tsx120L
-rw-r--r--export/app/ask/askChatStorage.test.ts202L
-rw-r--r--export/app/ask/askChatStorage.ts189L
-rw-r--r--export/app/ask/askNotify.ts43L
-rw-r--r--export/app/ask/citations.test.ts94L
-rw-r--r--export/app/ask/citations.tsx232L
-rw-r--r--export/app/ask/hubScopeCopy.test.ts61L
-rw-r--r--export/app/ask/hubScopeCopy.ts87L
-rw-r--r--export/app/ask/useAskChat.ts1627L
-rw-r--r--export/app/changelog/page.tsx23L
-rw-r--r--export/app/components/Footer.tsx156L
-rw-r--r--export/app/components/Header.tsx182L
-rw-r--r--export/app/components/MobileMenu.tsx95L
-rw-r--r--export/app/components/NewSinceLastVisit.tsx109L
-rw-r--r--export/app/components/OfflineManager.tsx357L
-rw-r--r--export/app/components/ServiceWorkerRegister.tsx29L
-rw-r--r--export/app/components/hub/AddArchive.tsx86L
-rw-r--r--export/app/components/hub/ArchiveShelf.tsx213L
-rw-r--r--export/app/components/hub/HubHome.tsx54L
-rw-r--r--export/app/components/hub/HubOfflineManager.tsx147L
-rw-r--r--export/app/components/hub/HubScope.tsx132L
-rw-r--r--export/app/components/hub/HubStats.tsx42L
-rw-r--r--export/app/components/hub/useHubScope.ts65L
-rw-r--r--export/app/components/hub/useHubSites.ts83L
-rw-r--r--export/app/components/hub/useHubSummary.ts46L
-rw-r--r--export/app/components/reports/MomentArticle.tsx180L
-rw-r--r--export/app/components/reports/ReportArticle.tsx538L
-rw-r--r--export/app/components/reports/ReportHistory.tsx146L
-rw-r--r--export/app/components/reports/ReportIndex.tsx58L
-rw-r--r--export/app/components/reports/parts.tsx178L
-rw-r--r--export/app/downloads/page.tsx240L
-rw-r--r--export/app/duplicates/DuplicatesClient.tsx612L
-rw-r--r--export/app/duplicates/page.tsx34L
-rw-r--r--export/app/favicon.ico/route.ts11L
-rw-r--r--export/app/globals.css137L
-rw-r--r--export/app/icons/[file]/route.ts24L
-rw-r--r--export/app/layout.tsx142L
-rw-r--r--export/app/lib/archives.ts31L
-rw-r--r--export/app/lib/askConversation.test.ts367L
-rw-r--r--export/app/lib/askConversation.ts493L
-rw-r--r--export/app/lib/askDebug.test.ts93L
-rw-r--r--export/app/lib/askDebug.ts62L
-rw-r--r--export/app/lib/askProvider.test.ts69L
-rw-r--r--export/app/lib/askProvider.ts472L
-rw-r--r--export/app/lib/askRetrieval.test.ts259L
-rw-r--r--export/app/lib/askRetrieval.ts414L
-rw-r--r--export/app/lib/brand.ts26L
-rw-r--r--export/app/lib/duplicates.ts22L
-rw-r--r--export/app/lib/mode.ts38L
-rw-r--r--export/app/lib/nativeTools/anthropic.ts204L
-rw-r--r--export/app/lib/nativeTools/gemini.ts222L
-rw-r--r--export/app/lib/nativeTools/nativeTools.test.ts80L
-rw-r--r--export/app/lib/nativeTools/openai.ts202L
-rw-r--r--export/app/lib/nativeTools/parsers.test.ts162L
-rw-r--r--export/app/lib/nativeTools/shared.ts241L
-rw-r--r--export/app/lib/nav.ts32L
-rw-r--r--export/app/lib/offlineCache.ts202L
-rw-r--r--export/app/lib/rateLimit.test.ts202L
-rw-r--r--export/app/lib/rateLimit.ts394L
-rw-r--r--export/app/lib/reportSize.test.ts48L
-rw-r--r--export/app/lib/reports.test.ts393L
-rw-r--r--export/app/lib/reports.ts119L
-rw-r--r--export/app/lib/searchAgent.test.ts72L
-rw-r--r--export/app/lib/searchAgent.ts795L
-rw-r--r--export/app/lib/site.ts60L
-rw-r--r--export/app/m/[...moment]/page.tsx40L
-rw-r--r--export/app/manifest.ts57L
-rw-r--r--export/app/offline/page.tsx52L
-rw-r--r--export/app/reports/[reportId]/history/page.tsx32L
-rw-r--r--export/app/reports/[reportId]/page.tsx36L
-rw-r--r--export/app/reports/page.tsx32L
-rw-r--r--export/e2e-2origin/federation.spec.ts106L
-rw-r--r--export/e2e-2origin/globalSetup.ts157L
-rw-r--r--export/e2e-hub/ask-grounding.spec.ts161L
-rw-r--r--export/e2e-hub/ask.spec.ts96L
-rw-r--r--export/e2e-hub/brand.spec.ts101L
-rw-r--r--export/e2e-hub/federated-search.spec.ts720L
-rw-r--r--export/e2e-hub/federation.spec.ts213L
-rw-r--r--export/e2e-hub/official-instances.spec.ts320L
-rw-r--r--export/e2e-hub/transcript-downloads.spec.ts77L
-rw-r--r--export/e2e-hub/use-with-ai-link.spec.ts48L
-rw-r--r--export/e2e-report/audit.spec.ts81L
-rw-r--r--export/e2e-report/contract.ts147L
-rw-r--r--export/e2e-report/fixtures/sites/reportsite/site.json9L
-rw-r--r--export/e2e-report/helpers.ts47L
-rw-r--r--export/e2e-report/overview.spec.ts87L
-rw-r--r--export/e2e-report/report-site.spec.ts464L
-rw-r--r--export/e2e-report/slides.spec.ts213L
-rw-r--r--export/e2e-report/stage.ts130L
-rw-r--r--export/e2e-report/timeline.spec.ts113L
-rw-r--r--export/e2e/alias-suggestion.spec.ts118L
-rw-r--r--export/e2e/archives-off.spec.ts74L
-rw-r--r--export/e2e/ask-chat.spec.ts1144L
-rw-r--r--export/e2e/ask-workspace.spec.ts399L
-rw-r--r--export/e2e/availability-state.spec.ts329L
-rw-r--r--export/e2e/brand.spec.ts190L
-rw-r--r--export/e2e/browse-all.spec.ts102L
-rw-r--r--export/e2e/channel-group-chips.spec.ts256L
-rw-r--r--export/e2e/charts.spec.ts335L
-rw-r--r--export/e2e/duplicates.spec.ts133L
-rw-r--r--export/e2e/filter-profile-persistence.spec.ts92L
-rw-r--r--export/e2e/first-search.spec.ts208L
-rw-r--r--export/e2e/fixtures/data.ts659L
-rw-r--r--export/e2e/fixtures/many-results.ts106L
-rw-r--r--export/e2e/fixtures/sites/nourlsite/site.json10L
-rw-r--r--export/e2e/fixtures/sites/othersite/site.json11L
-rw-r--r--export/e2e/fixtures/sites/testsite/site.json21L
-rw-r--r--export/e2e/fixtures/sites/thirdsite/site.json11L
-rw-r--r--export/e2e/header.spec.ts586L
-rw-r--r--export/e2e/helpers.ts186L
-rw-r--r--export/e2e/inline-channel-chips.spec.ts255L
-rw-r--r--export/e2e/kick-vod.spec.ts157L
-rw-r--r--export/e2e/live-chat.spec.ts56L
-rw-r--r--export/e2e/modal-close.spec.ts50L
-rw-r--r--export/e2e/modal-digest.spec.ts198L
-rw-r--r--export/e2e/modal-open.spec.ts67L
-rw-r--r--export/e2e/modal-share.spec.ts54L
-rw-r--r--export/e2e/modal-snapback.spec.ts41L
-rw-r--r--export/e2e/modal-toggle.spec.ts46L
-rw-r--r--export/e2e/player-control-bar.spec.ts56L
-rw-r--r--export/e2e/posts-search.spec.ts222L
-rw-r--r--export/e2e/profile-row.spec.ts285L
-rw-r--r--export/e2e/pwa-search.spec.ts76L
-rw-r--r--export/e2e/pwa.spec.ts101L
-rw-r--r--export/e2e/query-tree.spec.ts574L
-rw-r--r--export/e2e/related-sites.spec.ts45L
-rw-r--r--export/e2e/responsive.spec.ts224L
-rw-r--r--export/e2e/restore-no-refire.spec.ts205L
-rw-r--r--export/e2e/search-date-filter.spec.ts264L
-rw-r--r--export/e2e/search-duplicates.spec.ts199L
-rw-r--r--export/e2e/search-in.spec.ts327L
-rw-r--r--export/e2e/search-results-virtualization.spec.ts189L
-rw-r--r--export/e2e/share-current-search.spec.ts156L
-rw-r--r--export/e2e/site-branding.spec.ts109L
-rw-r--r--export/e2e/tag-chips.spec.ts398L
-rw-r--r--export/e2e/theme-accent.spec.ts185L
-rw-r--r--export/e2e/theme.spec.ts158L
-rw-r--r--export/e2e/transcript-downloads.spec.ts92L
-rw-r--r--export/e2e/transcript-tracks.spec.ts72L
-rw-r--r--export/e2e/use-with-ai-link.spec.ts49L
-rw-r--r--export/e2e/workspace-shell.spec.ts76L
-rw-r--r--export/e2e/x-posts-private.spec.ts104L
-rw-r--r--export/eslint.config.mjs18L
-rw-r--r--export/fixtures/report-site/fixture.ts250L
-rw-r--r--export/fixtures/report-site/public/m/demo-channel/abc123/3126.00-3151.00/moment.json134L
-rw-r--r--export/fixtures/report-site/public/m/demo-podcast/ep-042/610.50-628.00/moment.json91L
-rw-r--r--export/fixtures/report-site/public/m/demo-social/1234567890/moment.json39L
-rw-r--r--export/fixtures/report-site/public/m/index.json9L
-rw-r--r--export/fixtures/report-site/public/media/clips/demo-channel/abc123/3126.00-3151.00.mp451148B
-rw-r--r--export/fixtures/report-site/public/media/clips/demo-podcast/ep-042/610.50-628.00.m4a13569B
-rw-r--r--export/fixtures/report-site/public/media/posts/demo-social/1234567890/shot.png786B
-rw-r--r--export/fixtures/report-site/public/reports/demo-factcheck/page.json284L
-rw-r--r--export/fixtures/report-site/public/reports/demo-factcheck/stills/a01.png27693B
-rw-r--r--export/fixtures/report-site/public/reports/demo-factcheck/stills/poster.png20658B
-rw-r--r--export/fixtures/report-site/public/reports/index.json58L
-rw-r--r--export/fixtures/report-site/source/demo-factcheck/report.json165L
-rw-r--r--export/fixtures/report-site/source/demo-factcheck/report.v1.json151L
-rw-r--r--export/fixtures/report-site/synthetic.ts111L
-rw-r--r--export/fixtures/report-site/write.ts19L
-rw-r--r--export/next.config.ts19L
-rw-r--r--export/package.json51L
-rw-r--r--export/playwright.2origin.config.ts66L
-rw-r--r--export/playwright.config.ts128L
-rw-r--r--export/playwright.hub.config.ts82L
-rw-r--r--export/playwright.report.config.ts58L
-rw-r--r--export/postcss.config.mjs7L
-rw-r--r--export/public/file.svg1L
-rw-r--r--export/public/globe.svg1L
-rw-r--r--export/public/next.svg1L
-rw-r--r--export/public/vercel.svg1L
-rw-r--r--export/public/window.svg1L
-rw-r--r--export/scripts/serve-out.mjs174L
-rw-r--r--export/serve.json18L
-rw-r--r--export/service-worker/site-sw.js291L
-rw-r--r--export/service-worker/sw-hub.js299L
-rw-r--r--export/tsconfig.json20L
-rw-r--r--homepage/CHANGELOG.md217L
-rw-r--r--homepage/app/changelog/page.tsx53L
-rw-r--r--homepage/app/components/ArchiveCards.tsx104L
-rw-r--r--homepage/app/components/ArchiveGrowthChart.tsx336L
-rw-r--r--homepage/app/components/CustomizePanel.tsx132L
-rw-r--r--homepage/app/components/DocBody.tsx194L
-rw-r--r--homepage/app/components/Fact.tsx25L
-rw-r--r--homepage/app/components/FamilyStats.tsx76L
-rw-r--r--homepage/app/components/Footer.tsx59L
-rw-r--r--homepage/app/components/Header.tsx171L
-rw-r--r--homepage/app/components/HomeLanding.tsx88L
-rw-r--r--homepage/app/components/KpiHeader.tsx63L
-rw-r--r--homepage/app/components/PageShell.tsx48L
-rw-r--r--homepage/app/components/PresetBar.tsx48L
-rw-r--r--homepage/app/components/RecentAdditions.tsx150L
-rw-r--r--homepage/app/components/Segmented.tsx50L
-rw-r--r--homepage/app/components/SiteGrid.tsx203L
-rw-r--r--homepage/app/docs/[slug]/page.tsx82L
-rw-r--r--homepage/app/docs/page.tsx54L
-rw-r--r--homepage/app/downloads/page.tsx168L
-rw-r--r--homepage/app/favicon.ico/route.ts10L
-rw-r--r--homepage/app/globals.css121L
-rw-r--r--homepage/app/icons/[file]/route.ts24L
-rw-r--r--homepage/app/layout.tsx86L
-rw-r--r--homepage/app/lib/docs.ts60L
-rw-r--r--homepage/app/lib/growthGaps.test.ts289L
-rw-r--r--homepage/app/lib/growthGaps.ts237L
-rw-r--r--homepage/app/lib/headers.test.ts119L
-rw-r--r--homepage/app/lib/homepage.ts13L
-rw-r--r--homepage/app/lib/nav.ts24L
-rw-r--r--homepage/app/lib/snapshot.ts60L
-rw-r--r--homepage/app/lib/source.test.ts108L
-rw-r--r--homepage/app/lib/source.ts76L
-rw-r--r--homepage/app/lib/summary.test.ts60L
-rw-r--r--homepage/app/lib/summary.ts63L
-rw-r--r--homepage/app/not-found.tsx32L
-rw-r--r--homepage/app/page.tsx165L
-rw-r--r--homepage/app/source/page.tsx235L
-rw-r--r--homepage/app/stats/page.tsx60L
-rw-r--r--homepage/content/README.md58L
-rw-r--r--homepage/content/docs.ts89L
-rw-r--r--homepage/content/docs/ai-and-mcp.md117L
-rw-r--r--homepage/content/docs/deploy-cloudflare.md84L
-rw-r--r--homepage/content/docs/deploy-docker.md51L
-rw-r--r--homepage/content/docs/faq.md102L
-rw-r--r--homepage/content/docs/install.md198L
-rw-r--r--homepage/content/docs/operate.md138L
-rw-r--r--homepage/content/docs/what-is-archilyzer.md70L
-rw-r--r--homepage/e2e/brand.spec.ts141L
-rw-r--r--homepage/e2e/docs.spec.ts117L
-rw-r--r--homepage/e2e/downloads.spec.ts57L
-rw-r--r--homepage/e2e/fixture-social.ts120L
-rw-r--r--homepage/e2e/fixture-source.ts70L
-rw-r--r--homepage/e2e/fixture-summary.ts205L
-rw-r--r--homepage/e2e/growth-chart.spec.ts249L
-rw-r--r--homepage/e2e/helpers.ts41L
-rw-r--r--homepage/e2e/instance-colours.spec.ts173L
-rw-r--r--homepage/e2e/instance-wordmark.spec.ts114L
-rw-r--r--homepage/e2e/marketing.spec.ts189L
-rw-r--r--homepage/e2e/no-data.spec.ts52L
-rw-r--r--homepage/e2e/social.spec.ts620L
-rw-r--r--homepage/e2e/source-history.spec.ts58L
-rw-r--r--homepage/e2e/source.spec.ts185L
-rw-r--r--homepage/e2e/stats.spec.ts119L
-rw-r--r--homepage/e2e/svg-vectors.spec.ts42L
-rw-r--r--homepage/e2e/theme.spec.ts171L
-rw-r--r--homepage/e2e/toggle.spec.ts142L
-rw-r--r--homepage/e2e/unlisted-site.spec.ts61L
-rw-r--r--homepage/eslint.config.mjs22L
-rw-r--r--homepage/next.config.ts32L
-rw-r--r--homepage/package.json42L
-rw-r--r--homepage/playwright.config.ts126L
-rw-r--r--homepage/postcss.config.mjs7L
-rw-r--r--homepage/public/_headers53L
-rw-r--r--homepage/serve.json13L
-rw-r--r--homepage/tsconfig.json20L
-rw-r--r--mcp/README.md603L
-rw-r--r--mcp/bench/bench.ts556L
-rw-r--r--mcp/bench/smoke.ts196L
-rw-r--r--mcp/package.json27L
-rw-r--r--mcp/src/archivalTools.test.ts204L
-rw-r--r--mcp/src/archivalTools.ts479L
-rw-r--r--mcp/src/dateArg.test.ts27L
-rw-r--r--mcp/src/dateArg.ts29L
-rw-r--r--mcp/src/editorOps.test.ts91L
-rw-r--r--mcp/src/editorOps.testkit.ts91L
-rw-r--r--mcp/src/editorOps.ts154L
-rw-r--r--mcp/src/fetchClip.test.ts825L
-rw-r--r--mcp/src/fetchClip.tool.test.ts318L
-rw-r--r--mcp/src/fetchClip.ts792L
-rw-r--r--mcp/src/index.ts30L
-rw-r--r--mcp/src/instructions.test.ts216L
-rw-r--r--mcp/src/instructions.ts410L
-rw-r--r--mcp/src/momentUrl.test.ts240L
-rw-r--r--mcp/src/promptRequest.test.ts327L
-rw-r--r--mcp/src/promptRequest.ts476L
-rw-r--r--mcp/src/protocol.test.ts406L
-rw-r--r--mcp/src/reports.test.ts254L
-rw-r--r--mcp/src/reports.ts274L
-rw-r--r--mcp/src/scanPlan.test.ts598L
-rw-r--r--mcp/src/search.test.ts1764L
-rw-r--r--mcp/src/search.ts1246L
-rw-r--r--mcp/src/server.ts3427L
-rw-r--r--mcp/src/shareLink.test.ts171L
-rw-r--r--mcp/src/shareLink.ts321L
-rw-r--r--mcp/src/source.ts48L
-rw-r--r--mcp/src/sourceRegistry.test.ts468L
-rw-r--r--mcp/src/sourceRegistry.ts317L
-rw-r--r--mcp/src/sources.ts66L
-rw-r--r--mcp/tsconfig.json18L
-rw-r--r--package.json35L
-rw-r--r--plans/FACTS.md9126L
-rw-r--r--plans/README.md48L
-rw-r--r--plans/STATE.md2942L
-rw-r--r--plans/attribution-batch-hang.md183L
-rw-r--r--plans/attribution-pilot/round1-bakeoff-quality.md7816L
-rw-r--r--plans/attribution-pilot/round1-bakeoff.json14046L
-rw-r--r--plans/attribution-pilot/round1-bakeoff.md87L
-rw-r--r--plans/attribution-pilot/round1-diarized-quality.md168L
-rw-r--r--plans/attribution-pilot/round1-diarized.json214L
-rw-r--r--plans/attribution-pilot/round1-diarized.md48L
-rw-r--r--plans/attribution-pilot/round2-closed-cast.json388L
-rw-r--r--plans/attribution-pilot/round2-closed-cast.md107L
-rw-r--r--plans/attribution-pilot/round3-closed-cast-8.json1124L
-rw-r--r--plans/attribution-pilot/round3-closed-cast-8.md131L
-rw-r--r--plans/attribution-pilot/speakers-smoke-quality.md81L
-rw-r--r--plans/attribution-pilot/speakers-smoke.json177L
-rw-r--r--plans/attribution-pilot/speakers-smoke.md48L
-rw-r--r--plans/backfill-reacquire-subtitle-channels.md306L
-rw-r--r--plans/bakeoff/chapter-sample.json145L
-rw-r--r--plans/bakeoff/chapters-baseline.json1241L
-rw-r--r--plans/bakeoff/chapters-baseline.md160L
-rw-r--r--plans/bakeoff/round1.json771L
-rw-r--r--plans/bakeoff/round1.md262L
-rw-r--r--plans/bakeoff/round2.json562L
-rw-r--r--plans/bakeoff/round2.md188L
-rw-r--r--plans/bakeoff/sample.json93L
-rw-r--r--plans/bakeoff/speaker-sample.json145L
-rw-r--r--plans/bakeoff/speakers-round1-notes.md266L
-rw-r--r--plans/brand-and-themes.md1589L
-rw-r--r--plans/cache-components-spike.md55L
-rw-r--r--plans/channel-priority.md634L
-rw-r--r--plans/curated-tags.md247L
-rw-r--r--plans/cut-release-cli.md88L
-rw-r--r--plans/deck-posts.md784L
-rw-r--r--plans/deflake-e2e.md218L
-rw-r--r--plans/diarization-spike-results.md318L
-rw-r--r--plans/digest-context-review.md144L
-rw-r--r--plans/e2e-speed.md186L
-rw-r--r--plans/editor-channels-rack.md387L
-rw-r--r--plans/editor-ia-slice-3.md280L
-rw-r--r--plans/editor-ia-slice-4.md470L
-rw-r--r--plans/editor-ia-slice-5.md1106L
-rw-r--r--plans/editor-ia-slice-6.md575L
-rw-r--r--plans/editor-ia-slice-7.md377L
-rw-r--r--plans/editor-ia-slice-8ab.md655L
-rw-r--r--plans/editor-ia-slice-8c.md850L
-rw-r--r--plans/editor-operations-ia.md799L
-rw-r--r--plans/editor-transcode-removed.md541L
-rw-r--r--plans/export-header-first-search.md416L
-rw-r--r--plans/export-responsive-redesign.md330L
-rw-r--r--plans/full-fetch-forces-media.md196L
-rw-r--r--plans/homepage-deploy-from-ui.md147L
-rw-r--r--plans/kofi-mark-on-sites.md84L
-rw-r--r--plans/landed-2026-10.md91L
-rw-r--r--plans/mcp-fetch-clip.md307L
-rw-r--r--plans/one-core-phase-1.md1612L
-rw-r--r--plans/one-core-phase-2.md1265L
-rw-r--r--plans/one-core-phase-3.md1745L
-rw-r--r--plans/one-core.md641L
-rw-r--r--plans/onscreen-deck.md359L
-rw-r--r--plans/overnight-2026-10-10.md114L
-rw-r--r--plans/reacquire-handoff.md395L
-rw-r--r--plans/release-10.md2282L
-rw-r--r--plans/release-11.md1930L
-rw-r--r--plans/release-12.md1007L
-rw-r--r--plans/release-13.md1340L
-rw-r--r--plans/release-14.md1724L
-rw-r--r--plans/release-15.md1624L
-rw-r--r--plans/release-16.md1281L
-rw-r--r--plans/release-17.md2141L
-rw-r--r--plans/release-18.md1587L
-rw-r--r--plans/release-19.md599L
-rw-r--r--plans/release-20.md143L
-rw-r--r--plans/release-21.md389L
-rw-r--r--plans/release-22.md260L
-rw-r--r--plans/release-5.md486L
-rw-r--r--plans/release-6.md108L
-rw-r--r--plans/release-7.md814L
-rw-r--r--plans/release-8.md648L
-rw-r--r--plans/release-9.md683L
-rw-r--r--plans/relocate-channel-media.md632L
-rw-r--r--plans/report-sites.md266L
-rw-r--r--plans/rumble-sweep-pacing.md84L
-rw-r--r--plans/site-exports-off.md56L
-rw-r--r--plans/source-mirror.md518L
-rw-r--r--plans/stats-cache-key.md280L
-rw-r--r--plans/storage-locations.md387L
-rw-r--r--plans/tools/aborted-run-2026-07-30.csv45L
-rw-r--r--plans/tools/attribution-bakeoff.ts1281L
-rw-r--r--plans/tools/attribution-pilot.ts1122L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/README.md82L
-rwxr-xr-xplans/tools/compose-fixture-one-youtube-channel/compose-diff.sh38L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/index/shared/transcripts/test-youtube/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/index/shared/transcripts/test-youtube/page-0000.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/index/sites/testsite/digests/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/index/sites/testsite/posts/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/index/sites/testsite/subs/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/index/sites/testsite/summaries/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/index/sites/testsite/summaries/page-0000.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/_headers25L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/archives/manifest.json13L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/archives/test-youtube.zip1010B
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/corpus.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/digests/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/llms.txt15L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/posts/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/robots.txt5L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/search-aliases.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/site.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/sitemap.xml7L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/subs/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/summaries/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/summaries/page-0000.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/transcripts/test-youtube/manifest.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/public/transcripts/test-youtube/page-0000.json1L
-rw-r--r--plans/tools/compose-fixture-one-youtube-channel/site.json11L
-rw-r--r--plans/tools/digest-bakeoff.ts1425L
-rw-r--r--plans/tools/implementer-rules.md112L
-rw-r--r--plans/tools/jeralyzer-corpus-2026-09-12.json1L
-rw-r--r--plans/tools/phase1-numbers.ts257L
-rw-r--r--plans/tools/phase1-poll-timing.ts46L
-rw-r--r--plans/tools/phase1-worklist-check.ts186L
-rw-r--r--plans/tools/phase3-files-numbers.ts318L
-rw-r--r--plans/tools/phase3-settings-numbers.ts167L
-rw-r--r--plans/tools/phase3-view-numbers.ts108L
-rw-r--r--plans/tools/phase3-writers-numbers.ts439L
-rw-r--r--plans/tools/rollout/README.md19L
-rwxr-xr-xplans/tools/rollout/builds.sh10L
-rw-r--r--plans/tools/rollout/cancel-scan.mjs13L
-rw-r--r--plans/tools/rollout/e-live-check.mjs19L
-rwxr-xr-xplans/tools/rollout/gate.sh11L
-rwxr-xr-xplans/tools/rollout/home-preview.sh8L
-rwxr-xr-xplans/tools/rollout/home-publish.sh6L
-rwxr-xr-xplans/tools/rollout/md5.sh6L
-rwxr-xr-xplans/tools/rollout/restart.sh17L
-rwxr-xr-xplans/tools/rollout/sites-redeploy.sh10L
-rwxr-xr-xplans/tools/rollout/smoke.sh37L
-rwxr-xr-xplans/tools/rollout/sync.sh7L
-rw-r--r--plans/tools/rollout/ytdlp-live-check.mjs13L
-rwxr-xr-xplans/tools/sample-contention.sh44L
-rw-r--r--plans/tools/tsconfig.json8L
-rw-r--r--plans/unified-operations-model.md161L
-rw-r--r--plans/unified-ops-step-1.md277L
-rw-r--r--plans/youtube-lane-pacing.md167L
-rw-r--r--pnpm-lock.yaml10266L
-rw-r--r--pnpm-workspace.yaml51L
-rw-r--r--r2-proxy/README.md34L
-rw-r--r--r2-proxy/package.json16L
-rw-r--r--r2-proxy/pnpm-lock.yaml888L
-rw-r--r--r2-proxy/pnpm-workspace.yaml7L
-rw-r--r--r2-proxy/src/index.ts126L
-rw-r--r--r2-proxy/tsconfig.json14L
-rw-r--r--r2-proxy/wrangler.toml28L
-rwxr-xr-xscripts/archilyzer-ops.mjs1444L
-rw-r--r--scripts/archilyzer-ops.test.mjs833L
-rwxr-xr-xscripts/build-sortformer.sh164L
-rwxr-xr-xscripts/diarize-sherpa.py480L
-rwxr-xr-xscripts/diarize-sortformer.mjs169L
-rwxr-xr-xscripts/diarize.mjs269L
-rw-r--r--scripts/e2e-stamp.mjs346L
-rw-r--r--scripts/e2e-stamp.test.mjs165L
-rw-r--r--scripts/e2e-timings.mjs242L
-rw-r--r--scripts/e2e-timings.test.mjs175L
-rw-r--r--scripts/next-build-trace.test.mjs510L
-rwxr-xr-xscripts/parakeet-stitch.mjs440L
-rw-r--r--scripts/queue-lock.mjs827L
-rw-r--r--scripts/queue-lock.test.mjs492L
-rwxr-xr-xscripts/run-sharded-e2e.mjs248L
-rw-r--r--scripts/sortformer/diarize-file.cpp268L
-rwxr-xr-xscripts/worktree.mjs349L
-rw-r--r--scripts/worktree.test.mjs62L
-rw-r--r--settings.json.example220L
-rw-r--r--tsconfig.base.json16L
-rw-r--r--umtool/app/[mode]/page.tsx38L
-rw-r--r--umtool/app/api/browse/blind/route.ts20L
-rw-r--r--umtool/app/api/browse/build/route.ts113L
-rw-r--r--umtool/app/api/browse/compare/route.ts130L
-rw-r--r--umtool/app/api/browse/context/route.ts62L
-rw-r--r--umtool/app/api/browse/decisions/route.ts28L
-rw-r--r--umtool/app/api/browse/loudness/route.ts86L
-rw-r--r--umtool/app/api/browse/notes/route.ts69L
-rw-r--r--umtool/app/api/browse/plandiff/route.ts39L
-rw-r--r--umtool/app/api/browse/poster/route.ts112L
-rw-r--r--umtool/app/api/browse/projects/route.ts34L
-rw-r--r--umtool/app/api/browse/promote/route.ts211L
-rw-r--r--umtool/app/api/browse/spec/route.ts47L
-rw-r--r--umtool/app/api/browse/thumbs/route.ts88L
-rw-r--r--umtool/app/api/browse/verdict/route.ts62L
-rw-r--r--umtool/app/api/clip/[key]/audio/route.ts106L
-rw-r--r--umtool/app/api/clip/[key]/evidence/route.ts96L
-rw-r--r--umtool/app/api/clip/[key]/peaks/route.ts31L
-rw-r--r--umtool/app/api/clip/[key]/route.ts12L
-rw-r--r--umtool/app/api/clip/[key]/video/route.ts71L
-rw-r--r--umtool/app/api/clips/route.ts18L
-rw-r--r--umtool/app/api/corpus/route.ts10L
-rw-r--r--umtool/app/api/doctor/route.ts19L
-rw-r--r--umtool/app/api/face/detect/route.ts38L
-rw-r--r--umtool/app/api/face/frame/route.ts78L
-rw-r--r--umtool/app/api/face/route.ts60L
-rw-r--r--umtool/app/api/jobs/route.ts15L
-rw-r--r--umtool/app/api/mix/files/route.ts28L
-rw-r--r--umtool/app/api/mix/media/route.ts15L
-rw-r--r--umtool/app/api/mix/render/route.ts50L
-rw-r--r--umtool/app/api/mix/session/route.ts26L
-rw-r--r--umtool/app/api/mix/track/route.ts27L
-rw-r--r--umtool/app/api/notes/context/route.ts32L
-rw-r--r--umtool/app/api/notes/route.ts51L
-rw-r--r--umtool/app/api/phrases/route.ts31L
-rw-r--r--umtool/app/api/projects/new/route.ts22L
-rw-r--r--umtool/app/api/report/audio/route.ts119L
-rw-r--r--umtool/app/api/report/build/route.ts193L
-rw-r--r--umtool/app/api/report/check-sources/route.ts51L
-rw-r--r--umtool/app/api/report/chrome/files/[...path]/route.ts74L
-rw-r--r--umtool/app/api/report/chrome/preview/route.ts168L
-rw-r--r--umtool/app/api/report/chrome/route.ts84L
-rw-r--r--umtool/app/api/report/claim/route.ts71L
-rw-r--r--umtool/app/api/report/clip/route.ts96L
-rw-r--r--umtool/app/api/report/cues/route.ts26L
-rw-r--r--umtool/app/api/report/cut/route.ts88L
-rw-r--r--umtool/app/api/report/deliver/route.ts207L
-rw-r--r--umtool/app/api/report/export/route.ts29L
-rw-r--r--umtool/app/api/report/fetch/route.ts155L
-rw-r--r--umtool/app/api/report/moment/route.ts26L
-rw-r--r--umtool/app/api/report/onscreen/route.ts107L
-rw-r--r--umtool/app/api/report/peaks/route.ts64L
-rw-r--r--umtool/app/api/report/posts/route.ts52L
-rw-r--r--umtool/app/api/report/raw/route.ts95L
-rw-r--r--umtool/app/api/report/segment/route.ts50L
-rw-r--r--umtool/app/api/report/snapshot/route.ts39L
-rw-r--r--umtool/app/api/report/still/route.ts63L
-rw-r--r--umtool/app/api/report/tag/route.ts236L
-rw-r--r--umtool/app/api/report/takes/preview/route.ts37L
-rw-r--r--umtool/app/api/report/takes/route.ts15L
-rw-r--r--umtool/app/api/report/takes/verdict/route.ts39L
-rw-r--r--umtool/app/api/report/timeline/route.ts134L
-rw-r--r--umtool/app/api/report/video/route.ts44L
-rw-r--r--umtool/app/api/report/window/route.ts85L
-rw-r--r--umtool/app/api/shortlist/route.ts125L
-rw-r--r--umtool/app/api/sites/evidence/route.ts19L
-rw-r--r--umtool/app/api/sites/media/route.ts94L
-rw-r--r--umtool/app/api/sites/workspace/route.ts23L
-rw-r--r--umtool/app/api/trim/[set]/audio/route.ts44L
-rw-r--r--umtool/app/api/trim/[set]/peaks/route.ts37L
-rw-r--r--umtool/app/api/trim/[set]/route.ts52L
-rw-r--r--umtool/app/api/usage/route.ts23L
-rw-r--r--umtool/app/api/verdict/route.ts35L
-rw-r--r--umtool/app/api/vocab/route.ts16L
-rw-r--r--umtool/app/browse/[...path]/page.tsx88L
-rw-r--r--umtool/app/browse/at/page.tsx53L
-rw-r--r--umtool/app/browse/decisions/page.tsx194L
-rw-r--r--umtool/app/browse/faces/page.tsx85L
-rw-r--r--umtool/app/browse/find/page.tsx261L
-rw-r--r--umtool/app/browse/page.tsx247L
-rw-r--r--umtool/app/browse/sources/page.tsx135L
-rw-r--r--umtool/app/browse/trim/[set]/page.tsx48L
-rw-r--r--umtool/app/globals.css182L
-rw-r--r--umtool/app/layout.tsx24L
-rw-r--r--umtool/app/mix/page.tsx65L
-rw-r--r--umtool/app/page.tsx90L
-rw-r--r--umtool/app/sites/[site]/[report]/evidence/page.tsx60L
-rw-r--r--umtool/app/sites/[site]/[report]/page.tsx212L
-rw-r--r--umtool/app/sites/[site]/page.tsx123L
-rw-r--r--umtool/app/sites/page.tsx87L
-rw-r--r--umtool/bin/cut-from-cache.mjs61L
-rw-r--r--umtool/bin/share-batch.mjs48L
-rwxr-xr-xumtool/bin/umtool.mjs1036L
-rw-r--r--umtool/components.json21L
-rw-r--r--umtool/components/AppNav.tsx67L
-rw-r--r--umtool/components/BrowseHeader.tsx43L
-rw-r--r--umtool/components/BuildChain.tsx194L
-rw-r--r--umtool/components/CopyButton.tsx85L
-rw-r--r--umtool/components/CutBench.tsx715L
-rw-r--r--umtool/components/Deck.tsx1430L
-rw-r--r--umtool/components/FaceDeck.tsx869L
-rw-r--r--umtool/components/LastPage.tsx50L
-rw-r--r--umtool/components/LoudnessTable.tsx160L
-rw-r--r--umtool/components/MixBench.tsx657L
-rw-r--r--umtool/components/MixLanes.tsx285L
-rw-r--r--umtool/components/MomentMarks.tsx176L
-rw-r--r--umtool/components/NavGroup.tsx86L
-rw-r--r--umtool/components/NewProjectMenu.tsx198L
-rw-r--r--umtool/components/NoteField.tsx151L
-rw-r--r--umtool/components/PhraseConsole.tsx421L
-rw-r--r--umtool/components/PitchRail.tsx185L
-rw-r--r--umtool/components/PlanDiffPanel.tsx262L
-rw-r--r--umtool/components/ProvenancePanel.tsx341L
-rw-r--r--umtool/components/ShortlistBar.tsx252L
-rw-r--r--umtool/components/SpecSheet.tsx402L
-rw-r--r--umtool/components/ThumbBench.tsx205L
-rw-r--r--umtool/components/TrimBench.tsx282L
-rw-r--r--umtool/components/VerdictChip.tsx154L
-rw-r--r--umtool/components/VerdictRow.tsx174L
-rw-r--r--umtool/components/Waveform.tsx239L
-rw-r--r--umtool/components/WordSelector.tsx204L
-rw-r--r--umtool/components/articles/AddToVideo.tsx78L
-rw-r--r--umtool/components/articles/ArticleBody.tsx184L
-rw-r--r--umtool/components/articles/ArticleReader.tsx503L
-rw-r--r--umtool/components/articles/ArticleShapes.tsx137L
-rw-r--r--umtool/components/articles/ArticleTable.tsx103L
-rw-r--r--umtool/components/articles/ArticleVideo.tsx34L
-rw-r--r--umtool/components/articles/EvidencePanel.tsx167L
-rw-r--r--umtool/components/articles/EvidenceWalk.tsx129L
-rw-r--r--umtool/components/articles/NoteCards.tsx240L
-rw-r--r--umtool/components/articles/SiteChips.tsx14L
-rw-r--r--umtool/components/articles/WorkspacePanel.tsx110L
-rw-r--r--umtool/components/articles/anchorDom.ts120L
-rw-r--r--umtool/components/dashboard/CheckSourcesButton.tsx52L
-rw-r--r--umtool/components/dashboard/DecisionsPanel.tsx51L
-rw-r--r--umtool/components/dashboard/DeliverablesPanel.tsx39L
-rw-r--r--umtool/components/dashboard/NowLive.tsx106L
-rw-r--r--umtool/components/dashboard/NowPanel.tsx46L
-rw-r--r--umtool/components/dashboard/Panel.tsx33L
-rw-r--r--umtool/components/dashboard/ResumeChip.tsx61L
-rw-r--r--umtool/components/dashboard/SourcesPanel.tsx75L
-rw-r--r--umtool/components/dashboard/StateStrip.tsx56L
-rw-r--r--umtool/components/dashboard/ToolsPanel.tsx89L
-rw-r--r--umtool/components/notes/AnchoredNotes.tsx74L
-rw-r--r--umtool/components/notes/GeneratedBanner.tsx15L
-rw-r--r--umtool/components/notes/NoteThread.tsx136L
-rw-r--r--umtool/components/notes/NotesProvider.tsx65L
-rw-r--r--umtool/components/notes/TimedNotes.tsx239L
-rw-r--r--umtool/components/projects/ClaimBench.tsx481L
-rw-r--r--umtool/components/projects/ClaimBenchPage.tsx101L
-rw-r--r--umtool/components/projects/ClipBench.tsx3059L
-rw-r--r--umtool/components/projects/ClipBenchPage.tsx183L
-rw-r--r--umtool/components/projects/CutPage.tsx125L
-rw-r--r--umtool/components/projects/DeliverActions.tsx309L
-rw-r--r--umtool/components/projects/DeliverSection.tsx337L
-rw-r--r--umtool/components/projects/FetchUnfetchedButton.tsx187L
-rw-r--r--umtool/components/projects/OnscreenSection.tsx2144L
-rw-r--r--umtool/components/projects/ProjectGrid.tsx104L
-rw-r--r--umtool/components/projects/ProjectView.tsx74L
-rw-r--r--umtool/components/projects/ReportBuildChain.tsx397L
-rw-r--r--umtool/components/projects/ReportProject.tsx793L
-rw-r--r--umtool/components/projects/SnapshotButton.tsx54L
-rw-r--r--umtool/components/projects/SongProject.tsx255L
-rw-r--r--umtool/components/projects/StructureEditors.tsx286L
-rw-r--r--umtool/components/projects/SweepProject.tsx73L
-rw-r--r--umtool/components/projects/TagCitedButton.tsx189L
-rw-r--r--umtool/components/projects/TakesBench.tsx359L
-rw-r--r--umtool/components/projects/TakesPage.tsx58L
-rw-r--r--umtool/components/projects/TimelineEditor.tsx205L
-rw-r--r--umtool/components/projects/timelineApi.ts39L
-rw-r--r--umtool/components/ui/badge.tsx49L
-rw-r--r--umtool/components/ui/button.tsx42L
-rw-r--r--umtool/docs/README.md113L
-rw-r--r--umtool/docs/authoring.md125L
-rw-r--r--umtool/docs/browse.md88L
-rw-r--r--umtool/docs/build.md125L
-rw-r--r--umtool/docs/claim-bench.md119L
-rw-r--r--umtool/docs/cli.md161L
-rw-r--r--umtool/docs/clip-bench.md478L
-rw-r--r--umtool/docs/dashboard.md36L
-rw-r--r--umtool/docs/decisions.md107L
-rw-r--r--umtool/docs/e2e.md97L
-rw-r--r--umtool/docs/folders.md170L
-rw-r--r--umtool/docs/index.md75L
-rw-r--r--umtool/docs/mix-from-a-project.md84L
-rw-r--r--umtool/docs/notes.md112L
-rw-r--r--umtool/docs/projects.md115L
-rw-r--r--umtool/docs/quirks.md481L
-rw-r--r--umtool/docs/report-video.md790L
-rw-r--r--umtool/docs/sites.md92L
-rw-r--r--umtool/e2e/article-evidence.spec.ts76L
-rw-r--r--umtool/e2e/article-integration.spec.ts106L
-rw-r--r--umtool/e2e/article-notes.spec.ts225L
-rw-r--r--umtool/e2e/article-slides.spec.ts102L
-rw-r--r--umtool/e2e/browse.spec.ts488L
-rw-r--r--umtool/e2e/build.spec.ts248L
-rw-r--r--umtool/e2e/capabilities.ts48L
-rw-r--r--umtool/e2e/claim-bench.spec.ts182L
-rw-r--r--umtool/e2e/clip-bench.spec.ts1536L
-rw-r--r--umtool/e2e/dashboard.spec.ts141L
-rw-r--r--umtool/e2e/deck.spec.ts310L
-rw-r--r--umtool/e2e/deliver.spec.ts294L
-rw-r--r--umtool/e2e/deliverables.spec.ts243L
-rw-r--r--umtool/e2e/faces.spec.ts480L
-rw-r--r--umtool/e2e/find.spec.ts392L
-rw-r--r--umtool/e2e/fixtures/editor-stub.mjs221L
-rw-r--r--umtool/e2e/fixtures/make-fixture.mjs1920L
-rw-r--r--umtool/e2e/fixtures/sites-fixture.mjs176L
-rw-r--r--umtool/e2e/fixtures/song-capabilities.mjs42L
-rw-r--r--umtool/e2e/last-page.spec.ts84L
-rw-r--r--umtool/e2e/mix.spec.ts273L
-rw-r--r--umtool/e2e/onscreen-posts.spec.ts628L
-rw-r--r--umtool/e2e/onscreen.spec.ts494L
-rw-r--r--umtool/e2e/projects.spec.ts561L
-rw-r--r--umtool/e2e/report-fetch-via-editor.spec.ts239L
-rw-r--r--umtool/e2e/report-longform.spec.ts180L
-rw-r--r--umtool/e2e/report-tag-via-editor.spec.ts165L
-rw-r--r--umtool/e2e/sites.spec.ts90L
-rw-r--r--umtool/e2e/storage.spec.ts180L
-rw-r--r--umtool/e2e/takes.spec.ts143L
-rw-r--r--umtool/e2e/timeline-edit.spec.ts136L
-rw-r--r--umtool/e2e/triage.spec.ts204L
-rw-r--r--umtool/e2e/undo.spec.ts143L
-rw-r--r--umtool/e2e/usage.spec.ts126L
-rw-r--r--umtool/e2e/video-notes.spec.ts151L
-rw-r--r--umtool/e2e/warm.ts17L
-rw-r--r--umtool/lib/activity-types.ts3L
-rw-r--r--umtool/lib/activity.ts110L
-rw-r--r--umtool/lib/annotations/anchor.mjs176L
-rw-r--r--umtool/lib/annotations/anchor.test.mjs65L
-rw-r--r--umtool/lib/annotations/cli.mjs140L
-rw-r--r--umtool/lib/annotations/cli.test.mjs103L
-rw-r--r--umtool/lib/annotations/digest.mjs207L
-rw-r--r--umtool/lib/annotations/server.ts27L
-rw-r--r--umtool/lib/annotations/shape.mjs302L
-rw-r--r--umtool/lib/annotations/store.mjs157L
-rw-r--r--umtool/lib/annotations/store.test.mjs206L
-rw-r--r--umtool/lib/annotations/targets.mjs185L
-rw-r--r--umtool/lib/annotations/types.ts98L
-rw-r--r--umtool/lib/annotations/useNotes.ts92L
-rw-r--r--umtool/lib/archive.ts22L
-rw-r--r--umtool/lib/articles/article.ts193L
-rw-r--r--umtool/lib/articles/evidence.ts182L
-rw-r--r--umtool/lib/articles/files.ts77L
-rw-r--r--umtool/lib/articles/links.mjs100L
-rw-r--r--umtool/lib/articles/sites.ts177L
-rw-r--r--umtool/lib/articles/sources.mjs219L
-rw-r--r--umtool/lib/articles/sources.test.mjs69L
-rw-r--r--umtool/lib/articles/workspace.mjs65L
-rw-r--r--umtool/lib/browse.ts443L
-rw-r--r--umtool/lib/clips.ts375L
-rw-r--r--umtool/lib/compare-types.ts106L
-rw-r--r--umtool/lib/compares.ts119L
-rw-r--r--umtool/lib/concentration.ts114L
-rw-r--r--umtool/lib/context.ts313L
-rw-r--r--umtool/lib/corpus.ts171L
-rw-r--r--umtool/lib/dashboard.ts73L
-rw-r--r--umtool/lib/decisions.ts377L
-rw-r--r--umtool/lib/doctor.ts21L
-rw-r--r--umtool/lib/face-types.ts165L
-rw-r--r--umtool/lib/faces.ts351L
-rw-r--r--umtool/lib/format.ts30L
-rw-r--r--umtool/lib/jobs.ts270L
-rw-r--r--umtool/lib/last-page.ts78L
-rw-r--r--umtool/lib/loudness-types.ts75L
-rw-r--r--umtool/lib/loudness.ts168L
-rw-r--r--umtool/lib/manifest.ts67L
-rw-r--r--umtool/lib/markdown.tsx199L
-rw-r--r--umtool/lib/media.ts362L
-rw-r--r--umtool/lib/mix-preset.ts91L
-rw-r--r--umtool/lib/mix.ts280L
-rw-r--r--umtool/lib/moment.ts69L
-rw-r--r--umtool/lib/note-types.ts21L
-rw-r--r--umtool/lib/notes.ts139L
-rw-r--r--umtool/lib/paths.mjs356L
-rw-r--r--umtool/lib/paths.test.mjs69L
-rw-r--r--umtool/lib/paths.ts58L
-rw-r--r--umtool/lib/phrase-types.ts279L
-rw-r--r--umtool/lib/phrases.ts456L
-rw-r--r--umtool/lib/plandiff.ts249L
-rw-r--r--umtool/lib/poster.ts86L
-rw-r--r--umtool/lib/project-types.ts136L
-rw-r--r--umtool/lib/projects.ts438L
-rw-r--r--umtool/lib/projects/core.mjs137L
-rw-r--r--umtool/lib/projects/index-db.mjs225L
-rw-r--r--umtool/lib/projects/kinds.mjs243L
-rw-r--r--umtool/lib/projects/report.mjs1352L
-rw-r--r--umtool/lib/projects/scaffold-song.ts61L
-rw-r--r--umtool/lib/projects/scaffold.mjs269L
-rw-r--r--umtool/lib/projects/scaffold.ts53L
-rw-r--r--umtool/lib/projects/song-ids.mjs35L
-rw-r--r--umtool/lib/projects/song.mjs107L
-rw-r--r--umtool/lib/projects/sweep.mjs49L
-rw-r--r--umtool/lib/projects/walk.mjs195L
-rw-r--r--umtool/lib/provenance.ts267L
-rw-r--r--umtool/lib/range.ts96L
-rw-r--r--umtool/lib/report/busy.mjs96L
-rw-r--r--umtool/lib/report/cut.mjs161L
-rw-r--r--umtool/lib/report/deliver.mjs470L
-rw-r--r--umtool/lib/report/deliverables.test.mjs474L
-rw-r--r--umtool/lib/report/driver.mjs495L
-rw-r--r--umtool/lib/report/driver.test.mjs51L
-rw-r--r--umtool/lib/report/edit-guard.mjs46L
-rw-r--r--umtool/lib/report/edit-guard.test.mjs78L
-rw-r--r--umtool/lib/report/edit-notes.mjs174L
-rw-r--r--umtool/lib/report/edit-notes.test.mjs67L
-rw-r--r--umtool/lib/report/encode.mjs83L
-rw-r--r--umtool/lib/report/export.mjs221L
-rw-r--r--umtool/lib/report/footage-move.mjs90L
-rw-r--r--umtool/lib/report/footage-move.test.mjs93L
-rw-r--r--umtool/lib/report/guard.ts16L
-rw-r--r--umtool/lib/report/manifest-diff.mjs114L
-rw-r--r--umtool/lib/report/manifest.mjs1169L
-rw-r--r--umtool/lib/report/manifest.test.mjs494L
-rw-r--r--umtool/lib/report/moments.mjs155L
-rw-r--r--umtool/lib/report/moments.test.mjs81L
-rw-r--r--umtool/lib/report/onscreen.mjs662L
-rw-r--r--umtool/lib/report/onscreen.test.mjs489L
-rw-r--r--umtool/lib/report/playback.mjs234L
-rw-r--r--umtool/lib/report/playback.test.mjs158L
-rw-r--r--umtool/lib/report/raw-cache.mjs67L
-rw-r--r--umtool/lib/report/raw-cache.test.mjs101L
-rw-r--r--umtool/lib/report/sections.mjs64L
-rw-r--r--umtool/lib/report/sections.test.mjs42L
-rw-r--r--umtool/lib/report/serve.mjs392L
-rw-r--r--umtool/lib/report/serve.test.mjs261L
-rw-r--r--umtool/lib/report/snapshots.mjs125L
-rw-r--r--umtool/lib/report/storage.mjs821L
-rw-r--r--umtool/lib/report/storage.test.mjs469L
-rw-r--r--umtool/lib/report/structure.test.mjs235L
-rw-r--r--umtool/lib/report/takes.mjs322L
-rw-r--r--umtool/lib/report/takes.test.mjs262L
-rw-r--r--umtool/lib/shortlist-types.ts164L
-rw-r--r--umtool/lib/shortlist.ts260L
-rw-r--r--umtool/lib/spec.ts366L
-rw-r--r--umtool/lib/state.ts92L
-rw-r--r--umtool/lib/thumbs.ts222L
-rw-r--r--umtool/lib/tool-types.ts19L
-rw-r--r--umtool/lib/tools.mjs57L
-rw-r--r--umtool/lib/trim.ts262L
-rw-r--r--umtool/lib/types.ts112L
-rw-r--r--umtool/lib/usage.ts217L
-rw-r--r--umtool/lib/utils.ts14L
-rw-r--r--umtool/lib/verdict.ts522L
-rw-r--r--umtool/lib/vocab.ts52L
-rw-r--r--umtool/lib/wav.ts181L
-rw-r--r--umtool/models/yunet.onnx232589B
-rw-r--r--umtool/next.config.ts62L
-rw-r--r--umtool/package.json36L
-rw-r--r--umtool/playwright.config.ts154L
-rw-r--r--umtool/postcss.config.mjs7L
-rw-r--r--umtool/report-to-video/README.md2108L
-rw-r--r--umtool/report-to-video/assets/gsap.min.js11L
-rw-r--r--umtool/report-to-video/attribution.mjs207L
-rw-r--r--umtool/report-to-video/attribution.test.mjs133L
-rw-r--r--umtool/report-to-video/audio-fallback.test.mjs97L
-rw-r--r--umtool/report-to-video/audio-poster.test.mjs159L
-rw-r--r--umtool/report-to-video/av-sync.test.mjs87L
-rw-r--r--umtool/report-to-video/brand-cards.mjs295L
-rw-r--r--umtool/report-to-video/brand-ids.mjs9L
-rw-r--r--umtool/report-to-video/brand.mjs218L
-rw-r--r--umtool/report-to-video/brand.test.mjs292L
-rw-r--r--umtool/report-to-video/brands/archilyzer-media.json23L
-rwxr-xr-xumtool/report-to-video/build-video.mjs4599L
-rwxr-xr-xumtool/report-to-video/check-availability.mjs200L
-rw-r--r--umtool/report-to-video/chrome-deck.mjs674L
-rw-r--r--umtool/report-to-video/chrome-deck.test.mjs371L
-rw-r--r--umtool/report-to-video/chrome-feed.mjs495L
-rw-r--r--umtool/report-to-video/chrome-feed.test.mjs446L
-rw-r--r--umtool/report-to-video/chrome-flips.mjs190L
-rw-r--r--umtool/report-to-video/chrome-posts.mjs501L
-rw-r--r--umtool/report-to-video/chrome-posts.test.mjs550L
-rw-r--r--umtool/report-to-video/chrome-stamp.mjs246L
-rw-r--r--umtool/report-to-video/chrome-teaser.mjs491L
-rw-r--r--umtool/report-to-video/chrome-teaser.test.mjs525L
-rw-r--r--umtool/report-to-video/chrome-threads.mjs218L
-rwxr-xr-xumtool/report-to-video/compose-chrome.mjs1032L
-rw-r--r--umtool/report-to-video/cues.mjs496L
-rw-r--r--umtool/report-to-video/cues.test.mjs561L
-rw-r--r--umtool/report-to-video/cut-edits.test.mjs400L
-rw-r--r--umtool/report-to-video/cut-to-quote.test.mjs132L
-rw-r--r--umtool/report-to-video/deck-build.test.mjs113L
-rw-r--r--umtool/report-to-video/deck-overlay.test.mjs134L
-rw-r--r--umtool/report-to-video/deck-room.test.mjs469L
-rw-r--r--umtool/report-to-video/deck.mjs2022L
-rw-r--r--umtool/report-to-video/deck.test.mjs504L
-rw-r--r--umtool/report-to-video/dip.test.mjs625L
-rw-r--r--umtool/report-to-video/face-metrics.mjs131L
-rw-r--r--umtool/report-to-video/factcheck.mjs333L
-rw-r--r--umtool/report-to-video/factcheck.test.mjs399L
-rwxr-xr-xumtool/report-to-video/fetch-via-editor.mjs362L
-rw-r--r--umtool/report-to-video/fetch-via-editor.test.mjs118L
-rw-r--r--umtool/report-to-video/flips.mjs188L
-rw-r--r--umtool/report-to-video/flips.test.mjs110L
-rw-r--r--umtool/report-to-video/fonts/Archivo[wdth,wght].ttf658596B
-rw-r--r--umtool/report-to-video/fonts/IBMPlexMono-Bold.ttf137784B
-rw-r--r--umtool/report-to-video/fonts/IBMPlexMono-Regular.ttf135580B
-rw-r--r--umtool/report-to-video/fonts/IBMPlexSans[wdth,wght].ttf537244B
-rw-r--r--umtool/report-to-video/fonts/OFL.txt188L
-rw-r--r--umtool/report-to-video/fonts/fonts.conf18L
-rw-r--r--umtool/report-to-video/fonts/gen-face-metrics.py106L
-rwxr-xr-xumtool/report-to-video/fonts/install-user-fonts.sh14L
-rw-r--r--umtool/report-to-video/image-entry.test.mjs237L
-rw-r--r--umtool/report-to-video/ledger-totals.mjs540L
-rw-r--r--umtool/report-to-video/ledger-totals.test.mjs712L
-rw-r--r--umtool/report-to-video/local-media.mjs203L
-rw-r--r--umtool/report-to-video/local-media.test.mjs170L
-rw-r--r--umtool/report-to-video/mute.mjs7L
-rw-r--r--umtool/report-to-video/package.json39L
-rw-r--r--umtool/report-to-video/platform-args.test.mjs56L
-rw-r--r--umtool/report-to-video/post-links.mjs200L
-rw-r--r--umtool/report-to-video/post-links.test.mjs327L
-rwxr-xr-xumtool/report-to-video/render-cards.mjs1633L
-rwxr-xr-xumtool/report-to-video/resolve-windows.mjs511L
-rwxr-xr-xumtool/report-to-video/shoot-page.mjs673L
-rw-r--r--umtool/report-to-video/shoot-page.test.mjs332L
-rw-r--r--umtool/report-to-video/snap.test.mjs24L
-rw-r--r--umtool/report-to-video/sources.mjs247L
-rw-r--r--umtool/report-to-video/sources.test.mjs560L
-rw-r--r--umtool/report-to-video/svg-faces.mjs91L
-rw-r--r--umtool/report-to-video/svg-faces.test.mjs168L
-rw-r--r--umtool/report-to-video/teaser-audio.test.mjs92L
-rw-r--r--umtool/report-to-video/threads.mjs283L
-rw-r--r--umtool/report-to-video/threads.test.mjs201L
-rwxr-xr-xumtool/report-to-video/verify-build.mjs344L
-rw-r--r--umtool/report-to-video/xfade-batch.test.mjs225L
-rw-r--r--umtool/song/accept-thumb.mjs104L
-rw-r--r--umtool/song/accepted.json7055L
-rw-r--r--umtool/song/alarm-effect.mjs145L
-rw-r--r--umtool/song/align-game-hooks.py259L
-rw-r--r--umtool/song/apply-hook-trims.mjs73L
-rw-r--r--umtool/song/archive-url.mjs34L
-rw-r--r--umtool/song/arrange-poly.mjs426L
-rw-r--r--umtool/song/asr-via-ops.mjs142L
-rw-r--r--umtool/song/attack.json31498L
-rw-r--r--umtool/song/bandcmp.mjs81L
-rw-r--r--umtool/song/bars-snake.mjs170L
-rw-r--r--umtool/song/build-game-hooks.mjs249L
-rw-r--r--umtool/song/build-um.mjs862L
-rw-r--r--umtool/song/chop-panels.mjs79L
-rw-r--r--umtool/song/chop-voice.mjs257L
-rw-r--r--umtool/song/climb-fx.mjs117L
-rw-r--r--umtool/song/climb-panel.mjs171L
-rw-r--r--umtool/song/clipwindow.mjs98L
-rw-r--r--umtool/song/context.mts26L
-rw-r--r--umtool/song/contour-gain.mjs49L
-rw-r--r--umtool/song/corepitch.json15006L
-rw-r--r--umtool/song/dates.json335L
-rw-r--r--umtool/song/debox-bg.mjs159L
-rw-r--r--umtool/song/decided.json1016L
-rw-r--r--umtool/song/decode-um.mjs247L
-rw-r--r--umtool/song/deplosive.mjs158L
-rw-r--r--umtool/song/env-dump.mjs52L
-rw-r--r--umtool/song/face-verdicts.json420L
-rw-r--r--umtool/song/facecrop.py229L
-rw-r--r--umtool/song/find-battle2.mjs130L
-rw-r--r--umtool/song/find-repeats.mjs74L
-rw-r--r--umtool/song/fit-hooks.mjs126L
-rw-r--r--umtool/song/flatness.mjs251L
-rw-r--r--umtool/song/headoffset.json25L
-rw-r--r--umtool/song/hold-last.mjs42L
-rw-r--r--umtool/song/hush-head.mjs57L
-rw-r--r--umtool/song/impure.json79L
-rw-r--r--umtool/song/journal.json5604L
-rw-r--r--umtool/song/keepside.json26L
-rw-r--r--umtool/song/link-sources.mjs113L
-rw-r--r--umtool/song/long-segments.mjs41L
-rw-r--r--umtool/song/make-thumb.mjs280L
-rw-r--r--umtool/song/measure-and.mjs54L
-rw-r--r--umtool/song/melody.mjs47L
-rw-r--r--umtool/song/midi-drums.mjs156L
-rw-r--r--umtool/song/midi-track.mjs76L
-rw-r--r--umtool/song/midi.mjs84L
-rwxr-xr-xumtool/song/mk-finish.sh171L
-rw-r--r--umtool/song/mk-game-hooks.json745L
-rw-r--r--umtool/song/mk-mix-hooks.mjs448L
-rw-r--r--umtool/song/notes-to-words.mjs134L
-rw-r--r--umtool/song/order-model.json54L
-rw-r--r--umtool/song/orderfeat.mjs34L
-rw-r--r--umtool/song/paths.mjs89L
-rw-r--r--umtool/song/pick-take.mjs168L
-rw-r--r--umtool/song/pitch.mjs43L
-rw-r--r--umtool/song/plan-qa.mjs121L
-rw-r--r--umtool/song/plan-shift.mjs33L
-rw-r--r--umtool/song/provisional.json682L
-rw-r--r--umtool/song/reasons.json2278L
-rw-r--r--umtool/song/reasons.mjs46L
-rw-r--r--umtool/song/render-poly.mjs741L
-rw-r--r--umtool/song/reopen-cutoff.json51L
-rw-r--r--umtool/song/rest-lift.mjs61L
-rw-r--r--umtool/song/risky.json1722L
-rw-r--r--umtool/song/run-line.mjs199L
-rw-r--r--umtool/song/run-pip.mjs114L
-rw-r--r--umtool/song/shorts-compose.mjs119L
-rw-r--r--umtool/song/slice-out.mjs57L
-rw-r--r--umtool/song/slicer-manifest-r2.json1069L
-rw-r--r--umtool/song/slicer-manifest-r3.json3575L
-rw-r--r--umtool/song/slicer-manifest-r4.json8405L
-rw-r--r--umtool/song/slicer-manifest-rT1.json10337L
-rw-r--r--umtool/song/slicer-manifest.json2357L
-rw-r--r--umtool/song/solo-voice.mjs35L
-rw-r--r--umtool/song/spec.mjs176L
-rw-r--r--umtool/song/standin-body.mjs59L
-rw-r--r--umtool/song/suspect-sources.json466L
-rw-r--r--umtool/song/swap-clip.mjs259L
-rw-r--r--umtool/song/thumb-accepted.json227L
-rw-r--r--umtool/song/thumb-manifest.json500L
-rw-r--r--umtool/song/titles.json335L
-rw-r--r--umtool/song/um-drums.mjs288L
-rw-r--r--umtool/song/um-manifest.json81591L
-rw-r--r--umtool/song/unclean.json104L
-rw-r--r--umtool/song/video-dir.mjs181L
-rw-r--r--umtool/song/vocab.json20L
-rw-r--r--umtool/song/words.json568L
-rw-r--r--umtool/song/xcorr-sfx.mjs98L
-rw-r--r--umtool/tsconfig.json22L