@growthub/cli 0.3.54 → 0.3.55

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 (108) hide show
  1. package/assets/worker-kits/growthub-ai-website-cloner-v1/.env.example +7 -0
  2. package/assets/worker-kits/growthub-ai-website-cloner-v1/QUICKSTART.md +116 -0
  3. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/NEW-CLIENT.md +22 -0
  4. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/_template/brand-kit.md +27 -0
  5. package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/growthub/brand-kit.md +26 -0
  6. package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +53 -0
  7. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/ai-website-cloner-fork-integration.md +118 -0
  8. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/design-token-system.md +135 -0
  9. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/multi-phase-pipeline.md +129 -0
  10. package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/parallel-builder-dispatch.md +103 -0
  11. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/clone-brief-sample.md +54 -0
  12. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/component-spec-sample.md +123 -0
  13. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/platform-handoff-sample.md +102 -0
  14. package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/visual-qa-sample.md +119 -0
  15. package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/README.md +71 -0
  16. package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/kit-standard.md +47 -0
  17. package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +105 -0
  18. package/assets/worker-kits/growthub-ai-website-cloner-v1/output/README.md +26 -0
  19. package/assets/worker-kits/growthub-ai-website-cloner-v1/output-standards.md +75 -0
  20. package/assets/worker-kits/growthub-ai-website-cloner-v1/runtime-assumptions.md +70 -0
  21. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/check-deps.sh +50 -0
  22. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/clone-fork.sh +66 -0
  23. package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/verify-env.mjs +78 -0
  24. package/assets/worker-kits/growthub-ai-website-cloner-v1/skills.md +186 -0
  25. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/asset-manifest.md +57 -0
  26. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/builder-dispatch-plan.md +92 -0
  27. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/clone-brief.md +59 -0
  28. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/component-spec.md +124 -0
  29. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/design-token-extraction.md +89 -0
  30. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/platform-handoff.md +114 -0
  31. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/reconnaissance-report.md +77 -0
  32. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/visual-qa-checklist.md +107 -0
  33. package/assets/worker-kits/growthub-ai-website-cloner-v1/validation-checklist.md +76 -0
  34. package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +256 -0
  35. package/assets/worker-kits/growthub-open-montage-studio-v1/.env.example +40 -0
  36. package/assets/worker-kits/growthub-open-montage-studio-v1/QUICKSTART.md +114 -0
  37. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/NEW-CLIENT.md +42 -0
  38. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/_template/brand-kit.md +49 -0
  39. package/assets/worker-kits/growthub-open-montage-studio-v1/brands/growthub/brand-kit.md +50 -0
  40. package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +55 -0
  41. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/cms-node-bridge.md +152 -0
  42. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/open-montage-fork-integration.md +120 -0
  43. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/pipeline-reference.md +147 -0
  44. package/assets/worker-kits/growthub-open-montage-studio-v1/docs/provider-adapter-layer.md +105 -0
  45. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/cms-node-video-gen-sample.md +109 -0
  46. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/pipeline-selection-sample.md +67 -0
  47. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/platform-ready-handoff-sample.md +101 -0
  48. package/assets/worker-kits/growthub-open-montage-studio-v1/examples/video-production-brief-sample.md +68 -0
  49. package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/README.md +7 -0
  50. package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/kit-standard.md +45 -0
  51. package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +107 -0
  52. package/assets/worker-kits/growthub-open-montage-studio-v1/output/README.md +34 -0
  53. package/assets/worker-kits/growthub-open-montage-studio-v1/output-standards.md +79 -0
  54. package/assets/worker-kits/growthub-open-montage-studio-v1/runtime-assumptions.md +86 -0
  55. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/check-deps.sh +43 -0
  56. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/clone-fork.sh +53 -0
  57. package/assets/worker-kits/growthub-open-montage-studio-v1/setup/verify-env.mjs +102 -0
  58. package/assets/worker-kits/growthub-open-montage-studio-v1/skills.md +254 -0
  59. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/asset-tracking.md +46 -0
  60. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/cms-node-pipeline-mapping.md +64 -0
  61. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/generation-batch-plan.md +70 -0
  62. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/pipeline-selection-brief.md +67 -0
  63. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/platform-ready-execution-handoff.md +103 -0
  64. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/prompt-matrix.md +48 -0
  65. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/provider-selection-brief.md +86 -0
  66. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/review-qa-checklist.md +59 -0
  67. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/scene-plan.md +65 -0
  68. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/video-production-brief.md +58 -0
  69. package/assets/worker-kits/growthub-open-montage-studio-v1/validation-checklist.md +46 -0
  70. package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +304 -0
  71. package/assets/worker-kits/growthub-twenty-crm-v1/.env.example +15 -0
  72. package/assets/worker-kits/growthub-twenty-crm-v1/QUICKSTART.md +90 -0
  73. package/assets/worker-kits/growthub-twenty-crm-v1/brands/NEW-CLIENT.md +57 -0
  74. package/assets/worker-kits/growthub-twenty-crm-v1/brands/_template/brand-kit.md +88 -0
  75. package/assets/worker-kits/growthub-twenty-crm-v1/brands/growthub/brand-kit.md +92 -0
  76. package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +56 -0
  77. package/assets/worker-kits/growthub-twenty-crm-v1/docs/api-and-webhooks.md +296 -0
  78. package/assets/worker-kits/growthub-twenty-crm-v1/docs/data-model-layer.md +172 -0
  79. package/assets/worker-kits/growthub-twenty-crm-v1/docs/twenty-fork-integration.md +213 -0
  80. package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-playbook-sample.md +172 -0
  81. package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-setup-sample.md +100 -0
  82. package/assets/worker-kits/growthub-twenty-crm-v1/examples/lead-enrichment-sample.md +117 -0
  83. package/assets/worker-kits/growthub-twenty-crm-v1/examples/pipeline-automation-sample.md +132 -0
  84. package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/README.md +114 -0
  85. package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/kit-standard.md +61 -0
  86. package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +108 -0
  87. package/assets/worker-kits/growthub-twenty-crm-v1/output/README.md +46 -0
  88. package/assets/worker-kits/growthub-twenty-crm-v1/output-standards.md +175 -0
  89. package/assets/worker-kits/growthub-twenty-crm-v1/runtime-assumptions.md +150 -0
  90. package/assets/worker-kits/growthub-twenty-crm-v1/setup/check-deps.sh +56 -0
  91. package/assets/worker-kits/growthub-twenty-crm-v1/setup/clone-fork.sh +77 -0
  92. package/assets/worker-kits/growthub-twenty-crm-v1/setup/verify-env.mjs +105 -0
  93. package/assets/worker-kits/growthub-twenty-crm-v1/skills.md +401 -0
  94. package/assets/worker-kits/growthub-twenty-crm-v1/templates/api-query-plan.md +179 -0
  95. package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-playbook.md +155 -0
  96. package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-setup-brief.md +94 -0
  97. package/assets/worker-kits/growthub-twenty-crm-v1/templates/custom-object-design.md +115 -0
  98. package/assets/worker-kits/growthub-twenty-crm-v1/templates/data-model-design.md +112 -0
  99. package/assets/worker-kits/growthub-twenty-crm-v1/templates/enrichment-field-map.md +100 -0
  100. package/assets/worker-kits/growthub-twenty-crm-v1/templates/import-mapping.md +139 -0
  101. package/assets/worker-kits/growthub-twenty-crm-v1/templates/integration-handoff.md +190 -0
  102. package/assets/worker-kits/growthub-twenty-crm-v1/templates/lead-enrichment-pipeline.md +128 -0
  103. package/assets/worker-kits/growthub-twenty-crm-v1/templates/pipeline-automation-brief.md +88 -0
  104. package/assets/worker-kits/growthub-twenty-crm-v1/templates/webhook-integration-spec.md +129 -0
  105. package/assets/worker-kits/growthub-twenty-crm-v1/templates/workspace-config-checklist.md +129 -0
  106. package/assets/worker-kits/growthub-twenty-crm-v1/validation-checklist.md +115 -0
  107. package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +310 -0
  108. package/package.json +1 -1
