@growthub/cli 0.3.54 → 0.3.56

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.
Files changed (109) hide show
  1. package/README.md +56 -156
  2. package/assets/worker-kits/growthub-ai-website-cloner-v1/.env.example +7 -0
  3. package/assets/worker-kits/growthub-ai-website-cloner-v1/QUICKSTART.md +116 -0
  4. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/NEW-CLIENT.md +22 -0
  5. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/_template/brand-kit.md +27 -0
  6. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/growthub/brand-kit.md +26 -0
  7. package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +53 -0
  8. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/ai-website-cloner-fork-integration.md +118 -0
  9. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/design-token-system.md +135 -0
  10. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/multi-phase-pipeline.md +129 -0
  11. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/parallel-builder-dispatch.md +103 -0
  12. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/clone-brief-sample.md +54 -0
  13. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/component-spec-sample.md +123 -0
  14. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/platform-handoff-sample.md +102 -0
  15. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/visual-qa-sample.md +119 -0
  16. package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/README.md +71 -0
  17. package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/kit-standard.md +47 -0
  18. package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +105 -0
  19. package/assets/worker-kits/growthub-ai-website-cloner-v1/output/README.md +26 -0
  20. package/assets/worker-kits/growthub-ai-website-cloner-v1/output-standards.md +75 -0
  21. package/assets/worker-kits/growthub-ai-website-cloner-v1/runtime-assumptions.md +70 -0
  22. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/check-deps.sh +50 -0
  23. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/clone-fork.sh +66 -0
  24. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/verify-env.mjs +78 -0
  25. package/assets/worker-kits/growthub-ai-website-cloner-v1/skills.md +186 -0
  26. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/asset-manifest.md +57 -0
  27. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/builder-dispatch-plan.md +92 -0
  28. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/clone-brief.md +59 -0
  29. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/component-spec.md +124 -0
  30. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/design-token-extraction.md +89 -0
  31. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/platform-handoff.md +114 -0
  32. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/reconnaissance-report.md +77 -0
  33. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/visual-qa-checklist.md +107 -0
  34. package/assets/worker-kits/growthub-ai-website-cloner-v1/validation-checklist.md +76 -0
  35. package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +256 -0
  36. package/assets/worker-kits/growthub-open-montage-studio-v1/.env.example +40 -0
  37. package/assets/worker-kits/growthub-open-montage-studio-v1/QUICKSTART.md +114 -0
  38. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/NEW-CLIENT.md +42 -0
  39. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/_template/brand-kit.md +49 -0
  40. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/growthub/brand-kit.md +50 -0
  41. package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +55 -0
  42. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/cms-node-bridge.md +152 -0
  43. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/open-montage-fork-integration.md +120 -0
  44. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/pipeline-reference.md +147 -0
  45. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/provider-adapter-layer.md +105 -0
  46. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/cms-node-video-gen-sample.md +109 -0
  47. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/pipeline-selection-sample.md +67 -0
  48. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/platform-ready-handoff-sample.md +101 -0
  49. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/video-production-brief-sample.md +68 -0
  50. package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/README.md +7 -0
  51. package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/kit-standard.md +45 -0
  52. package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +107 -0
  53. package/assets/worker-kits/growthub-open-montage-studio-v1/output/README.md +34 -0
  54. package/assets/worker-kits/growthub-open-montage-studio-v1/output-standards.md +79 -0
  55. package/assets/worker-kits/growthub-open-montage-studio-v1/runtime-assumptions.md +86 -0
  56. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/check-deps.sh +43 -0
  57. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/clone-fork.sh +53 -0
  58. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/verify-env.mjs +102 -0
  59. package/assets/worker-kits/growthub-open-montage-studio-v1/skills.md +254 -0
  60. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/asset-tracking.md +46 -0
  61. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/cms-node-pipeline-mapping.md +64 -0
  62. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/generation-batch-plan.md +70 -0
  63. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/pipeline-selection-brief.md +67 -0
  64. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/platform-ready-execution-handoff.md +103 -0
  65. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/prompt-matrix.md +48 -0
  66. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/provider-selection-brief.md +86 -0
  67. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/review-qa-checklist.md +59 -0
  68. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/scene-plan.md +65 -0
  69. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/video-production-brief.md +58 -0
  70. package/assets/worker-kits/growthub-open-montage-studio-v1/validation-checklist.md +46 -0
  71. package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +304 -0
  72. package/assets/worker-kits/growthub-twenty-crm-v1/.env.example +15 -0
  73. package/assets/worker-kits/growthub-twenty-crm-v1/QUICKSTART.md +90 -0
  74. package/assets/worker-kits/growthub-twenty-crm-v1/brands/NEW-CLIENT.md +57 -0
  75. package/assets/worker-kits/growthub-twenty-crm-v1/brands/_template/brand-kit.md +88 -0
  76. package/assets/worker-kits/growthub-twenty-crm-v1/brands/growthub/brand-kit.md +92 -0
  77. package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +56 -0
  78. package/assets/worker-kits/growthub-twenty-crm-v1/docs/api-and-webhooks.md +296 -0
  79. package/assets/worker-kits/growthub-twenty-crm-v1/docs/data-model-layer.md +172 -0
  80. package/assets/worker-kits/growthub-twenty-crm-v1/docs/twenty-fork-integration.md +213 -0
  81. package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-playbook-sample.md +172 -0
  82. package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-setup-sample.md +100 -0
  83. package/assets/worker-kits/growthub-twenty-crm-v1/examples/lead-enrichment-sample.md +117 -0
  84. package/assets/worker-kits/growthub-twenty-crm-v1/examples/pipeline-automation-sample.md +132 -0
  85. package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/README.md +114 -0
  86. package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/kit-standard.md +61 -0
  87. package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +108 -0
  88. package/assets/worker-kits/growthub-twenty-crm-v1/output/README.md +46 -0
  89. package/assets/worker-kits/growthub-twenty-crm-v1/output-standards.md +175 -0
  90. package/assets/worker-kits/growthub-twenty-crm-v1/runtime-assumptions.md +150 -0
  91. package/assets/worker-kits/growthub-twenty-crm-v1/setup/check-deps.sh +56 -0
  92. package/assets/worker-kits/growthub-twenty-crm-v1/setup/clone-fork.sh +77 -0
  93. package/assets/worker-kits/growthub-twenty-crm-v1/setup/verify-env.mjs +105 -0
  94. package/assets/worker-kits/growthub-twenty-crm-v1/skills.md +401 -0
  95. package/assets/worker-kits/growthub-twenty-crm-v1/templates/api-query-plan.md +179 -0
  96. package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-playbook.md +155 -0
  97. package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-setup-brief.md +94 -0
  98. package/assets/worker-kits/growthub-twenty-crm-v1/templates/custom-object-design.md +115 -0
  99. package/assets/worker-kits/growthub-twenty-crm-v1/templates/data-model-design.md +112 -0
  100. package/assets/worker-kits/growthub-twenty-crm-v1/templates/enrichment-field-map.md +100 -0
  101. package/assets/worker-kits/growthub-twenty-crm-v1/templates/import-mapping.md +139 -0
  102. package/assets/worker-kits/growthub-twenty-crm-v1/templates/integration-handoff.md +190 -0
  103. package/assets/worker-kits/growthub-twenty-crm-v1/templates/lead-enrichment-pipeline.md +128 -0
  104. package/assets/worker-kits/growthub-twenty-crm-v1/templates/pipeline-automation-brief.md +88 -0
  105. package/assets/worker-kits/growthub-twenty-crm-v1/templates/webhook-integration-spec.md +129 -0
  106. package/assets/worker-kits/growthub-twenty-crm-v1/templates/workspace-config-checklist.md +129 -0
  107. package/assets/worker-kits/growthub-twenty-crm-v1/validation-checklist.md +115 -0
  108. package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +310 -0
  109. package/package.json +1 -1
