| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: add Gemini Omni, Seedance 2.5, and MiniMax H3 routes | 1 个月前 | |
Add official Kling API providers | 2 个月前 | |
Fix video_understand sampling only the opening seconds of a clip _extract_video_frames built `-vf thumbnail=N -frames:v N` when no explicit frame_indices were given. That reads as even sampling and is not: thumbnail=N selects the most representative frame out of each consecutive N-frame BATCH, so paired with -frames:v N it stops once N frames have been emitted and never looks at the rest of the video. Reproduced against a four-second fixture, solid red for 2s then solid blue for 2s: ffmpeg -i clip.mp4 -frames:v 4 -vf "thumbnail=4" out_%04d.png -> frame_0001 (254,0,0) frame_0002 (254,0,0) frame_0003 (254,0,0) frame_0004 (254,0,0) Every sample lands in the first half. The blue half of the clip is invisible, and because the failure produces four perfectly valid frames the caption pass has no way to know: it described the clip as one in which nothing changes. Sampling is now timestamp-driven. Duration comes from ffprobe and one frame is taken at duration*(i+0.5)/n — inside each slice rather than on its edge, so a cut landing exactly on a boundary does not sample the frame before or after it depending on rounding. -ss goes ahead of -i to seek by keyframe, which is fast and accurate enough for sampling that was never frame-exact. Same fixture, after: frame 0 (254,0,0) frame 1 (254,0,0) frame 2 (0,0,255) frame 3 (0,0,255) Three behaviours preserved deliberately: * The explicit frame_indices branch is untouched. It was already correct. * No duration — a stream, or no ffprobe on PATH — falls back to an even pass over the file rather than returning an empty list. * A zero or negative duration is treated as unknown, since it would otherwise divide the sampler by zero. Also drops probe_cmd, which was assigned and never used. tests/tools/test_video_understand_sampling.py adds 9 cases with subprocess.run faked, so they assert the commands built rather than one ffmpeg build's output, and fail if `thumbnail=` returns. tests/tools/ is 490 passed, 1 skipped. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 1 个月前 | |
Merge pull request #473 from bbudaedu/fix/dangling-agent-skill-pointers fix(tools): make every agent_skills pointer resolve | 1 个月前 | |
fix: complete Kling idempotency inputs Include every request field that can alter Kling video, image, avatar, or lip-sync media in the public idempotency contract. Add a shared regression matrix that detects future cache-key collisions while excluding transport-only controls. | 2 个月前 | |
fix(tools): make every agent_skills pointer resolve AGENT_GUIDE.md makes Layer 3 mandatory — "Every generation tool has an `agent_skills` field listing its Layer 3 skills. Read them before writing prompts. Layer 3 is not optional." Four of the 137 pointers the registry advertises name skills that do not exist, so the mandated read silently cannot happen, and `tts_selector` republishes its list to callers as `required_agent_skills`, propagating a dead name downstream. Each was repaired according to what the evidence showed it to be: - `hyperframes_compose` -> `website-to-hyperframes`. A stale name, not a missing file: .agents/skills/hyperframes/PROVENANCE.md records "`website-to-video` | Renamed upstream from `website-to-hyperframes`." The tool never followed the rename. Repointed; the other five entries in that list already resolve. - `openai_tts`, `tts_selector` -> `openai-docs`. Never vendored, and nothing in .agents/skills/ covers the OpenAI speech API. The nearest candidate, `text-to-speech`, documents HeyGen's Starfish endpoints and declares `allowed-tools: mcp__heygen__*`, so pointing there would send the agent at the wrong provider. Dropped rather than aimed somewhere misleading; tts_selector keeps its two entries that do resolve. - `screen_capture_selector` -> `screen-demo`. A category error: that names the Layer 2 pipeline directory, not a Layer 3 skill. No Layer 3 skill covers OS screen capture, and this selector routes only between screen_recorder (FFmpeg) and cap_recorder — neither `playwright-recording` nor `synthetic-screen-recording` describes what it does. Dropped; the capture guidance it wanted is already reachable through the pipeline manifest's per-stage `skill:` entries. An empty `agent_skills` is the BaseTool default and already the case for 18 of 102 tools, so the two removals need no further wiring. Coverage iterates the registry rather than naming tools, so a newly added tool is checked the moment it is discovered. Verified: the 4 pointers fail on the unfixed tree; full suite goes 964 -> 1103 passed with no regressions. | 1 个月前 | |
feat(character-animation): add local rigged character pipeline New beta pipeline for reusable cartoon characters with SVG rigs, pose libraries, action timelines, and Canvas/Remotion/HyperFrames rendering. - pipeline_defs/character-animation.yaml: 11-stage manifest - skills/pipelines/character-animation/: 11 stage director skills - tools/character/: BaseTool implementations for char design, rigging, pose libraries, action timelines, previews, and QA - schemas/artifacts/{character_design,rig_plan,pose_library, action_timeline,character_qa_report}.schema.json: canonical artifacts - schemas/artifacts/scene_plan.schema.json: extended for character-led scenes - .agents/skills/{canvas-procedural-animation,character-animation-qa, character-rigging,pose-library-design,svg-character-animation}/: Layer 3 vendor knowledge - AGENT_GUIDE / PROJECT_CONTEXT / README / ARCHITECTURE / PROVIDERS: surface the new pipeline and its capability family - tools/video/hyperframes_compose.py: SVG character rig support - tests/contracts/test_character_animation_pipeline.py: contract tests | 4 个月前 | |
fix: recover bounded defects from PR backlog | 1 个月前 | |
Merge pull request #501 from calesthio/codex/atlas-media-model-expansion Add Atlas Cloud media model gateway | 1 个月前 | |
fix(publish): validate optional assets and default export inside project Addresses review feedback on export_bundle: - If subtitles_path or thumbnail_path is provided but the file is missing, the tool now fails with an explicit error instead of silently producing a package without that asset (which could ship an approved deliverable missing part of its content). - Default export location now stays inside the project workspace: when the render lives at projects/<name>/renders/..., the bundle defaults to projects/<name>/exports/ (alongside artifacts/, assets/, renders/) rather than a repo-root exports/<name>/. export_dir remains an explicit override. Tests cover both: missing optional asset errors, and the project-workspace default path. | 2 个月前 | |
fix(subtitle_gen): stop millisecond rounding from overflowing timestamps _ts_srt/_ts_vtt computed the seconds and millisecond fields independently: `ms = int(round((seconds % 1) * 1000))`. When the fractional part is >= 0.9995 that rounds to 1000, emitting a malformed 4-digit `…,1000` value with no carry into the seconds field (and, at 59.9999/3599.9999, no carry into minutes/hours). For example 0.9999s became `00:00:00,1000` instead of `00:00:01,000`. ASR word and segment end-times routinely land on such fractional boundaries, and the resulting cue is rejected or mistimed by strict SRT/VTT parsers (ffmpeg subtitles filter, VLC, browser WebVTT). Decompose from a single rounded total-milliseconds value so the carry propagates across all fields. Both formatters now share one `_hmsms` helper. | 2 个月前 | |
Merge pull request #478 from amitm7/fix/remotion-staging-delta fix(remotion): correct four defects in render-scoped asset staging | 1 个月前 | |
Initial release — OpenMontage: the first open-source agentic video production system 11 production pipelines, 47 tools, 124 agent skills. Supports cloud APIs (fal.ai, OpenAI, ElevenLabs, Suno, HeyGen, Runway) and free local providers (diffusers, Piper TTS, WAN 2.1, Hunyuan, CogVideo). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 5 个月前 | |
feat: add Atlas Cloud media model gateway | 1 个月前 | |
feat: add Atlas Cloud media model gateway | 1 个月前 | |
Merge pull request #281 from scorp323/oracle/batch-b-safe-hardening-20260703 fix: harden tool governance and subprocess safety | 2 个月前 | |
fix: harden tool governance and subprocess safety - persist budget warnings and approved paid-tool decisions - support binary dependency declarations - include stderr/stdout details for failed subprocesses - escape lavfi movie paths used by ffmpeg scene detection Verification: - python3 tests/tools/test_cost_tracker_governance.py - python3 tests/tools/test_scene_detect_lavfi_escape.py - python3 tests/tools/test_base_tool_dependencies.py - python3 -m py_compile ... | 2 个月前 | |
fix: recover bounded defects from PR backlog | 1 个月前 | |
comfyui: satisfy provider contract review items | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 |