Skip to content

Merge remote-tracking branch 'origin/main' - #465

Open
borjamoskv wants to merge 18 commits into
calesthio:mainfrom
borjamoskv:main
Open

Merge remote-tracking branch 'origin/main'#465
borjamoskv wants to merge 18 commits into
calesthio:mainfrom
borjamoskv:main

Conversation

@borjamoskv

Copy link
Copy Markdown

Summary

Related issue

Closes #

Changes

Testing

Checklist

  • The change is focused on a single logical concern.
  • I ran the relevant tests locally (make test-contracts / make test) where applicable.
  • I updated docs/README if behavior or usage changed.
  • No unrelated files (build artifacts, local config) are included in the diff.

…re and add omega_pipeline script for video generation
…ations with robust directory syncing and checksum verification
# Conflicts:
#	pipeline_defs/animated-explainer.yaml
#	tools/base_tool.py
@borjamoskv
borjamoskv requested a review from calesthio as a code owner August 2, 2026 23:06
Copilot AI review requested due to automatic review settings August 2, 2026 23:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a large set of new “Omega Flow” pipeline components (CAS + async DAG engine + nodes), adds new standalone automation scripts (YouTube upload, URL→plan producer, Safari FX Flow automation), adds a new Remotion composition, and extends pipeline/checkpoint schemas to support bft_quorum and stage-level parallel_spawn. It also changes core tool execution behavior (BaseTool.run_command) and replaces the repository LICENSE text.

Changes:

  • Added Omega Flow runtime (CAS + atomic IO + DAG engine + CLI runner) and a Remotion composition (UnTioBlancoHipocrita) to support an “evidence-driven” render path.
  • Added a Google FX Flow MCP server implementation plus several local automation scripts (YouTube uploader, Safari DOM automation, URL→production plan producer, photo summarizer pipeline).
  • Extended pipeline/checkpoint schemas/policies (bft_quorum, parallel_spawn) and adjusted an existing pipeline to “swarm” mode.

Reviewed changes

Copilot reviewed 32 out of 35 changed files in this pull request and generated 16 comments.

Show a summary per file
File Description
tools/youtube_uploader.py New CLI uploader for YouTube Data API v3 (OAuth flow + resumable upload).
tools/video/hyperframes_compose.py Adds a subprocess fallback path via scripts/c5_exec.py.
tools/url_to_video_producer.py New URL/topic inspection + production plan generator (uses yt-dlp for YouTube metadata).
tools/safari_fx_flow_automator.py New macOS Safari AppleScript/DOM automation helper for Google FX Flow.
tools/photo_summarizer_pipeline.py New pipeline to scan a photo directory, generate a manifest, and run Omega Flow.
tools/omega_pipeline.py New “Omega” orchestration script that plans, renders via Remotion, and publishes to YouTube.
tools/omega_flow/workflows/un_tio_blanco_hipocrita.omega.json New example Omega Flow workflow definition (broker + render).
tools/omega_flow/runner.py New CLI runner to execute .omega.json workflows.
tools/omega_flow/nodes/remotion_render.py New Omega Flow node to render Remotion with props + CAS publishing.
tools/omega_flow/nodes/media_broker.py New Omega Flow node that publishes evidence assets into CAS/public for Remotion.
tools/omega_flow/core/engine.py New async DAG engine for executing workflow nodes with a simple cache.
tools/omega_flow/core/contracts.py New contracts (Artifact/Cost/NodeStatus) + deterministic stable_hash.
tools/omega_flow/core/cas.py New content-addressable store with sharded storage + publish-to-Remotion helper.
tools/omega_flow/core/atomic.py New atomic IO utilities (atomic open/write/copy + checksum verification).
tools/nexus_engine.py New “Nexus Engine” workflow executor inspired by n8n expression evaluation.
tools/base_tool.py Changes dependency prefix handling and adds a command execution fallback via c5_exec.py.
skills/meta/bft-evaluator.md Adds a meta skill definition for BFT-style evaluation output.
scripts/c5_exec.py New helper script that runs a command string via subprocess.run(shell=True).
schemas/pipelines/pipeline_manifest.schema.json Adds parallel_spawn per stage and adds bft_quorum to checkpoint policy enum.
schemas/checkpoints/checkpoint.schema.json Extends checkpoint_policy enum with bft_quorum.
remotion-composer/src/UnTioBlancoHipocrita.tsx New Remotion composition with beats/cuts + evidence overlay support.
remotion-composer/src/schemas.ts Adds Zod schemas for props/evidence items.
remotion-composer/src/Root.tsx Registers the new Remotion composition in the Remotion root.
remotion-composer/public/demo-props/weatherall-isomorphism.json Adds demo props JSON (new example content).
remotion-composer/package-lock.json Dependency lockfile updates.
pipeline_defs/animated-explainer.yaml Switches orchestration mode to swarm, adjusts approvals/tools, and enables parallel_spawn for a stage.
mcp-google-fx-flow/tsconfig.json New TS config for the Google FX Flow MCP server package.
mcp-google-fx-flow/src/index.ts New MCP server implementation with tool schemas + in-memory flow store.
mcp-google-fx-flow/package.json New npm package definition for the MCP server.
mcp-google-fx-flow/package-lock.json New lockfile for the MCP server package.
LICENSE Replaces AGPL text with a new custom “Sovereign Exclusion License”.
lib/pipeline_loader.py Adds helper to read parallel_spawn from manifests.
lib/checkpoint.py Adds bft_quorum enforcement and adds an automatic git commit attempt on checkpoint writes.
.cas/a6/eb/a6eb8236ca4550c985f69c476e3e90e0a06cceba266c4376d4cd077829b508f8 Adds a committed CAS blob artifact (simulated MP4 header).
Files not reviewed (2)
  • mcp-google-fx-flow/package-lock.json: Generated file
  • remotion-composer/package-lock.json: Generated file
