@thunderkiller/video-clipper 1.5.3 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/env.d.ts +49 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +1 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib.d.ts +17 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +17 -0
- package/dist/lib.js.map +1 -0
- package/dist/pipeline/runner.d.ts +23 -0
- package/dist/pipeline/runner.d.ts.map +1 -0
- package/dist/pipeline/runner.js +1 -0
- package/dist/pipeline/runner.js.map +1 -0
- package/dist/pipeline/stages/audioProcessor.d.ts +20 -0
- package/dist/pipeline/stages/audioProcessor.d.ts.map +1 -0
- package/dist/pipeline/stages/audioProcessor.js +1 -0
- package/dist/pipeline/stages/audioProcessor.js.map +1 -0
- package/dist/pipeline/stages/clipExporter.d.ts +15 -0
- package/dist/pipeline/stages/clipExporter.d.ts.map +1 -0
- package/dist/pipeline/stages/clipExporter.js +1 -0
- package/dist/pipeline/stages/clipExporter.js.map +1 -0
- package/dist/pipeline/stages/segmentAnalyzer.d.ts +27 -0
- package/dist/pipeline/stages/segmentAnalyzer.d.ts.map +1 -0
- package/dist/pipeline/stages/segmentAnalyzer.js +1 -0
- package/dist/pipeline/stages/segmentAnalyzer.js.map +1 -0
- package/dist/pipeline/stages/segmentSelector.d.ts +13 -0
- package/dist/pipeline/stages/segmentSelector.d.ts.map +1 -0
- package/dist/pipeline/stages/segmentSelector.js +1 -0
- package/dist/pipeline/stages/segmentSelector.js.map +1 -0
- package/dist/pipeline/stages/videoResolver.d.ts +12 -0
- package/dist/pipeline/stages/videoResolver.d.ts.map +1 -0
- package/dist/pipeline/stages/videoResolver.js +1 -0
- package/dist/pipeline/stages/videoResolver.js.map +1 -0
- package/dist/services/audioAnalyzers/base.d.ts +26 -0
- package/dist/services/audioAnalyzers/base.d.ts.map +1 -0
- package/dist/services/audioAnalyzers/base.js +1 -0
- package/dist/services/audioAnalyzers/base.js.map +1 -0
- package/dist/services/audioAnalyzers/factory.d.ts +23 -0
- package/dist/services/audioAnalyzers/factory.d.ts.map +1 -0
- package/dist/services/audioAnalyzers/factory.js +1 -0
- package/dist/services/audioAnalyzers/factory.js.map +1 -0
- package/dist/services/audioAnalyzers/gemini.d.ts +29 -0
- package/dist/services/audioAnalyzers/gemini.d.ts.map +1 -0
- package/dist/services/audioAnalyzers/gemini.js +1 -0
- package/dist/services/audioAnalyzers/gemini.js.map +1 -0
- package/dist/services/audioAnalyzers/index.d.ts +7 -0
- package/dist/services/audioAnalyzers/index.d.ts.map +1 -0
- package/dist/services/audioAnalyzers/index.js +1 -0
- package/dist/services/audioAnalyzers/index.js.map +1 -0
- package/dist/services/audioAnalyzers/whisper.d.ts +14 -0
- package/dist/services/audioAnalyzers/whisper.d.ts.map +1 -0
- package/dist/services/audioAnalyzers/whisper.js +3 -1
- package/dist/services/audioAnalyzers/whisper.js.map +1 -0
- package/dist/services/audioAnalyzers/yamnet.d.ts +13 -0
- package/dist/services/audioAnalyzers/yamnet.d.ts.map +1 -0
- package/dist/services/audioAnalyzers/yamnet.js +3 -1
- package/dist/services/audioAnalyzers/yamnet.js.map +1 -0
- package/dist/services/audioDownloader/index.d.ts +2 -0
- package/dist/services/audioDownloader/index.d.ts.map +1 -0
- package/dist/services/audioDownloader/index.js +1 -0
- package/dist/services/audioDownloader/index.js.map +1 -0
- package/dist/services/chunkBuilder/index.d.ts +20 -0
- package/dist/services/chunkBuilder/index.d.ts.map +1 -0
- package/dist/services/chunkBuilder/index.js +1 -0
- package/dist/services/chunkBuilder/index.js.map +1 -0
- package/dist/services/clipGenerator/index.d.ts +30 -0
- package/dist/services/clipGenerator/index.d.ts.map +1 -0
- package/dist/services/clipGenerator/index.js +1 -0
- package/dist/services/clipGenerator/index.js.map +1 -0
- package/dist/services/clipRefiner/index.d.ts +9 -0
- package/dist/services/clipRefiner/index.d.ts.map +1 -0
- package/dist/services/clipRefiner/index.js +1 -0
- package/dist/services/clipRefiner/index.js.map +1 -0
- package/dist/services/eventDetector/index.d.ts +28 -0
- package/dist/services/eventDetector/index.d.ts.map +1 -0
- package/dist/services/eventDetector/index.js +1 -0
- package/dist/services/eventDetector/index.js.map +1 -0
- package/dist/services/llmAnalyzer/LLMAnalyzer.d.ts +41 -0
- package/dist/services/llmAnalyzer/LLMAnalyzer.d.ts.map +1 -0
- package/dist/services/llmAnalyzer/LLMAnalyzer.js +1 -0
- package/dist/services/llmAnalyzer/LLMAnalyzer.js.map +1 -0
- package/dist/services/llmAnalyzer/index.d.ts +8 -0
- package/dist/services/llmAnalyzer/index.d.ts.map +1 -0
- package/dist/services/llmAnalyzer/index.js +1 -0
- package/dist/services/llmAnalyzer/index.js.map +1 -0
- package/dist/services/metadataExtractor/index.d.ts +12 -0
- package/dist/services/metadataExtractor/index.d.ts.map +1 -0
- package/dist/services/metadataExtractor/index.js +1 -0
- package/dist/services/metadataExtractor/index.js.map +1 -0
- package/dist/services/segmentRanker/index.d.ts +3 -0
- package/dist/services/segmentRanker/index.d.ts.map +1 -0
- package/dist/services/segmentRanker/index.js +1 -0
- package/dist/services/segmentRanker/index.js.map +1 -0
- package/dist/services/signalMerger/index.d.ts +5 -0
- package/dist/services/signalMerger/index.d.ts.map +1 -0
- package/dist/services/signalMerger/index.js +1 -0
- package/dist/services/signalMerger/index.js.map +1 -0
- package/dist/services/transcriptAnalyzers/base.d.ts +25 -0
- package/dist/services/transcriptAnalyzers/base.d.ts.map +1 -0
- package/dist/services/transcriptAnalyzers/base.js +1 -0
- package/dist/services/transcriptAnalyzers/base.js.map +1 -0
- package/dist/services/transcriptAnalyzers/factory.d.ts +21 -0
- package/dist/services/transcriptAnalyzers/factory.d.ts.map +1 -0
- package/dist/services/transcriptAnalyzers/factory.js +1 -0
- package/dist/services/transcriptAnalyzers/factory.js.map +1 -0
- package/dist/services/transcriptAnalyzers/gemini.d.ts +18 -0
- package/dist/services/transcriptAnalyzers/gemini.d.ts.map +1 -0
- package/dist/services/transcriptAnalyzers/gemini.js +1 -0
- package/dist/services/transcriptAnalyzers/gemini.js.map +1 -0
- package/dist/services/transcriptAnalyzers/index.d.ts +7 -0
- package/dist/services/transcriptAnalyzers/index.d.ts.map +1 -0
- package/dist/services/transcriptAnalyzers/index.js +1 -0
- package/dist/services/transcriptAnalyzers/index.js.map +1 -0
- package/dist/services/transcriptAnalyzers/whisper.d.ts +18 -0
- package/dist/services/transcriptAnalyzers/whisper.d.ts.map +1 -0
- package/dist/services/transcriptAnalyzers/whisper.js +3 -1
- package/dist/services/transcriptAnalyzers/whisper.js.map +1 -0
- package/dist/services/transcriptAnalyzers/ytdlp.d.ts +15 -0
- package/dist/services/transcriptAnalyzers/ytdlp.d.ts.map +1 -0
- package/dist/services/transcriptAnalyzers/ytdlp.js +1 -0
- package/dist/services/transcriptAnalyzers/ytdlp.js.map +1 -0
- package/dist/services/transcriptDetector/index.d.ts +53 -0
- package/dist/services/transcriptDetector/index.d.ts.map +1 -0
- package/dist/services/transcriptDetector/index.js +1 -0
- package/dist/services/transcriptDetector/index.js.map +1 -0
- package/dist/services/transcriptFetcher/index.d.ts +26 -0
- package/dist/services/transcriptFetcher/index.d.ts.map +1 -0
- package/dist/services/transcriptFetcher/index.js +1 -0
- package/dist/services/transcriptFetcher/index.js.map +1 -0
- package/dist/services/urlParser/index.d.ts +12 -0
- package/dist/services/urlParser/index.d.ts.map +1 -0
- package/dist/services/urlParser/index.js +1 -0
- package/dist/services/urlParser/index.js.map +1 -0
- package/dist/services/videoDownloader/index.d.ts +27 -0
- package/dist/services/videoDownloader/index.d.ts.map +1 -0
- package/dist/services/videoDownloader/index.js +1 -0
- package/dist/services/videoDownloader/index.js.map +1 -0
- package/dist/types/analyzer.d.ts +21 -0
- package/dist/types/analyzer.d.ts.map +1 -0
- package/dist/types/analyzer.js +1 -0
- package/dist/types/analyzer.js.map +1 -0
- package/dist/types/audio.d.ts +26 -0
- package/dist/types/audio.d.ts.map +1 -0
- package/dist/types/audio.js +1 -0
- package/dist/types/audio.js.map +1 -0
- package/dist/types/cache.d.ts +7 -0
- package/dist/types/cache.d.ts.map +1 -0
- package/dist/types/cache.js +1 -0
- package/dist/types/cache.js.map +1 -0
- package/dist/types/cli.d.ts +23 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +1 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/config.d.ts +90 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +1 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/downloader.d.ts +11 -0
- package/dist/types/downloader.d.ts.map +1 -0
- package/dist/types/downloader.js +1 -0
- package/dist/types/downloader.js.map +1 -0
- package/dist/types/factory.d.ts +3 -0
- package/dist/types/factory.d.ts.map +1 -0
- package/dist/types/factory.js +1 -0
- package/dist/types/factory.js.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/pipeline.d.ts +48 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +1 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/types/segment.d.ts +42 -0
- package/dist/types/segment.d.ts.map +1 -0
- package/dist/types/segment.js +1 -0
- package/dist/types/segment.js.map +1 -0
- package/dist/types/transcript.d.ts +20 -0
- package/dist/types/transcript.d.ts.map +1 -0
- package/dist/types/transcript.js +1 -0
- package/dist/types/transcript.js.map +1 -0
- package/dist/types/video.d.ts +44 -0
- package/dist/types/video.d.ts.map +1 -0
- package/dist/types/video.js +1 -0
- package/dist/types/video.js.map +1 -0
- package/dist/utils/cache.d.ts +34 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +1 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/chunker.d.ts +38 -0
- package/dist/utils/chunker.d.ts.map +1 -0
- package/dist/utils/chunker.js +1 -0
- package/dist/utils/chunker.js.map +1 -0
- package/dist/utils/dumper.d.ts +12 -0
- package/dist/utils/dumper.d.ts.map +1 -0
- package/dist/utils/dumper.js +1 -0
- package/dist/utils/dumper.js.map +1 -0
- package/dist/utils/format.d.ts +6 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +1 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/logger.d.ts +6 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +1 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/modelFactory.d.ts +14 -0
- package/dist/utils/modelFactory.d.ts.map +1 -0
- package/dist/utils/modelFactory.js +1 -0
- package/dist/utils/modelFactory.js.map +1 -0
- package/dist/utils/paths.d.ts +16 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +20 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/redactConfig.d.ts +7 -0
- package/dist/utils/redactConfig.d.ts.map +1 -0
- package/dist/utils/redactConfig.js +1 -0
- package/dist/utils/redactConfig.js.map +1 -0
- package/dist/utils/sliceAudio.d.ts +2 -0
- package/dist/utils/sliceAudio.d.ts.map +1 -0
- package/dist/utils/sliceAudio.js +1 -0
- package/dist/utils/sliceAudio.js.map +1 -0
- package/package.json +26 -2
- package/requirements.txt +5 -0
- package/scripts/detect_events.py +81 -0
- package/scripts/detect_events_whisper.py +101 -0
- package/scripts/transcribe_whisper.py +70 -0
- package/.env.example +0 -130
- package/CHANGELOG.md +0 -102
- package/CONTRIBUTING.md +0 -100
- package/commitlint.config.js +0 -25
package/dist/types/index.js
CHANGED
|
@@ -4,3 +4,4 @@ export { AnalyzedSegmentSchema, RankedSegmentSchema, ChunkEvaluationSchema } fro
|
|
|
4
4
|
export { AudioEventSchema, MergedCandidateSchema } from './audio.js';
|
|
5
5
|
export { VideoMetadataSchema, PipelineResultSchema } from './video.js';
|
|
6
6
|
export { SegmentRefinementSchema } from './cache.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGzF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGjG,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAwBvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { VideoMetadata, TranscriptLine, MicroBlock, LLMChunk, ChunkEvaluation } from './index.js';
|
|
2
|
+
/** A half-open time window [start, end) in seconds. Returned by `buildWindows`. */
|
|
3
|
+
export interface ChunkWindow {
|
|
4
|
+
/** Start of the window in seconds (inclusive). */
|
|
5
|
+
start: number;
|
|
6
|
+
/** End of the window in seconds (exclusive upper bound). */
|
|
7
|
+
end: number;
|
|
8
|
+
}
|
|
9
|
+
export interface VideoResolverResult {
|
|
10
|
+
videoId: string;
|
|
11
|
+
metadata: VideoMetadata;
|
|
12
|
+
}
|
|
13
|
+
export interface AudioProcessorOpts {
|
|
14
|
+
noAudio: boolean;
|
|
15
|
+
gameProfile: string;
|
|
16
|
+
maxParallel: number;
|
|
17
|
+
/** Pre-downloaded audio WAV path. When provided, skips the downloadAudio call. */
|
|
18
|
+
audioPath?: string | null;
|
|
19
|
+
}
|
|
20
|
+
export interface SegmentAnalyzerOpts {
|
|
21
|
+
maxChunks?: number;
|
|
22
|
+
maxParallel: number;
|
|
23
|
+
noCache: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface SegmentAnalyzerResult {
|
|
26
|
+
lines: TranscriptLine[];
|
|
27
|
+
microBlocks: MicroBlock[];
|
|
28
|
+
chunks: LLMChunk[];
|
|
29
|
+
chunkEvals: ChunkEvaluation[];
|
|
30
|
+
}
|
|
31
|
+
export interface SegmentSelectorOpts {
|
|
32
|
+
threshold: number;
|
|
33
|
+
topN: number;
|
|
34
|
+
}
|
|
35
|
+
export interface ClipExporterOpts {
|
|
36
|
+
/** Path to a pre-existing local video file. Skips yt-dlp download entirely. */
|
|
37
|
+
localVideo?: string;
|
|
38
|
+
/**
|
|
39
|
+
* yt-dlp download strategy.
|
|
40
|
+
* - `'all'` — download the full video, then cut clips with ffmpeg
|
|
41
|
+
* - number — download only the top-N segments via --download-sections
|
|
42
|
+
* - undefined — same as `'all'`
|
|
43
|
+
*/
|
|
44
|
+
downloadSections: 'all' | number | undefined;
|
|
45
|
+
/** Custom output/download directory (overrides config.DOWNLOAD_DIR / config.OUTPUT_DIR). */
|
|
46
|
+
videoPath?: string;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/types/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EACR,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,gBAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7C,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/types/pipeline.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/types/pipeline.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const AnalyzedSegmentSchema: z.ZodObject<{
|
|
3
|
+
interesting: z.ZodBoolean;
|
|
4
|
+
score: z.ZodNumber;
|
|
5
|
+
reason: z.ZodString;
|
|
6
|
+
clip_start: z.ZodNumber;
|
|
7
|
+
clip_end: z.ZodNumber;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export type AnalyzedSegment = z.infer<typeof AnalyzedSegmentSchema>;
|
|
10
|
+
export declare const RankedSegmentSchema: z.ZodObject<{
|
|
11
|
+
rank: z.ZodNumber;
|
|
12
|
+
start: z.ZodNumber;
|
|
13
|
+
end: z.ZodNumber;
|
|
14
|
+
score: z.ZodNumber;
|
|
15
|
+
reason: z.ZodString;
|
|
16
|
+
source: z.ZodEnum<{
|
|
17
|
+
both: "both";
|
|
18
|
+
transcript: "transcript";
|
|
19
|
+
audio: "audio";
|
|
20
|
+
}>;
|
|
21
|
+
audio_event: z.ZodOptional<z.ZodString>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type RankedSegment = z.infer<typeof RankedSegmentSchema>;
|
|
24
|
+
export declare const ChunkEvaluationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
25
|
+
chunk_index: z.ZodNumber;
|
|
26
|
+
chunk_start: z.ZodNumber;
|
|
27
|
+
chunk_end: z.ZodNumber;
|
|
28
|
+
status: z.ZodLiteral<"success">;
|
|
29
|
+
interesting: z.ZodBoolean;
|
|
30
|
+
score: z.ZodNumber;
|
|
31
|
+
reason: z.ZodString;
|
|
32
|
+
clip_start: z.ZodNumber;
|
|
33
|
+
clip_end: z.ZodNumber;
|
|
34
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
35
|
+
chunk_index: z.ZodNumber;
|
|
36
|
+
chunk_start: z.ZodNumber;
|
|
37
|
+
chunk_end: z.ZodNumber;
|
|
38
|
+
status: z.ZodLiteral<"failed">;
|
|
39
|
+
error: z.ZodString;
|
|
40
|
+
}, z.core.$strip>], "status">;
|
|
41
|
+
export type ChunkEvaluation = z.infer<typeof ChunkEvaluationSchema>;
|
|
42
|
+
//# sourceMappingURL=segment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../src/types/segment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;iBAMhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;iBAQ9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAQhE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;6BAahC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
package/dist/types/segment.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segment.js","sourceRoot":"","sources":["../../src/types/segment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IAClE,yBAAyB,CAAC,MAAM,CAAC;QAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,CAAC;IACF,yBAAyB,CAAC,MAAM,CAAC;QAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const TranscriptLineSchema: z.ZodObject<{
|
|
3
|
+
text: z.ZodString;
|
|
4
|
+
start: z.ZodNumber;
|
|
5
|
+
duration: z.ZodNumber;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type TranscriptLine = z.infer<typeof TranscriptLineSchema>;
|
|
8
|
+
export declare const MicroBlockSchema: z.ZodObject<{
|
|
9
|
+
start: z.ZodNumber;
|
|
10
|
+
end: z.ZodNumber;
|
|
11
|
+
text: z.ZodString;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type MicroBlock = z.infer<typeof MicroBlockSchema>;
|
|
14
|
+
export declare const LLMChunkSchema: z.ZodObject<{
|
|
15
|
+
start: z.ZodNumber;
|
|
16
|
+
end: z.ZodNumber;
|
|
17
|
+
text: z.ZodString;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
export type LLMChunk = z.infer<typeof LLMChunkSchema>;
|
|
20
|
+
//# sourceMappingURL=transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/types/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,cAAc;;;;iBAIzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
package/dist/types/transcript.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/types/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const VideoMetadataSchema: z.ZodObject<{
|
|
3
|
+
videoId: z.ZodString;
|
|
4
|
+
title: z.ZodString;
|
|
5
|
+
duration: z.ZodNumber;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export type VideoMetadata = z.infer<typeof VideoMetadataSchema>;
|
|
8
|
+
export declare const PipelineResultSchema: z.ZodObject<{
|
|
9
|
+
video_id: z.ZodString;
|
|
10
|
+
title: z.ZodString;
|
|
11
|
+
duration: z.ZodNumber;
|
|
12
|
+
chunk_evaluations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13
|
+
chunk_index: z.ZodNumber;
|
|
14
|
+
chunk_start: z.ZodNumber;
|
|
15
|
+
chunk_end: z.ZodNumber;
|
|
16
|
+
status: z.ZodLiteral<"success">;
|
|
17
|
+
interesting: z.ZodBoolean;
|
|
18
|
+
score: z.ZodNumber;
|
|
19
|
+
reason: z.ZodString;
|
|
20
|
+
clip_start: z.ZodNumber;
|
|
21
|
+
clip_end: z.ZodNumber;
|
|
22
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
23
|
+
chunk_index: z.ZodNumber;
|
|
24
|
+
chunk_start: z.ZodNumber;
|
|
25
|
+
chunk_end: z.ZodNumber;
|
|
26
|
+
status: z.ZodLiteral<"failed">;
|
|
27
|
+
error: z.ZodString;
|
|
28
|
+
}, z.core.$strip>], "status">>;
|
|
29
|
+
segments: z.ZodArray<z.ZodObject<{
|
|
30
|
+
rank: z.ZodNumber;
|
|
31
|
+
start: z.ZodNumber;
|
|
32
|
+
end: z.ZodNumber;
|
|
33
|
+
score: z.ZodNumber;
|
|
34
|
+
reason: z.ZodString;
|
|
35
|
+
source: z.ZodEnum<{
|
|
36
|
+
both: "both";
|
|
37
|
+
transcript: "transcript";
|
|
38
|
+
audio: "audio";
|
|
39
|
+
}>;
|
|
40
|
+
audio_event: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
}, z.core.$strip>;
|
|
43
|
+
export type PipelineResult = z.infer<typeof PipelineResultSchema>;
|
|
44
|
+
//# sourceMappingURL=video.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/types/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
package/dist/types/video.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/types/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU;CACjC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU;IAChC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACvC,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { TranscriptLine, LLMChunk, ChunkEvaluation, AudioEvent, SegmentRefinement } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Disk-backed cache for all pipeline stages.
|
|
4
|
+
*
|
|
5
|
+
* Constructed once in runner.ts with the resolved cache directory and passed
|
|
6
|
+
* down to each stage that needs caching. Pass `disabled = true` to bypass all
|
|
7
|
+
* reads and writes (equivalent to --no-cache).
|
|
8
|
+
*/
|
|
9
|
+
export declare class Cache {
|
|
10
|
+
private readonly cacheDir;
|
|
11
|
+
private readonly disabled;
|
|
12
|
+
constructor(cacheDir: string, disabled?: boolean);
|
|
13
|
+
private transcriptPath;
|
|
14
|
+
readTranscript(videoId: string): Promise<TranscriptLine[] | null>;
|
|
15
|
+
writeTranscript(videoId: string, lines: TranscriptLine[]): Promise<void>;
|
|
16
|
+
private chunkPath;
|
|
17
|
+
readChunk(chunk: LLMChunk, chunkAudioEvents?: AudioEvent[]): Promise<ChunkEvaluation | null>;
|
|
18
|
+
writeChunk(chunk: LLMChunk, evaluation: ChunkEvaluation, chunkAudioEvents?: AudioEvent[]): Promise<void>;
|
|
19
|
+
private segmentRefinementPath;
|
|
20
|
+
readSegmentRefinement(start: number, end: number, reason: string): Promise<SegmentRefinement | null>;
|
|
21
|
+
writeSegmentRefinement(start: number, end: number, reason: string, refined: SegmentRefinement): Promise<void>;
|
|
22
|
+
private audioEventPath;
|
|
23
|
+
readAudioEvents(videoId: string, gameProfile: string, provider: string): Promise<AudioEvent[] | null>;
|
|
24
|
+
writeAudioEvents(videoId: string, gameProfile: string, provider: string, events: AudioEvent[]): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Per-chunk audio cache — mirrors the LLM `chunks/` pattern.
|
|
27
|
+
* Key includes videoId, gameProfile, provider, and the exact window bounds
|
|
28
|
+
* so each 120s slice is stored independently.
|
|
29
|
+
*/
|
|
30
|
+
private audioChunkPath;
|
|
31
|
+
readAudioChunk(videoId: string, gameProfile: string, provider: string, windowStart: number, windowEnd: number): Promise<AudioEvent[] | null>;
|
|
32
|
+
writeAudioChunk(videoId: string, gameProfile: string, provider: string, windowStart: number, windowEnd: number, events: AudioEvent[]): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AA0C3B;;;;;;GAMG;AACH,qBAAa,KAAK;IAEd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,OAAe;IAK5C,OAAO,CAAC,cAAc;IAIhB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC;IAKjE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9E,OAAO,CAAC,SAAS;IASX,SAAS,CACb,KAAK,EAAE,QAAQ,EACf,gBAAgB,GAAE,UAAU,EAAO,GAClC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAK5B,UAAU,CACd,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,eAAe,EAC3B,gBAAgB,GAAE,UAAU,EAAO,GAClC,OAAO,CAAC,IAAI,CAAC;IAQhB,OAAO,CAAC,qBAAqB;IAIvB,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAK9B,sBAAsB,CAC1B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAOhB,OAAO,CAAC,cAAc;IAQhB,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;IAQzB,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC;IAOhB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAchB,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;IAQzB,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
package/dist/utils/cache.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic windowed-chunker utility.
|
|
3
|
+
*
|
|
4
|
+
* Used by:
|
|
5
|
+
* - transcriptProcessor — builds LLM analysis windows over micro-blocks
|
|
6
|
+
* - audioProcessor — builds audio slice windows over the video duration
|
|
7
|
+
*
|
|
8
|
+
* The function returns non-overlapping or overlapping half-open intervals
|
|
9
|
+
* [start, end) that together cover the full range [0, totalDuration).
|
|
10
|
+
*/
|
|
11
|
+
import type { ChunkWindow } from '../types/index.js';
|
|
12
|
+
export type { ChunkWindow };
|
|
13
|
+
/**
|
|
14
|
+
* Builds a list of time windows covering `[0, totalDuration)`.
|
|
15
|
+
*
|
|
16
|
+
* @param totalDuration - Total duration of the content in seconds.
|
|
17
|
+
* @param windowSec - Width of each window in seconds. Must be > 0.
|
|
18
|
+
* @param overlapSec - How many seconds consecutive windows share. Must be
|
|
19
|
+
* >= 0 and < windowSec. Defaults to 0.
|
|
20
|
+
* @returns Array of {start, end} windows. Empty when totalDuration <= 0.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // No overlap — three equal windows
|
|
24
|
+
* buildWindows(60, 20)
|
|
25
|
+
* // → [{start:0,end:20}, {start:20,end:40}, {start:40,end:60}]
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // With overlap — each window starts 10s after the previous
|
|
29
|
+
* buildWindows(60, 30, 10)
|
|
30
|
+
* // → [{start:0,end:30}, {start:20,end:50}, {start:40,end:60}]
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* // Remainder — last window is shorter
|
|
34
|
+
* buildWindows(70, 30)
|
|
35
|
+
* // → [{start:0,end:30}, {start:30,end:60}, {start:60,end:70}]
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildWindows(totalDuration: number, windowSec: number, overlapSec?: number): ChunkWindow[];
|
|
38
|
+
//# sourceMappingURL=chunker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../src/utils/chunker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAU,GACrB,WAAW,EAAE,CAgBf"}
|
package/dist/utils/chunker.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../src/utils/chunker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,YAAY,CAC1B,aAAqB,EACrB,SAAiB,EACjB,aAAqB,CAAC;IAEtB,IAAI,aAAa,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,IAAI,UAAU,GAAG,CAAC;QAAE,UAAU,GAAG,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,SAAS;QAAE,UAAU,GAAG,CAAC,CAAC,CAAC,8BAA8B;IAE3E,MAAM,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;IACpC,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC;YACX,KAAK;YACL,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,aAAa,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TranscriptLine, PipelineResult } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Writes the raw normalized transcript lines to
|
|
4
|
+
* `{OUTPUT_DIR}/transcript/{videoId}.json`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function dumpTranscript(videoId: string, lines: TranscriptLine[]): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Writes the full pipeline result (metadata + ranked segments) to
|
|
9
|
+
* `{OUTPUT_DIR}/analysis/{videoId}.json`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function dumpAnalysis(videoId: string, result: PipelineResult): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=dumper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dumper.d.ts","sourceRoot":"","sources":["../../src/utils/dumper.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExE;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5F;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF"}
|
package/dist/utils/dumper.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dumper.js","sourceRoot":"","sources":["../../src/utils/dumper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGlC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,KAAuB;IAC3E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,iCAAiC,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,MAAsB;IACxE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CACN,+BAA+B,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrD"}
|
package/dist/utils/format.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG;gBACF,MAAM,KAAG,IAAI;gBAGb,MAAM,KAAG,IAAI;iBAGZ,MAAM,KAAG,IAAI;CAG3B,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;CACR,CAAC;AAEX,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE;QAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,EAAE,CAAC,GAAW,EAAQ,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LanguageModel } from 'ai';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a Vercel AI SDK LanguageModel instance for the configured provider
|
|
4
|
+
* and model. Both `llmAnalyzer` and `clipRefiner` call this instead of
|
|
5
|
+
* hard-coding `openai(config.LLM_MODEL)`.
|
|
6
|
+
*
|
|
7
|
+
* The active provider is controlled by `LLM_PROVIDER` in the environment.
|
|
8
|
+
* The model name is controlled by `LLM_MODEL`.
|
|
9
|
+
*
|
|
10
|
+
* In ai@5, all provider packages ship LanguageModelV3 which natively
|
|
11
|
+
* satisfies the LanguageModel interface.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getModel(): LanguageModel;
|
|
14
|
+
//# sourceMappingURL=modelFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelFactory.d.ts","sourceRoot":"","sources":["../../src/utils/modelFactory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAIxC;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,IAAI,aAAa,CAiDxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelFactory.js","sourceRoot":"","sources":["../../src/utils/modelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;IAE/B,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;QAC5B,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,WAAW;YACd,OAAO,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAExC,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAElC,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEtC,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEnC,KAAK,KAAK;YACR,OAAO,sBAAsB,CAAC;gBAC5B,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,8BAA8B;gBACvC,MAAM,EAAE,MAAM,CAAC,WAAW;gBAC1B,qEAAqE;gBACrE,qEAAqE;gBACrE,gEAAgE;gBAChE,yBAAyB,EAAE,IAAI;aAChC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;gBAClB,OAAO,EAAE,8BAA8B;gBACvC,MAAM,EAAE,MAAM,CAAC,kBAAkB;aAClC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1B,KAAK,QAAQ;YACX,OAAO,sBAAsB,CAAC;gBAC5B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM,CAAC,sBAAuB;gBACvC,MAAM,EAAE,MAAM,CAAC,qBAAqB;gBACpC,qEAAqE;gBACrE,6EAA6E;gBAC7E,yBAAyB,EAAE,IAAI;aAChC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Absolute path to the package root, resolved from the compiled output location.
|
|
3
|
+
*
|
|
4
|
+
* At runtime (from `dist/utils/paths.js`), going up two levels lands at the
|
|
5
|
+
* package root where `scripts/` is co-located. This works whether the package
|
|
6
|
+
* is run from source (via tsx) or from a global/local npm install.
|
|
7
|
+
*/
|
|
8
|
+
export declare const PACKAGE_ROOT: string;
|
|
9
|
+
/**
|
|
10
|
+
* Returns the absolute path to a bundled Python script in the `scripts/`
|
|
11
|
+
* directory at the package root.
|
|
12
|
+
*
|
|
13
|
+
* @param name - Filename of the Python script, e.g. `'detect_events.py'`
|
|
14
|
+
*/
|
|
15
|
+
export declare function scriptPath(name: string): string;
|
|
16
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,MAAqE,CAAC;AAEjG;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { resolve, dirname } from 'path';
|
|
2
|
+
import { fileURLToPath } from 'url';
|
|
3
|
+
/**
|
|
4
|
+
* Absolute path to the package root, resolved from the compiled output location.
|
|
5
|
+
*
|
|
6
|
+
* At runtime (from `dist/utils/paths.js`), going up two levels lands at the
|
|
7
|
+
* package root where `scripts/` is co-located. This works whether the package
|
|
8
|
+
* is run from source (via tsx) or from a global/local npm install.
|
|
9
|
+
*/
|
|
10
|
+
export const PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
11
|
+
/**
|
|
12
|
+
* Returns the absolute path to a bundled Python script in the `scripts/`
|
|
13
|
+
* directory at the package root.
|
|
14
|
+
*
|
|
15
|
+
* @param name - Filename of the Python script, e.g. `'detect_events.py'`
|
|
16
|
+
*/
|
|
17
|
+
export function scriptPath(name) {
|
|
18
|
+
return resolve(PACKAGE_ROOT, 'scripts', name);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAW,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEjG;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Config } from '../types/config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Formats the resolved config as a single-line key=value string,
|
|
4
|
+
* omitting all API key fields and any undefined optional values.
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatConfig(cfg: Config): string;
|
|
7
|
+
//# sourceMappingURL=redactConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactConfig.d.ts","sourceRoot":"","sources":["../../src/utils/redactConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAYjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redactConfig.js","sourceRoot":"","sources":["../../src/utils/redactConfig.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,gBAAgB;IAChB,mBAAmB;IACnB,8BAA8B;IAC9B,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,aAAa;CACd,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAQ,MAAM,CAAC,OAAO,CAAC,GAAG,CAAyB;SAChD,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliceAudio.d.ts","sourceRoot":"","sources":["../../src/utils/sliceAudio.ts"],"names":[],"mappings":"AAWA,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
|
package/dist/utils/sliceAudio.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliceAudio.js","sourceRoot":"","sources":["../../src/utils/sliceAudio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC;AACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,QAAgB,EAChB,WAAmB,EACnB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,UAAU,QAAQ,MAAM,CAAC,CAAC;IAE7E,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,SAAS,CAAC;aACd,YAAY,CAAC,QAAQ,CAAC;aACtB,WAAW,CAAC,WAAW,CAAC;aACxB,cAAc,CAAC,KAAK,CAAC;aACrB,aAAa,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,KAAK,CAAC;aACb,MAAM,CAAC,UAAU,CAAC;aAClB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;aAC1B,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACjC,GAAG,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thunderkiller/video-clipper",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.4",
|
|
4
4
|
"description": "CLI that analyzes YouTube transcripts with an LLM to find interesting moments and cut clips",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "",
|
|
7
7
|
"packageManager": "pnpm@10.12.4",
|
|
8
8
|
"type": "module",
|
|
9
|
-
"main": "dist/
|
|
9
|
+
"main": "dist/lib.js",
|
|
10
|
+
"module": "dist/lib.js",
|
|
11
|
+
"types": "dist/lib.d.ts",
|
|
12
|
+
"bin": {
|
|
13
|
+
"video-clipper": "dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": {
|
|
18
|
+
"types": "./dist/lib.d.ts",
|
|
19
|
+
"default": "./dist/lib.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"./cli": {
|
|
23
|
+
"import": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"default": "./dist/index.js"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"scripts",
|
|
32
|
+
"requirements.txt"
|
|
33
|
+
],
|
|
10
34
|
"private": false,
|
|
11
35
|
"publishConfig": {
|
|
12
36
|
"access": "public"
|