Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions graphs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ uses network access, provider credentials, or paid services.
- [Music Visualizer](media/audio/music-visualizer.notes.md) · <a href="media/audio/music-visualizer.subfork.json" download="music-visualizer.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Music Beat Grid](media/audio/music-beat-grid.notes.md) · <a href="media/audio/music-beat-grid.subfork.json" download="music-beat-grid.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Cut Timeline Renderer](media/video/cut-timeline-renderer.notes.md) · <a href="media/video/cut-timeline-renderer.subfork.json" download="cut-timeline-renderer.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Media Probe Normalize](media/video/media-probe-normalize.notes.md) · <a href="media/video/media-probe-normalize.subfork.json" download="media-probe-normalize.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>

## AI

Expand Down Expand Up @@ -103,9 +104,15 @@ uses network access, provider credentials, or paid services.

[Browse pipe examples](pipes/README.md).

- [Approval Gate](pipes/jobs/approval-gate.notes.md) · <a href="pipes/jobs/approval-gate.subfork.json" download="approval-gate.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Audit Log Write](pipes/http/audit-log-write.notes.md) · <a href="pipes/http/audit-log-write.subfork.json" download="audit-log-write.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Contact CSV Deduplicator](pipes/contacts/contact-csv-deduplicator.notes.md) · <a href="pipes/contacts/contact-csv-deduplicator.subfork.json" download="contact-csv-deduplicator.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Fallback Match](pipes/transforms/fallback-match.notes.md) · <a href="pipes/transforms/fallback-match.subfork.json" download="fallback-match.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Job Run](pipes/jobs/job-run.notes.md) · <a href="pipes/jobs/job-run.subfork.json" download="job-run.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [LLM Call](pipes/http/llm-call.notes.md) · <a href="pipes/http/llm-call.subfork.json" download="llm-call.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Open Tickets Pipe](pipes/transforms/open-tickets-pipe.notes.md) · <a href="pipes/transforms/open-tickets-pipe.subfork.json" download="open-tickets-pipe.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Plain HTTP Response](pipes/http/plain-http-response.notes.md) · <a href="pipes/http/plain-http-response.subfork.json" download="plain-http-response.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Render Job](pipes/jobs/render-job.notes.md) · <a href="pipes/jobs/render-job.subfork.json" download="render-job.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [RSS News Digest](pipes/feeds/rss-news-digest.notes.md) · <a href="pipes/feeds/rss-news-digest.subfork.json" download="rss-news-digest.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [URL Extract Pipe](pipes/transforms/url-extract-pipe.notes.md) · <a href="pipes/transforms/url-extract-pipe.subfork.json" download="url-extract-pipe.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>

Expand Down
1 change: 1 addition & 0 deletions graphs/media/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ Examples that inspect, transform, or present uploaded audio and video.
[Browse video media examples](video/README.md).

- [Cut Timeline Renderer](video/cut-timeline-renderer.notes.md) · <a href="video/cut-timeline-renderer.subfork.json" download="cut-timeline-renderer.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Media Probe Normalize](video/media-probe-normalize.notes.md) · <a href="video/media-probe-normalize.subfork.json" download="media-probe-normalize.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
1 change: 1 addition & 0 deletions graphs/media/video/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Video Media Examples

- [Cut Timeline Renderer](cut-timeline-renderer.notes.md) · <a href="cut-timeline-renderer.subfork.json" download="cut-timeline-renderer.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Media Probe Normalize](media-probe-normalize.notes.md) · <a href="media-probe-normalize.subfork.json" download="media-probe-normalize.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
62 changes: 62 additions & 0 deletions graphs/media/video/media-probe-normalize.notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Media Probe Normalize

![Media Probe Normalize example thumbnail](media-probe-normalize.thumbnail.jpg)

<a href="media-probe-normalize.subfork.json" download="media-probe-normalize.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>