Suppressed comments (1)

tools/youtube_uploader.py:91

  • After adding client_secrets_file support to upload_video_api(), pass the parsed --secrets value through so the flag works as advertised.

Comment thread tools/base_tool.py
Comment on lines +343 to +347
except (OSError, subprocess.CalledProcessError) as e:
import sys
c5_exec_path = Path(__file__).resolve().parent.parent / "scripts" / "c5_exec.py"
venv_python = Path(sys.executable)
fallback_cmd = [str(venv_python), str(c5_exec_path), " ".join(resolved_cmd)]
Comment on lines +1151 to +1154
import sys
c5_exec_path = Path(__file__).resolve().parent.parent.parent / "scripts" / "c5_exec.py"
venv_python = Path(sys.executable)
fallback_cmd = [str(venv_python), str(c5_exec_path), " ".join(cmd)]
Comment thread tools/omega_pipeline.py
Comment on lines +137 to +144
cmd = [
"python3", uploader_script,
"--file", OUTPUT_VIDEO,
"--title", "Análisis Estructural y Forense",
"--description", "Documental algorítmico generado bajo política neutral.",
"--category", "27",
"--privacy", "private"
]
Comment thread tools/youtube_uploader.py
Comment on lines +46 to +52
def upload_video_api(video_path, title, description="", category_id="27", tags=None, privacy_status="unlisted"):
if not HAS_GOOGLE_API:
raise ImportError("google-api-python-client is not installed.")

print(f"[YouTube API v3] Initializing direct upload for: {video_path}")
youtube = get_authenticated_service()

Comment on lines +70 to +72
output_plan_path = f"/Users/borjafernandezangulo/.gemini/antigravity-ide/brain/fa120028-472f-4599-9aa7-be23247c8821/scratch/production_plan.json"
with open(output_plan_path, "w", encoding="utf-8") as f:
json.dump(plan, f, indent=2, ensure_ascii=False)
Comment on lines +200 to +205
const { flow_id } = args as any;
const flow = flowStore.get(flow_id);

const nodeIds = new Set(flow?.nodes?.map((n: any) => n.id) || ["node_1", "node_2"]);
let errors: string[] = [];

Comment thread tools/base_tool.py
Comment on lines 211 to 215
for dep in self.dependencies:
if dep.startswith(("cmd:", "binary:")):
prefix = "cmd:" if dep.startswith("cmd:") else "binary:"
cmd_name = dep[len(prefix):]
if dep.startswith("cmd:"):
cmd_name = dep[4:]
if shutil.which(cmd_name) is None:
raise DependencyError(
Comment on lines 45 to 47
orchestration:
mode: executive-producer
mode: swarm
skill: pipelines/explainer/executive-producer
Comment on lines +15 to +16
cmd = f'osascript -e \'tell application "Safari" to do JavaScript "{escaped_js}" in current tab of window 1\''
res = subprocess.run(cmd, shell=True, capture_output=True, text=True)
Comment on lines +25 to +27
"composition": "UnTioBlancoHipocrita",
"remotion_dir": "/Users/borjafernandezangulo/10_PROJECTS/20_VAULT/OpenMontage/remotion-composer"
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants