Update to sync. labs
Snapshot Nov 6, 2026 · 18:14 UTC · version 2.1.1
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 3 plugins free · no card required.
All fields and original values.
These are saved file metadata. Open a changed file to read its text edits.
Package file
Nov 3, 2026 · 18:14 UTC
57be430d0a2e66eb5c0e9a26c195a8e9e544969883a7b6a07bdbcc82a2fc1a69
Nov 6, 2026 · 18:14 UTC
039f542ee8388401f93a765963e5ccbe614ad5043c7f63cab64c82d63fdf35a9
Package file
Nov 3, 2026 · 18:14 UTC
3436
Nov 6, 2026 · 18:14 UTC
3477
Package file
Nov 3, 2026 · 18:14 UTC
Not present
Nov 6, 2026 · 18:14 UTC
{"sha256":"5ea1e02f1e61e34fec4f22d82e0d099199621cb70cf29800a265a1b7a8fd1360","size":5751}
Package file
Nov 3, 2026 · 18:14 UTC
Not present
Nov 6, 2026 · 18:14 UTC
{"sha256":"feedb17d19d88a1c87834635d39b362709453130f03e82c66916d758717775ba","size":233}
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
skills/ai-video-to-talking/SKILL.md →
skills/ai-video-to-talking/agents/openai.yaml →
skills/ai-video-to-talking/references/api.md →
skills/ai-video-to-talking/references/connect.md →
skills/ai-video-to-talking/references/media-input.md →
skills/ai-video-to-talking/references/source-clip.md →
skills/batch-lipsync/SKILL.md →
skills/batch-lipsync/agents/openai.yaml →
skills/batch-lipsync/references/batch-api.md →
skills/batch-lipsync/references/connect.md →
skills/batch-lipsync/references/media-input.md →
skills/batch-lipsync/scripts/sync_batch.py →
skills/edit-dialogue/SKILL.md →
skills/edit-dialogue/agents/openai.yaml →
skills/edit-dialogue/references/connect.md →
skills/edit-dialogue/references/media-input.md →
skills/lipsync-video/SKILL.md →
skills/lipsync-video/agents/openai.yaml →
skills/lipsync/agents/openai.yaml →
skills/lipsync/references/api.md →
skills/lipsync/references/connect.md →
skills/lipsync/references/media-input.md →
skills/localize-campaign/SKILL.md →
skills/localize-campaign/agents/openai.yaml →
skills/localize-campaign/references/api.md →
skills/localize-campaign/references/connect.md →
skills/localize-campaign/references/media-input.md →
skills/setup/agents/openai.yaml →
skills/setup/references/connect.md →
skills/sync-api/agents/openai.yaml →
skills/sync-api/references/api.md →
skills/sync-api/references/batch-api.md →
skills/sync-api/references/python.md →
skills/sync-api/references/typescript.md →
skills/sync-api/references/webhooks.md →
skills/talking-photo/SKILL.md →
skills/talking-photo/agents/openai.yaml →
skills/talking-photo/references/api.md →
skills/talking-photo/references/connect.md →
skills/talking-photo/references/media-input.md →
skills/translate-and-dub/SKILL.md →
skills/translate-and-dub/agents/openai.yaml →
skills/translate-and-dub/references/api.md →
skills/translate-and-dub/references/connect.md →
skills/translate-and-dub/references/media-input.md →
skills/troubleshoot/SKILL.md →
skills/troubleshoot/agents/openai.yaml →
skills/sync-api/references/python.md
− removed · + added
--- before +++ after @@ -0,0 +1,113 @@ +# Python integration + +`pip install syncsdk`. It brings in `httpx`, which the HTTP-only calls below also use. Python 3.8+. + +```python +import json +import mimetypes +import os +import pathlib +import time +import uuid + +import httpx +from sync import Sync +from sync.common import Audio, Video +from sync.core.api_error import ApiError + +API = "https://api.sync.so/v2" +HEADERS = {"x-api-key": os.environ["SYNC_API_KEY"]} +client = Sync() # reads SYNC_API_KEY + + +def upload(path: str, kind: str) -> str: + """Upload a local file into sync. storage and return its asset ID. kind: VIDEO, AUDIO or IMAGE.""" + file = pathlib.Path(path) + content_type = mimetypes.guess_type(file.name)[0] or "application/octet-stream" + presign = httpx.post(f"{API}/assets/upload", headers=HEADERS, timeout=30, + json={"fileName": file.name, "contentType": content_type, "size": file.stat().st_size}) + presign.raise_for_status() + target = presign.json() + # The presigned upload URL must not receive the API key. + with file.open("rb") as body: + httpx.put(target["uploadUrl"], content=body, headers={"Content-Type": content_type}, timeout=600).raise_for_status() + asset = httpx.post(f"{API}/assets", headers=HEADERS, timeout=30, json={"url": target["url"], "type": kind}) + asset.raise_for_status() + return asset.json()["id"] + + +def estimate(model: str, seconds: float) -> float: + resp = httpx.post(f"{API}/generations/estimate", headers=HEADERS, timeout=30, + json={"model": model, "duration": seconds}) + resp.raise_for_status() + return resp.json()["estimatedGenerationCost"] # USD + + +def start_lipsync(job: dict) -> str: + """job is your persisted record: video/audio asset IDs and an idempotency key, all saved before this call.""" + while True: + try: + generation = client.generations.create( + model="sync-3", + input=[Video(asset_id=job["video_asset_id"]), Audio(asset_id=job["audio_asset_id"])], + options={"sync_mode": "bounce"}, + webhook_url=job.get("webhook_url"), + request_options={"additional_headers": {"Idempotency-Key": job["idempotency_key"]}}, + ) + return generation.id + except ApiError as err: + body = err.body if isinstance(err.body, dict) else {} + if err.status_code == 429: + time.sleep(float(body.get("retryAfterSeconds", 20))) + continue # same key, so no duplicate generation + if err.status_code == 409 and body.get("generationId"): + return body["generationId"] + raise + + +def wait_for(generation_id: str) -> str: + """Polling fallback. Prefer a webhook in production.""" + while True: + resp = httpx.get(f"{API}/generate/{generation_id}", headers=HEADERS, timeout=30, + params={"wait": "true", "timeout": 10}) + resp.raise_for_status() + generation = resp.json() + if generation["status"] == "COMPLETED": + return generation["outputUrl"] + if generation["status"] in ("FAILED", "REJECTED"): + raise RuntimeError(f"{generation['status']}: {generation.get('errorCode')} {generation.get('error')}") + time.sleep(2) + + +JOB_FILE = pathlib.Path("lipsync-job.json") # stands in for a row in your database + + +def load_or_create_job() -> dict: + """Save the asset IDs and the idempotency key before creating, so a restart can't pay twice.""" + if JOB_FILE.exists(): + return json.loads(JOB_FILE.read_text()) + job = { + "video_asset_id": upload("talk.mp4", "VIDEO"), + "audio_asset_id": upload("new-take.wav", "AUDIO"), + "idempotency_key": str(uuid.uuid4()), + } + JOB_FILE.write_text(json.dumps(job)) + return job + + +if __name__ == "__main__": + job = load_or_create_job() + if not job.get("generation_id"): + print("Estimated cost: $%.2f" % estimate("sync-3", 12.0)) + job["generation_id"] = start_lipsync(job) + JOB_FILE.write_text(json.dumps(job)) + # After a restart this polls the saved generation instead of creating another one. + print("Output:", wait_for(job["generation_id"])) +``` + +## Variations + +- **Script instead of audio:** `from sync.common import Tts, ElevenLabs`, then `Tts(provider=ElevenLabs(voice_id="<voiceId>", script="Hello!"))` in place of `Audio(...)`. List voices with `GET /v2/voices`. +- **Image input, `dubParams`, `projectId`:** if your installed `syncsdk` doesn't type them yet, send the same JSON body with `httpx.post(f"{API}/generate", headers={**HEADERS, "Idempotency-Key": key}, json=body)`. +- **Async code:** `from sync import AsyncSync` has the same methods, awaited. +- **Batch:** `client.batch.create(input=open("rows.jsonl", "rb"), dry_run=True)`, then without `dry_run`. Batch creation isn't idempotent, so leave retries off (the Python SDK's default is 0), record that you're submitting before the call, and after a timeout check `GET /v2/batch` before sending it again. See `batch-api.md`.
Full technical diff · 62 changed fields
changed /files/.codex-plugin~1plugin.json/sha256
"57be430d0a2e66eb5c0e9a26c195a8e9e544969883a7b6a07bdbcc82a2fc1a69"
"039f542ee8388401f93a765963e5ccbe614ad5043c7f63cab64c82d63fdf35a9"
changed /files/.codex-plugin~1plugin.json/size
3436
3477
added /files/skills~1ai-video-to-talking~1SKILL.md
Field was absent
{
"sha256": "5ea1e02f1e61e34fec4f22d82e0d099199621cb70cf29800a265a1b7a8fd1360",
"size": 5751
}added /files/skills~1ai-video-to-talking~1agents~1openai.yaml
Field was absent
{
"sha256": "feedb17d19d88a1c87834635d39b362709453130f03e82c66916d758717775ba",
"size": 233
}added /files/skills~1ai-video-to-talking~1references~1api.md
Field was absent
{
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
}added /files/skills~1ai-video-to-talking~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1ai-video-to-talking~1references~1media-input.md
Field was absent
{
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}added /files/skills~1ai-video-to-talking~1references~1source-clip.md
Field was absent
{
"sha256": "8546d0a63b02210027655531e3fb1a20bcbdfec10894f740897f1e8f892d370b",
"size": 2167
}added /files/skills~1batch-lipsync~1SKILL.md
Field was absent
{
"sha256": "1c207d521664b8587de3910bafb04a0721999bfa0692b4a6e74cc4cd78c7395f",
"size": 6425
}added /files/skills~1batch-lipsync~1agents~1openai.yaml
Field was absent
{
"sha256": "8bcd0983adff0da6aa5177a2a87e9de425ea9115d195ad8ca1b95421a41b71a8",
"size": 194
}added /files/skills~1batch-lipsync~1references~1batch-api.md
Field was absent
{
"sha256": "3f9caaaccdda807942d04d3328beb16c3105ed181ee2a80f8caf6f5a985f745a",
"size": 3787
}added /files/skills~1batch-lipsync~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1batch-lipsync~1references~1media-input.md
Field was absent
{
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}added /files/skills~1batch-lipsync~1scripts~1sync_batch.py
Field was absent
{
"sha256": "b4c01decdcdc3eb8be8f5535f379ed41faa2b4e687d56ac4fe1859b33651359c",
"size": 27525
}changed /files/skills~1edit-dialogue~1SKILL.md/sha256
"880aa5421d80a7a3c395a2367e070221daf63f958dde13b912cdd763fd74a2ba"
"64879bd5ede7d75261f7fd72f690bb89b316050c16d8d790237c4078ed1bde6f"
changed /files/skills~1edit-dialogue~1SKILL.md/size
3594
5141
changed /files/skills~1edit-dialogue~1agents~1openai.yaml/sha256
"e02542ea183d7a3d356091aa412a5c55541cd66aa8210b203431bd779a15b43b"
"6159ae06234f0f4991c7ac061231bb33f1d4f5cd822bc6b5fb5a8471697ac94e"
changed /files/skills~1edit-dialogue~1agents~1openai.yaml/size
203
206
added /files/skills~1edit-dialogue~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1edit-dialogue~1references~1media-input.md
Field was absent
{
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}removed /files/skills~1lipsync-video~1SKILL.md
{
"sha256": "a10625f62c954ffcce19392f631a0421813ecda225285828ff74c8ceb6817076",
"size": 4395
}Field is absent
removed /files/skills~1lipsync-video~1agents~1openai.yaml
{
"sha256": "a1ae3cfeb2b6c118912a63b3edb198f314c2d735b9eb3487e90602a8d12631cf",
"size": 205
}Field is absent
added /files/skills~1lipsync~1SKILL.md
Field was absent
{
"sha256": "aab4944b204493b12920917cd90b4e9999ce6eaa7c362ef302571cd2bad37a2c",
"size": 5124
}added /files/skills~1lipsync~1agents~1openai.yaml
Field was absent
{
"sha256": "a611c56385745beb85b4c222011857be45ad6c7af583d885b18009d635ac39be",
"size": 194
}added /files/skills~1lipsync~1references~1api.md
Field was absent
{
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
}added /files/skills~1lipsync~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1lipsync~1references~1media-input.md
Field was absent
{
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}added /files/skills~1localize-campaign~1SKILL.md
Field was absent
{
"sha256": "48176aacaaaef977a806f2509ad4f7955e9375f0dd7363d4629f57ab6f5ba4f0",
"size": 5089
}added /files/skills~1localize-campaign~1agents~1openai.yaml
Field was absent
{
"sha256": "2681aa94d3de0b50ac2dcbe513cfa8f1ba1ce2653d32d0f8ff8e6c7c0cad41bf",
"size": 218
}added /files/skills~1localize-campaign~1references~1api.md
Field was absent
{
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
}added /files/skills~1localize-campaign~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1localize-campaign~1references~1media-input.md
Field was absent
{
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}changed /files/skills~1setup~1SKILL.md/sha256
"7687308da0731c5ef23a4ad4352610d0f71023d0d611a637d27178d96468cb1e"
"904bb4d86c53eaf1753e28ae3c70a7a9099298ce984bd5b3553171ee7c8b3f98"
changed /files/skills~1setup~1SKILL.md/size
1811
2452
changed /files/skills~1setup~1agents~1openai.yaml/sha256
"854273f833b6ee10c8b34e7ce203fef8ee58181208977851eddc28188d17302c"
"c95bb92bad2840d984fed9ac5b81dc8b9d8bca27905219cb23bfede8ba9e7598"
changed /files/skills~1setup~1agents~1openai.yaml/size
229
244
added /files/skills~1setup~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1sync-api~1SKILL.md
Field was absent
{
"sha256": "1319bf8b74e31f7a8ea90907b0b1921cfb653a4014a2b36bc157d196d56dc7d3",
"size": 5779
}added /files/skills~1sync-api~1agents~1openai.yaml
Field was absent
{
"sha256": "50cc0dbcc9a0601d84d01f2d6a0f270b460e00f106688eae67742d7d8c36d21c",
"size": 198
}added /files/skills~1sync-api~1references~1api.md
Field was absent
{
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
}added /files/skills~1sync-api~1references~1batch-api.md
Field was absent
{
"sha256": "3f9caaaccdda807942d04d3328beb16c3105ed181ee2a80f8caf6f5a985f745a",
"size": 3787
}added /files/skills~1sync-api~1references~1python.md
Field was absent
{
"sha256": "4f1902a9daecbe0f2f8f4f0872a0a9d7cf991373c809fce589b6b77ad3e603c2",
"size": 5050
}added /files/skills~1sync-api~1references~1typescript.md
Field was absent
{
"sha256": "0a4b7d2236a8c4ffa9ca1fce5363813a07a93fade659f186080d83d8ab234f40",
"size": 5665
}added /files/skills~1sync-api~1references~1webhooks.md
Field was absent
{
"sha256": "b03f957d176006d5578fc2255689424736bab12069f9819829716fe88b6ee4d3",
"size": 3381
}changed /files/skills~1talking-photo~1SKILL.md/sha256
"39999c45ef608b062f5d154079690ef6cf31f5184513a88c6b8853f5ab2aa31b"
"8a74d7fb7ccaf791e6b751e3eb88d7c63c78eed29523333490a89c0b8dd0787f"
changed /files/skills~1talking-photo~1SKILL.md/size
3723
4616
changed /files/skills~1talking-photo~1agents~1openai.yaml/sha256
"cf50b0a370b0a7afe7b7b01b011e11c2ed2d34675a5917976d1c89a7a81b6643"
"d26d7f517f4d8c2f74f9ea87cc04d084ddb27b775afc3810f63ec8d12bef3384"
changed /files/skills~1talking-photo~1agents~1openai.yaml/size
213
192
added /files/skills~1talking-photo~1references~1api.md
Field was absent
{
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
}added /files/skills~1talking-photo~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1talking-photo~1references~1media-input.md
Field was absent
{
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}changed /files/skills~1translate-and-dub~1SKILL.md/sha256
"540b899b2d5d5ab48d1b82a6867ebf328cf07f88260f8fff6d55121e63c3d98d"
"a5dc78642d83853740678b1b147ca6e285c7729c7cb27ddf908969f0c811cf3a"
changed /files/skills~1translate-and-dub~1SKILL.md/size
3361
3705
changed /files/skills~1translate-and-dub~1agents~1openai.yaml/sha256
"b3e44c828051940be246b69af9162ad981fcf09b05ec55e325fdf0b5c3b4784b"
"3aa37f041039194300b7a7d276347cc351b47343f2e0e7a5f9471906ba4b37d9"
changed /files/skills~1translate-and-dub~1agents~1openai.yaml/size
221
197
added /files/skills~1translate-and-dub~1references~1api.md
Field was absent
{
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
}added /files/skills~1translate-and-dub~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1translate-and-dub~1references~1media-input.md
Field was absent
{
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}added /files/skills~1troubleshoot~1SKILL.md
Field was absent
{
"sha256": "fd3a3b42cf2841ee296ebb4598fd1f0b751ef159668cd985d63cc2091f92f00a",
"size": 4745
}added /files/skills~1troubleshoot~1agents~1openai.yaml
Field was absent
{
"sha256": "53dd5c854ff7bdfd343c92665efed3f87f12cf51123cce1c2d2e74a9bb1bec49",
"size": 195
}added /files/skills~1troubleshoot~1references~1connect.md
Field was absent
{
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
}added /files/skills~1troubleshoot~1references~1media-input.md
Field was absent
{
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}Full snapshot data
{
"files": {
".app.json": {
"sha256": "065f3762ad1a4c2cd9a8ac6ddae574f0e9c3af1b17da64ad82f1483b203ad46c",
"size": 101
},
".codex-plugin/plugin.json": {
"sha256": "039f542ee8388401f93a765963e5ccbe614ad5043c7f63cab64c82d63fdf35a9",
"size": 3477
},
".mcp.json": {
"sha256": "78150adcf50228f4fe0d14a87e7c3199f3315b95a8624393025d3b2597a917a7",
"size": 90
},
"assets/logo.png": {
"sha256": "883e7d7abc470c735c256068205ef4582a2c6f561c6bcebcd3f5c011fe25804f",
"size": 8266
},
"skills/ai-video-to-talking/SKILL.md": {
"sha256": "5ea1e02f1e61e34fec4f22d82e0d099199621cb70cf29800a265a1b7a8fd1360",
"size": 5751
},
"skills/ai-video-to-talking/agents/openai.yaml": {
"sha256": "feedb17d19d88a1c87834635d39b362709453130f03e82c66916d758717775ba",
"size": 233
},
"skills/ai-video-to-talking/references/api.md": {
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
},
"skills/ai-video-to-talking/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/ai-video-to-talking/references/media-input.md": {
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
},
"skills/ai-video-to-talking/references/source-clip.md": {
"sha256": "8546d0a63b02210027655531e3fb1a20bcbdfec10894f740897f1e8f892d370b",
"size": 2167
},
"skills/batch-lipsync/SKILL.md": {
"sha256": "1c207d521664b8587de3910bafb04a0721999bfa0692b4a6e74cc4cd78c7395f",
"size": 6425
},
"skills/batch-lipsync/agents/openai.yaml": {
"sha256": "8bcd0983adff0da6aa5177a2a87e9de425ea9115d195ad8ca1b95421a41b71a8",
"size": 194
},
"skills/batch-lipsync/references/batch-api.md": {
"sha256": "3f9caaaccdda807942d04d3328beb16c3105ed181ee2a80f8caf6f5a985f745a",
"size": 3787
},
"skills/batch-lipsync/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/batch-lipsync/references/media-input.md": {
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
},
"skills/batch-lipsync/scripts/sync_batch.py": {
"sha256": "b4c01decdcdc3eb8be8f5535f379ed41faa2b4e687d56ac4fe1859b33651359c",
"size": 27525
},
"skills/edit-dialogue/SKILL.md": {
"sha256": "64879bd5ede7d75261f7fd72f690bb89b316050c16d8d790237c4078ed1bde6f",
"size": 5141
},
"skills/edit-dialogue/agents/openai.yaml": {
"sha256": "6159ae06234f0f4991c7ac061231bb33f1d4f5cd822bc6b5fb5a8471697ac94e",
"size": 206
},
"skills/edit-dialogue/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/edit-dialogue/references/media-input.md": {
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
},
"skills/lipsync/SKILL.md": {
"sha256": "aab4944b204493b12920917cd90b4e9999ce6eaa7c362ef302571cd2bad37a2c",
"size": 5124
},
"skills/lipsync/agents/openai.yaml": {
"sha256": "a611c56385745beb85b4c222011857be45ad6c7af583d885b18009d635ac39be",
"size": 194
},
"skills/lipsync/references/api.md": {
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
},
"skills/lipsync/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/lipsync/references/media-input.md": {
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
},
"skills/localize-campaign/SKILL.md": {
"sha256": "48176aacaaaef977a806f2509ad4f7955e9375f0dd7363d4629f57ab6f5ba4f0",
"size": 5089
},
"skills/localize-campaign/agents/openai.yaml": {
"sha256": "2681aa94d3de0b50ac2dcbe513cfa8f1ba1ce2653d32d0f8ff8e6c7c0cad41bf",
"size": 218
},
"skills/localize-campaign/references/api.md": {
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
},
"skills/localize-campaign/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/localize-campaign/references/media-input.md": {
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
},
"skills/setup/SKILL.md": {
"sha256": "904bb4d86c53eaf1753e28ae3c70a7a9099298ce984bd5b3553171ee7c8b3f98",
"size": 2452
},
"skills/setup/agents/openai.yaml": {
"sha256": "c95bb92bad2840d984fed9ac5b81dc8b9d8bca27905219cb23bfede8ba9e7598",
"size": 244
},
"skills/setup/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/sync-api/SKILL.md": {
"sha256": "1319bf8b74e31f7a8ea90907b0b1921cfb653a4014a2b36bc157d196d56dc7d3",
"size": 5779
},
"skills/sync-api/agents/openai.yaml": {
"sha256": "50cc0dbcc9a0601d84d01f2d6a0f270b460e00f106688eae67742d7d8c36d21c",
"size": 198
},
"skills/sync-api/references/api.md": {
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
},
"skills/sync-api/references/batch-api.md": {
"sha256": "3f9caaaccdda807942d04d3328beb16c3105ed181ee2a80f8caf6f5a985f745a",
"size": 3787
},
"skills/sync-api/references/python.md": {
"sha256": "4f1902a9daecbe0f2f8f4f0872a0a9d7cf991373c809fce589b6b77ad3e603c2",
"size": 5050
},
"skills/sync-api/references/typescript.md": {
"sha256": "0a4b7d2236a8c4ffa9ca1fce5363813a07a93fade659f186080d83d8ab234f40",
"size": 5665
},
"skills/sync-api/references/webhooks.md": {
"sha256": "b03f957d176006d5578fc2255689424736bab12069f9819829716fe88b6ee4d3",
"size": 3381
},
"skills/talking-photo/SKILL.md": {
"sha256": "8a74d7fb7ccaf791e6b751e3eb88d7c63c78eed29523333490a89c0b8dd0787f",
"size": 4616
},
"skills/talking-photo/agents/openai.yaml": {
"sha256": "d26d7f517f4d8c2f74f9ea87cc04d084ddb27b775afc3810f63ec8d12bef3384",
"size": 192
},
"skills/talking-photo/references/api.md": {
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
},
"skills/talking-photo/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/talking-photo/references/media-input.md": {
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
},
"skills/translate-and-dub/SKILL.md": {
"sha256": "a5dc78642d83853740678b1b147ca6e285c7729c7cb27ddf908969f0c811cf3a",
"size": 3705
},
"skills/translate-and-dub/agents/openai.yaml": {
"sha256": "3aa37f041039194300b7a7d276347cc351b47343f2e0e7a5f9471906ba4b37d9",
"size": 197
},
"skills/translate-and-dub/references/api.md": {
"sha256": "f8fb4753c43c8dad50600409aa5e09bf8e540a4828990e277a0fc60130a062a2",
"size": 4169
},
"skills/translate-and-dub/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/translate-and-dub/references/media-input.md": {
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
},
"skills/troubleshoot/SKILL.md": {
"sha256": "fd3a3b42cf2841ee296ebb4598fd1f0b751ef159668cd985d63cc2091f92f00a",
"size": 4745
},
"skills/troubleshoot/agents/openai.yaml": {
"sha256": "53dd5c854ff7bdfd343c92665efed3f87f12cf51123cce1c2d2e74a9bb1bec49",
"size": 195
},
"skills/troubleshoot/references/connect.md": {
"sha256": "a3ca25776209ce4ceaac1233e6b58494b1bc59e90509f09d6c36629350d5b3e1",
"size": 3346
},
"skills/troubleshoot/references/media-input.md": {
"sha256": "8029e5aca62797e02c375cc4d8ebe079383c6e900afe2ce13aad410552219e32",
"size": 3853
}
}
}SHA-256 of public snapshot: 40babc6b1efb94fcdb0f4a78ada23d0aa6650c4761dde8b069ec90fdaee8c901