[{"graph_id":"g_cb6ebada72634a97bf6fc893a345a7ca","name":"Audit log write","description":"Audit append for a content pipeline. Builds one record from actor, action, subject_id, payload and an optional occurred_at, POSTs it to sink_url, and returns the record id, the sink response and the HTTP status. There is no clock node, so the caller passes occurred_at or the sink stamps it. Auth arrives only through the headers input. This graph holds no credential references.","visibility":"public","version":"v1","version_id":"246fe451-e4fc-4634-b7ef-3e934a3c89a9","tags":["composite","audit-log-write"],"interface":{"inputs":{"sink_url":{"type":"url","required":true,"default_node":"write","default_param":"url"},"headers":{"type":"json","required":true,"default_node":"write","default_param":"headers"},"actor":{"type":"str","required":true,"default_node":"rec","default_input":"actor"},"action":{"type":"str","required":true,"default_node":"rec","default_input":"action"},"subject_id":{"type":"str","required":true,"default_node":"rec","default_input":"subject_id"},"payload":{"type":"json","required":true,"default_node":"rec","default_input":"payload"},"occurred_at":{"type":"str","required":false,"default_node":"rec","default_input":"occurred_at"}},"outputs":{"record_id":{"type":"json","node_instance_id":"id","output_name":"value"},"response":{"type":"json","node_instance_id":"write","output_name":"json"},"status":{"type":"int","node_instance_id":"write","output_name":"status"}}},"published_at":"2026-11-05T17:12:19.538290+00:00","favorite_count":0,"fork_count":0,"thumbnail_url":"https://subfork.com/api/v1/graphs/g_cb6ebada72634a97bf6fc893a345a7ca/thumbnail.svg?rev=22c258fa4f2aed19372bd6aeeaf6e455d78a49a308f80be843812307d76044bb&version=v1","preview_url":null,"node":{"format":"subfork.node/1","node":{"node_id":"n_graph_cb6ebada72634a97bf6fc893","version":"v1","name":"Audit log write","description":"Audit append for a content pipeline. Builds one record from actor, action, subject_id, payload and an optional occurred_at, POSTs it to sink_url, and returns the record id, the sink response and the HTTP status. There is no clock node, so the caller passes occurred_at or the sink stamps it. Auth arrives only through the headers input. This graph holds no credential references.","category":"graph","inputs":{"sink_url":"url","headers":"json","actor":"str","action":"str","subject_id":"str","payload":"json","occurred_at":"str"},"outputs":{"record_id":"json","response":"json","status":"int"},"parameters":{"composite_graph":{"type":"json","required":true,"default":{"graph_id":"g_cb6ebada72634a97bf6fc893a345a7ca","version_selector":"latest","graph_version":"v1"}}},"implementation":{"runtime":"graph","handler":"graph_composite"},"capabilities":{"graph":{"graph_id":"g_cb6ebada72634a97bf6fc893a345a7ca","version":"v1"}},"execution_profile_schema":{},"worker_requirements":{"capabilities":[]},"placement":{"allowed":["inline","managed-worker","byo-worker"],"default":"inline"}}}},{"graph_id":"g_a0d2dba819ad42d4a54f7b3757c3a295","name":"Fallback match","description":"Exact-key join with a recorded fallback for a content pipeline. Left-joins left and right on the given keys and returns the joined items, or the fixture value when the join yields nothing. Tolerance joins are not covered. No network, no credentials.","visibility":"public","version":"v1","version_id":"7b618479-60fe-4e9d-9f6e-53393d900cdb","tags":["composite","fallback-match"],"interface":{"inputs":{"left":{"type":"json","required":true,"default_node":"join","default_input":"left"},"right":{"type":"json","required":true,"default_node":"join","default_input":"right"},"fixture":{"type":"json","required":true,"default_node":"pick","default_param":"fallback"},"left_key":{"type":"str","required":false,"default_node":"join","default_param":"left_key"},"right_key":{"type":"str","required":false,"default_node":"join","default_param":"right_key"}},"outputs":{"items":{"type":"json","node_instance_id":"pick","output_name":"value"}}},"published_at":"2026-11-05T17:12:22.244150+00:00","favorite_count":0,"fork_count":0,"thumbnail_url":"https://subfork.com/api/v1/graphs/g_a0d2dba819ad42d4a54f7b3757c3a295/thumbnail.svg?rev=fd1d110dc3350a3ed7faf477875afd59fe09bb3cddf746ddf039958df4b4b3b2&version=v1","preview_url":null,"node":{"format":"subfork.node/1","node":{"node_id":"n_graph_a0d2dba819ad42d4a54f7b37","version":"v1","name":"Fallback match","description":"Exact-key join with a recorded fallback for a content pipeline. Left-joins left and right on the given keys and returns the joined items, or the fixture value when the join yields nothing. Tolerance joins are not covered. No network, no credentials.","category":"graph","inputs":{"left":"json","right":"json","fixture":"json","left_key":"str","right_key":"str"},"outputs":{"items":"json"},"parameters":{"composite_graph":{"type":"json","required":true,"default":{"graph_id":"g_a0d2dba819ad42d4a54f7b3757c3a295","version_selector":"latest","graph_version":"v1"}}},"implementation":{"runtime":"graph","handler":"graph_composite"},"capabilities":{"graph":{"graph_id":"g_a0d2dba819ad42d4a54f7b3757c3a295","version":"v1"}},"execution_profile_schema":{},"worker_requirements":{"capabilities":[]},"placement":{"allowed":["inline","managed-worker","byo-worker"],"default":"inline"}}}},{"graph_id":"g_ed440427336843a1bfcc569d7b8c9c7a","name":"LLM call","description":"Synchronous model call for a content pipeline. Builds an OpenAI-style chat body from prompt, system and model, POSTs it to url, and returns the extracted reply, the full response and the HTTP status. Auth arrives only through the headers input, which the parent graph builds. This graph holds no credential references.","visibility":"public","version":"v1","version_id":"6c00f47f-7bb6-4bbb-b389-2bcbd5e6edb2","tags":["composite","llm-call"],"interface":{"inputs":{"url":{"type":"url","required":true,"default_node":"call","default_param":"url"},"headers":{"type":"json","required":true,"default_node":"call","default_param":"headers"},"prompt":{"type":"str","required":true,"default_node":"body","default_input":"prompt"},"system":{"type":"str","required":true,"default_node":"body","default_input":"system"},"model":{"type":"str","required":true,"default_node":"body","default_input":"model"},"reply_path":{"type":"str","required":false,"default_node":"reply","default_param":"path"}},"outputs":{"reply":{"type":"json","node_instance_id":"reply","output_name":"value"},"response":{"type":"json","node_instance_id":"call","output_name":"json"},"status":{"type":"int","node_instance_id":"call","output_name":"status"}}},"published_at":"2026-11-05T17:12:17.040243+00:00","favorite_count":0,"fork_count":0,"thumbnail_url":"https://subfork.com/api/v1/graphs/g_ed440427336843a1bfcc569d7b8c9c7a/thumbnail.svg?rev=431bf884cdfc024d69d6b14b06cab1279de23cc6beef778bb27b15f9a70d17a3&version=v1","preview_url":null,"node":{"format":"subfork.node/1","node":{"node_id":"n_graph_ed440427336843a1bfcc569d","version":"v1","name":"LLM call","description":"Synchronous model call for a content pipeline. Builds an OpenAI-style chat body from prompt, system and model, POSTs it to url, and returns the extracted reply, the full response and the HTTP status. Auth arrives only through the headers input, which the parent graph builds. This graph holds no credential references.","category":"graph","inputs":{"url":"url","headers":"json","prompt":"str","system":"str","model":"str","reply_path":"str"},"outputs":{"reply":"json","response":"json","status":"int"},"parameters":{"composite_graph":{"type":"json","required":true,"default":{"graph_id":"g_ed440427336843a1bfcc569d7b8c9c7a","version_selector":"latest","graph_version":"v1"}}},"implementation":{"runtime":"graph","handler":"graph_composite"},"capabilities":{"graph":{"graph_id":"g_ed440427336843a1bfcc569d7b8c9c7a","version":"v1"}},"execution_profile_schema":{},"worker_requirements":{"capabilities":[]},"placement":{"allowed":["inline","managed-worker","byo-worker"],"default":"inline"}}}},{"graph_id":"g_35e165772db34cceafbefec86ebbf67b","name":"sports-social-media-auto-producer-gem","description":"GEM lane of the team pipeline: runtime G1-G11, app surfaces, build loop B1-B6 and runtime edges, as static facts. Outputs gem_dataset and gem_handoff (the facts the trailer lane consumes). No secrets, no network. Publish as a composite, then use from the parent graph.","visibility":"public","version":"v2","version_id":"a959ad02-3c01-46b4-9b12-49c05870a932","tags":["spurs","pipeline","gem"],"interface":{"inputs":{},"outputs":{"gem_dataset":{"type":"json","node_instance_id":"gem_dataset","output_name":"value"},"gem_handoff":{"type":"json","node_instance_id":"gem_handoff_bundle","output_name":"value"}}},"published_at":"2026-11-05T16:35:55.071704+00:00","favorite_count":0,"fork_count":0,"thumbnail_url":"https://subfork.com/api/v1/graphs/g_35e165772db34cceafbefec86ebbf67b/thumbnail.svg?rev=de3b9cf4292c9bcebcae4619dbb8365283e1f5ec725313915177d81adbdc30d6&version=v2","preview_url":null,"node":{"format":"subfork.node/1","node":{"node_id":"n_graph_35e165772db34cceafbefec8","version":"v2","name":"sports-social-media-auto-producer-gem","description":"GEM lane of the team pipeline: runtime G1-G11, app surfaces, build loop B1-B6 and runtime edges, as static facts. Outputs gem_dataset and gem_handoff (the facts the trailer lane consumes). No secrets, no network. Publish as a composite, then use from the parent graph.","category":"graph","inputs":{},"outputs":{"gem_dataset":"json","gem_handoff":"json"},"parameters":{"composite_graph":{"type":"json","required":true,"default":{"graph_id":"g_35e165772db34cceafbefec86ebbf67b","version_selector":"latest","graph_version":"v2"}}},"implementation":{"runtime":"graph","handler":"graph_composite"},"capabilities":{"graph":{"graph_id":"g_35e165772db34cceafbefec86ebbf67b","version":"v2"}},"execution_profile_schema":{},"worker_requirements":{"capabilities":[]},"placement":{"allowed":["inline","managed-worker","byo-worker"],"default":"inline"}}}},{"graph_id":"g_600d7e210aaf4eef8ff4aada22d93c00","name":"sports-social-media-auto-producer-trailer","description":"TRAILER lane of the team pipeline (T1-T12 plus edges and the H1-H5 handoff registry) as static facts. Requires the gem_handoff input, which is the gem_handoff output of the sports-social-media-auto-producer-gem graph. Outputs trailer_dataset and handoffs. No secrets, no network.","visibility":"public","version":"v2","version_id":"670cea19-4210-431a-9bc8-235f4d67074e","tags":["spurs","pipeline","trailer"],"interface":{"inputs":{"gem_handoff":{"type":"json","required":true,"default_node":"tr_gem_in","default_input":"primary"}},"outputs":{"trailer_dataset":{"type":"json","node_instance_id":"tr_dataset","output_name":"value"},"handoffs":{"type":"json","node_instance_id":"handoffs","output_name":"value"}}},"published_at":"2026-11-05T16:35:55.207030+00:00","favorite_count":0,"fork_count":0,"thumbnail_url":"https://subfork.com/api/v1/graphs/g_600d7e210aaf4eef8ff4aada22d93c00/thumbnail.svg?rev=f73272773448c1ed46d67992e3a0e87ce4a13bd38236e73255fe5797ba46ed2f&version=v2","preview_url":null,"node":{"format":"subfork.node/1","node":{"node_id":"n_graph_600d7e210aaf4eef8ff4aada","version":"v2","name":"sports-social-media-auto-producer-trailer","description":"TRAILER lane of the team pipeline (T1-T12 plus edges and the H1-H5 handoff registry) as static facts. Requires the gem_handoff input, which is the gem_handoff output of the sports-social-media-auto-producer-gem graph. Outputs trailer_dataset and handoffs. No secrets, no network.","category":"graph","inputs":{"gem_handoff":"json"},"outputs":{"trailer_dataset":"json","handoffs":"json"},"parameters":{"composite_graph":{"type":"json","required":true,"default":{"graph_id":"g_600d7e210aaf4eef8ff4aada22d93c00","version_selector":"latest","graph_version":"v2"}}},"implementation":{"runtime":"graph","handler":"graph_composite"},"capabilities":{"graph":{"graph_id":"g_600d7e210aaf4eef8ff4aada22d93c00","version":"v2"}},"execution_profile_schema":{},"worker_requirements":{"capabilities":[]},"placement":{"allowed":["inline","managed-worker","byo-worker"],"default":"inline"}}}}]