-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathproject.yml
More file actions
99 lines (96 loc) · 3.56 KB
/
Copy pathproject.yml
File metadata and controls
99 lines (96 loc) · 3.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# XcodeGen project definition for Shortcast.
# Regenerate the .xcodeproj with: xcodegen generate
name: Shortcast
options:
bundleIdPrefix: app.shortcast
deploymentTarget:
macOS: "15.0"
createIntermediateGroups: true
groupSortPosition: top
packages:
# Vendored: native Gemma 4 multimodal inference (MIT). Source lives in Vendor/.
# Pulls in mlx-swift, mlx-swift-lm, swift-transformers transitively.
Gemma4Swift:
path: Vendor/gemma-4-swift-mlx
# Qwen 3.5 9B (the "Director" that finds viral moments from a transcript).
# Same MLX stack Gemma4Swift already resolves — declaring the products here
# just makes them linkable from the app target. Do NOT pin mlx-swift directly:
# let it stay transitive so it respects Gemma's 0.31.3 floor (single source).
mlx-swift-lm:
url: https://github.com/ml-explore/mlx-swift-lm
branch: main
swift-huggingface:
url: https://github.com/huggingface/swift-huggingface
from: "0.9.0"
# WhisperKit caps swift-transformers at <1.2.0; Gemma only needs >=1.1.6, so
# 1.1.x satisfies the whole graph. (mlx-swift-lm doesn't depend on it at all.)
swift-transformers:
url: https://github.com/huggingface/swift-transformers
from: "1.1.6"
# On-device transcription, used only as a fallback when a long video has no
# .srt/.vtt alongside it. Lazy: the Whisper model never downloads otherwise.
WhisperKit:
url: https://github.com/argmaxinc/WhisperKit
from: "0.9.0"
targets:
Shortcast:
type: application
platform: macOS
sources:
- path: Shortcast
dependencies:
- package: Gemma4Swift
product: Gemma4Swift
- package: mlx-swift-lm
product: MLXVLM # VLMModelFactory — Qwen 3.5 9B is a VLM package
- package: mlx-swift-lm
product: MLXLMCommon # ChatSession, GenerateParameters, ModelContainer
- package: mlx-swift-lm
product: MLXHuggingFace # #hubDownloader(), #huggingFaceTokenizerLoader()
- package: swift-huggingface
product: HuggingFace
- package: swift-transformers
product: Tokenizers
- package: WhisperKit
product: WhisperKit
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: app.shortcast.Shortcast
PRODUCT_NAME: Shortcast
MARKETING_VERSION: "0.1.0"
CURRENT_PROJECT_VERSION: "1"
GENERATE_INFOPLIST_FILE: NO
INFOPLIST_FILE: Shortcast/Info.plist
CODE_SIGN_IDENTITY: "-"
CODE_SIGN_STYLE: Manual
ENABLE_HARDENED_RUNTIME: NO
SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete
DEAD_CODE_STRIPPING: YES
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
COMBINE_HIDPI_IMAGES: YES
ENABLE_PREVIEWS: YES
MACOSX_DEPLOYMENT_TARGET: "15.0"
# Developer-only command-line probe. Runs the real generation path
# (MediaExtractor → Gemma4Engine → JSONVariantParser) headlessly.
shortcast-probe:
type: tool
platform: macOS
sources:
- path: Probe
- path: Shortcast/Models/PostVariant.swift
- path: Shortcast/Models/VideoJob.swift
- path: Shortcast/Models/String+Trimmed.swift
- path: Shortcast/Services/MediaExtractor.swift
- path: Shortcast/Services/PromptBuilder.swift
- path: Shortcast/Services/JSONVariantParser.swift
dependencies:
- package: Gemma4Swift
product: Gemma4Swift
settings:
base:
PRODUCT_NAME: shortcast-probe
SWIFT_VERSION: "6.0"
MACOSX_DEPLOYMENT_TARGET: "15.0"
GENERATE_INFOPLIST_FILE: YES