OpenMontage/tools
Yiyabo b4bed5735a dashscope: fix multi-image download and complete idempotency keys
Address PR #240 review feedback from @calesthio:

1. dashscope_image: save EVERY returned image URL, not just the first.
   The tool advertised multiple_outputs and accepted n>1 but only read
   content[0], silently dropping paid outputs. Now collects all image
   URLs across choices/content and downloads each to a distinct indexed
   path (foo.png -> foo_1.png, foo_2.png, ...). images_generated now
   reflects the actual count downloaded.

   Per Qwen Cloud docs, a multi-output task is SUCCEEDED if at least one
   image is generated; choices with finish_reason != "stop" are skipped
   to avoid downloading partial/failed results.

2. Complete idempotency_key_fields so different requests no longer
   collide and reuse stale artifacts:
   - image: + negative_prompt, seed, prompt_extend, watermark
   - tts:   + instructions
   - asr:   + enable_words, language_hints

Adds 19 regression tests (114 total, all pass, no API keys needed):
- TestDashscopeImageMultiOutput: URL extraction across choices / within
  one choice / failed-choice skipping, path resolution for
  single/multi/no-extension, end-to-end multi-image download with a
  mocked 3-URL DashScope response verifying all 3 files land on disk,
  single-image legacy path behavior
- TestDashscopeIdempotencyKeys: field presence + key-differs-on-value
  for every newly added field across all three tools
2026-07-02 00:37:51 +08:00
..
_comfyui comfyui: satisfy provider contract review items 2026-06-29 19:09:22 +01:00
analysis dashscope: fix multi-image download and complete idempotency keys 2026-07-02 00:37:51 +08:00
audio dashscope: fix multi-image download and complete idempotency keys 2026-07-02 00:37:51 +08:00
avatar
capture Add screen capture tools with FFmpeg and Cap dual-provider system 2026-04-07 21:36:29 -07:00
character feat(character-animation): add local rigged character pipeline 2026-04-28 08:11:02 -07:00
enhancement feat(gpu): add device-aware routing for Apple Silicon MPS support 2026-06-24 16:29:09 -05:00
graphics dashscope: fix multi-image download and complete idempotency keys 2026-07-02 00:37:51 +08:00
publishers
subtitle Talking-head pipeline: 8 new tools, Remotion TalkingHead composition, and skill rewrites 2026-04-01 10:00:15 -07:00
video comfyui: route custom workflows through image/video selectors 2026-06-29 22:38:18 +01:00
__init__.py
base_tool.py feat(compose): add atelier (bespoke) composition mode + doctrine 2026-06-27 10:32:07 -07:00
cost_tracker.py Add reference video input analysis workflow 2026-04-04 10:01:11 -07:00
google_credentials.py feat(google): support service-account auth for TTS + Imagen, fix false availability 2026-06-22 17:53:10 +05:30
tool_registry.py comfyui: satisfy provider contract review items 2026-06-29 19:09:22 +01:00