@@ -0,0 +1,107 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "kit": {
4
+ "id": "growthub-open-montage-studio-v1",
5
+ "version": "1.0.0",
6
+ "name": "Growthub Agent Worker Kit — Open Montage Studio",
7
+ "description": "Self-contained local execution environment for OpenMontage agentic video production. Produces end-to-end video content through 12 production pipelines — from animated explainers and cinematic trailers to documentary montages and talking heads — with direct CMS node integration for first-party video/image generation.",
8
+ "type": "worker",
9
+ "visibility": "public-open-source",
10
+ "sourceRepo": "growthub-local",
11
+ "family": "studio"
12
+ },
13
+ "entrypoint": {
14
+ "workerId": "open-montage-studio-operator",
15
+ "path": "workers/open-montage-studio-operator/CLAUDE.md"
16
+ },
17
+ "workerIds": [
18
+ "open-montage-studio-operator"
19
+ ],
20
+ "agentContractPath": "workers/open-montage-studio-operator/CLAUDE.md",
21
+ "brandTemplatePath": "brands/_template/brand-kit.md",
22
+ "publicExampleBrandPaths": [
23
+ "brands/growthub/brand-kit.md"
24
+ ],
25
+ "frozenAssetPaths": [
26
+ "QUICKSTART.md",
27
+ ".env.example",
28
+ "skills.md",
29
+ "output-standards.md",
30
+ "runtime-assumptions.md",
31
+ "validation-checklist.md",
32
+ "workers/open-montage-studio-operator/CLAUDE.md",
33
+ "brands/_template/brand-kit.md",
34
+ "brands/growthub/brand-kit.md",
35
+ "brands/NEW-CLIENT.md",
36
+ "setup/clone-fork.sh",
37
+ "setup/verify-env.mjs",
38
+ "setup/check-deps.sh",
39
+ "output/README.md",
40
+ "templates/video-production-brief.md",
41
+ "templates/pipeline-selection-brief.md",
42
+ "templates/provider-selection-brief.md",
43
+ "templates/scene-plan.md",
44
+ "templates/prompt-matrix.md",
45
+ "templates/generation-batch-plan.md",
46
+ "templates/asset-tracking.md",
47
+ "templates/review-qa-checklist.md",
48
+ "templates/platform-ready-execution-handoff.md",
49
+ "templates/cms-node-pipeline-mapping.md",
50
+ "examples/video-production-brief-sample.md",
51
+ "examples/pipeline-selection-sample.md",
52
+ "examples/cms-node-video-gen-sample.md",
53
+ "examples/platform-ready-handoff-sample.md",
54
+ "docs/open-montage-fork-integration.md",
55
+ "docs/provider-adapter-layer.md",
56
+ "docs/cms-node-bridge.md",
57
+ "docs/pipeline-reference.md",
58
+ "growthub-meta/README.md",
59
+ "growthub-meta/kit-standard.md"
60
+ ],
61
+ "setupPaths": {
62
+ "quickstart": "QUICKSTART.md",
63
+ "envExample": ".env.example",
64
+ "setupDir": "setup/",
65
+ "outputDir": "output/"
66
+ },
67
+ "outputStandard": {
68
+ "type": "working-directory",
69
+ "description": "Exported folder is intended to be pointed at directly by the agent Working Directory. All outputs are Markdown files written to output/<client-slug>/<project-slug>/.",
70
+ "requiredPaths": [
71
+ "QUICKSTART.md",
72
+ ".env.example",
73
+ "kit.json",
74
+ "bundles/growthub-open-montage-studio-v1.json",
75
+ "skills.md",
76
+ "workers/open-montage-studio-operator/CLAUDE.md",
77
+ "brands/_template/brand-kit.md",
78
+ "brands/growthub/brand-kit.md",
79
+ "brands/NEW-CLIENT.md",
80
+ "setup/clone-fork.sh",
81
+ "setup/verify-env.mjs",
82
+ "setup/check-deps.sh",
83
+ "output/README.md",
84
+ "templates",
85
+ "docs",
86
+ "growthub-meta"
87
+ ]
88
+ },
89
+ "bundles": [
90
+ {
91
+ "id": "growthub-open-montage-studio-v1",
92
+ "version": "1.0.0",
93
+ "path": "bundles/growthub-open-montage-studio-v1.json"
94
+ }
95
+ ],
96
+ "executionMode": "export",
97
+ "activationModes": [
98
+ "export"
99
+ ],
100
+ "compatibility": {
101
+ "cliMinVersion": "0.3.50"
102
+ },
103
+ "provenance": {
104
+ "sourceRepo": "growthub-local",
105
+ "frozenAt": "2026-04-14T00:00:00.000Z"
106
+ }
107
+ }
@@ -0,0 +1,34 @@
1
+ # Output Directory
2
+
3
+ This directory stores all production artifacts created by the Open Montage Studio Operator.
4
+
5
+ ## Structure
6
+
7
+ ```
8
+ output/
9
+ └── <client-slug>/
10
+ └── <project-slug>/
11
+ ├── video-production-brief.md
12
+ ├── pipeline-selection-brief.md
13
+ ├── provider-selection-brief.md
14
+ ├── scene-plan.md
15
+ ├── prompt-matrix.md
16
+ ├── generation-batch-plan.md
17
+ ├── asset-tracking.md
18
+ ├── review-qa-checklist.md
19
+ ├── platform-ready-execution-handoff.md
20
+ ├── cms-node-pipeline-mapping.md (if CMS nodes used)
21
+ └── assets/ (if local-fork mode)
22
+ ├── images/
23
+ ├── video/
24
+ ├── audio/
25
+ └── render/
26
+ ```
27
+
28
+ ## Conventions
29
+
30
+ - One directory per client, one subdirectory per project
31
+ - Use kebab-case for slugs
32
+ - All production artifacts are Markdown files
33
+ - Generated media assets go in `assets/` subdirectories
34
+ - Final render goes in `assets/render/`
@@ -0,0 +1,79 @@
1
+ # Output Standards — Open Montage Studio
2
+
3
+ All artifacts produced by the Open Montage Studio Operator must follow these standards.
4
+
5
+ ---
6
+
7
+ ## Directory Structure
8
+
9
+ ```
10
+ output/<client-slug>/<project-slug>/
11
+ ├── video-production-brief.md
12
+ ├── pipeline-selection-brief.md
13
+ ├── provider-selection-brief.md
14
+ ├── scene-plan.md
15
+ ├── prompt-matrix.md
16
+ ├── generation-batch-plan.md
17
+ ├── asset-tracking.md
18
+ ├── review-qa-checklist.md
19
+ ├── platform-ready-execution-handoff.md
20
+ ├── cms-node-pipeline-mapping.md (if CMS nodes used)
21
+ └── assets/ (generated assets, if local-fork mode)
22
+ ├── images/
23
+ ├── video/
24
+ ├── audio/
25
+ └── render/
26
+ ```
27
+
28
+ ---
29
+
30
+ ## File Naming
31
+
32
+ - Use kebab-case for all file names
33
+ - Include the project slug in the directory path, not in each file name
34
+ - Asset files use the pattern: `<scene-number>-<type>-<sequence>.<ext>` (e.g., `01-image-001.png`)
35
+
36
+ ---
37
+
38
+ ## Markdown Standards
39
+
40
+ - All artifacts are Markdown files
41
+ - Use tables for structured data (not inline lists)
42
+ - Use code blocks for commands, paths, and configuration values
43
+ - Every artifact must include a Project Reference header with client, project, pipeline, and date
44
+ - Templates must be filled completely — no empty placeholder fields in final output
45
+
46
+ ---
47
+
48
+ ## Render Profiles
49
+
50
+ | Profile | Resolution | Aspect Ratio | FPS | Codec | Bitrate |
51
+ |---------|-----------|--------------|-----|-------|---------|
52
+ | YouTube Landscape | 1920x1080 | 16:9 | 30 | H.264 | 8 Mbps |
53
+ | YouTube 4K | 3840x2160 | 16:9 | 30 | H.264 | 35 Mbps |
54
+ | YouTube Shorts | 1080x1920 | 9:16 | 30 | H.264 | 8 Mbps |
55
+ | Instagram Reels | 1080x1920 | 9:16 | 30 | H.264 | 8 Mbps |
56
+ | Instagram Feed | 1080x1080 | 1:1 | 30 | H.264 | 8 Mbps |
57
+ | TikTok | 1080x1920 | 9:16 | 30 | H.264 | 8 Mbps |
58
+ | LinkedIn | 1920x1080 | 16:9 | 30 | H.264 | 8 Mbps |
59
+ | Cinematic | 2560x1080 | 21:9 | 24 | H.264 | 12 Mbps |
60
+
61
+ ---
62
+
63
+ ## Quality Bars
64
+
65
+ - **No slideshow outputs** — image-based videos must score >= 6.0 on the slideshow risk assessment
66
+ - **Audio must be present** — silent video is only acceptable when explicitly requested
67
+ - **Subtitles must be word-level timed** — no sentence-level block captions
68
+ - **Transitions must be intentional** — no default cuts everywhere; vary based on scene mood
69
+ - **Color grading is expected** — unless the user explicitly opts out
70
+
71
+ ---
72
+
73
+ ## Deliverable Line Format
74
+
75
+ When logging a deliverable in the brand kit:
76
+
77
+ ```
78
+ - YYYY-MM-DD | OpenMontage Video Package v<N> — <Project Name> | output/<client-slug>/<project-slug>/
79
+ ```
@@ -0,0 +1,86 @@
1
+ # Runtime Assumptions — Open Montage Studio
2
+
3
+ This file documents the runtime environment expectations for the Open Montage Studio Worker Kit.
4
+
5
+ ---
6
+
7
+ ## Execution Modes
8
+
9
+ | Mode | Requirements | Description |
10
+ |---|---|---|
11
+ | `local-fork` | Python 3.10+, FFmpeg, Node.js 18+, OpenMontage clone | Full tool access — agent runs pipelines directly |
12
+ | `agent-only` | GrowthHub session or zero-key mode | No local clone — CMS nodes or free tools provide generation |
13
+ | `hybrid` | GrowthHub session + partial local tools | CMS nodes for generation + local post-production |
14
+
15
+ ---
16
+
17
+ ## Local-Fork Mode Requirements
18
+
19
+ ### System Dependencies
20
+
21
+ | Dependency | Minimum Version | Check Command | Purpose |
22
+ |---|---|---|---|
23
+ | Python | 3.10+ | `python3 --version` | OpenMontage tool execution |
24
+ | FFmpeg | any recent | `ffmpeg -version` | Video encoding, subtitle burn-in, audio mixing |
25
+ | Node.js | 18+ | `node --version` | Remotion composition engine |
26
+ | npm | any recent | `npm --version` | Remotion dependency management |
27
+
28
+ ### OpenMontage Clone
29
+
30
+ - Default path: `~/OpenMontage` (override with `OPENMONTAGE_PATH` in `.env`)
31
+ - Setup: `git clone https://github.com/calesthio/OpenMontage.git && cd OpenMontage && make setup`
32
+ - The clone includes Python requirements, Remotion composer, and Piper TTS
33
+
34
+ ### API Keys
35
+
36
+ All keys are optional. More keys = more tools available. Recommended setup order:
37
+
38
+ 1. Free stock media keys (Pexels, Pixabay) — completely free
39
+ 2. Google API key — 1M chars/month free TTS + $300 new account credits
40
+ 3. ElevenLabs — 10K chars/month free premium TTS
41
+ 4. fal.ai — FLUX images + multi-model video (~$0.03/image)
42
+
43
+ ---
44
+
45
+ ## Agent-Only Mode Requirements
46
+
47
+ - Active GrowthHub session (`growthub auth:login`) for CMS node access
48
+ - OR: zero-key mode (Piper TTS + free archives + Remotion guidance only)
49
+ - No local OpenMontage clone needed
50
+ - Agent produces production artifacts and composition guidance
51
+ - Actual generation happens via CMS hosted execution
52
+
53
+ ---
54
+
55
+ ## Hybrid Mode Requirements
56
+
57
+ - Active GrowthHub session for CMS node generation
58
+ - Local FFmpeg for post-production (composition, subtitles, audio mixing)
59
+ - Optional: local OpenMontage clone for full Remotion composition
60
+ - CMS node outputs (URLs) are downloaded locally for post-production
61
+
62
+ ---
63
+
64
+ ## File System Assumptions
65
+
66
+ - Working directory is this kit folder (exported via `growthub kit download`)
67
+ - Output goes to `output/<client-slug>/<project-slug>/`
68
+ - Brand kits live in `brands/<client-slug>/`
69
+ - The agent reads `skills.md` and templates from relative paths
70
+
71
+ ---
72
+
73
+ ## Network Assumptions
74
+
75
+ - Internet access required for: provider API calls, CMS node execution, stock media search, web research
76
+ - Local-fork Remotion rendering is fully offline after assets are downloaded
77
+ - FFmpeg post-production is fully offline
78
+
79
+ ---
80
+
81
+ ## Known Limitations
82
+
83
+ - Piper TTS quality is lower than cloud TTS — acceptable for drafts, recommend ElevenLabs or Google for final output
84
+ - Local GPU video generation (WAN 2.1, Hunyuan) requires NVIDIA GPU with 6-24GB VRAM — not available on most laptops
85
+ - Remotion composition renders images into animated video — not the same as AI-generated motion clips
86
+ - CMS node execution latency depends on GrowthHub hosted infrastructure — may be slower than direct API calls
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Check system dependencies for Open Montage Studio local-fork mode.
5
+ # Exit 0: all dependencies present.
6
+ # Exit 1: one or more dependencies missing.
7
+
8
+ echo "=== Open Montage Studio — Dependency Check ==="
9
+ echo ""
10
+
11
+ MISSING=0
12
+
13
+ check_dep() {
14
+ local name="$1"
15
+ local cmd="$2"
16
+ local min_version="$3"
17
+ local install_hint="$4"
18
+
19
+ if command -v "$cmd" &>/dev/null; then
20
+ local version
21
+ version=$("$cmd" --version 2>&1 | head -1)
22
+ echo " [ok] $name: $version"
23
+ else
24
+ echo " [missing] $name — install: $install_hint"
25
+ MISSING=$((MISSING + 1))
26
+ fi
27
+ }
28
+
29
+ check_dep "Python 3.10+" "python3" "3.10" "python.org or brew install python"
30
+ check_dep "FFmpeg" "ffmpeg" "any" "brew install ffmpeg or ffmpeg.org"
31
+ check_dep "Node.js 18+" "node" "18" "nodejs.org or brew install node"
32
+ check_dep "npm" "npm" "any" "comes with Node.js"
33
+ check_dep "Git" "git" "any" "brew install git"
34
+
35
+ echo ""
36
+
37
+ if [ "$MISSING" -gt 0 ]; then
38
+ echo "[result] $MISSING dependency(s) missing. Install them and rerun this check."
39
+ exit 1
40
+ else
41
+ echo "[result] All dependencies present."
42
+ exit 0
43
+ fi
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Clone and set up OpenMontage for local-fork execution mode.
5
+ # Usage: bash setup/clone-fork.sh [target-dir]
6
+
7
+ TARGET_DIR="${1:-${OPENMONTAGE_PATH:-$HOME/OpenMontage}}"
8
+
9
+ echo "=== OpenMontage Fork Setup ==="
10
+ echo "Target directory: $TARGET_DIR"
11
+ echo ""
12
+
13
+ # ── Step 1: Clone ──
14
+ if [ -d "$TARGET_DIR/.git" ]; then
15
+ echo "[skip] Repository already exists at $TARGET_DIR"
16
+ echo " To update: cd $TARGET_DIR && git pull"
17
+ else
18
+ echo "[clone] Cloning OpenMontage..."
19
+ git clone https://github.com/calesthio/OpenMontage.git "$TARGET_DIR"
20
+ echo "[done] Cloned to $TARGET_DIR"
21
+ fi
22
+
23
+ # ── Step 2: Install dependencies ──
24
+ echo ""
25
+ echo "[setup] Running make setup..."
26
+ cd "$TARGET_DIR"
27
+
28
+ if [ -f Makefile ]; then
29
+ make setup
30
+ else
31
+ echo "[fallback] No Makefile found. Running manual setup..."
32
+ pip install -r requirements.txt
33
+ cd remotion-composer && npm install && cd ..
34
+ pip install piper-tts
35
+ cp -n .env.example .env 2>/dev/null || true
36
+ fi
37
+
38
+ # ── Step 3: Verify ──
39
+ echo ""
40
+ echo "[verify] Checking tool registry..."
41
+ python3 -c "from tools.tool_registry import registry; registry.discover(); print('Tool registry: OK')" 2>/dev/null || {
42
+ echo "[warn] Tool registry check failed. This may be normal on first setup."
43
+ echo " Try: cd $TARGET_DIR && python3 -c \"from tools.tool_registry import registry; registry.discover()\""
44
+ }
45
+
46
+ echo ""
47
+ echo "=== Setup Complete ==="
48
+ echo "OpenMontage is ready at: $TARGET_DIR"
49
+ echo ""
50
+ echo "Next steps:"
51
+ echo " 1. Add API keys to $TARGET_DIR/.env (optional — more keys = more tools)"
52
+ echo " 2. Point your agent Working Directory at this kit folder"
53
+ echo " 3. Start a session — the operator will detect the local fork automatically"
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Verify environment configuration for Open Montage Studio.
5
+ * Checks which providers are configured and validates key formats.
6
+ * Exit 0: at least one provider configured or zero-key mode acknowledged.
7
+ * Exit 1: configuration issue found.
8
+ */
9
+
10
+ import { readFileSync, existsSync } from "fs";
11
+ import { resolve, dirname } from "path";
12
+ import { fileURLToPath } from "url";
13
+
14
+ const __dirname = dirname(fileURLToPath(import.meta.url));
15
+ const kitRoot = resolve(__dirname, "..");
16
+ const envPath = resolve(kitRoot, ".env");
17
+
18
+ // ── Parse .env ──
19
+
20
+ function parseEnv(filePath) {
21
+ if (!existsSync(filePath)) return {};
22
+ const lines = readFileSync(filePath, "utf-8").split("\n");
23
+ const env = {};
24
+ for (const line of lines) {
25
+ const trimmed = line.trim();
26
+ if (!trimmed || trimmed.startsWith("#")) continue;
27
+ const eqIndex = trimmed.indexOf("=");
28
+ if (eqIndex === -1) continue;
29
+ const key = trimmed.slice(0, eqIndex).trim();
30
+ const value = trimmed.slice(eqIndex + 1).trim();
31
+ env[key] = value;
32
+ }
33
+ return env;
34
+ }
35
+
36
+ // ── Provider definitions ──
37
+
38
+ const PROVIDERS = [
39
+ { key: "FAL_KEY", name: "fal.ai", capabilities: "FLUX images, Kling/Veo/MiniMax video, Recraft", placeholder: "your_fal_key_here" },
40
+ { key: "PEXELS_API_KEY", name: "Pexels", capabilities: "Free stock photos + videos", placeholder: "your_pexels_key_here" },
41
+ { key: "PIXABAY_API_KEY", name: "Pixabay", capabilities: "Free stock photos + videos", placeholder: "your_pixabay_key_here" },
42
+ { key: "UNSPLASH_ACCESS_KEY", name: "Unsplash", capabilities: "Free stock images", placeholder: "your_unsplash_key_here" },
43
+ { key: "OPENAI_API_KEY", name: "OpenAI", capabilities: "DALL-E 3 images, OpenAI TTS", placeholder: "your_openai_key_here" },
44
+ { key: "GOOGLE_API_KEY", name: "Google", capabilities: "Google TTS (700+ voices), Imagen images", placeholder: "your_google_key_here" },
45
+ { key: "ELEVENLABS_API_KEY", name: "ElevenLabs", capabilities: "Premium TTS, music, SFX", placeholder: "your_elevenlabs_key_here" },
46
+ { key: "SUNO_API_KEY", name: "Suno", capabilities: "AI music generation", placeholder: "your_suno_key_here" },
47
+ { key: "RUNWAY_API_KEY", name: "Runway", capabilities: "Gen-4 video", placeholder: "your_runway_key_here" },
48
+ { key: "HEYGEN_API_KEY", name: "HeyGen", capabilities: "Avatar videos", placeholder: "your_heygen_key_here" },
49
+ { key: "HIGGSFIELD_API_KEY", name: "Higgsfield", capabilities: "Multi-model video orchestrator", placeholder: "your_higgsfield_key_here" },
50
+ { key: "XAI_API_KEY", name: "xAI Grok", capabilities: "Image + video generation", placeholder: "your_xai_key_here" },
51
+ ];
52
+
53
+ // ── Check ──
54
+
55
+ console.log("=== Open Montage Studio — Environment Check ===\n");
56
+
57
+ if (!existsSync(envPath)) {
58
+ console.log("[error] .env file not found at:", envPath);
59
+ console.log(" Run: cp .env.example .env");
60
+ process.exit(1);
61
+ }
62
+
63
+ const env = parseEnv(envPath);
64
+ const configured = [];
65
+ const missing = [];
66
+
67
+ for (const provider of PROVIDERS) {
68
+ const value = env[provider.key];
69
+ if (value && value !== provider.placeholder && value.length > 5) {
70
+ configured.push(provider);
71
+ console.log(` [ok] ${provider.name} — ${provider.capabilities}`);
72
+ } else {
73
+ missing.push(provider);
74
+ }
75
+ }
76
+
77
+ console.log("");
78
+
79
+ if (configured.length === 0) {
80
+ console.log("[info] No provider keys configured.");
81
+ console.log(" You can still use:");
82
+ console.log(" - GrowthHub CMS nodes (requires growthub auth:login)");
83
+ console.log(" - Zero-key mode: Piper TTS + free archives + Remotion");
84
+ console.log("");
85
+ console.log(" To add providers, edit .env and rerun this script.");
86
+ // Exit 0 — zero-key mode is valid
87
+ process.exit(0);
88
+ }
89
+
90
+ console.log(`[summary] ${configured.length} provider(s) configured, ${missing.length} not set.`);
91
+
92
+ // Check OpenMontage path
93
+ const omPath = env.OPENMONTAGE_PATH || resolve(process.env.HOME || "~", "OpenMontage");
94
+ if (existsSync(omPath)) {
95
+ console.log(`[ok] OpenMontage clone found at: ${omPath}`);
96
+ } else {
97
+ console.log(`[info] OpenMontage not found at: ${omPath}`);
98
+ console.log(" Run: bash setup/clone-fork.sh (optional — needed for local-fork mode only)");
99
+ }
100
+
101
+ console.log("\n=== Check Complete ===");
102
+ process.exit(0);