A reusable probe for one audio or video artifact. It reads the file's technical facts
with the Media Probe node and projects them into a stable, small shape with a mapping,
so downstream nodes depend on fixed field names rather than the raw probe layout. Use it
for clip durations, QA measurements, or upload verification. Import it independently, or
publish it as a composite.

The graph needs a worker with the `media-worker` capability. It makes no network
requests, needs no credentials, and has no side effects. Media Probe runs with a
15-second timeout.

## Data flow

1. **Probe media** (`n_media_probe`) inspects the `artifact` input and emits the raw probe
information.
2. **Normalize facts** (`n_map_fields`) copies fields from the raw information into the
shape given by `mapping`.

## Inputs and outputs

| Input | Type | Meaning |
| --- | --- | --- |
| `artifact` | `artifact` | Required audio or video file, for example an uploaded asset |
| `mapping` | `json` | Optional map from output field names to probe field names |

| Output | Type | Meaning |
| --- | --- | --- |
| `facts` | `json` | The projected facts |
| `raw` | `json` | The unmodified probe information |

The default mapping carries `duration_seconds`, `width`, `height`, `fps`, and `has_audio`
across under the same names. That is a guess at the probe's key layout. Run the graph
once, compare `raw` with `facts`, and adjust `mapping` if a field comes back empty.

## Authentication and security

There is nothing to wire. The graph holds no credentials and calls no service. Probe
output can include file metadata such as titles and encoder tags, so treat `raw` as
untrusted input when it is displayed or passed to another service.

## Recommended panels

Use a JSON Inspector for `facts` and `raw`, and Activity or Logs to see worker errors.

## Using it as a composite

Publish the graph and call it from a parent that produces or receives an `artifact`, such
as a render step or an upload. Connect `facts` to checks like a duration limit, and keep
`raw` for diagnostics.

## Validation status

The graph passes the repository validator and the node-catalog check against the production catalog, and the Subfork server-side validate endpoint (`POST /graphs/validate`) accepted it on 2026-11-05. It has not been executed on a media worker, so the default
mapping is unconfirmed, and whether the account plan includes the `media-worker` capability has not
been verified.

No Subfork platform version could be found on the public API or site, so this note records the check date and the node catalog instead: on 2026-11-05 the catalog served 75 node types, and every node in this graph is version `1.0.0`.
144 changes: 144 additions & 0 deletions graphs/media/video/media-probe-normalize.subfork.json

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions graphs/pipes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,20 @@ These examples demonstrate small reusable data-ingestion and transformation pipe

## HTTP

- [Audit Log Write](http/audit-log-write.notes.md) · <a href="http/audit-log-write.subfork.json" download="audit-log-write.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [LLM Call](http/llm-call.notes.md) · <a href="http/llm-call.subfork.json" download="llm-call.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Plain HTTP Response](http/plain-http-response.notes.md) · <a href="http/plain-http-response.subfork.json" download="plain-http-response.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>

## Jobs

[Browse job examples](jobs/README.md).

- [Approval Gate](jobs/approval-gate.notes.md) · <a href="jobs/approval-gate.subfork.json" download="approval-gate.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Job Run](jobs/job-run.notes.md) · <a href="jobs/job-run.subfork.json" download="job-run.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Render Job](jobs/render-job.notes.md) · <a href="jobs/render-job.subfork.json" download="render-job.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>

## Transforms

- [Fallback Match](transforms/fallback-match.notes.md) · <a href="transforms/fallback-match.subfork.json" download="fallback-match.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [Open Tickets Pipe](transforms/open-tickets-pipe.notes.md) · <a href="transforms/open-tickets-pipe.subfork.json" download="open-tickets-pipe.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
- [URL Extract Pipe](transforms/url-extract-pipe.notes.md) · <a href="transforms/url-extract-pipe.subfork.json" download="url-extract-pipe.subfork.json" aria-label="Download graph" title="Download graph"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3v12m-5-5 5 5 5-5M5 16v5h14v-5"/></svg></a>
Loading