flmkr 0.1.0__tar.gz

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.
@@ -0,0 +1,52 @@
1
+ name: PR Validation
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main]
6
+ push:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.11", "3.12"]
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: ${{ matrix.python-version }}
20
+ - run: pip install -e ".[dev]"
21
+ - run: pytest tests/ -v --no-cov
22
+
23
+ lint:
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ - uses: actions/setup-python@v5
28
+ with:
29
+ python-version: "3.12"
30
+ - run: pip install ruff
31
+ - run: ruff check flmkr/ tests/
32
+ - run: ruff format --check flmkr/ tests/
33
+
34
+ typecheck:
35
+ runs-on: ubuntu-latest
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: "3.12"
41
+ - run: pip install mypy
42
+ - run: mypy flmkr/ --ignore-missing-imports
43
+
44
+ security:
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - uses: actions/checkout@v4
48
+ - uses: actions/setup-python@v5
49
+ with:
50
+ python-version: "3.12"
51
+ - run: pip install bandit
52
+ - run: bandit -r flmkr/ -ll --skip B101,B608
@@ -0,0 +1,24 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+
7
+ permissions:
8
+ contents: read
9
+ id-token: write
10
+
11
+ jobs:
12
+ publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/flmkr
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.12"
22
+ - run: pip install build
23
+ - run: python -m build
24
+ - uses: pypa/gh-action-pypi-publish@release/v1
flmkr-0.1.0/.gitignore ADDED
@@ -0,0 +1,78 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+ venv/
23
+ ENV/
24
+ env/
25
+ .venv
26
+
27
+ # pytest
28
+ .pytest_cache/
29
+ .coverage
30
+ htmlcov/
31
+ *.cover
32
+ .hypothesis/
33
+
34
+ # mypy
35
+ .mypy_cache/
36
+ .dmypy.json
37
+ dmypy.json
38
+
39
+ # Ruff
40
+ .ruff_cache/
41
+
42
+ # IDE
43
+ .idea/
44
+ .vscode/
45
+ *.swp
46
+ *.swo
47
+
48
+ # FLMKR project
49
+ flmkr-project/
50
+ *.flmkr/
51
+ .flmkr/
52
+ assets/generated/
53
+ assets/video/
54
+ assets/audio/
55
+ assets/images/
56
+ renders/
57
+ previews/
58
+ *.mp4
59
+ *.mov
60
+ *.wav
61
+ *.exr
62
+ *.safetensors
63
+ *.bin
64
+ *.pt
65
+ *.ckpt
66
+
67
+ # OS
68
+ .DS_Store
69
+ Thumbs.db
70
+
71
+ # Secrets
72
+ *.key
73
+ *.pem
74
+ *.env.local
75
+ .env
76
+ **/.env
77
+ **/.env.*.local
78
+ *.xml
flmkr-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,138 @@
1
+ Metadata-Version: 2.5
2
+ Name: flmkr
3
+ Version: 0.1.0
4
+ Summary: AI Filmmaking Harness — an autonomous, terminal-native agent for planning, generating, validating, editing, and completing films.
5
+ Project-URL: Homepage, https://github.com/dreampixelsforge/flmkr
6
+ Project-URL: Repository, https://github.com/dreampixelsforge/flmkr
7
+ Project-URL: Documentation, https://flmkr.dreampixelsforge.com
8
+ Project-URL: Issues, https://github.com/dreampixelsforge/flmkr/issues
9
+ Author: Dream Pixels Forge
10
+ License-Expression: MIT
11
+ Keywords: agent,ai,cli,film,production,video
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: End Users/Desktop
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Multimedia :: Video
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Requires-Python: >=3.11
22
+ Requires-Dist: aiohttp>=3.10
23
+ Requires-Dist: aiosqlite>=0.20.0
24
+ Requires-Dist: cattrs>=24.1
25
+ Requires-Dist: click>=8.1.7
26
+ Requires-Dist: httpx>=0.27.0
27
+ Requires-Dist: mcp>=1.0
28
+ Requires-Dist: orjson>=3.10
29
+ Requires-Dist: pathspec>=0.12
30
+ Requires-Dist: pydantic-settings>=2.5
31
+ Requires-Dist: pydantic>=2.8
32
+ Requires-Dist: rich>=13.9
33
+ Requires-Dist: sqlalchemy>=2.0.36
34
+ Requires-Dist: structlog>=24.4
35
+ Requires-Dist: tenacity>=9.0
36
+ Requires-Dist: uuid-utils>=0.9
37
+ Requires-Dist: watchdog>=5.0
38
+ Provides-Extra: dev
39
+ Requires-Dist: bandit>=1.7; extra == 'dev'
40
+ Requires-Dist: coverage[toml]>=7.6; extra == 'dev'
41
+ Requires-Dist: freezegun>=1.5; extra == 'dev'
42
+ Requires-Dist: hypothesis>=6.120; extra == 'dev'
43
+ Requires-Dist: mypy>=1.13; extra == 'dev'
44
+ Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
45
+ Requires-Dist: pytest-cov>=6.0; extra == 'dev'
46
+ Requires-Dist: pytest-xdist>=3.6; extra == 'dev'
47
+ Requires-Dist: pytest>=8.3; extra == 'dev'
48
+ Requires-Dist: respx>=0.22; extra == 'dev'
49
+ Requires-Dist: ruff>=0.8; extra == 'dev'
50
+ Provides-Extra: redis
51
+ Requires-Dist: arq>=0.26; extra == 'redis'
52
+ Requires-Dist: redis>=5.2; extra == 'redis'
53
+ Provides-Extra: ui
54
+ Requires-Dist: textual>=1.0; extra == 'ui'
55
+ Description-Content-Type: text/markdown
56
+
57
+ # FLMKR — AI Filmmaking Harness
58
+
59
+ An autonomous, terminal-native AI filmmaking agent that transforms creative ideas into complete audiovisual productions.
60
+
61
+ ## What It Is
62
+
63
+ FLMKR is an **agent harness for filmmaking** — not a video generator, not a prompt engine, not a GUI wrapper. It's the environment that allows an autonomous agent to perform complex filmmaking work:
64
+
65
+ - Plan productions from ideas, screenplays, or treatments
66
+ - Create and maintain a Production Bible (characters, locations, style, continuity)
67
+ - Generate shots through provider-agnostic adapters (Agnes, Kling, MiniMax, Runway)
68
+ - Run QA at chunk/shot/scene levels with continuity checking
69
+ - Recover from failures without restarting the entire production
70
+ - Render final films with editorial assembly
71
+
72
+ ## Quick Start
73
+
74
+ ```bash
75
+ # Install
76
+ pip install -e ".[dev]"
77
+
78
+ # Create a new film project
79
+ flmkr create "A woman discovers her autonomous car is taking her somewhere she never asked to go."
80
+
81
+ # Plan the production
82
+ flmkr plan
83
+
84
+ # Run production
85
+ flmkr run
86
+
87
+ # Check status
88
+ flmkr status
89
+
90
+ # Resume after interruption
91
+ flmkr resume
92
+ ```
93
+
94
+ ## Architecture
95
+
96
+ ```
97
+ CLI/TUI
98
+ ↓
99
+ Producer Orchestrator
100
+ ↓
101
+ Agents (Story, Character, Cinematography, Generation, QA, Editorial, Sound)
102
+ ↓
103
+ Provider Adapters (Agnes, Kling, MiniMax, Runway)
104
+ ↓
105
+ Production Bible (persistent state)
106
+ ↓
107
+ Event Log (durable, resumable)
108
+ ```
109
+
110
+ ## Project Structure
111
+
112
+ ```
113
+ flmkr/
114
+ ├── __init__.py # Package entry
115
+ ├── cli.py # Click CLI commands
116
+ ├── config.py # Pydantic settings
117
+ ├── models.py # Core data models (Bible, Shot, Scene, etc.)
118
+ ├── agents.py # Agent framework
119
+ ├── providers.py # Provider adapters
120
+ ├── orchestrator.py # Producer/Orchestrator
121
+ ├── qa.py # QA engine
122
+ ├── editorial.py # Editorial/timeline engine
123
+ ├── project.py # Project state container
124
+ ├── event_store.py # SQLite event log
125
+ ├── events.py # Event types
126
+ ├── exceptions.py # Error types
127
+ └── tui.py # Rich terminal UI
128
+ ```
129
+
130
+ ## Requirements
131
+
132
+ - Python 3.11+
133
+ - SQLite (bundled with Python)
134
+ - Internet connection for provider APIs
135
+
136
+ ## License
137
+
138
+ MIT
flmkr-0.1.0/README.md ADDED
@@ -0,0 +1,82 @@
1
+ # FLMKR — AI Filmmaking Harness
2
+
3
+ An autonomous, terminal-native AI filmmaking agent that transforms creative ideas into complete audiovisual productions.
4
+
5
+ ## What It Is
6
+
7
+ FLMKR is an **agent harness for filmmaking** — not a video generator, not a prompt engine, not a GUI wrapper. It's the environment that allows an autonomous agent to perform complex filmmaking work:
8
+
9
+ - Plan productions from ideas, screenplays, or treatments
10
+ - Create and maintain a Production Bible (characters, locations, style, continuity)
11
+ - Generate shots through provider-agnostic adapters (Agnes, Kling, MiniMax, Runway)
12
+ - Run QA at chunk/shot/scene levels with continuity checking
13
+ - Recover from failures without restarting the entire production
14
+ - Render final films with editorial assembly
15
+
16
+ ## Quick Start
17
+
18
+ ```bash
19
+ # Install
20
+ pip install -e ".[dev]"
21
+
22
+ # Create a new film project
23
+ flmkr create "A woman discovers her autonomous car is taking her somewhere she never asked to go."
24
+
25
+ # Plan the production
26
+ flmkr plan
27
+
28
+ # Run production
29
+ flmkr run
30
+
31
+ # Check status
32
+ flmkr status
33
+
34
+ # Resume after interruption
35
+ flmkr resume
36
+ ```
37
+
38
+ ## Architecture
39
+
40
+ ```
41
+ CLI/TUI
42
+ ↓
43
+ Producer Orchestrator
44
+ ↓
45
+ Agents (Story, Character, Cinematography, Generation, QA, Editorial, Sound)
46
+ ↓
47
+ Provider Adapters (Agnes, Kling, MiniMax, Runway)
48
+ ↓
49
+ Production Bible (persistent state)
50
+ ↓
51
+ Event Log (durable, resumable)
52
+ ```
53
+
54
+ ## Project Structure
55
+
56
+ ```
57
+ flmkr/
58
+ ├── __init__.py # Package entry
59
+ ├── cli.py # Click CLI commands
60
+ ├── config.py # Pydantic settings
61
+ ├── models.py # Core data models (Bible, Shot, Scene, etc.)
62
+ ├── agents.py # Agent framework
63
+ ├── providers.py # Provider adapters
64
+ ├── orchestrator.py # Producer/Orchestrator
65
+ ├── qa.py # QA engine
66
+ ├── editorial.py # Editorial/timeline engine
67
+ ├── project.py # Project state container
68
+ ├── event_store.py # SQLite event log
69
+ ├── events.py # Event types
70
+ ├── exceptions.py # Error types
71
+ └── tui.py # Rich terminal UI
72
+ ```
73
+
74
+ ## Requirements
75
+
76
+ - Python 3.11+
77
+ - SQLite (bundled with Python)
78
+ - Internet connection for provider APIs
79
+
80
+ ## License
81
+
82
+ MIT