@@ -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);
@@ -0,0 +1,254 @@
1
+ # Open Montage Studio — Master Skill Document
2
+
3
+ This is the canonical methodology reference for the Open Montage Studio Operator. Read this file at the start of every session before producing any artifacts.
4
+
5
+ ---
6
+
7
+ ## 1. Workflow Order
8
+
9
+ The operator follows a strict 10-step workflow defined in `workers/open-montage-studio-operator/CLAUDE.md`. This skill doc provides the detailed methodology for steps 5 through 9.
10
+
11
+ ---
12
+
13
+ ## 2. Pipeline Selection Logic
14
+
15
+ OpenMontage supports 12 production pipelines. Selection is a structured decision, not a guess.
16
+
17
+ ### Decision Tree
18
+
19
+ ```
20
+ Intent: Explain a topic to an audience?
21
+ YES → Animated Explainer
22
+
23
+ Intent: Create motion graphics, kinetic typography, or abstract animation?
24
+ YES → Animation
25
+
26
+ Intent: Avatar-driven presenter video?
27
+ YES → Avatar Spokesperson
28
+
29
+ Intent: Cinematic trailer, teaser, or mood-driven brand film?
30
+ YES → Cinematic
31
+
32
+ Intent: Batch of ranked short-form clips from one long source?
33
+ YES → Clip Factory
34
+
35
+ Intent: Thematic montage from real stock footage or open archives?
36
+ YES → Documentary Montage
37
+
38
+ Intent: Enhance existing footage with AI-generated support visuals?
39
+ YES → Hybrid
40
+
41
+ Intent: Subtitle, dub, or translate existing video into other languages?
42
+ YES → Localization & Dub
43
+
44
+ Intent: Turn podcast highlights into video?
45
+ YES → Podcast Repurpose
46
+
47
+ Intent: Polished software screen recording or walkthrough?
48
+ YES → Screen Demo
49
+
50
+ Intent: Footage-led speaker video, presentation, or vlog?
51
+ YES → Talking Head
52
+ ```
53
+
54
+ If the intent spans two pipelines, pick the primary and document the secondary as a composition layer or follow-up pipeline.
55
+
56
+ ### Pipeline Stage Flow (Universal)
57
+
58
+ Every pipeline follows the same structured flow:
59
+
60
+ ```
61
+ research → proposal → script → scene_plan → assets → edit → compose
62
+ ```
63
+
64
+ Each stage has a dedicated director skill in the OpenMontage fork at `skills/pipelines/<pipeline-name>/`.
65
+
66
+ ---
67
+
68
+ ## 3. Provider Scoring Methodology
69
+
70
+ Every tool selection runs through a 7-dimension scoring engine.
71
+
72
+ | Dimension | Weight | What It Measures |
73
+ |-----------|--------|------------------|
74
+ | Task fit | 30% | How well the tool matches the specific production need |
75
+ | Output quality | 20% | Resolution, fidelity, consistency of results |
76
+ | Control features | 15% | Prompt adherence, style control, parameter granularity |
77
+ | Reliability | 15% | Uptime, error rate, queue latency |
78
+ | Cost efficiency | 10% | Price per output unit relative to quality |
79
+ | Latency | 5% | Time from request to deliverable |
80
+ | Continuity | 5% | Session persistence, resumability, rate limits |
81
+
82
+ ### Provider Tiers
83
+
84
+ **Zero-cost (always available):**
85
+ - Piper TTS — offline narration
86
+ - Archive.org + NASA + Wikimedia — free archival footage
87
+ - Remotion — React-based programmatic video composition
88
+ - FFmpeg — encoding, subtitles, audio mixing, color grading
89
+
90
+ **Free-key (developer accounts, no charge):**
91
+ - Pexels, Pixabay, Unsplash — stock media
92
+ - Google TTS — 1M chars/month free
93
+ - ElevenLabs — 10K chars/month free
94
+
95
+ **Pay-as-you-go:**
96
+ - fal.ai (FAL_KEY) — FLUX images + Kling/Veo/MiniMax video
97
+ - OpenAI — DALL-E 3 + TTS
98
+ - Google Imagen — $0.02-0.06/image
99
+ - xAI Grok — images + video
100
+ - Runway Gen-4 — highest quality AI video
101
+ - Higgsfield — multi-model video orchestrator
102
+ - HeyGen — avatar videos
103
+ - Suno — AI music generation
104
+
105
+ **Local GPU (free, requires hardware):**
106
+ - WAN 2.1, Hunyuan, CogVideo, LTX-Video — local video generation
107
+ - Stable Diffusion — local image generation
108
+
109
+ ---
110
+
111
+ ## 4. CMS Node Bridge Mapping
112
+
113
+ GrowthHub CMS nodes expose video and image generation as hosted execution capabilities. The bridge maps these into the OpenMontage production flow.
114
+
115
+ ### How It Works
116
+
117
+ 1. Agent queries the CMS capability registry for available nodes in the `video` and `image` families
118
+ 2. CMS nodes execute via hosted execution client, producing output URLs
119
+ 3. Output URLs are treated as source assets in the OpenMontage pipeline
120
+ 4. OpenMontage handles composition, post-production, and final rendering
121
+
122
+ ### CMS Family → OpenMontage Mapping
123
+
124
+ | CMS Node Family | CMS Execution Kind | OpenMontage Integration Point |
125
+ |-----------------|--------------------|-----------------------------|
126
+ | `video` | `hosted-execute` | Source clips for `tools/video/` input or direct composition via Remotion/FFmpeg |
127
+ | `image` | `hosted-execute` | Scene images for `tools/graphics/` input or Remotion animated composition |
128
+ | `slides` | `hosted-execute` | Slide deck assets for Screen Demo pipeline |
129
+ | `text` | `hosted-execute` | Script/narration text for TTS processing |
130
+
131
+ ### CMS Node Output → OpenMontage Asset Type
132
+
133
+ | CMS Output Type | OpenMontage Asset Category | Typical Usage |
134
+ |-----------------|---------------------------|---------------|
135
+ | Video URL | `source_clip` | Scene footage, B-roll, transition clips |
136
+ | Image URL | `scene_image` | Hero shots, backgrounds, product stills |
137
+ | Audio URL | `narration` or `music` | Voiceover, soundtrack |
138
+ | Text | `script` | Script content for TTS conversion |
139
+
140
+ ### When to Use CMS Nodes vs Direct Providers
141
+
142
+ Use CMS nodes when:
143
+ - The user has an active GrowthHub session
144
+ - The generation type matches an available CMS node
145
+ - The user wants unified billing through GrowthHub
146
+ - The user does not have direct provider API keys
147
+
148
+ Use direct providers when:
149
+ - Local-fork mode with full tool access
150
+ - The specific tool/model is not available as a CMS node
151
+ - Lower latency is needed (direct API vs hosted execution)
152
+ - The user has provider keys and prefers direct access
153
+
154
+ ---
155
+
156
+ ## 5. Prompt Planning Rules
157
+
158
+ ### Image Prompts
159
+
160
+ 1. Lead with the subject and composition
161
+ 2. Include style directive (photorealistic, illustrated, anime, etc.)
162
+ 3. Specify lighting and mood
163
+ 4. Add technical parameters (aspect ratio, resolution)
164
+ 5. Include negative prompts when the provider supports them
165
+
166
+ ### Video Prompts
167
+
168
+ 1. Describe the motion and camera movement
169
+ 2. Specify duration target
170
+ 3. Reference the source image if using image-to-video
171
+ 4. Include style consistency directives
172
+ 5. Note any audio sync requirements
173
+
174
+ ### Scene Sequencing
175
+
176
+ 1. Each scene maps to one pipeline stage asset
177
+ 2. Scenes must have explicit transition types (cut, crossfade, wipe, zoom)
178
+ 3. Audio cues align to scene boundaries
179
+ 4. Subtitle timing derives from script word timestamps
180
+
181
+ ---
182
+
183
+ ## 6. Output Artifact Order
184
+
185
+ Produce artifacts in this strict order:
186
+
187
+ 1. **VideoProductionBrief** — What we are making, why, for whom
188
+ 2. **PipelineSelectionBrief** — Which pipeline, why, fallback
189
+ 3. **ProviderSelectionBrief** — Which providers/CMS nodes, scoring, cost estimate
190
+ 4. **ScenePlan** — Scene-by-scene breakdown with timing, transitions, audio cues
191
+ 5. **PromptMatrix** — Per-scene prompts for all generation tools
192
+ 6. **GenerationBatchPlan** — Execution order, dependencies, parallel opportunities
193
+ 7. **AssetTracking** — Generated asset inventory with URLs, statuses, costs
194
+ 8. **ReviewQAChecklist** — Quality gates, validation points, approval criteria
195
+ 9. **PlatformReadyExecutionHandoff** — Complete handoff doc for execution
196
+
197
+ ---
198
+
199
+ ## 7. QA Standards
200
+
201
+ ### Pre-Compose Validation
202
+
203
+ Before rendering:
204
+ - All scene assets exist and are accessible
205
+ - Audio tracks are present and duration-matched
206
+ - Subtitle timing is aligned
207
+ - Delivery promise is achievable with available tools
208
+ - Budget is within approved cap
209
+
210
+ ### Post-Render Self-Review
211
+
212
+ After rendering:
213
+ - ffprobe validation (codec, resolution, duration, bitrate)
214
+ - Frame extraction at key points (first, middle, last, transitions)
215
+ - Audio level analysis (no clipping, consistent volume)
216
+ - Subtitle readability check
217
+ - Delivery promise verification
218
+
219
+ ### Slideshow Risk Check
220
+
221
+ If the output is image-based video, score across 6 dimensions:
222
+ - Motion variety (camera moves, parallax, Ken Burns)
223
+ - Transition diversity (not all cuts)
224
+ - Animation layer count (particles, overlays, text motion)
225
+ - Audio-visual sync
226
+ - Pacing variation
227
+ - Visual grammar complexity
228
+
229
+ A score below 60% triggers a warning and requires explicit user approval to proceed.
230
+
231
+ ---
232
+
233
+ ## 8. Budget Governance
234
+
235
+ - Estimate costs before execution
236
+ - Reserve budget before each provider call
237
+ - Reconcile actual spend after each call
238
+ - Default per-action approval threshold: $0.50
239
+ - Default total budget cap: $10
240
+ - CMS node costs flow through GrowthHub billing (no separate tracking needed)
241
+ - Always present cost summary before starting generation
242
+
243
+ ---
244
+
245
+ ## 9. Handoff Standards
246
+
247
+ Every handoff document must include:
248
+ - Execution mode (local-fork / agent-only / hybrid)
249
+ - Complete asset manifest with URLs or file paths
250
+ - Provider/CMS node execution instructions
251
+ - Post-production steps (composition, audio, subtitles, color grade)
252
+ - Render profile (resolution, aspect ratio, codec, target platform)
253
+ - Estimated total cost and actual spend
254
+ - Known limitations or manual steps required
@@ -0,0 +1,46 @@
1
+ # Asset Tracking
2
+
3
+ ## Project Reference
4
+
5
+ | Field | Value |
6
+ |---|---|
7
+ | Client | `<client-name>` |
8
+ | Project | `<project-name>` |
9
+ | Date | `YYYY-MM-DD` |
10
+
11
+ ## Generated Assets
12
+
13
+ | ID | Scene | Type | Provider / CMS Node | Status | URL / Path | Cost | Notes |
14
+ |---|---|---|---|---|---|---|---|
15
+ | A-001 | 1 | image | | `<pending / generating / ready / failed>` | | | |
16
+ | A-002 | 2 | image | | | | | |
17
+ | A-003 | 1 | video | | | | | |
18
+ | A-004 | — | narration | | | | | |
19
+ | A-005 | — | music | | | | | |
20
+
21
+ ## Reuse Inventory
22
+
23
+ <!-- Assets from previous sessions or existing brand kit that can be reused. -->
24
+
25
+ | Asset | Source | Reusable For | Notes |
26
+ |---|---|---|---|
27
+ | | | | |
28
+
29
+ ## CMS Node Outputs
30
+
31
+ <!-- Track assets generated through GrowthHub CMS nodes separately for billing clarity. -->
32
+
33
+ | CMS Node Slug | Execution ID | Output Type | URL | Status |
34
+ |---|---|---|---|---|
35
+ | | | | | |
36
+
37
+ ## Cost Ledger
38
+
39
+ | Category | Budgeted | Actual | Delta |
40
+ |---|---|---|---|
41
+ | Images | | | |
42
+ | Video | | | |
43
+ | Audio | | | |
44
+ | Music | | | |
45
+ | CMS nodes | — | — | — |
46
+ | **Total** | **$—** | **$—** | **$—** |
@@ -0,0 +1,64 @@
1
+ # CMS Node → OpenMontage Pipeline Mapping
2
+
3
+ ## Purpose
4
+
5
+ This template documents how GrowthHub CMS node outputs integrate into the selected OpenMontage pipeline. Fill this out when the production plan uses CMS nodes for any generation step.
6
+
7
+ ## Project Reference
8
+
9
+ | Field | Value |
10
+ |---|---|
11
+ | Client | `<client-name>` |
12
+ | Project | `<project-name>` |
13
+ | Pipeline | `<selected-pipeline>` |
14
+ | Date | `YYYY-MM-DD` |
15
+
16
+ ## CMS Nodes in Use
17
+
18
+ | CMS Node Slug | Family | Execution Kind | Role in Pipeline |
19
+ |---|---|---|---|
20
+ | | `video` / `image` / `text` | `hosted-execute` | |
21
+
22
+ ## Mapping: CMS Output → OpenMontage Input
23
+
24
+ | CMS Node | Output Type | Output Format | OpenMontage Stage | OpenMontage Tool Category | Integration Method |
25
+ |---|---|---|---|---|---|
26
+ | | Video URL | mp4 | `assets` | `tools/video/` | Download URL → source clip |
27
+ | | Image URL | png/jpg | `assets` | `tools/graphics/` | Download URL → scene image |
28
+ | | Audio URL | mp3/wav | `edit` | `tools/audio/` | Download URL → narration track |
29
+ | | Text | string | `script` | — | Direct script content |
30
+
31
+ ## Execution Flow
32
+
33
+ ```
34
+ 1. Agent identifies required CMS nodes from the scene plan
35
+ 2. Agent prepares input bindings for each CMS node
36
+ 3. CMS nodes execute via hosted execution client
37
+ 4. Agent collects output URLs from execution results
38
+ 5. Output URLs feed into OpenMontage pipeline at the appropriate stage
39
+ 6. OpenMontage handles composition and post-production
40
+ ```
41
+
42
+ ## Input Bindings Per Node
43
+
44
+ ### CMS Node: `<slug>`
45
+
46
+ | Input Key | Type | Value | Source |
47
+ |---|---|---|---|
48
+ | | | | `<from scene plan / user input / previous node output>` |
49
+
50
+ ## Output Routing
51
+
52
+ ### CMS Node: `<slug>`
53
+
54
+ | Output Key | Type | Routes To | OpenMontage Asset ID |
55
+ |---|---|---|---|
56
+ | | | Scene `<N>` source clip / image | `A-<NNN>` |
57
+
58
+ ## Fallback Plan
59
+
60
+ If a CMS node execution fails:
61
+
62
+ | CMS Node | Fallback Provider | Fallback Tool | Cost Impact |
63
+ |---|---|---|---|
64
+ | | | | |