From f2a62012fc13c4dd8f25fc148da3d7019eeb72b3 Mon Sep 17 00:00:00 2001 From: anthonyshafer <835847+anthonyshafer@users.noreply.github.com> Date: Thu, 5 Nov 2026 09:20:44 -0800 Subject: [PATCH 1/3] Add composite building-block examples (LLM call, job run, approval gate, render job, audit log write, fallback match, media probe) --- graphs/README.md | 7 + graphs/media/README.md | 1 + graphs/media/video/README.md | 1 + .../video/media-probe-normalize.notes.md | 62 +++ .../video/media-probe-normalize.subfork.json | 144 ++++++ .../video/media-probe-normalize.thumbnail.jpg | Bin 0 -> 16405 bytes graphs/pipes/README.md | 11 + graphs/pipes/http/audit-log-write.notes.md | 92 ++++ .../pipes/http/audit-log-write.subfork.json | 256 ++++++++++ .../pipes/http/audit-log-write.thumbnail.jpg | Bin 0 -> 16956 bytes graphs/pipes/http/llm-call.notes.md | 95 ++++ graphs/pipes/http/llm-call.subfork.json | 245 ++++++++++ graphs/pipes/http/llm-call.thumbnail.jpg | Bin 0 -> 15521 bytes graphs/pipes/jobs/README.md | 7 + graphs/pipes/jobs/approval-gate.notes.md | 110 +++++ graphs/pipes/jobs/approval-gate.subfork.json | 347 +++++++++++++ graphs/pipes/jobs/approval-gate.thumbnail.jpg | Bin 0 -> 17241 bytes graphs/pipes/jobs/job-run.notes.md | 118 +++++ graphs/pipes/jobs/job-run.subfork.json | 335 +++++++++++++ graphs/pipes/jobs/job-run.thumbnail.jpg | Bin 0 -> 15359 bytes graphs/pipes/jobs/render-job.notes.md | 105 ++++ graphs/pipes/jobs/render-job.subfork.json | 460 ++++++++++++++++++ graphs/pipes/jobs/render-job.thumbnail.jpg | Bin 0 -> 22473 bytes .../pipes/transforms/fallback-match.notes.md | 61 +++ .../transforms/fallback-match.subfork.json | 163 +++++++ .../transforms/fallback-match.thumbnail.jpg | Bin 0 -> 15752 bytes 26 files changed, 2620 insertions(+) create mode 100644 graphs/media/video/media-probe-normalize.notes.md create mode 100644 graphs/media/video/media-probe-normalize.subfork.json create mode 100644 graphs/media/video/media-probe-normalize.thumbnail.jpg create mode 100644 graphs/pipes/http/audit-log-write.notes.md create mode 100644 graphs/pipes/http/audit-log-write.subfork.json create mode 100644 graphs/pipes/http/audit-log-write.thumbnail.jpg create mode 100644 graphs/pipes/http/llm-call.notes.md create mode 100644 graphs/pipes/http/llm-call.subfork.json create mode 100644 graphs/pipes/http/llm-call.thumbnail.jpg create mode 100644 graphs/pipes/jobs/README.md create mode 100644 graphs/pipes/jobs/approval-gate.notes.md create mode 100644 graphs/pipes/jobs/approval-gate.subfork.json create mode 100644 graphs/pipes/jobs/approval-gate.thumbnail.jpg create mode 100644 graphs/pipes/jobs/job-run.notes.md create mode 100644 graphs/pipes/jobs/job-run.subfork.json create mode 100644 graphs/pipes/jobs/job-run.thumbnail.jpg create mode 100644 graphs/pipes/jobs/render-job.notes.md create mode 100644 graphs/pipes/jobs/render-job.subfork.json create mode 100644 graphs/pipes/jobs/render-job.thumbnail.jpg create mode 100644 graphs/pipes/transforms/fallback-match.notes.md create mode 100644 graphs/pipes/transforms/fallback-match.subfork.json create mode 100644 graphs/pipes/transforms/fallback-match.thumbnail.jpg diff --git a/graphs/README.md b/graphs/README.md index 450bb36..c46be46 100644 --- a/graphs/README.md +++ b/graphs/README.md @@ -58,6 +58,7 @@ uses network access, provider credentials, or paid services. - [Music Visualizer](media/audio/music-visualizer.notes.md) · - [Music Beat Grid](media/audio/music-beat-grid.notes.md) · - [Cut Timeline Renderer](media/video/cut-timeline-renderer.notes.md) · +- [Media Probe Normalize](media/video/media-probe-normalize.notes.md) · ## AI @@ -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) · +- [Audit Log Write](pipes/http/audit-log-write.notes.md) · - [Contact CSV Deduplicator](pipes/contacts/contact-csv-deduplicator.notes.md) · +- [Fallback Match](pipes/transforms/fallback-match.notes.md) · +- [Job Run](pipes/jobs/job-run.notes.md) · +- [LLM Call](pipes/http/llm-call.notes.md) · - [Open Tickets Pipe](pipes/transforms/open-tickets-pipe.notes.md) · - [Plain HTTP Response](pipes/http/plain-http-response.notes.md) · +- [Render Job](pipes/jobs/render-job.notes.md) · - [RSS News Digest](pipes/feeds/rss-news-digest.notes.md) · - [URL Extract Pipe](pipes/transforms/url-extract-pipe.notes.md) · diff --git a/graphs/media/README.md b/graphs/media/README.md index 7cb17d3..b4b0948 100644 --- a/graphs/media/README.md +++ b/graphs/media/README.md @@ -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) · +- [Media Probe Normalize](video/media-probe-normalize.notes.md) · diff --git a/graphs/media/video/README.md b/graphs/media/video/README.md index bc8a4ed..dc2102e 100644 --- a/graphs/media/video/README.md +++ b/graphs/media/video/README.md @@ -1,3 +1,4 @@ # Video Media Examples - [Cut Timeline Renderer](cut-timeline-renderer.notes.md) · +- [Media Probe Normalize](media-probe-normalize.notes.md) · diff --git a/graphs/media/video/media-probe-normalize.notes.md b/graphs/media/video/media-probe-normalize.notes.md new file mode 100644 index 0000000..913197e --- /dev/null +++ b/graphs/media/video/media-probe-normalize.notes.md @@ -0,0 +1,62 @@ +# Media Probe Normalize + +![Media Probe Normalize example thumbnail](media-probe-normalize.thumbnail.jpg) + + + +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 production node-catalog check. It has +not been freshly imported and 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. The Subfork version used for a manual test is not recorded because no +manual test was run. diff --git a/graphs/media/video/media-probe-normalize.subfork.json b/graphs/media/video/media-probe-normalize.subfork.json new file mode 100644 index 0000000..33088ad --- /dev/null +++ b/graphs/media/video/media-probe-normalize.subfork.json @@ -0,0 +1,144 @@ +{ + "format": "subfork.graph/1", + "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAFAAeADASIAAhEBAxEB/8QAHQABAAEFAQEBAAAAAAAAAAAAAAYDBAUHCAECCf/EAEsQAAAFAwEEAw0FBgUDAwUAAAABAgMEBQYRBwgSITETVNEUFRYYIkFRVWGTlJXSCTJxc7IjNDU2QoFSYnJ0sTORoRkkUyU4hZK1/8QAGwEBAQADAQEBAAAAAAAAAAAAAAECAwQFBgf/xAAvEQEAAQEGBgEEAQQDAAAAAAAAARECAwQWkdEFEhMxUWIhQWFxoTIGFIGxUsLw/9oADAMBAAIRAxEAPwCCeOJpv1qq/LV9oeOJpv1qq/LV9o4SAfeZt4j66Tu+MyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jZ3b44mm/Wqr8tX2h44mm/Wqr8tX2jhIAzbxH10ncyxgPNrWNndvjiab9aqvy1faHjiab9aqvy1faOEgDNvEfXSdzLGA82tY2d2+OJpv1qq/LV9oeOJpv1qq/LV9o4SAM28R9dJ3MsYDza1jYAAHxb64DAFzH6ibF+x1olqbs0WZdt62mVRrdTlPxnph1KUz0qu63Gmk7qHUpLgSU8CBH5dgN523oB3dtlxtIpLLi4iLtVS30EZko4aHjWo88yywnnz45HXW3XslaM6U7NtSu+w7WKl1ZqsRYTcxNQlPESTfW26ndccUk+KTLOM8AV+aQCbadaJX/AKunJ8C7OrNzojHuvO06Ka22zxndUs8JI/ZnPsGKvjTy6NM60dIu23qlbdT3d8otTjKZWpPLeTngovakzIBHgweM44Ce6eaCaj6tQZM2zbHrlywoyjQ7Kp8Q1NJUXNO+eEmr2EZn7B1paGzbZzH2dF9XrcNlojakUd6oM93TUutS4q2pTSEpUg1ERGlKjLBp84Dg/B4zg8ekeDqSqN2AWxHDU1oxcEe+Mo39RVUdRU5z/wB4ecSukweUYa+5zLHtGkdO9Er/ANXDkeBdm1m5kR1brztOimtttXPdUs8JI8ebOQEJASzUHSW9dKJrMW8rUq9sPv5NkqnFU0l3HPcV91WPYZiJgGAH6fW7s87MunmyZYOp+pdnS3++VNg92zIUqa447JfSZkfRIeSREZpPlgi9AoWhsu7K+17atwRtG11W2LopjaTJT7klJtKXkmlOsPqWTjSlEaTNCiMvYeMkfmQAllL0mvSvP11ukWrV613iecYqblMhOSG4ikGoldIpCTJJeQs8njgkzFG4tMbttG16LcdbtupUig1rJ02oTY5tNSyJJKM2zPiZbpkecYMuJZBUZAbVt/ZT1kuugt1qkaY3POpTqOkbktwFJJxHMlJJWFKI/MZEefMIJAoEiHeUKi1iDIhSE1BmLLhym1Mut5dSlaFJMiUk8GfoMBhQHbP2gWyjb2l+pljW5pHZ1SceqtMlypECnnJqDzqm30oJW6ZrURER44YLiOOrktatWdVF02v0efQ6igiUqJUoq47pEfI91ZEePaAxYCead6C6j6txX5VmWRW7liMKNDkmBENTKVFzT0h4SavYR5Edu+yrg0/rjtGuaiT7fqzREpcKpR1MukR8jwouJH5jLJH6QGFAfD6jQw6ouBpQoy/HA/VvU/7OXT65tmdmqae22ql6g95olUjvJnSHSmuEwlx1g0OLUkukyrBkRYVu44ZIEflOA6p+zp0Ss3XXXGs29fdFOs0qNQnpiIqpDsc0PJkMIIzNtSVZIlrLBnjjy4DSWq9lopmud5WpbNMfdZi3BNp1Op0VK33TQh9aG20lxUs8EReczwAgYDatf2UtZLWoLlaq2mFzwaU0jpHJK6epRNoxk1KSnKkkXnMyLHnEDtOzLgv2qd7LZodRuGo9Gp7uSlRVyXejLGV7qCM90slk/aQKwwCYSdHb6h2rWLmk2hWYtv0eV3DUKlIhqbZiyCWTZtLNWMKJZkky44M8HgxalpfeaqjAp5WhX+76gSjhxe9b/SySSRGo207mVkRGRmZZxks8wEZASKo6c3ZSLmZtyda9ah3A/joqS/TnkSnM8jS0ad5RcD4kXmFC67IuKxJ6INy0CqW9MWjpER6rDcjLUn0kSyLJe0gGEATzTvQXUfVuK9KsyyK3csRlZtuSYEQ1MpUXNPSHhOfYR5GHv7TO7tLaiVOu+2qpbM5aDW2zU4qmTcIuZoM+Ci9qTMBGx6ZGXMjIdsbXmznp7phsi6R3pbNA72XNXkwu+M/ux9zpukgG6vyFrNKcr8rySLHLkIftbQrGk2fp0xY+ilyabVZ9fRyptWoqoaautTLZJSyfSK6U98zVgiLgsj84I5WAbKPZm1fIzI9LLzIy4GXeGT9Ai146eXVp5Jix7qtqrW0/KQbjDVWhORlOoI8GpJLIjURHwyXnBUeAbVjbKess23E15jS+6XaSpvpUyE01eVIxneJH3zLHH7o1YtCmlqQtKkLSZpUlRYMjI8GRl5jyA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuY/UzSi8ndO/strZullRpXRqzGnZL/C3X0KUX907xf3H5ZlzHbSdorTw/szndJ1XBi/FqP8A+k9xv8jqZP8A/V3Oj/6flfe9nPgLCOp2dKIVv/aR3Lqg42krei2T4Upfx5HSqR3Mo8+ncaWr+/tGs9oWvyrt+yptmuSlb02qVCJOcUo8+W7UJCzz/dQtLq26tPatsQuUFiu72rEu0mLdfidxPk4R5JpzLxo3DSSN9fBXNXpGrdRdonTyv/ZwWjpZCuDpr4gqhd00ooj6TbJuS6tf7U0dGeEqSfBXnEkh2bqXpje2nmzxp7YWjF6WzpmqOy2qdU6xOTEekYaSpZtKNteVrdWpS1YzjdLODGt9ra31XzsNJZ1Duq07j1StpTMhmqUOey50yzkJaM0F5KsrZWW+kkkRqTnHAaxc120K2z9DrStLWW55GnV62whCGqwbG+y+ZNpbWtCjSpJpcShBqbXumSk5IzIad2lpezJZWmVOszR+mFd13kpvuu+XumT0SUq3lGjO6hbizwnyUbqU54mYDrbbY1pr2xPpDpbYelvc1DN9l1k5yorbxttR0NkrdSsjTvuOOmtSjIz5+nI+63rXVNoD7L2+rurrEdquuQZMKe5FaJtuQ8zJaR0xJLkak7mS9JHjhghDntoPZ42zdErZpWtVyOWTd9ASk3HkrUys3SQSHHGHOjWhaHSSkzQoskouXAjPHahbUWz9F2ML40m09qkqApuM9T6RCnRH1PVE+mbcVJU5ubpG4rpFeUZHhJZJOSIqipcJn/6OdJ85b7PD/wDLLGQ2eGNf7n2Sbbodks2toxazCSdavOpVFaJk5s1qU48TRtqSgnFH/wBRRkZknCeBkNR1vaM07m/ZqQNKWrh3r8bNvfpXcb5YxUFPH+13Oj/6Zkr73s5jZMjWXQLag2TbGse/tRn9NKpbDUUpENDClm65HYNnyEGhSHkKT5SceUkz5ekrZW1rTJNQ+zimncV50/U6tUyREWd0wUo6J+QmcTalINPDKUrU0ai4qweeY/JA+Y/Q/VDaN0GqewtWdI7Cr82myoJIZpkCtQn+6JpNTEvKdU4hs20qe8tREZljJEe6PzwPmIP2Md0ytDVv7PfS2374vJqxKEqmUmQdXecZbSTqEq3G8vGSfKyfnzwEO0aqOzdsDUG57gpeq7F+16pstoKPEksSJDyWjNbbDTTGUpys8qWtWOXIi46N102ldOLy+z+sTTakXF3ZelMRSSl0zuN9HRmyS+l/aKQSD3clyUefNkcLFw5cPwAjs/T77Kiuor9F14rNVZS41OqDU6YxjeSpLjclxxGD5lhSi48xENHtoGdt7bT9h29eFuUSBZ1ruzbggUuK0tSl9EySWWnlKUaVkR9GZkSUl5JljHAQv7PTaN080NsbVSn3tcHeWZW0tFAb7kff6bdjvIPi2hRJ8paS445jmrZz1mm7PusFtXxDj92lTXDRKhb273TGcSaHmyPzGaTMyPzKJIo7I2s/tD9VNM9pe5LfteVAh23a8tMRdPkwW3jnmhCVOqdcUW+RKNRkW4ad0iLmYz/2mdl0eqVHRPVKFETCqtcmxoUzH33mzS1IZNZ/1KQSlozzwZF5iF7fkzYn2hL3a1OuK+X6PVZBNO1GjPOOxDmKQkiIn2eiUZqwkkqNpeFEXM+Y0Jtt7YFE2g9T7NhWwh6NYVpym3GJD7JtKlOG430jxN80oS22SUJPjjePBZIgHYP2hm19c2zPcFqU6yYFKRX6zFfkSatUondCkRW3iSlhBZLgpZqUeT4YLBZPIh+0jIhbX2wBbGqNTp0emXXFkRjbfZI/2K1zShSG0GfHo1GrfJJmeDSnzlkWW03q1sp7X1boNOrOpU+25tLaddiXLHpzqGN1ay34rpPNcz3UrSeMFx45yR6s2utpvTWh7Pdt6EaK1R2s0aEthc2tJJXR7jLhupSlakp6Rxbxk4pRESS3SIufAOvtobT3UG0LDsWxNE78tXSqk0hlTchyqz0RJD6UElKCay2sjSat9biualKLPnGmNv2kRLw2PbcrF3V+161qjbT8RMibQJzTqX+kWbT5NkWFbiiNtw07pESkmZERCJXlrNs9bdmnlplqtd7+l1/W+2bbkpcclsvbxJ6Xo1GhSFtrUklkR7qkGZlxLnoTaqquzhQ7Roln6KUEqxWYym1VG9njeSp1KEmRoQSjSlanFHlSiQlJEREnnwg5ck/uz/5av+DH7EbSevs3Zvs7Zpu9k3XaYS24lWiNKx3RDXTWekLHnUnBLT/mQXpMfjw+k1sOpLiakKIvxwO4NuvaO081k0O0it+z7g771egmg6jH7kfZ6DEFto/KcQkleWky8kz5Z5CK7C0j0Eg2HtsVHUq0ibk2Hftqv1BiRFL9i1LVIiuOJTjgSXUqJ1Je1Zf0jXGxXZVHpmtm07qlNiJm1Wg3DUYULJeUy3vPyHjQf9KlklCM88EZecxr/wCz8287T0w0zk2JqhXHKVEo7pOUOcqK9IJUdZma45k2lRluKypJmWN1Zl/SQg+zbtq21oztJarSKwp6oaa3vWZUo5jEdS1MGbzhsvm0ZEpSFNuGlacb2DI8HgyGTFLtkz7Q/VTU3aYtugXRKgTLbuiWqIinRoLbJwDWhSmlNOJLfPdNJEe+at4jPkY2ZpRprSdLPtT7rg0GO3BptStV6stxGC3UMLfJo3EpIuSd9KlEXm3hH7CmbE+z5fDmp9u30/VqrHJ12nUZlx2X3GtaTIyYZ6JKiVhRpSbq8JzzLmNS6CbZVu1LbiubV3UGb4MUKo0qTAiINlyT3M2RNIjsmTSVGZ7qDMzxjeNXsEVW29Ns+uXBWtQdE6TQKPTLMhVE4br5NLOW+80+TzjpGSiQglOko8bpmeTMzyY6R2/No+8dnfT/AEtn2S9Cg1qqMOR3KnKiIkutMIYYWppvfIySlat01encSPzK2irrpd9676g3FQ5XdtHqtblS4cncUjpWlrylW6oiUWS8xkRjpr7RHaN0810snS+BZFwd+pdFS+U9vuR9joTUwyguLiEkrykKLhnkA6h2sto+5dPdl3TLVW34tMg37cTEKKVYchIecgsyYvdEhDO+R4Jam0Fg8lghAtrS539cPs0bK1DuZiM7c5vU+WUtlokE26t5xh00F/SS0lk0lwzj0ENN7Ve0bp5qTsdaQ2Pblwd8booPe7vjB7jfb6DooKmnPLWgkKwsyLyTPPMuAahbRmnld+zctfSuFcJO31DTCTIpZw3y3NyS4tf7Q0dGeEqI+CuOQG8tNIm0Pd2y/Y9Ltl209n604EVg2K9MqSymzWNw8OKbUg0tE6ozdMzMlKz6D43f2gUE6lsCWxOqtywr+q8Go08iumIhBNzXFdK2663u8CJRZSeOB7uRGNTdYNnTa+0KsSLe+pkzTyo220hyRR2YynHlOkwhpxCWzQpLpeRlC08Szy4mQh+0ntJaKagbENP030/rMmlzqO/DKDQqtEf7pWxHdWnynUoNrfWlXS/ex5RlwPgAz+35/wDYLoL/AKKd/wDy1DI/ai1GTSNKtAJ8Rw2pcR/uhhzBK3HEQ46kng+B4MiPBjU217tF6e6obImkdlWzcHfK5qEiGVRg9yPtdB0cA2l+WtBJVhZ48kz9PISja52itGddIugVGauRVUolFqbJXMluHJZVHiGyw26ZGbZGrghZeRk+HDzAkN07DGpGu+rFPnam6pX+cHTOC28tlmRT4kZNRUgj6R5TiWiNEdvB5URlvKLBHhJ5hmn+rNv7cP2gFCm97G3rNsakzJFHTLbyuc4hxG7IdSfIukWS0oMuBITniZ4mOtO0jss61abQ7BkarVe1bTj9GhVOtqlyI6HmmyImmV70VX7JOCMkFgjMiznA5dpmqGi2yRrrY156MXJXL+pKmJcS5ItSQbTpMObiUkyamWi3uayzksoIjMsiq7VuJzXRnaaVcLGr1gwdOY1SSyu0ZVYQhw4RGSXCcSbWSkn5Ss7/AAVgs4HEH2n1s2xSdotitWvJp8hq4aW3Ond7n23W+60uLbWs9wzIlLSlCj9J5PzjbV229sVaq6pSdWqxqW7GaqD3fGpWe/FcbOTIMvLykmjdTvHxUhCjIzzhREY4y2hLo0+uvU2dJ0wtRNo2ay2iPEjGazdkmnO9IcJSlbqlmfBOeCUpzxyINbAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABg/QAAGBUjRnZkhphhpb77qybbbbSalLUZ4IiIuZmfDACmRmXI8AZ5FzKpsuC20uRFeYQ6aybU4g0ks0K3VkWee6rgfoPgLYB6RmXI8DwVX4j8ZDKnmXGkvt9K0a0mROIyZbyfSWSMs+wx7GhSJhPmww4+TDSnnTbSaujbLGVqxyIslx9oCiPSMy5GZCqzCkSGZDzTDjrMdJLecQgzS0k1EkjUfmI1GRcfOZCjgAAMYAAAMBgwAAwfoDAD0lGRczHgYFeFBk1GSiNEjuyZC87rTKDUpWCMzwRegiM/wIBQyZHzAzzzH2tlxsmzW2tBOJJaDUky3knyUWeZe0h8APSMy5HgecwwfoDB+gAAMGfmFeRBkRG47j7DrLchvpWVOIMidRk07yTPmWUqLJecj9ACgACvDgyai6bUSM/LdIjV0cdpTisFzPCSM8e0BR3jPzmPB6ZGRmRlgy4YHmAAAxxFaRCkRUMLfYcZRIb6VlTiDInEZMt5PpLKTLJecjAUQDAAPcmRYyeB4AAAAABkAAB7vHjGTwPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeLPCFH7DG8KvGt+kRrmbbs+kOrotv0upMuvNumpch5MZK1OYWRKQfTKPc4FkiPzmNICsqZIX0m8+6rpEkhe84o95JYwk+PEiwWCPgWC9AyiaJMVb8RYNusyrinR6VGXLSumG1TV0yTUWY7ciGl5ZpYaUSyJTh7iVGZkkuBcTIxeQLMplu3rQCtq1UV+PIudyPLkSUOOuU4mnGdxlK0rw0ZEpa99RmZ4IjM8GQ56Zqk2PIN9qbJafNHRm62+tKzTjG7vEecYIixywQ+Y0+VDQ4iPKfjocxvpZdUgl4PJbxEZZwfEsjLmjwxpLeNPsmFPiM1UqPCluoaqr8h2Ww/II1lUiabWcdojU8aUmaSTwSnJKUfDBwbVmzU0nUOPSqTTziHUIsJxmMhlbaTeebRvbiFmakp6Qz8kzPd4lngIUzVZ0ZxDjM6Uy4glElbb60qSSjyrBkeSyfP0+cUzmSDWys5DxrZIiaUbistkR5IknnyeJmfDzmJMxMLROqjV6K3q5FRPjtz7Zpr7NJU04WUqitJJlSy9ud9wj9Ik07T6m2nFq1uVCEw/W6fQKhU5U1STNbalPNpjGWD5JZT0hfnDTJ8c5459IrKmyVuOOKkPKccR0a1qcUZrTgi3TPPEsEXA+HAvQHMUb8rVuMUmBqLSG7bZolvRigRY1dbbcJUhhUxn9qp1Rml7eT+0yRYTy5cBk6jpdaD1cVTpFOTBiR62xBiOswX4RyUGbn7JyQ6s0vm4SEGTiC4b2eCVEOcl1GW5HRHXLkLjoTuJZU8o0JTnO6Sc4IskR49JD5fnSZTTLb8l99tkt1pDrqlJbL0JIzwkvYQvNHhKJ7e1ISVjQatPtpi060qqOw0Q48dyOT8dLRKNRtrMzyhZkjfL729xyZCCzShIgRFRVyVzDbWcpDyEk2le8e4TZkZmojTjOSLjwLgPmXOlVB0nJcl+W4SSSS5DqnFERciyozPHsFAYTNWTecixaYquMURdrMs2oXevF2EtTLqkvKZ33TeUe46SzW4km0l5GM8NxQq0OzYNXrVJKvWXGtxabrjUtiEhl1kpsZROG82tK1Gbho3W/2pc9/jnJDRrk2S7EbirkvLitmakMKdUbaDPmZJM8Ef4EKjtVnPOsOuTZTjrBETLi31qU0RciSZnlP9sDLmjwlG6LSjW9cSbHS9ZtGbOvVqXSJCm0O5Sw2TW4aPL4Ol0p5c5nul7c/Miz4JU+HGctCPHoztod9H7hJpwnESkx1qS4Tu9uFlxKEG3jyjX6TIaVbmSGei6OQ830SjW3uOKLcUeMqTg+B8C4lx4EMnXbtqNwNRGpDqmo8aIxEKOytZNrSyndQtSc4NePP/ANsC80JRtaoWRTW1VmmqtlligQqPHmQrjIltuyn1kyacyFK6NROrcWjcxhGM8N0zGelad0aVc9NNFtxYFNRUpUJUSRBfhyk4iPrQ2vK1NySSbZK6ZCs5Is8FEOeVzpLkRERcl9cRBmpEdTqjbSfnMkZwR+0iFRyrT3lMqcny3FMJNDRrkLM2k4wZJyfkljzFgOaPBSW+4VHp900i35tSpkPpIFmxHoLaaY7IbfUclTbilNNqJTxNJ47pHhJuGpRY4DXGott0enaiU6nx0nS4cpqEqajoVMJjLcx0ppbWpSm04PfJCzynODEJZqcyP3P0UyS13NnoOjfWnoc89zB+Tnz4xkUTeWp/plqNx01b5qc8s1HnOTzz/vzEm1EwtHRNIsOnza9Mh1OwolLgRLqp9LiPdC6hUmMp5xK0KUpRk6akJQo3E8970YEf03tyBdDTtWetijlEk1hunJaTCkyybbSkt5tLbZ/szMlEo33FlkyPHJQgdw6n1KvU4obUSHSGjeRIdOndKg1rQStzG84om0pNSjJDe6kjPOOWIqzNkxmnmmZL7LTxETrbbqkpcL0KIjwr+4s2oSkt6RbDj0sqXEh2K1XSeuqoUqW9KZdW41FQ60lCTUky6MyQpSidUXDH4irJp9EnVG0LW71Q6pAeoVRJmqOktUkkNPzlMqaUSiJODbJRng97ePPAadk3pVpVCiUpUp1LTDsh1TyHnCdf6bc30uK3vKL9mnBH7eYxCJkhtTakyHUqaSaGzS4ojQk85SnjwLifAuHE/SHNBSX3Te4XI8lU1yQ253PvRijoSpKnspwS8mWEY3uJZPJFwGwNMIFclW7WXYtQn0a3m5UdU2XR4zjs990krNthro8Hy3lHvGSCMiMzM8EetheQK1UaUlaYNRmQUrPKiiyVtEo/Se6ZZGETRlKfwJDGoG0HBcqdFVFi1WstFIpclJkvcUZEaXCwR7yiLKjwWTUZiQWtQKJeVvsVcrXgInxX6mzFpkInEoqCmoqHWWnC3jU4ojUozwZKWScDTblQlOzO63JT7kve3+6FuqN3e9O+Z5z7cj5blPtJQSH3UEhfSoJLhkSV/wCIsHwVw5lxGXMlG6ItoQJMOLVnrWjN3MdClz02ylhxDT625KG23u597fL9kpxfRkeFdFnGMiSO2rT6nSYE+qUSPBqsK3YJsUhdNkTGmEuypXSO9zIVvmXBBYMzJHScS5Y52VUpi5pTVTJKppK3u6TeUbufTv53s+3I+kVac3KTJROlIkpIyS+mQsnCIzMzIlZyWTM88eOTF5o8FG9oli29GuW4o8W3u6SRMgsIVKpr01iItxjfdYUy270zJGs/JcPeNJJNB4URjSNy006NcdVp5paQcSW6waY7putp3VmWErPioixwM+Ji1i1GZBcccjS5EZxwjStbDym1LI+ZGZGRmX4i3GMzUiAAAYsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl6fb6pLCJEl8orDhZQRJ33FlnGSTksFw5mZewWIm18QkzRiAEi8HIHrCR8Kn6w8HIHrCT8Kn6xs6dpjzQjoCReDkD1hJ+FT9YeDkD1hJ+FT9YdO0c0I6AkXg5A9YSfhU/WHg5A9YSfhU/WHTtHNCOgJF4OQPWEn4VP1h4OQPWEn4VP1h07RzQjoCReDkD1hJ+FT9YeDkD1hJ+FT9YdO0c0I6AkXg5A9YSfhU/WHg5A9YSfhU/WHTtHNCOgJF4OQPWEn4VP1h4OQPWEn4VP1h07RzQjoCReDkD1hJ+FT9YeDkD1hJ+FT9YdO0c0I6AkXg5A9YSfhU/WHg5A9YSfhU/WHTtHNCOgJF4OQPWEn4VP1h4OQPWEn4VP1h07RzQjoCReDkD1hJ+FT9YeDkD1hJ+FT9YdO0c0I6AkXg5A9YSfhU/WKT9sEtBnBld0uEWehdb6Nav8ATxMj/DJGJ07RzQwQAA1swAAAAZuJbWWkOTZPcu+klJaQ30jmDLJGfEiL8DPPsFfwcgesJPwqfrGyLu1LDmhHQEi8HIHrCT8Kn6w8HIHrCT8Kn6xenaOaEdASLwcgesJPwqfrDwcgesJPwqfrDp2jmhHQEi8HIHrCT8Kn6w8HIHrCT8Kn6w6do5oR0BIvByB6wk/Cp+sPByB6wk/Cp+sOnaOaEdASLwcgesJPwqfrDwcgesJPwqfrDp2jmhHQEi8HIHrCT8Kn6w8HIHrCT8Kn6w6do5oR0BIvByB6wk/Cp+sPByB6wk/Cp+sOnaOaEdASLwcgesJPwqfrDwcgesJPwqfrDp2jmhHQEi8HIHrCT8Kn6w8HIHrCT8Kn6w6do5oR0BIvByB6wk/Cp+sPByB6wk/Cp+sOnaOaEdASLwcgesJPwqfrDwcgesJPwqfrDp2jmhHQGZnW4bLC3okgpSG0mpaFI6NxKS5njJkZfgefYMMMJszZ7somvYAAGKgAABjJ49PATeqESKjIQksJbX0aSLzJT5JF/wBiIQlP3i/ETasY76Td7JJ6ZeTLnjJ5HRddparfeGx9OtAavfNFOuzZ8a3rfJKllNl+UpxKc7ykpyWElg+KjL2ZFzf+zrV7RoHf+l1GPcdDJon1vx0G24hoyIyc3TMyUnjzSZnjjjnjqivW1Tri0yfpMSDHqEJ2l7kGO6hKkGfQ/sTLe4EZHumR+Y+Iv7Ppi6bY1Dp1TbS25HprEeU2syUSTS0lLhGfIy4H7B+rWf6bw02OjMTXlrz1nv8AjtT9/d+ZWv6hxMW+rExTmpy0jt+e9f19vo/O4BXnJYRPlJinmKTyyZP0t7x7v/jAoD8vmKTR+kxNYqAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAG8aPKSeFJ4kZeYyAeK+6r8DAYa5mks3BPSgt1PS72C5EZkRn/5MxjBlbq/mKf8A6y/SkYoclr+Ut8doBe0RhEmtQGXC3m1yG0qL0lvELIZG3P5hpn+5b/UQWe8E9mfedU6646s8qUo1KP2mY2xa2z1Ln0CPXLnr9Ps+lyd046pyiNxwlFlJ4NSSTkuRGeceYhru0W4Tt3URFSMip6p7CZGeXRm4nez7MDtbWOm1qo06ntUGhN1KcbzrSpxpZWunNLbNDjjTbq0JUtSTNBZPBZMz9B/acH4ddYu7vb+9jm5KUsxX5r+Pn/X3mIfJ8W4he4W8u7m6nl5q1tTT4p+fj89/tEy5d1P0HremsJNT7oYrFDUok93Ri3TbNR+TvoMzxnzKIzL28s60He1TotNpOjEqlS2HotKiUNUdbMxaVutoQzgiWaTMjURkXFJmWeQ4IRncTvfewWfxGvjnDrvh97Y6XxFqK070n/dPyz4Nj7zHXdvq/M2ZpXtWP9V/D0AAfNPogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxT1GifGMv/kSXH0GeD/8ABmIhMaSxMkNI4IQ6tCSP0EoyIS6F++xvzUfqIROpfxGX+e5+oxqve0M7C3AAHO2gAAD1P3i/ETerfxWZ+cv/AJEIT94vxE3q38VmfnL/AOR0XXaWq33htzSraVqVgUpijVKB35pTBbrBoc6N9lOTPdIzIyUnjwI8Y5ZxwF1qbtRVG8qPIpFFpx0WFJQbb77rvSSFoMuKU4IiQR+cyyZl6MjRwD3o4xjouP7aLyeXt9K08V7vFnhOCm//ALibuObv9aV807HIAAeM9cAAAADJFzMiAAAAAAAAAAAAAAyR+cgAAAAAAAAAAAeK+6r8DHo8V91X4GAxF1fzFP8A9ZfpSMUMrdX8xT/9ZfpSMUOS1/KW+O0AyNufzDTP9y3+ohjhkbc/mGmf7lv9RBZ/lBPZnFFnJHyG/NPtq6fbtJYp1wUxVaRHQTbUth0m3jSRYIlkojJR8PvZI/TkaEPmf4jwezhMdiMDb58PapM/v/Dy8Vg7jG2OS/s1iP8A3dtzVraIqmpNPXSIkJNHoq1Ep1rpOkefweSJaiIiJPI90uZ8zPA1GADDE4q+xl51b+1zWmeHw1zhLvpXNmkAAA5HUAGQAAAAAAAAAAAAAAAAHoDwAAAAAAAAAFeF++xvzUfqIROpfxGX+e5+oxLIX77G/NR+ohE6l/EZf57n6jGq97QzsLcAAc7aAAAPU/eL8RN6t/FZn5y/+RCE/eL8RN6t/FZn5y/+R0XXaWq33haAADawAAAAAAB2HseW4qZoHqfW6TY1n3rdcGs05mE3eDMc47bS0K6UiceWgk8OJFvlkyLgYzWougunGqmqE5tip0ewJNFsFNxXQzaSUTqbDqCHUk62gkGZGRNqyaWzzkk+kzHK1F1VqtD0oujT5mLBeotwzos+W882pT6HI/3CQe9ukR+fKTP0GQ+dN9UqppfEuyPSY0J1u5aI9QZfdTaj6Nh1STUpvdUWF5SWDPJc+AxpNarVt+k7O2m7NAtu4Lhvy4KdRb0rEmm2suHRG3nlMNOpZ7qmpU4noyNxRFuIyrHH8JxV9CbF090GkUbUmoO0ep0nUeZRXa7b1JblTJSCioNCSU4pO6wRK6UyMzMuRJMxpXTracuLT21aXby6FbN1U+jTl1Ki+EdOOSulSVGRqcYUS04yoiVuq3k5LOBlaJtf3ZCoUulVug2xeseZcDtzSVXJT1SFOTlkkt/yXEkkk7pGkkkXnI8p4BST4bZpP2dsuLWLvbrVWrlSp9IrTdHheCdKalSZCVsof7rdQ66hLbSEOo3iI1Kzki82dHzNn9+h7T0XSGqVVJm5XY9IVVYSCUSmnTTuPISZ4yaFpPdM+B5LIyUba8vOTULhfuWm29fEWt1RNbep9x083o8ealBNodZShaTRhCUo3cmkySRGR8cwSn6s1uBq5C1GNqC9XotUbqyWSjE1FN1CiUlHRN7pJQWCLdTjgXPPEIr9T4b8l7Kel9No0usSNR7kVTqTdp2dUyat9rpVzFKw0pgjdx0XM1KXxwR4TyIZO2fs/wB2TVb3TVKtXqlT6Dch25GK1qU1JlPqJCHFSnUOuoS2yhLiN4iNSjPOPNnR1Q2iLjqVvVmjOwqYmLVbuReb60NOb6ZiTMybSe/gmuPIyNX+YSRzbBuqoVy6Ztat61bkp1wVdNedolZp634cWcltLZPsF0hLSe6lJGRqMjxxIxKWl+EireyVQ9L6fe1V1IvKZTqPRLhRbMB+3qciY7OfWwT5PqStxJIaS0pKjIjNWd4i5Fnb+vGkVunJ13jUim0Smx4KbOYiPR6KS1sd0khLjrG55be9neUlCTU5nHMc1UTakumnRbohVKj2zc1Kr9QTV3qXWaUlcSLNSndQ/HaQpBNmlJJTu8UmSSyR8c5up7at/VKu3RWijUWJU7gkUeXIfYir/Yu01RKjqbSazIt40lvkZGR+bdCkpWEh162QadpTpfUbvpVZuB4qXVmKVJi3HSmoK5JPJM0SGEIdU4hGS+68lKsebhx5hG5L/wBqCuagWjdNuvWzbFHg3JVma5PcpMN1p5cxBmZumtTqjVvGo8krJF/SSRpsZRX6k/YAAFQAAAB4r7qvwMejxX3VfgYC6h2NUb/veqU+mOwGX2kdOpVQlojN7pEgsEpXAzyouH4+gSHxZ7u69bHz9jtGvLsSldwzyUklFvlwMs/0pGI6Fv8A+JH/AOpBZvLizWLy7mZr/wAqfqktduxiLU1u7yIj72a/9odcab7KlPr+m0yBciobNeKetcWq0aWiUbaDQgiQo0+Sosko9w+JZyRlkaMu/TCfpVqBSqZNnQKiTkklMvwXiXlKXCSe+nm2rP8ASft5iyt7V647SsSVatElFSocuUuVIlRSNMhe8lKdwll91OEF93BnnnjgI3bvG46co+KlSmzUo+ZnvFxM/OY9PGYrA31zdXdxdUtxEVmv67fP5+HnYTDY26vry3f3sTYmfiKfvv8AH4+WdPmf4jwenzP8R4PMeqAAAAH90/wAD4lgB3/ceiFmXtbOiTdv0CBFvKi0O37grMJiKhKa3S5LyWpLi0kX7RxlaCUs1ZM0OqGuNW9n6waJed93deNfnWfbEy+J9vUOl2xSGpCkdCrLji0qWhDbKM4JKcqPB4LkNTwtqW86Xf8Ap/eEFMCFVbLo8ehQkstr6KTFaJad19JryrfJaiVg0lywRGQycba8uhU2vrrFuWrdFOqtcXciKVXKcuRGgT1fedj/ALQlJzgspUpRHjiXMYUmGVYTOt7HtuacUfUeff8AfMylNWhXY9KQ5SqaUnvg3Iik+wpCDPKVq30ZIz3UkSueCGRp2xpZUsotMkahVeHcciyGb36PvKhyIzG3CW82pZOEpSyLO6REWcFk+OBpi8Noy8L+tW76JX3IlQ8Ka4zX585TRpfJ9pvo0IbwrdS2SMFu7p4wWDGYRtW3aivNVYqfR+6W7N8ByT0Lu53FubnSY6TPTY/q+7/lFpaT4TRjZOtqtXnp+3RLpuGoWneFuSLgirRQemqxdCrcVH6BtRtkpSsYWpRITx3j5ZntP2YKFpU9fanyVcMCp6VVOv05uvwY5TKbIbebb8ro1uNk6kz4LbVwyZDR9sbV92WtTrbprNMok2l0a2pNqKhTI7im58B9wnHEvmThK3t5JYUg0chcTNrm6ZVIKmt0K24ERNqy7Obagw3GUNQJDqXD3UE5glpNJElXozvEo+IlLS/DZdy6I2rd+pelFpzI9Yjza/YtHkwmrIosQlvSHOkN1yUTrqUnhBbyns5PHEiwLilbD9tXLdN9nbd1XHd9qWtKjUk3bdpceTUJk9aTU8ltKnENdCyWMryeTyRZxk4Ba22xd1rVFqai3LXnvt2vFtElTIz5n3Cxv8CUh5KkqXv+WaTIj3U4IsDA0racm0RysQ4Vg2QzalWKOuVaSqa8umKkMZ6OSlKnjcQ7hWDMl4MiIjIKSnwtdRtFYOjG0M1Ylz1ORUKE1MiKdqFMYT07sR7dUkybUrdS5hW6pJq4GSsHyHR+sGzxY2o+v9+UykMVmhUiz2YVOVSLStqOnDq8mpZvKcQz0aUqSZuPrS6szMiSZIIz45vDUCp3vfL91VBmCzUHX23yjwIiI0Zom93cQhpGCSkiSRek+JmZmeRsurbXF03BPvp6r0C2KvEu+ox6vMp0+C47GYmMoJDTrSelI+BJLyVmtJ+chaSfCW3BsiUHTav6nv3teU9m0bKnQacmXRKah6dUHpbaXWkpaWskIJKFEajNR+wZGztKdH42kuv0sq7LvUqDGgP0q4YVMShTDbqyJvo0uKI0um4ZtOkZGkkJ3kGZngQmbtjXbWLsvGr1igWxXYF2lDVVqBU4Lj1PedjIShl5KOkJaFkSS+6rB+jAxSdqi7JNQ1Dk1Wm0GttXxEZh1GFLhGiOyhn93OOhtaejNrgaeJllJGeTCknw2BqhsdUiwNHpF3Q7mrNaejU+NOKpRKSiRQpqnd3fYZksuLW0pG9jefShJmWMlkcuHwMburu1vdlbtKu0ZNDtelzq/AbplZr1MphsTqjHRjyXML6IjPdLKktkZ+waQFiv1Jp9AAAVAAABXhfvsb81H6iETqX8Rl/nufqMSyF++xvzUfqIROpfxGX+e5+oxqve0M7C3AAHO2gAAD1P3i/ETerfxWZ+cv8A5EIT94vxE3q38VmfnL/5HRddparfeFoAANrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4r7qvwMejxX3VfgYDEXV/MU/8A1l+lIxQyt1fzFP8A9ZfpSMUOS1/KW+O0AyNufzDTP9y3+ohjhkbc/mGmf7lv9RBZ/lBPZnT5n+I8Hp8z/EeDraAAAAAAAAAAAAAAAAAAAAAA5AAAAAAAAAAAAAAAK8L99jfmo/UQidS/iMv89z9RiWQv32N+aj9RCJ1L+Iy/z3P1GNV72hnYW4AA520AAAep+8X4ib1b+KzPzl/8iD/hwMTRDp1tJzIyelUst55pHFTa/PkueDPJkftHRdfWGq2oAK/cUnqz3uldgdxSerPe6V2DdSWtQAV+4pPVnvdK7A7ik9We90rsCkigAr9xSerPe6V2B3FJ6s97pXYFJGUsqjRrhuiBT5inkRXjX0io+OkIktrX5OeGfJ849umlwoDtMfpqZKIdQp7M1DUpaVuNmo1EpJqSREosoMyPBcxjG40tpZLbZkNrLkpCFEZf3IhlaRVpdJZW2qhwamR43VVOAp9TZF/Sg8lup45x6RaCU0mwaJPsxic6qopqjsRx8lJcR0BKxLUnKd3ewRRePHjv+bd43MjTq3UXJFobMqrOVBl5TcpJM8JRJYU7+xM0ESVKNJJQWV7xLI/Ng4FMkVCZJddTGciIcPJR4jS22Wy4+ShHmLirh/mP0mKkmqV6bFiRpEupvxoeDjMuLdUlnHLcI/u49gf4E3kW1B8NLbgN0uXCak0RD3QSEI6dtZtvK3nCNvCz8kiyaSM+B8DIWdvabxqpp1KrUg5LE9MSRMYNKlKbUloyI0qSTRkkzPJeU4SuRkkyEPRKrDb6n0vVFL6i3VOpW6SzLOcGrmfHiPESKqnJGc1xtTnSLacNw0OK85qTyVkuB55lwAX1i0Bm57uptLk90dBJWtKu5sdKeG1KIk54ZM0kXH0iQvWXR4kt1+WxVosJNDKrnT3VoTLaX0pN9EtRoIiJX3iUaSMiUXA/PjCvCoMvNvRLdo9OkNqNSX4VKU2sspUkyzvHwMlH/wCBHnEVB1a1uFMdccTurW50ilLLhwUZ8T5Fz9BBQTRqxaXOtGRVI7NWT0sObOZmGpCo0UmFYSw8ZI4uK9JGnipGEnkxJrg0vpdRuYyRGqVGbOallwlNJ6OUjuM3zOKkklxLo93HlZNaT58BqVKKgiMuOlMtMdaiUtkiWSFGXIzTyM/aZCp09WN1h03J5uMK3mVmpwzaPOcpP+k8+gP8C5umLSI05k6KuWqG6wlw0TUGSm15MjSSjSjfTwIyVulzMvMMMMlVJVXrcs5VRcnT5SiJJvSd9xZkXIsnk8C07ik9We90rsEoKACv3FJ6s97pXYHcUnqz3uldgUkUAFfuKT1Z73SuwO4pPVnvdK7ApIoDxX3VfgYuO4pPVnvdK7AOIplBuyyVFjEfluupNP8AYiPmZ+YiCisBdX8xT/8AWX6UjFC5qc46lUZMo07nSrNRJ/wl5i/sWBbDjtTWZlvjsDI25/MNM/3Lf6iGOFaHKXClsSG+K2XEuJz6SPIkTSYknslB8z/EeC4JjuxJyISVPxlnkujLeNGeO6oi4kZcv+B53FJ6s97pXYO2jQoAK/cUnqz3uldgdxSerPe6V2BSUUAFfuKT1Z73SuwO4pPVnvdK7ApIoDxxW42tXoSZ/wDgXHcUnqz3uldgdwyerPe6V2BSVTG+bQpFDhyV0w5/TQqgiC+ctaFJc32CdJSSSkjTg8lg85LB8OQp2Ha1IrlNqsqqlPV3MoibTCcQjkw+8re3kq5kxul6N7PHGBgqbNnU+Wb7lPTUiPJqYqUdb7SlYxvGkzLKiLkfmFSrVObVHEKbpUelJSk0m3S4i46HM54qIjPJ4Myz6DMvOKidTdJIMW3rkldJLTIgpmvxHDUakONsL3cLSlrdSZ4Mjy4k88SSZDF6hWBAtenvPw2apHVHmNRd+obpomEtjpd9nCS4JMsHxV95J5I+Ahil1RbDjJrn9C4ZqW3vObqjMsGZlyMzLhkxlXbiq0ytKqc6C3VHFb3/ALafFW7HTkiIzS3kiTyI+Hn4gL7S5VKZuCS9VKa5UijwZMploloJBLbaUrKkrbWSuXAjLBHgzJRcBaMRmanbFz1FuM4241JjrQeEGkkOOL8nggt3GOaTSR8jLBELKrVCXVXm3UUiNSzQhTZppcNUdKyPnvERnn0fgLVl2qx46o7S57TCs7zTZuJQrPPKS4GAlV7W7RbOfKPT5M5yrwZKGn1SWMsOkaN41pygkpLPJOVkpJ5zwEgRYUWXf9yKk0mousR6sw3Gp9NZJBm08+oiewaTI2Ukki4Fg94i3iIa7m1GuVKDGhS5FRlQ4xYYjvKcW20WMeSk+BcOHAUifqxLSsnagS0t9ClRLdyTf+Aj/wAP+XkAmdWsuE/SblqEeJNVLhzZijNH7GKwy28SS3ctmTnA8GRLSaeBEkxr0XpnUjjrYM5psOK31tH0m4pX+I08jP2nxFDuKT1Z73SuwBQAV+4pPVnvdK7A7ik9We90rsEpIoAK/cUnqz3uldgdxSerPe6V2BSRQAV+4pPVnvdK7A7ik9We90rsCkhC/fY35qP1EInUv4jL/Pc/UYlv8K3ZkxJtNtnvoQvyVOqLklJHx58z5EWRDHHFPOLcWeVrUalH7TPJjTe/SGyw+QABztoAAAD6QtTSyWhSkLLkpJ4Mv7j5ABcd8pnW5Hvldod8pnW5HvldotwFrKLjvlM63I98rtDvlM63I98rtFuAVkXHfKZ1uR75XaHfKZ1uR75XaLcArIuO+Uzrcj3yu0O+Uzrcj3yu0W4BWRcd8pnW5Hvldod8pnW5HvldotwCsi475TOtyPfK7Q75TOtyPfK7RbgFZFx3ymdbke+V2h3ymdbke+V2i3AKyLjvlM63I98rtDvlM63I98rtFuAVkXHfKZ1uR75XaHfKZ1uR75XaLcArIuO+Uzrcj3yu0O+Uzrcj3yu0W4BWRcd8pnW5Hvldod8pnW5HvldotwCsi475TOtyPfK7RSdfckKJTri3VFwI3FGoy/7j4AKgAAIoAAA+2nnGF77bi218t5CjSf8A3IVe+Uzrcj3yu0W4C1Rcd8pnW5Hvldod8pnW5HvldotwCsi475TOtyPfK7Q75TOtyPfK7RbgFZFx3ymdbke+V2h3ymdbke+V2i3AKyLjvlM63I98rtDvlM63I98rtFuAVkXHfKZ1uR75XaHfKZ1uR75XaLcArIuO+Uzrcj3yu0O+Uzrcj3yu0W4BWRcd8pnW5Hvldod8pnW5HvldotwCsi475TOtyPfK7Q75TOtyPfK7RbgFZFx3ymdbke+V2h3ymdbke+V2i3AKyLjvlM63I98rtDvlM63I98rtFuAVkXHfKZ1uR75XaHfKZ1uR75XaLcArI+nHFvLNbi1OLPmpajM/+5j5ABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/2Q==", + "definition": { + "version": "0.1.0", + "name": "Media Probe Normalize", + "description": "Media probe and normalize. Probes one artifact and returns the raw probe info and the facts projected through the mapping input. The default mapping is a guess at the probe key layout and must be confirmed with one run on a media worker. Needs the media-worker capability. No network, no credentials.", + "nodes": [ + { + "node_instance_id": "probe", + "node_id": "n_media_probe", + "node_version": "1.0.0", + "title": "Probe media", + "params": { + "timeout_seconds": 15 + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "norm", + "node_id": "n_map_fields", + "node_version": "1.0.0", + "title": "Normalize facts", + "params": { + "mapping": { + "duration_seconds": "duration_seconds", + "width": "width", + "height": "height", + "fps": "fps", + "has_audio": "has_audio" + } + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + } + ], + "edges": [ + { + "source_node_id": "probe", + "source_output": "info", + "target_node_id": "norm", + "target_input": "value" + } + ], + "graph_inputs": { + "artifact": { + "type": "artifact", + "required": true, + "default_node": "probe", + "default_input": "artifact" + }, + "mapping": { + "type": "json", + "required": false, + "default_node": "norm", + "default_param": "mapping" + } + }, + "graph_outputs": { + "facts": { + "node_instance_id": "norm", + "output_name": "value" + }, + "raw": { + "node_instance_id": "probe", + "output_name": "info" + } + }, + "metadata": { + "template": { + "category": "media", + "status": "mock-only-probe", + "summary": "Probes one audio or video artifact and projects the facts into a stable shape.", + "composite_interface": { + "inputs": { + "artifact": { + "type": "artifact", + "required": true, + "default_node": "probe", + "default_input": "artifact" + }, + "mapping": { + "type": "json", + "required": false, + "default_node": "norm", + "default_param": "mapping" + } + }, + "outputs": { + "facts": { + "type": "json", + "node_instance_id": "norm", + "output_name": "value" + }, + "raw": { + "type": "json", + "node_instance_id": "probe", + "output_name": "info" + } + } + }, + "requires": { + "nodes": [ + "n_map_fields", + "n_media_probe" + ], + "panels": [ + "json" + ], + "capabilities": [ + "media-worker" + ], + "secrets": [] + } + }, + "canvas": { + "positions": { + "probe": { + "x": 80, + "y": 80 + }, + "norm": { + "x": 380, + "y": 80 + } + }, + "recommended_panels": [] + } + } + }, + "tags": [ + "media", + "video" + ] +} diff --git a/graphs/media/video/media-probe-normalize.thumbnail.jpg b/graphs/media/video/media-probe-normalize.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dfeeb1db72832449092d4855711b546cdcbba831 GIT binary patch literal 16405 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 OfByX+EkJcL_P+pn4($g3 literal 0 HcmV?d00001 diff --git a/graphs/pipes/README.md b/graphs/pipes/README.md index 49eab19..8324087 100644 --- a/graphs/pipes/README.md +++ b/graphs/pipes/README.md @@ -12,9 +12,20 @@ These examples demonstrate small reusable data-ingestion and transformation pipe ## HTTP +- [Audit Log Write](http/audit-log-write.notes.md) · +- [LLM Call](http/llm-call.notes.md) · - [Plain HTTP Response](http/plain-http-response.notes.md) · +## Jobs + +[Browse job examples](jobs/README.md). + +- [Approval Gate](jobs/approval-gate.notes.md) · +- [Job Run](jobs/job-run.notes.md) · +- [Render Job](jobs/render-job.notes.md) · + ## Transforms +- [Fallback Match](transforms/fallback-match.notes.md) · - [Open Tickets Pipe](transforms/open-tickets-pipe.notes.md) · - [URL Extract Pipe](transforms/url-extract-pipe.notes.md) · diff --git a/graphs/pipes/http/audit-log-write.notes.md b/graphs/pipes/http/audit-log-write.notes.md new file mode 100644 index 0000000..471b029 --- /dev/null +++ b/graphs/pipes/http/audit-log-write.notes.md @@ -0,0 +1,92 @@ +# Audit Log Write + +![Audit Log Write example thumbnail](audit-log-write.thumbnail.jpg) + + + +A reusable audit-record append built from generic nodes. It builds one record from +an actor, an action, a subject ID, and a payload, POSTs it to a sink URL the caller +supplies, and reads the new record's `id` from the response. Use it to leave a +durable trail of approvals, write-backs, exports, or filings from any parent graph. +Import it independently, or publish it as a composite. + +**This graph performs an externally visible write.** Every successful run appends a +record at the sink. Re-running after an ambiguous timeout can append a duplicate, +and the graph cannot delete a record it wrote. The graph references no secrets, +environment-specific graph IDs, or generated media. + +## Data flow + +1. **Audit record** (`n_json_template`) builds `actor`, `action`, `subject_id`, + `payload`, and an optional `occurred_at`. +2. **Append record** (`n_fetch_url`) POSTs the record to `sink_url` with the + `headers` input. The request has a 30-second timeout. The response-size limit + is the node default. +3. **Record id** (`n_json_path`) reads `id` from the JSON response. + +## Inputs and outputs + +| Input | Type | Meaning | +| --- | --- | --- | +| `sink_url` | `url` | Required endpoint that accepts the record. Receives the `headers` value | +| `headers` | `json` | Required request headers, built by the parent graph | +| `actor` | `str` | Required identity that performed the action | +| `action` | `str` | Required short action name | +| `subject_id` | `str` | Required identifier of the thing acted on | +| `payload` | `json` | Required structured details of the action | +| `occurred_at` | `str` | Optional timestamp the caller supplies | + +| Output | Type | Meaning | +| --- | --- | --- | +| `record_id` | `json` | The `id` field of the sink response | +| `response` | `json` | The full JSON response from the sink | +| `status` | `int` | HTTP status code | + +Subfork has no clock node, so the graph cannot stamp the time itself. Pass +`occurred_at` from the parent or let the sink stamp the record. The record template +marks that key as optional (`occurred_at?`); omission of the field when the input is +absent is assumed and has not been confirmed in a live run. + +## Authentication + +The graph never holds a credential. The parent builds the headers from its own +secrets and passes them in: + +1. In the parent, add a JSON Template node with the template + `{"Authorization": "Bearer {{ secrets.AUDIT_SINK_TOKEN }}", "Content-Type": "application/json"}`. +2. Connect its `value` output to this graph's `headers` input. +3. Add the secret `AUDIT_SINK_TOKEN` in the parent graph's **Graph Settings → + Execution Profile**. Never paste a token into a graph, a fixture, or these notes. + +Use whatever header names and secret name your sink requires. Whether node outputs +and execution logs redact header values has not been verified, so do the first run +with a throwaway token and inspect the logs before using a real one. + +## Security guidance + +- **Use a literal URL in the parent graph.** `sink_url` receives the headers, + including the token. Do not feed it from request data, model output, or any other + untrusted value. +- **Use a low-privilege, append-only token.** The token should allow creating + records and nothing else. Do not reuse it for other services. +- **Do not put secrets in `payload`.** Records are stored by the sink and are + usually readable by more people than the original data. + +## Retry and duplication + +The graph does not retry and does not send an idempotency key. If the sink supports +one, add it to the payload or the headers from the parent. After a timeout, look +for the record at the sink before running again. + +## Using it as a composite + +Publish the graph, pin the version, and call it from a parent after the step you +want to record. Connect the step's result into `payload` and `subject_id`, and use +`record_id` to link the record from later steps. + +## Validation status + +The graph passes the repository validator and the production node-catalog check. +It has not been freshly imported and executed, and no live write was made while +adding it. The Subfork version used for a manual test is not recorded because no +manual test was run. diff --git a/graphs/pipes/http/audit-log-write.subfork.json b/graphs/pipes/http/audit-log-write.subfork.json new file mode 100644 index 0000000..2e23eb7 --- /dev/null +++ b/graphs/pipes/http/audit-log-write.subfork.json @@ -0,0 +1,256 @@ +{ + "format": "subfork.graph/1", + "thumbnail": "data:image/jpeg;base64,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yDzGciGWriZX2awNttJQW+KVkMlOy4NZI2ZrHhwcS0PEbn7XOaJHMLwDgHkFFo62phmhmjqZo5oQGxSMlcHRgdgaQctA9GOxTeC0rAXPh/QUNrq7rSaQprnXu062tjpRbaiCAztuHVOkbTOdvGIiC5meY57QCvMusdDo7SmrqpunqKKpmttjqquy1THup6OrkklLmmMuyBgBwjceW/B7MLVNr1pdrTb7rSQ1Urm3FjGPlfNIZIi2Vsu+M7vNcXMGT6QvHkq55eu3zyv68h0u6QnrDnILsnzjn0lN6PpFpS/iNZrTZuI8tK2CS3WiRtHUSQ0Y3ugZLBFJIIg888F7tocfUMrz9EG7w6wjm0tEam5wNqJaQSsaZNrY3kvDScdYGZcAMncBtyQFHpZpKh++WR8r8AbpHFxwBgDJ9QAC5UtVPQ1MVRTTSU9RE4PjmieWPY4dhBHMH6QqX53W+mxuKNSy58PdDV8FRc6iForqfrL4d1a94ex7iH5IdCN4DfUd4K9u/wBmsTxqSzxaet9CLfpeju0dwiY/wkVBjpXPeXF2NjhK7LMY9PatT3m/XPUdWKq7XGrudSG7BNWTuleG+oFxOB9CxzWVDnPcaiUuewRvJkdlzBjDTz5jkOR5ch6lbeRZvt/DuxVWpr3Zbnp+Gwaat1XRQ2/UDA+OSrbJURR+dM5xZN1sTpH5A8zGRgArstumor1bKe06g0tDo62T6zpqORtPHLT9bG2Coww73EuOcN6wfG3+sLQM1dU1FNFTy1M8tPDnqoZJXOZHnt2tJw39i+1NyrK1gbUVlRUNAaA2aZzwAAQ0YJPZk49WSp3o7Fm/HaI09JUWmqn006SrMtc00VFZ56RskccAcHmlmlD5zE8jIYQXjIyS0rWHFmwMsOoKIxUtHRxVlBFVNjooJqdpBLm7nQS+dC47c7MkdhHJyict0rZ6qOplraqWpiAEc753ukYB2bXE5GPRgrqqamasnfPUTS1E7zl0szy97j9LiSSomYmOhEOtERUWEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARF69v0+6pgZUVM4pYJBlgDd8jxnGQ3IwOXaSPoUxE1coRM2eQikXwcoPnCo+6t/GnwcoPnCp+6t/GtPjqV3oR1FIvg5QfOFT91b+NPg5QfOFT91b+NPjqN6EdRSL4OUHzhU/dW/jT4OUHzhU/dW/jT46jehHUUi+DlB84VP3Vv40+DlB84VP3Vv40+Oo3oR1FIvg5QfOFT91b+NPg5QfOFT91b+NPjqN6EdRSL4OUHzhU/dW/jT4OUHzhU/dW/jT46jehHUUi+DlB84VP3Vv418OmqJwwy4yh3oMlNhv7cOJ/yUfHUb0I8iya+3zW2o6qYNyWhzXMOWvaewg+pYypMW5SsIiKEiLOtlolue94eyCCMgPmk7AT2AAcyeXYP8l6nwboPnCoz9FKPxq8UVTzhWaohHUUi+DlB84VP3Vv40+DlB84VP3Vv41b46kb0I6ikXwcoPnCp+6t/GnwcoPnCp+6t/Gnx1G9COopF8HKD5wqfurfxp8HKD5wqfurfxp8dRvQjqKRfByg+cKn7q38afByg+cKn7q38afHUb0I6ikXwcoPnCp+6t/GnwcoPnCp+6t/Gnx1G9COopF8HKD5wqfurfxp8HKD5wqfurfxp8dRvQjqKRfByg+cKj7q38a8252WS2sbKJGVFM520SsBGHYzgtPMH/I+gqs0VRF5TFUS89ERUWERd9FRTXCpbBA0OkcCeZAAAGSST2ABOqHQikLdNUbWgSXGRz/SYabLf2Fzgf8AJffg5QfOFT91b+NafHUrvQjqKRfByg+cKn7q38afByg+cKn7q38an46jehHUUi+DlB84VP3Vv40+DlB84VP3Vv40+Oo3oR1FIvg5QfOFT91b+NPg5QfOFT91b+NPjqN6EdRSL4OUHzhU/dW/jT4OUHzhU/dW/jT46jehHUUi+DlB84VP3Vv4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", + "definition": { + "version": "0.1.0", + "name": "Audit Log Write", + "description": "Audit record append over HTTP. 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. This is an externally visible write, and a retry can append a duplicate record. There is no clock node, so the caller passes occurred_at or the sink stamps it. Credentials arrive only through the headers input. This graph references no secrets.", + "nodes": [ + { + "node_instance_id": "rec", + "node_id": "n_json_template", + "node_version": "1.0.0", + "title": "Audit record", + "params": { + "template": { + "actor": "{{ inputs.actor }}", + "action": "{{ inputs.action }}", + "subject_id": "{{ inputs.subject_id }}", + "payload": "{{ inputs.payload }}", + "occurred_at?": "{{ inputs.occurred_at }}" + } + }, + "custom_inputs": { + "actor": "str", + "action": "str", + "subject_id": "str", + "payload": "json", + "occurred_at": "str" + }, + "exposed_inputs": [ + "actor", + "action", + "subject_id", + "payload", + "occurred_at" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "write", + "node_id": "n_fetch_url", + "node_version": "1.0.0", + "title": "Append record", + "params": { + "method": "POST", + "timeout_seconds": 30 + }, + "custom_inputs": {}, + "exposed_inputs": [ + "body" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "id", + "node_id": "n_json_path", + "node_version": "1.0.0", + "title": "Record id", + "params": { + "path": "id" + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + } + ], + "edges": [ + { + "source_node_id": "rec", + "source_output": "value", + "target_node_id": "write", + "target_input": "body" + }, + { + "source_node_id": "write", + "source_output": "json", + "target_node_id": "id", + "target_input": "value" + } + ], + "graph_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" + } + }, + "graph_outputs": { + "record_id": { + "node_instance_id": "id", + "output_name": "value" + }, + "response": { + "node_instance_id": "write", + "output_name": "json" + }, + "status": { + "node_instance_id": "write", + "output_name": "status" + } + }, + "metadata": { + "template": { + "category": "pipes", + "status": "network-probe", + "summary": "Externally visible write: POSTs one audit record to a caller-supplied sink and reads back its id.", + "composite_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" + } + } + }, + "requires": { + "nodes": [ + "n_fetch_url", + "n_json_path", + "n_json_template" + ], + "panels": [ + "json" + ], + "capabilities": [ + "public-http", + "external-write" + ], + "secrets": [] + } + }, + "canvas": { + "positions": { + "rec": { + "x": 80, + "y": 80 + }, + "write": { + "x": 380, + "y": 80 + }, + "id": { + "x": 680, + "y": 80 + } + }, + "recommended_panels": [] + } + } + }, + "tags": [ + "pipes", + "http", + "operations" + ] +} diff --git a/graphs/pipes/http/audit-log-write.thumbnail.jpg b/graphs/pipes/http/audit-log-write.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e08723e26d1eb0835349a70fcf053860966020fb GIT binary patch literal 16956 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 + +A reusable synchronous chat-completion call built from generic nodes. It builds an +OpenAI-style chat request body from a prompt, a system message, and a model name, +POSTs it to a URL the caller supplies, and extracts the reply text from the +response. It is provider-neutral: any endpoint that accepts that request shape and +returns the reply at a known path works. Import it independently, or publish it as +a composite and call it from a parent graph as a single node. + +The graph references no secrets, environment-specific graph IDs, or generated +media. + +## Data flow + +1. **Chat request body** (`n_json_template`) builds `model` plus a `messages` array + with one `system` and one `user` message. +2. **Model call** (`n_fetch_url`) POSTs the body to `url` with the `headers` input. + The request has a 60-second timeout. The response-size limit is the node default + and is not overridden here. +3. **Reply text** (`n_json_path`) reads `reply_path` from the JSON response. + +## Inputs and outputs + +| Input | Type | Meaning | +| --- | --- | --- | +| `url` | `url` | Required chat endpoint. Receives the `headers` value, so see the security notes | +| `headers` | `json` | Required request headers, built by the parent graph (see Authentication) | +| `prompt` | `str` | Required user message | +| `system` | `str` | Required system message | +| `model` | `str` | Required model name the endpoint understands | +| `reply_path` | `str` | Optional path to the reply text; defaults to `choices.0.message.content` | + +| Output | Type | Meaning | +| --- | --- | --- | +| `reply` | `json` | The value found at `reply_path` | +| `response` | `json` | The full JSON response from the endpoint | +| `status` | `int` | HTTP status code | + +Change `reply_path` for providers that return the text elsewhere. The `response` +output is there for inspection when the path does not match. + +## Authentication + +The graph never holds a credential. The parent graph owns the secret and passes +request headers in through the `headers` input: + +1. In the parent, add a JSON Template node with the template + `{"Authorization": "Bearer {{ secrets.LLM_API_KEY }}", "Content-Type": "application/json"}`. +2. Connect its `value` output to this graph's `headers` input. +3. Add the secret `LLM_API_KEY` in the parent graph's **Graph Settings → Execution + Profile**. Never paste a key into a graph, a fixture, or these notes. + +Use whatever header names and secret name your endpoint requires. Whether node +outputs and execution logs redact header values has not been verified, so do the +first run with a throwaway key and inspect the logs before using a real one. + +## Security guidance + +- **Use a literal URL in the parent graph.** The `url` input receives the headers, + including the bearer token. Do not feed it from request data, model output, or + any other untrusted value, or the token is sent to whatever host that value + names. Pin it to the provider origin you intend. +- **Use a low-privilege key.** Prefer a key scoped to this one use, with a spending + limit where the provider offers one. +- **The prompt leaves your instance.** Every run sends the prompt and system + message to the endpoint. Do not pass data you are not allowed to share with that + provider. + +## Cost and limits + +Each run makes one POST that can be billed by the provider. The graph does not +retry. If a run ends with an unknown outcome, check the provider before running it +again, because a second run can be billed again. Provider rate limits, context +limits, and terms apply. + +## Using it as a composite + +Publish the graph and call it from a parent that supplies `url` and `headers` as +literals or from its own secrets, and passes `prompt`, `system`, and `model` from +upstream nodes. Pin the published version when the parent depends on its behavior, +and record which version the parent was tested with. + +## Validation status + +The graph passes the repository validator and the production node-catalog check. +It has not been freshly imported and executed against a live provider, and no +provider request was made while adding it. Catalog validation is not evidence of +provider execution. Whether placeholders nested inside the array and object of the +request template resolve as intended has not been confirmed in a live run. The +Subfork version used for a manual test is not recorded because no manual test was +run. diff --git a/graphs/pipes/http/llm-call.subfork.json b/graphs/pipes/http/llm-call.subfork.json new file mode 100644 index 0000000..6d35bff --- /dev/null +++ b/graphs/pipes/http/llm-call.subfork.json @@ -0,0 +1,245 @@ +{ + "format": "subfork.graph/1", + "thumbnail": "data:image/jpeg;base64,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ymhNW10Ty6GeEVHC5fmt1uRkjMhcPWzCjNbqW7VNLNTU1vhtFPM5j5I7VSPpw8ta9ozgk8xI4EdR5exeQPGQphTDw0UwziAcThjPX6PVzwPV6kGyqmyaei1TRiCw19HbJbBLVudNK2Vk3+ob+9ETG1u+12cu5+lzw3GFA9X2mks93ZHQccUc9LT1cTKlwdIxssTX7rnAAOwSRkAZ9iwi65uijiJrTFEHNjjJk3WB3yg0dQB9YHX610vpquQgvhqHkANBcxxwByA6uoIMdF3+BVPZpvdO7k8CqezTe6d3KWkKL+m032rP4goncvnGr+3k/iKlvzVu1lY0xRxnfYx/oulcOprQefX1nqAyoZJI6aR8jzl73Fzj9ZOStOL9Q2UOKIi520REQFyY90Tw9jnMeOpzTgj9q4ogyPGVZ2uo987vTxlWdrqPfO71joreUZHjKs7XUe+d3p4yrO11Hvnd6x0S8jI8ZVna6j3zu9PGVZ2uo987vWOiXkZHjKs7XUe+d3p4yrO11Hvnd6x0S8jI8ZVna6j3zu9PGVZ2uo987vWOiXkZHjKs7XUe+d3p4yrO11Hvnd6x0S8jI8ZVna6j3zu9cZK2plYWSVM0jD1tfK4g/sJXSiXkERFFEREBZAuNWAAKuoAHqEzu9Y6IMjxlWdrqPfO708ZVna6j3zu9Y6K3lGR4yrO11Hvnd6eMqztdR753esdEvIyPGVZ2uo987vTxlWdrqPfO71jol5GR4yrO11Hvnd6eMqztdR753esdEvIyPGVZ2uo987vTxlWdrqPfO71jol5GR4yrO11Hvnd6eMqztdR753esdEvIyPGVZ2uo987vWOiKAiIiiIiDuirKiBm5HUTRsH+6yRzR+4FcvGVZ2uo987vWOit5RkeMqztdR753enjKs7XUe+d3rHRLyMjxlWdrqPfO708ZVna6j3zu9Y6JeRkeMqztdR753enjKs7XUe+d3rHRLyMjxlWdrqPfO708ZVna6j3zu9Y6JeRkeMqztdR753enjKs7XUe+d3rHRLyMjxlWdrqPfO708ZVna6j3zu9Y6JeRykkfM8vke6R563PcSf3lcURRRERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERB/9k=", + "definition": { + "version": "0.1.0", + "name": "LLM Call", + "description": "Synchronous chat-completion call over HTTP. Builds an OpenAI-style chat body from prompt, system, and model, POSTs it to the url input, and returns the extracted reply, the full response, and the HTTP status. Credentials arrive only through the headers input, which the parent graph builds from its own secrets. This graph references no secrets. Each run sends the prompt to the endpoint and can incur provider cost.", + "nodes": [ + { + "node_instance_id": "body", + "node_id": "n_json_template", + "node_version": "1.0.0", + "title": "Chat request body", + "params": { + "template": { + "model": "{{ inputs.model }}", + "messages": [ + { + "role": "system", + "content": "{{ inputs.system }}" + }, + { + "role": "user", + "content": "{{ inputs.prompt }}" + } + ] + } + }, + "custom_inputs": { + "prompt": "str", + "system": "str", + "model": "str" + }, + "exposed_inputs": [ + "prompt", + "system", + "model" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "call", + "node_id": "n_fetch_url", + "node_version": "1.0.0", + "title": "Model call", + "params": { + "method": "POST", + "timeout_seconds": 60 + }, + "custom_inputs": {}, + "exposed_inputs": [ + "body" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "reply", + "node_id": "n_json_path", + "node_version": "1.0.0", + "title": "Reply text", + "params": { + "path": "choices.0.message.content" + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + } + ], + "edges": [ + { + "source_node_id": "body", + "source_output": "value", + "target_node_id": "call", + "target_input": "body" + }, + { + "source_node_id": "call", + "source_output": "json", + "target_node_id": "reply", + "target_input": "value" + } + ], + "graph_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" + } + }, + "graph_outputs": { + "reply": { + "node_instance_id": "reply", + "output_name": "value" + }, + "response": { + "node_instance_id": "call", + "output_name": "json" + }, + "status": { + "node_instance_id": "call", + "output_name": "status" + } + }, + "metadata": { + "template": { + "category": "pipes", + "status": "network-probe", + "summary": "Synchronous chat-completion call: builds a chat body, POSTs it to a caller-supplied URL, extracts the reply.", + "composite_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" + } + } + }, + "requires": { + "nodes": [ + "n_fetch_url", + "n_json_path", + "n_json_template" + ], + "panels": [ + "json" + ], + "capabilities": [ + "public-http" + ], + "secrets": [] + } + }, + "canvas": { + "positions": { + "body": { + "x": 80, + "y": 80 + }, + "call": { + "x": 380, + "y": 80 + }, + "reply": { + "x": 680, + "y": 80 + } + }, + "recommended_panels": [] + } + } + }, + "tags": [ + "pipes", + "http", + "ai" + ] +} diff --git a/graphs/pipes/http/llm-call.thumbnail.jpg b/graphs/pipes/http/llm-call.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a58de7c6b6b1cdf3df885eb385d99a427427c708 GIT binary patch literal 15521 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 +- [Job Run](job-run.notes.md) · +- [Render Job](render-job.notes.md) · diff --git a/graphs/pipes/jobs/approval-gate.notes.md b/graphs/pipes/jobs/approval-gate.notes.md new file mode 100644 index 0000000..b32c4de --- /dev/null +++ b/graphs/pipes/jobs/approval-gate.notes.md @@ -0,0 +1,110 @@ +# Approval Gate + +![Approval Gate example thumbnail](approval-gate.thumbnail.jpg) + + + +A reusable human-approval step built from the same submit-and-poll nodes as +[Job Run](job-run.notes.md). It asks an HTTP service to open an approval request for a +person, then polls until the request is approved, rejected, or expired. The job `kind` +is fixed to `approval`. Import it independently, or publish it as a composite. + +**Submitting the request is an externally visible write.** A successful run creates an +approval request at the service, which may notify the approver. A retry can create a second +request unless the service honors the idempotency key. The graph references no secrets, +environment-specific graph IDs, or generated media. + +## Read this first: the gate does not block by itself + +Subfork has no pause or skip node. This graph can only order work after it by data +flow, for example by wiring `decision` into an input of the node that performs the +effect. The poll node lists `rejected` and `expired` as failure statuses, but whether a +failed poll stops the nodes that depend on it has not been verified. A rejected approval +might still let a downstream node run. + +Do not rely on this graph alone to protect an action. **The service that performs the +effect must confirm the approval itself** before acting: read the job at its +`status_url` and require status `completed`. Treat this graph as the way to request and +wait for an approval, and the effect service as the enforcement point. + +## Data flow + +1. **Approval request** (`n_json_template`) builds the request body with `kind` set to + `approval`, the `idempotency_key`, and `params` holding `subject`, `summary`, + `approver`, and `expires_in_seconds` (900). The optional `payload` is sent as the job + `inputs`. +2. **Jobs endpoint** (`n_url_builder`) appends `jobs` to `base_url`. +3. **Submit job** (`n_http_submit_job`) POSTs the body and reads the job `id` and + `status_url`. +4. **Poll job** (`n_http_poll_job`) calls the `status_url` every 30 seconds for up to 900 + seconds. `completed` ends the poll successfully. `failed`, `cancelled`, `rejected`, + and `expired` are failure statuses. + +The 900-second request expiry and the 900-second poll budget are set to match. The +longest wall time a single run can wait has not been verified, so confirm a 15-minute +approval fits in one run on your instance. + +## Inputs and outputs + +| Input | Type | Meaning | +| --- | --- | --- | +| `base_url` | `url` | Required service base URL; the graph posts to `{base_url}/jobs`. Receives the `headers` value | +| `headers` | `json` | Required request headers, built by the parent graph | +| `subject` | `str` | Required short title of what needs approval | +| `summary` | `str` | Required description for the approver | +| `approver` | `str` | Optional approver identifier the service understands; defaults to empty | +| `payload` | `json` | Optional structured details; defaults to an empty object | +| `idempotency_key` | `str` | Required key that makes a repeated request return the same approval | + +| Output | Type | Meaning | +| --- | --- | --- | +| `decision` | `json` | The final status body | +| `status` | `str` | The final status, normalized to lowercase by the poll node | +| `remote_job` | `json` | The resumable job reference | + +The service is expected to follow the submit and poll shape described in +[Job Run](job-run.notes.md), with `rejected` and `expired` as terminal statuses in +addition to the usual ones. Put a content version in the idempotency key, for example +`:approval:`, so changed content gets a new request. + +## Authentication + +The graph never holds a credential. The parent builds the headers from its own secrets +and passes them in: + +1. In the parent, add a JSON Template node with the template + `{"Authorization": "Bearer {{ secrets.JOB_SERVICE_TOKEN }}", "Content-Type": "application/json"}`. +2. Connect its `value` output to this graph's `headers` input. +3. Add the secret `JOB_SERVICE_TOKEN` in the parent graph's **Graph Settings → + Execution Profile**. Never paste a token into a graph, a fixture, or these notes. + +Whether node outputs and execution logs redact header values has not been verified, so +do the first run with a throwaway token and inspect the logs before using a real one. + +## Security guidance + +- **Use a literal `base_url` in the parent graph.** It receives the headers, including + the token. Do not feed it from request data, model output, or any other untrusted + value. +- **Use a token that can request approvals but cannot grant them.** Do not give this + graph the approver's token. If the graph's token could approve its own requests, the + gate would mean nothing. +- **Keep `status_url` on the same host as `base_url`.** The poll node calls whatever + `status_url` the service returns, with the same headers. Whether the node enforces a + same-host rule has not been verified, so only point this graph at a service you + control or trust. + +## Using it as a composite + +Publish the graph, pin the version, and call it from a parent ahead of the step you want +guarded. Connect `decision` to the guarded step's inputs so it runs after the gate, and +make the guarded service check the approval on its own as described above. Connect +`status` to a details or JSON panel so an operator can see the outcome. + +## Validation status + +The graph passes the repository validator and the production node-catalog check. It has +not been freshly imported and executed against a live service, and no approval request +was created while adding it. Whether a failed poll halts dependent nodes is unverified, +as described above. The Subfork version used for a manual test is not recorded because +no manual test was run. diff --git a/graphs/pipes/jobs/approval-gate.subfork.json b/graphs/pipes/jobs/approval-gate.subfork.json new file mode 100644 index 0000000..41f2a97 --- /dev/null +++ b/graphs/pipes/jobs/approval-gate.subfork.json @@ -0,0 +1,347 @@ +{ + "format": "subfork.graph/1", + "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAFAAeADASIAAhEBAxEB/8QAHQABAAIDAQEBAQAAAAAAAAAAAAYIBAUHAwIBCf/EAFEQAAEDAwICBAkIBQsBBgcAAAEAAgMEBREGEgchCBMx0RQVFhgiQVFUlTI1VWFzk5TScXSBsrMJIzM0RFJikaGxwYIXJEJTY3IlQ0Vlg5Lw/8QAGwEBAAMBAQEBAAAAAAAAAAAAAAECAwQFBgf/xAAwEQEAAQIDBwMCBgMBAAAAAAAAAQIRAwSRBRIWITFR0RNBYmFxFCIygaGxBnLB4v/aAAwDAQACEQMRAD8AgnnicN/err8Nf3p54nDf3q6/DX96oki+84t2j8dJ8vjOGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8CIi+LfXCIug9H/hbPxq406P0VCHdXdrhHHUvb2x0zfTnf9WI2v5+3CDnyL+nPTd6DPC/RfR/v+rOGOnharzpusjmr+quE9STTZDZo3NkkcGuYJY5OwHA9hX829M6TvetbxHadPWeuvt1ka57KK2076iZ7WjLiGMBJAHM+xENUimNBwa1/da660VFofUlZWWmQw3Cnp7TPI+keBkslAYdjsEHB581GKe1VtXdI7bDR1EtxkmFMyjZE4zOlLtojDMZ3buW3Gc8kSxUU0l4KcQoNSt07JoTUrL+6AVQtbrTP4SYSS0SdXs3bMtI3YxkEepRm+WK5aZuc9tvFuq7TcYDiWkr4HwTR/wDuY8Aj/JBgop9B0f8AibUXu0WdvD7Uwul3a+S30klqmjfVMYGl72bmgFrQ9pLuwbhk8wtDQ8Pt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", + "definition": { + "version": "0.1.0", + "name": "Approval Gate", + "description": "Human approval request over HTTP. POSTs an approval job to base_url/jobs (an externally visible write) and polls every 30 seconds for up to 900 seconds until it completes. rejected and expired are listed as failure statuses. Whether a failed poll stops dependent nodes is unverified, so the effect service must confirm the approval itself, by reading the job's status_url and checking for status completed, before acting. Credentials arrive only through the headers input. This graph references no secrets.", + "nodes": [ + { + "node_instance_id": "hdr", + "node_id": "n_coalesce", + "node_version": "1.0.0", + "title": "Auth headers fan-out", + "params": { + "fallback": {} + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "req", + "node_id": "n_json_template", + "node_version": "1.0.0", + "title": "Approval request", + "params": { + "template": { + "kind": "approval", + "idempotency_key": "{{ inputs.idempotency_key }}", + "params": { + "subject": "{{ inputs.subject }}", + "summary": "{{ inputs.summary }}", + "approver": "{{ inputs.approver }}", + "expires_in_seconds": 900 + }, + "inputs": "{{ inputs.payload }}" + } + }, + "custom_inputs": { + "subject": "str", + "summary": "str", + "approver": "str", + "payload": "json", + "idempotency_key": "str" + }, + "exposed_inputs": [ + "subject", + "summary", + "approver", + "payload", + "idempotency_key" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": { + "approver": "", + "payload": {} + } + }, + { + "node_instance_id": "endpoint", + "node_id": "n_url_builder", + "node_version": "1.0.0", + "title": "Jobs endpoint", + "params": { + "segments": [ + "jobs" + ], + "query": {} + }, + "custom_inputs": {}, + "exposed_inputs": [ + "base" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "submit", + "node_id": "n_http_submit_job", + "node_version": "1.0.0", + "title": "Submit job", + "params": { + "method": "POST", + "job_id_path": "id", + "status_url_path": "status_url", + "poll_after_seconds": 5 + }, + "custom_inputs": {}, + "exposed_inputs": [ + "url", + "headers", + "body" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "poll", + "node_id": "n_http_poll_job", + "node_version": "1.0.0", + "title": "Poll job", + "params": { + "status_path": "status", + "complete_values": [ + "completed" + ], + "failed_values": [ + "failed", + "cancelled", + "rejected", + "expired" + ], + "media_url_path": "url", + "poll_after_seconds": 30, + "max_attempts": 120, + "max_elapsed_seconds": 900 + }, + "custom_inputs": {}, + "exposed_inputs": [ + "remote_job", + "headers" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + } + ], + "edges": [ + { + "source_node_id": "endpoint", + "source_output": "url", + "target_node_id": "submit", + "target_input": "url" + }, + { + "source_node_id": "req", + "source_output": "value", + "target_node_id": "submit", + "target_input": "body" + }, + { + "source_node_id": "hdr", + "source_output": "value", + "target_node_id": "submit", + "target_input": "headers" + }, + { + "source_node_id": "submit", + "source_output": "remote_job", + "target_node_id": "poll", + "target_input": "remote_job" + }, + { + "source_node_id": "hdr", + "source_output": "value", + "target_node_id": "poll", + "target_input": "headers" + } + ], + "graph_inputs": { + "base_url": { + "type": "url", + "required": true, + "default_node": "endpoint", + "default_input": "base" + }, + "headers": { + "type": "json", + "required": true, + "default_node": "hdr", + "default_input": "primary" + }, + "subject": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "subject" + }, + "summary": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "summary" + }, + "approver": { + "type": "str", + "required": false, + "default_node": "req", + "default_input": "approver" + }, + "payload": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "payload" + }, + "idempotency_key": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "idempotency_key" + } + }, + "graph_outputs": { + "decision": { + "node_instance_id": "poll", + "output_name": "response" + }, + "status": { + "node_instance_id": "poll", + "output_name": "status" + }, + "remote_job": { + "node_instance_id": "poll", + "output_name": "remote_job" + } + }, + "metadata": { + "template": { + "category": "pipes", + "status": "network-probe", + "summary": "Human approval requested as a job: submits an approval job and polls until approved, rejected, or expired.", + "composite_interface": { + "inputs": { + "base_url": { + "type": "url", + "required": true, + "default_node": "endpoint", + "default_input": "base" + }, + "headers": { + "type": "json", + "required": true, + "default_node": "hdr", + "default_input": "primary" + }, + "subject": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "subject" + }, + "summary": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "summary" + }, + "approver": { + "type": "str", + "required": false, + "default_node": "req", + "default_input": "approver" + }, + "payload": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "payload" + }, + "idempotency_key": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "idempotency_key" + } + }, + "outputs": { + "decision": { + "type": "json", + "node_instance_id": "poll", + "output_name": "response" + }, + "status": { + "type": "str", + "node_instance_id": "poll", + "output_name": "status" + }, + "remote_job": { + "type": "json", + "node_instance_id": "poll", + "output_name": "remote_job" + } + } + }, + "requires": { + "nodes": [ + "n_coalesce", + "n_http_poll_job", + "n_http_submit_job", + "n_json_template", + "n_url_builder" + ], + "panels": [ + "json" + ], + "capabilities": [ + "public-http", + "async-execution", + "external-write" + ], + "secrets": [] + } + }, + "canvas": { + "positions": { + "hdr": { + "x": 80, + "y": 80 + }, + "req": { + "x": 80, + "y": 300 + }, + "endpoint": { + "x": 80, + "y": 520 + }, + "submit": { + "x": 380, + "y": 80 + }, + "poll": { + "x": 680, + "y": 80 + } + }, + "recommended_panels": [] + } + } + }, + "tags": [ + "pipes", + "http", + "automation" + ] +} diff --git a/graphs/pipes/jobs/approval-gate.thumbnail.jpg b/graphs/pipes/jobs/approval-gate.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5cfa9c4970d290c12ec1ee43cc1755623ec9a878 GIT binary patch literal 17241 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ĉ#qoWJNV!A6A( z%81M=UQ#L%XYE&f9ShmF{U*odXeGm3gpC271^Bm);_*ouNWb)&RXnb1mb^k?r-Z(l zAg|ghtSmhQsX3L{G^!rgjhrFG!pN`EQ2`jfbQWK!7924|u%~^(4fuiNCgXzuRD0x1 zkf9FDJ#S7e(3@y_^+iNpX&1Vh^aM`p6MxtMEFTY@V0>i|*kp6|I^F5XC)81iYi47l zFds$5cT?D}ckw^3-_}}qAnRN+IQlmZnFmT{U8}rnQl$zNFI~N2!4t=L$**Xmt-0(n zz>A@sNQZrPR#Nfc%f!jq-Uar8v?*c50r#cLxX~_U4Di%}iL4x#C4pULQ-sRPn)PJW z5sxm4Tr|<3up!s)4}hr67Y>V?Ec!RPZ-ts4)*-~Y+Ilu zyvdQlPi25z=lJc;;;ZoYBU5V-n9hy2fR+kEP=)3h&dPeeZmbzL3e#J{lJF%DRr&(} zZ*u9-82{8{)3&}IIw^FVa{vALyy5_AV3JBApao6w|Jg^XYS%J1Hrh21F0G&Nkxz=O z8*bh1Mh(caHr8{pif9navP2X^NT5kGa3pi(_Z$s}!rX7w$x`48Pm5DUf)iauoSn9U zEdy(EVs*BJ2r75k11;m(EqiP?`|8_HTmPGXdV;S>{;Ovi;}>djz~AS6!b+ zyq{=kxP&|f0c1NwQ_+SlVJMtd1aNq>oy{iUFOiieT$FA*(DgP>)lRf$eu zp@rh#Hgwti9$Y>q>y0rIf-E_rWa`p3q60AGUndbgC41F68wRK<2LyijQ^EWHT}{~| zlyrZg_{-Eo+Gl6~?P!elV$g_)e%}MUifJgsat0SV%*&iMC<%rpavc7J*l4fxEaGpZ z|6*IdBQD`DGX7%y5*!`y-v#B8DIs(FObRY})ppGE0LZj_8T0Jly}tNAa(`a$AbeQ( EUuN`_$p8QV literal 0 HcmV?d00001 diff --git a/graphs/pipes/jobs/job-run.notes.md b/graphs/pipes/jobs/job-run.notes.md new file mode 100644 index 0000000..0a6a219 --- /dev/null +++ b/graphs/pipes/jobs/job-run.notes.md @@ -0,0 +1,118 @@ +# Job Run + +![Job Run example thumbnail](job-run.thumbnail.jpg) + + + +A reusable submit-and-poll graph for any long-running HTTP job: scoring, verification, +research, builds, or other work that a service runs asynchronously. It builds a job +request, POSTs it to `{base_url}/jobs`, polls the status URL the service returns, and +reports the final status body. It is generic by design and does not know what the job +does. Import it independently, or publish it as a composite. + +This is submit and poll, not scheduling. Each run creates one job. + +**Submitting a job is an externally visible write.** A successful run starts work at +the service, and a retry can start it twice unless the service honors the +idempotency key described below. The graph references no secrets, +environment-specific graph IDs, or generated media. + +## Data flow + +1. **Job request** (`n_json_template`) builds the request body from `kind`, + `idempotency_key`, `params`, and `inputs`. +2. **Jobs endpoint** (`n_url_builder`) appends `jobs` to `base_url`. +3. **Submit job** (`n_http_submit_job`) POSTs the body. It reads the job `id` and the + `status_url` from the response, and uses an optional integer `poll_after_seconds` + hint when the service sends one (5 seconds otherwise). +4. **Poll job** (`n_http_poll_job`) calls the `status_url`, sends the same headers, and + waits between attempts until the status is terminal. + +## Inputs and outputs + +| Input | Type | Meaning | +| --- | --- | --- | +| `base_url` | `url` | Required service base URL; the graph posts to `{base_url}/jobs`. Receives the `headers` value | +| `headers` | `json` | Required request headers, built by the parent graph | +| `kind` | `str` | Required job type the service understands | +| `idempotency_key` | `str` | Required key that makes a repeated submission return the same job | +| `params` | `json` | Optional job parameters; defaults to an empty object | +| `inputs` | `json` | Optional job inputs; defaults to an empty object | + +| Output | Type | Meaning | +| --- | --- | --- | +| `result` | `json` | The final status body | +| `status` | `str` | The final status, normalized to lowercase by the poll node | +| `remote_job` | `json` | The resumable job reference | +| `media` | `media` | The media URL from the status body, when the service returns one | + +## Service contract + +The graph works with any HTTP service that follows this shape. + +**Submit.** `POST {base_url}/jobs` with a JSON body holding `kind`, `idempotency_key`, +`params`, and `inputs`. The service answers 200 or 202 with `id`, `status` (normally +`queued`), and `status_url`. It may add an integer `poll_after_seconds` to say how long +to wait before the first poll. A repeated `idempotency_key` should return the existing +job rather than create another, and the same key with different parameters should be +rejected. Put a content version in the key, for example +`::`. + +**Poll.** `GET {status_url}` returns `id`, `status`, `kind`, `url`, `result`, and +`error`. `status` is one of `queued`, `running`, `completed`, `failed`, `cancelled`, +`rejected`, or `expired`. `url` is the media URL once the job completes, and `result` +holds structured output. `error` describes a failure. + +**Terminal handling in this graph.** `completed` ends the poll successfully. `failed` +and `cancelled` count as failures. `rejected` and `expired` are used by approval-style +services; this graph does not list them as failures, so a service that returns them +would be polled until the limits below. Use [Approval Gate](approval-gate.notes.md) +for those, or edit the poll node's failure values. + +## Polling limits + +Polling waits 5 seconds between attempts by default, stops after 120 attempts or 3,600 +seconds. The graph never sends a cancel request, so a job can keep running at the +service after polling stops. + +## Authentication + +The graph never holds a credential. The parent builds the headers from its own secrets +and passes them in: + +1. In the parent, add a JSON Template node with the template + `{"Authorization": "Bearer {{ secrets.JOB_SERVICE_TOKEN }}", "Content-Type": "application/json"}`. +2. Connect its `value` output to this graph's `headers` input. +3. Add the secret `JOB_SERVICE_TOKEN` in the parent graph's **Graph Settings → + Execution Profile**. Never paste a token into a graph, a fixture, or these notes. + +Whether node outputs and execution logs redact header values has not been verified, so +do the first run with a throwaway token and inspect the logs before using a real one. + +## Security guidance + +- **Use a literal `base_url` in the parent graph.** It receives the headers, including + the token. Do not feed it from request data, model output, or any other untrusted + value. +- **Use one low-privilege token per service.** Do not reuse a token across services. +- **Keep `status_url` on the same host as `base_url`.** The poll node calls whatever + `status_url` the service returns, with the same headers. Whether the node enforces a + same-host rule has not been verified, so only point this graph at a service you + control or trust. + +## Using it as a composite + +Publish the graph, pin the version, and call it from a parent that supplies `base_url` +and `headers` as literals or from its own secrets. Keep polling at the top level of the +parent when possible. Connect `result` and `status` to downstream nodes, and `media` to +a media or video preview panel. + +## Validation status + +The graph passes the repository validator and the production node-catalog check. It has +not been freshly imported and executed against a live service, and no job was submitted +while adding it. Whether placeholders that stand alone in a template value (`params` and +`inputs`) keep their JSON type has not been confirmed in a live run. Whether a poll that +reaches a failure status raises a node error or only returns the status has not been +verified either. The Subfork version used for a manual test is not recorded because no +manual test was run. diff --git a/graphs/pipes/jobs/job-run.subfork.json b/graphs/pipes/jobs/job-run.subfork.json new file mode 100644 index 0000000..c77f7d0 --- /dev/null +++ b/graphs/pipes/jobs/job-run.subfork.json @@ -0,0 +1,335 @@ +{ + "format": "subfork.graph/1", + "thumbnail": "data:image/jpeg;base64,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V8huVZTQGGGsqYYS7fMUczms3sY3t0HGccMqd6OyLM63bZ3pek0vUQw0LJqWCz0lVTXKOgmiklnkEJ3nVr39S5r3PezcA9H1DLHFeDtk0jQ2yyur7dY6ey09PdHUQiloZqOrYCxxEb95746kDcyZmOznGeDgsTOral9GykdUTOpGO3mU7pXGNp9ZDM4B+sBcqq4Vdc2JtTV1FS2Ju7G2eZzxG32NBJwPqCiao7JiEdERUWEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARF69v0+6pgZUVM4pYJBlgDd+R4zjIbkYHDmSPqUxE1coRM2eQisXk5QfSFR+Fb+tPJyg+kKn8K39a09OpXehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1r4dNUThhlxlDvUZKbDfvw4n/ACUenUb0K8ik19vmttR1UwbktDmuYcte08iD7FGVJi3KVhERQkRTrZaJbnvvD2QQRkB80nIE8gAOJPDkP8l6nk3QfSFRn6qUfrV4oqnnCs1RCuorF5OUH0hU/hW/rTycoPpCp/Ct/WrenUjehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehX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", + "definition": { + "version": "0.1.0", + "name": "Job Run", + "description": "Generic asynchronous job over HTTP. Builds a job request, POSTs it to base_url/jobs (an externally visible write that creates a job), polls the returned status URL until a terminal status, and returns the final status body, the status string, the remote job reference, and the media URL. Credentials arrive only through the headers input. This graph references no secrets.", + "nodes": [ + { + "node_instance_id": "hdr", + "node_id": "n_coalesce", + "node_version": "1.0.0", + "title": "Auth headers fan-out", + "params": { + "fallback": {} + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "req", + "node_id": "n_json_template", + "node_version": "1.0.0", + "title": "Job request", + "params": { + "template": { + "kind": "{{ inputs.kind }}", + "idempotency_key": "{{ inputs.idempotency_key }}", + "params": "{{ inputs.params }}", + "inputs": "{{ inputs.inputs }}" + } + }, + "custom_inputs": { + "kind": "str", + "idempotency_key": "str", + "params": "json", + "inputs": "json" + }, + "exposed_inputs": [ + "kind", + "idempotency_key", + "params", + "inputs" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": { + "params": {}, + "inputs": {} + } + }, + { + "node_instance_id": "endpoint", + "node_id": "n_url_builder", + "node_version": "1.0.0", + "title": "Jobs endpoint", + "params": { + "segments": [ + "jobs" + ], + "query": {} + }, + "custom_inputs": {}, + "exposed_inputs": [ + "base" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "submit", + "node_id": "n_http_submit_job", + "node_version": "1.0.0", + "title": "Submit job", + "params": { + "method": "POST", + "job_id_path": "id", + "status_url_path": "status_url", + "poll_after_seconds": 5 + }, + "custom_inputs": {}, + "exposed_inputs": [ + "url", + "headers", + "body" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "poll", + "node_id": "n_http_poll_job", + "node_version": "1.0.0", + "title": "Poll job", + "params": { + "status_path": "status", + "complete_values": [ + "completed" + ], + "failed_values": [ + "failed", + "cancelled" + ], + "media_url_path": "url", + "poll_after_seconds": 5, + "max_attempts": 120, + "max_elapsed_seconds": 3600 + }, + "custom_inputs": {}, + "exposed_inputs": [ + "remote_job", + "headers" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + } + ], + "edges": [ + { + "source_node_id": "endpoint", + "source_output": "url", + "target_node_id": "submit", + "target_input": "url" + }, + { + "source_node_id": "req", + "source_output": "value", + "target_node_id": "submit", + "target_input": "body" + }, + { + "source_node_id": "hdr", + "source_output": "value", + "target_node_id": "submit", + "target_input": "headers" + }, + { + "source_node_id": "submit", + "source_output": "remote_job", + "target_node_id": "poll", + "target_input": "remote_job" + }, + { + "source_node_id": "hdr", + "source_output": "value", + "target_node_id": "poll", + "target_input": "headers" + } + ], + "graph_inputs": { + "base_url": { + "type": "url", + "required": true, + "default_node": "endpoint", + "default_input": "base" + }, + "headers": { + "type": "json", + "required": true, + "default_node": "hdr", + "default_input": "primary" + }, + "kind": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "kind" + }, + "idempotency_key": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "idempotency_key" + }, + "params": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "params" + }, + "inputs": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "inputs" + } + }, + "graph_outputs": { + "result": { + "node_instance_id": "poll", + "output_name": "response" + }, + "status": { + "node_instance_id": "poll", + "output_name": "status" + }, + "remote_job": { + "node_instance_id": "poll", + "output_name": "remote_job" + }, + "media": { + "node_instance_id": "poll", + "output_name": "media" + } + }, + "metadata": { + "template": { + "category": "pipes", + "status": "network-probe", + "summary": "Generic asynchronous job over HTTP: submit a job request, then poll to a terminal status.", + "composite_interface": { + "inputs": { + "base_url": { + "type": "url", + "required": true, + "default_node": "endpoint", + "default_input": "base" + }, + "headers": { + "type": "json", + "required": true, + "default_node": "hdr", + "default_input": "primary" + }, + "kind": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "kind" + }, + "idempotency_key": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "idempotency_key" + }, + "params": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "params" + }, + "inputs": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "inputs" + } + }, + "outputs": { + "result": { + "type": "json", + "node_instance_id": "poll", + "output_name": "response" + }, + "status": { + "type": "str", + "node_instance_id": "poll", + "output_name": "status" + }, + "remote_job": { + "type": "json", + "node_instance_id": "poll", + "output_name": "remote_job" + }, + "media": { + "type": "media", + "node_instance_id": "poll", + "output_name": "media" + } + } + }, + "requires": { + "nodes": [ + "n_coalesce", + "n_http_poll_job", + "n_http_submit_job", + "n_json_template", + "n_url_builder" + ], + "panels": [ + "json" + ], + "capabilities": [ + "public-http", + "async-execution", + "external-write" + ], + "secrets": [] + } + }, + "canvas": { + "positions": { + "hdr": { + "x": 80, + "y": 80 + }, + "req": { + "x": 80, + "y": 300 + }, + "endpoint": { + "x": 80, + "y": 520 + }, + "submit": { + "x": 380, + "y": 80 + }, + "poll": { + "x": 680, + "y": 80 + } + }, + "recommended_panels": [] + } + } + }, + "tags": [ + "pipes", + "http", + "automation" + ] +} diff --git a/graphs/pipes/jobs/job-run.thumbnail.jpg b/graphs/pipes/jobs/job-run.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50913ea7c45a0129335b78fa57dcedd8c35ee533 GIT binary patch literal 15359 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 Q)W7`?Gyh+W2)>{DFWrr>F8}}l literal 0 HcmV?d00001 diff --git a/graphs/pipes/jobs/render-job.notes.md b/graphs/pipes/jobs/render-job.notes.md new file mode 100644 index 0000000..465b191 --- /dev/null +++ b/graphs/pipes/jobs/render-job.notes.md @@ -0,0 +1,105 @@ +# Render Job + +![Render Job example thumbnail](render-job.thumbnail.jpg) + + + +A reusable asynchronous media job that returns a file. It runs the same submit-and-poll +chain as [Job Run](job-run.notes.md), then reads the artifact location from the +finished job, rebuilds the file URL from the service base URL, and downloads the file as +a Subfork artifact. Use it for video renders, image generation, screenshots, or audio +post-processing that a service performs. Import it independently, or publish it as a +composite. + +**Submitting a job is an externally visible write.** A successful run starts work at the +service, which can be slow and billed. A retry can start it twice unless the service +honors the idempotency key. The graph references no secrets, environment-specific graph +IDs, or generated media. + +## Data flow + +1. **Job request** (`n_json_template`) builds the body from `kind`, `idempotency_key`, + `params`, and `inputs`. +2. **Jobs endpoint** (`n_url_builder`) appends `jobs` to `base_url`. +3. **Submit job** (`n_http_submit_job`) POSTs the body and reads the job `id` and + `status_url`. +4. **Poll job** (`n_http_poll_job`) waits 5 seconds between attempts and stops after 120 + attempts or 3,600 seconds. +5. **Artifact segments** (`n_json_path`) reads `result.artifact_segments` from the final + status body. This is a list of URL path segments. +6. **Artifact file URL** (`n_url_builder`) appends those segments to `base_url`. +7. **Fetch artifact** (`n_fetch_url`) GETs that URL with the same headers and stores the + response as an artifact. The request has a 120-second timeout and a response cap of + 250,000,000 bytes, set explicitly for video. Confirm your instance accepts that + value. + +The file URL is built from `base_url`, never taken whole from the service response, so +the file request goes to the same host as the job request. The service controls only the +path segments. + +## Inputs and outputs + +| Input | Type | Meaning | +| --- | --- | --- | +| `base_url` | `url` | Required service base URL. Used for the jobs endpoint and the file URL, and receives the `headers` value | +| `headers` | `json` | Required request headers, built by the parent graph | +| `kind` | `str` | Required job type the service understands, for example a render type | +| `idempotency_key` | `str` | Required key that makes a repeated submission return the same job | +| `params` | `json` | Optional job parameters; defaults to an empty object | +| `inputs` | `json` | Optional job inputs; defaults to an empty object | + +| Output | Type | Meaning | +| --- | --- | --- | +| `artifact` | `artifact` | The downloaded file | +| `media` | `media` | The media URL from the status body, when the service returns one | +| `result` | `json` | The final status body | +| `status` | `str` | The final status, normalized to lowercase by the poll node | + +The service contract is the one described in [Job Run](job-run.notes.md), with one +addition: when a job completes, `result.artifact_segments` must hold the path segments of +the output file relative to the service base URL, and the file must be served from the +same host and accept the same headers. Put a content version in the idempotency key, for +example `::`. + +## Authentication + +The graph never holds a credential. The parent builds the headers from its own secrets +and passes them in: + +1. In the parent, add a JSON Template node with the template + `{"Authorization": "Bearer {{ secrets.JOB_SERVICE_TOKEN }}", "Content-Type": "application/json"}`. +2. Connect its `value` output to this graph's `headers` input. +3. Add the secret `JOB_SERVICE_TOKEN` in the parent graph's **Graph Settings → + Execution Profile**. Never paste a token into a graph, a fixture, or these notes. + +The same headers are sent on the submit, poll, and file requests. Whether node outputs +and execution logs redact header values has not been verified, so do the first run with a +throwaway token and inspect the logs before using a real one. + +## Security guidance + +- **Use a literal `base_url` in the parent graph.** It receives the headers, including + the token, on all three requests. Do not feed it from request data, model output, or + any other untrusted value. +- **Use one low-privilege token per service.** Do not reuse a token across services. +- **Keep `status_url` on the same host as `base_url`.** The poll node calls whatever + `status_url` the service returns, with the same headers. Whether the node enforces a + same-host rule has not been verified, so only point this graph at a service you + control or trust. +- **Trust what the service renders.** Some services run project code or templates that + you supply. Point the service only at inputs you control. + +## Using it as a composite + +Publish the graph, pin the version, and call it from a parent that supplies `base_url` +and `headers`. Connect `artifact` to storage or an upload step, and `media` to a Video or +Media Preview panel. Keep polling at the top level of the parent when possible. + +## Validation status + +The graph passes the repository validator and the production node-catalog check. It has +not been freshly imported and executed against a live service, and no job was submitted +and no file downloaded while adding it. Whether the platform accepts the 250,000,000 byte +response cap, and whether a poll that reaches a failure status raises a node error or only +returns the status, have not been verified. The Subfork version used for a manual test is +not recorded because no manual test was run. diff --git a/graphs/pipes/jobs/render-job.subfork.json b/graphs/pipes/jobs/render-job.subfork.json new file mode 100644 index 0000000..fabd8ce --- /dev/null +++ b/graphs/pipes/jobs/render-job.subfork.json @@ -0,0 +1,460 @@ +{ + "format": "subfork.graph/1", + "thumbnail": "data:image/jpeg;base64,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", + "definition": { + "version": "0.1.0", + "name": "Render Job", + "description": "Asynchronous media job over HTTP. Submits a job (an externally visible write), polls until it completes, reads result.artifact_segments from the final status body, rebuilds the file URL from base_url plus those segments, and fetches the file as an artifact with the same headers. Credentials arrive only through the headers input. This graph references no secrets.", + "nodes": [ + { + "node_instance_id": "base_in", + "node_id": "n_url_input", + "node_version": "1.0.0", + "title": "Service base URL", + "params": { + "url": "https://example.com" + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "hdr", + "node_id": "n_coalesce", + "node_version": "1.0.0", + "title": "Auth headers fan-out", + "params": { + "fallback": {} + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "req", + "node_id": "n_json_template", + "node_version": "1.0.0", + "title": "Job request", + "params": { + "template": { + "kind": "{{ inputs.kind }}", + "idempotency_key": "{{ inputs.idempotency_key }}", + "params": "{{ inputs.params }}", + "inputs": "{{ inputs.inputs }}" + } + }, + "custom_inputs": { + "kind": "str", + "idempotency_key": "str", + "params": "json", + "inputs": "json" + }, + "exposed_inputs": [ + "kind", + "idempotency_key", + "params", + "inputs" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": { + "params": {}, + "inputs": {} + } + }, + { + "node_instance_id": "endpoint", + "node_id": "n_url_builder", + "node_version": "1.0.0", + "title": "Jobs endpoint", + "params": { + "segments": [ + "jobs" + ], + "query": {} + }, + "custom_inputs": {}, + "exposed_inputs": [ + "base" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "submit", + "node_id": "n_http_submit_job", + "node_version": "1.0.0", + "title": "Submit job", + "params": { + "method": "POST", + "job_id_path": "id", + "status_url_path": "status_url", + "poll_after_seconds": 5 + }, + "custom_inputs": {}, + "exposed_inputs": [ + "url", + "headers", + "body" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "poll", + "node_id": "n_http_poll_job", + "node_version": "1.0.0", + "title": "Poll job", + "params": { + "status_path": "status", + "complete_values": [ + "completed" + ], + "failed_values": [ + "failed", + "cancelled" + ], + "media_url_path": "url", + "poll_after_seconds": 5, + "max_attempts": 120, + "max_elapsed_seconds": 3600 + }, + "custom_inputs": {}, + "exposed_inputs": [ + "remote_job", + "headers" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "path", + "node_id": "n_json_path", + "node_version": "1.0.0", + "title": "Artifact segments", + "params": { + "path": "result.artifact_segments" + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "file_url", + "node_id": "n_url_builder", + "node_version": "1.0.0", + "title": "Artifact file URL", + "params": { + "query": {} + }, + "custom_inputs": {}, + "exposed_inputs": [ + "base", + "segments" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "fetch", + "node_id": "n_fetch_url", + "node_version": "1.0.0", + "title": "Fetch artifact", + "params": { + "method": "GET", + "timeout_seconds": 120, + "max_response_bytes": 250000000, + "response_storage": "artifact" + }, + "custom_inputs": {}, + "exposed_inputs": [ + "url", + "headers" + ], + "inputs_visibility_configured": true, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + } + ], + "edges": [ + { + "source_node_id": "base_in", + "source_output": "url", + "target_node_id": "endpoint", + "target_input": "base" + }, + { + "source_node_id": "endpoint", + "source_output": "url", + "target_node_id": "submit", + "target_input": "url" + }, + { + "source_node_id": "req", + "source_output": "value", + "target_node_id": "submit", + "target_input": "body" + }, + { + "source_node_id": "hdr", + "source_output": "value", + "target_node_id": "submit", + "target_input": "headers" + }, + { + "source_node_id": "submit", + "source_output": "remote_job", + "target_node_id": "poll", + "target_input": "remote_job" + }, + { + "source_node_id": "hdr", + "source_output": "value", + "target_node_id": "poll", + "target_input": "headers" + }, + { + "source_node_id": "base_in", + "source_output": "url", + "target_node_id": "file_url", + "target_input": "base" + }, + { + "source_node_id": "poll", + "source_output": "response", + "target_node_id": "path", + "target_input": "value" + }, + { + "source_node_id": "path", + "source_output": "value", + "target_node_id": "file_url", + "target_input": "segments" + }, + { + "source_node_id": "file_url", + "source_output": "url", + "target_node_id": "fetch", + "target_input": "url" + }, + { + "source_node_id": "hdr", + "source_output": "value", + "target_node_id": "fetch", + "target_input": "headers" + } + ], + "graph_inputs": { + "base_url": { + "type": "url", + "required": true, + "default_node": "base_in", + "default_param": "url" + }, + "headers": { + "type": "json", + "required": true, + "default_node": "hdr", + "default_input": "primary" + }, + "kind": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "kind" + }, + "idempotency_key": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "idempotency_key" + }, + "params": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "params" + }, + "inputs": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "inputs" + } + }, + "graph_outputs": { + "artifact": { + "node_instance_id": "fetch", + "output_name": "artifact" + }, + "media": { + "node_instance_id": "poll", + "output_name": "media" + }, + "result": { + "node_instance_id": "poll", + "output_name": "response" + }, + "status": { + "node_instance_id": "poll", + "output_name": "status" + } + }, + "metadata": { + "template": { + "category": "pipes", + "status": "network-probe", + "summary": "Asynchronous media job that returns a file: runs the job chain, rebuilds the file URL, fetches the artifact.", + "composite_interface": { + "inputs": { + "base_url": { + "type": "url", + "required": true, + "default_node": "base_in", + "default_param": "url" + }, + "headers": { + "type": "json", + "required": true, + "default_node": "hdr", + "default_input": "primary" + }, + "kind": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "kind" + }, + "idempotency_key": { + "type": "str", + "required": true, + "default_node": "req", + "default_input": "idempotency_key" + }, + "params": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "params" + }, + "inputs": { + "type": "json", + "required": false, + "default_node": "req", + "default_input": "inputs" + } + }, + "outputs": { + "artifact": { + "type": "artifact", + "node_instance_id": "fetch", + "output_name": "artifact" + }, + "media": { + "type": "media", + "node_instance_id": "poll", + "output_name": "media" + }, + "result": { + "type": "json", + "node_instance_id": "poll", + "output_name": "response" + }, + "status": { + "type": "str", + "node_instance_id": "poll", + "output_name": "status" + } + } + }, + "requires": { + "nodes": [ + "n_coalesce", + "n_fetch_url", + "n_http_poll_job", + "n_http_submit_job", + "n_json_path", + "n_json_template", + "n_url_builder", + "n_url_input" + ], + "panels": [ + "json" + ], + "capabilities": [ + "public-http", + "async-execution", + "artifact-storage", + "external-write" + ], + "secrets": [] + } + }, + "canvas": { + "positions": { + "base_in": { + "x": 80, + "y": 80 + }, + "hdr": { + "x": 80, + "y": 300 + }, + "req": { + "x": 80, + "y": 520 + }, + "endpoint": { + "x": 380, + "y": 80 + }, + "submit": { + "x": 680, + "y": 80 + }, + "poll": { + "x": 980, + "y": 80 + }, + "path": { + "x": 1280, + "y": 80 + }, + "file_url": { + "x": 1580, + "y": 80 + }, + "fetch": { + "x": 1880, + "y": 80 + } + }, + "recommended_panels": [] + } + } + }, + "tags": [ + "pipes", + "http", + "rendering" + ] +} diff --git a/graphs/pipes/jobs/render-job.thumbnail.jpg b/graphs/pipes/jobs/render-job.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..de3b42007bfa97f2edb1702824d3e7d39eeaf0fe GIT binary patch literal 22473 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 U@8lnU1pi*W=Ks}0yS}{n0|qh}{r~^~ literal 0 HcmV?d00001 diff --git a/graphs/pipes/transforms/fallback-match.notes.md b/graphs/pipes/transforms/fallback-match.notes.md new file mode 100644 index 0000000..b65bfd9 --- /dev/null +++ b/graphs/pipes/transforms/fallback-match.notes.md @@ -0,0 +1,61 @@ +# Fallback Match + +![Fallback Match example thumbnail](fallback-match.thumbnail.jpg) + + + +A reusable exact-key join that returns a recorded fixture when the join finds nothing. +It left-joins two lists of records on a key, and falls back to a value the caller +supplies when the result is empty. Use it for a library or feed lookup that should still +produce something predictable when the live data has no match. Import it independently, +or publish it as a composite. + +Matching is exact on the key values. Tolerance or fuzzy joins are not covered. The graph +is local JSON processing: it makes no network requests, needs no credentials, and has no +side effects. + +## Data flow + +1. **Exact-key join** (`n_join_records`) left-joins `left` and `right` on `left_key` and + `right_key`. Both keys default to `id`. +2. **Join or recorded fixture** (`n_coalesce`) returns the join result, or `fixture` when + the join yields nothing. + +## Inputs and outputs + +| Input | Type | Meaning | +| --- | --- | --- | +| `left` | `json` | Required list of records that drive the result | +| `right` | `json` | Required list of records to look up | +| `fixture` | `json` | Required fallback value returned when the join is empty | +| `left_key` | `str` | Optional field name in `left`; defaults to `id` | +| `right_key` | `str` | Optional field name in `right`; defaults to `id` | + +| Output | Type | Meaning | +| --- | --- | --- | +| `items` | `json` | The joined records, or the fixture | + +Because the join is a left join, every `left` record appears in the result even without +a match. Whether the fallback node treats an empty list as empty, and so returns the +fixture, has not been confirmed. Run the graph once with a `left` list that has records +and a `right` list that has none, and with an empty `left` list, and check which the +output contains before depending on the fallback. + +## Authentication and security + +There is nothing to wire. The graph holds no credentials and calls no service. The +fixture is returned as given, so keep real data and secrets out of it if the output is +displayed or sent onward. + +## Using it as a composite + +Publish the graph and call it from a parent that fetches `left` and `right` upstream and +passes a small recorded `fixture` shaped like the real result. Connect `items` to the +next transform or a table or JSON panel. + +## Validation status + +The graph passes the repository validator and the production node-catalog check. It has +not been freshly imported and executed. The empty-result behavior above is unverified. +The Subfork version used for a manual test is not recorded because no manual test was +run. diff --git a/graphs/pipes/transforms/fallback-match.subfork.json b/graphs/pipes/transforms/fallback-match.subfork.json new file mode 100644 index 0000000..d37cfe5 --- /dev/null +++ b/graphs/pipes/transforms/fallback-match.subfork.json @@ -0,0 +1,163 @@ +{ + "format": "subfork.graph/1", + "thumbnail": "data:image/jpeg;base64,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", + "definition": { + "version": "0.1.0", + "name": "Fallback Match", + "description": "Exact-key join with a recorded fallback. 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.", + "nodes": [ + { + "node_instance_id": "join", + "node_id": "n_join_records", + "node_version": "1.0.0", + "title": "Exact-key join", + "params": { + "left_key": "id", + "right_key": "id", + "mode": "left" + }, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + }, + { + "node_instance_id": "pick", + "node_id": "n_coalesce", + "node_version": "1.0.0", + "title": "Join or recorded fixture", + "params": {}, + "custom_inputs": {}, + "exposed_inputs": [], + "inputs_visibility_configured": false, + "exposed_outputs": null, + "outputs_visibility_configured": false, + "literal_inputs": {} + } + ], + "edges": [ + { + "source_node_id": "join", + "source_output": "items", + "target_node_id": "pick", + "target_input": "primary" + } + ], + "graph_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" + } + }, + "graph_outputs": { + "items": { + "node_instance_id": "pick", + "output_name": "value" + } + }, + "metadata": { + "template": { + "category": "pipes", + "status": "mock-only-probe", + "summary": "Exact-key left join that returns a recorded fixture when the join is empty.", + "composite_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" + } + } + }, + "requires": { + "nodes": [ + "n_coalesce", + "n_join_records" + ], + "panels": [ + "json" + ], + "capabilities": [], + "secrets": [] + } + }, + "canvas": { + "positions": { + "join": { + "x": 80, + "y": 80 + }, + "pick": { + "x": 380, + "y": 80 + } + }, + "recommended_panels": [] + } + } + }, + "tags": [ + "pipes", + "transforms" + ] +} diff --git a/graphs/pipes/transforms/fallback-match.thumbnail.jpg b/graphs/pipes/transforms/fallback-match.thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..15f35447f1fe4a26afc61c03006852f41d77c9e3 GIT binary patch literal 15752 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 aQCuST<+lOCzyHS&>R(U)Lk*lcnfPx2XU Date: Thu, 5 Nov 2026 09:29:15 -0800 Subject: [PATCH 2/3] Mark job composites as mock-only and record verification Set metadata.template.status to mock-only-probe for job-run, approval-gate, and render-job, and note in each notes file that the graph was validated by the repository validator and the Subfork server-side validate endpoint but has not been run against a live job service. --- graphs/pipes/jobs/approval-gate.notes.md | 2 ++ graphs/pipes/jobs/approval-gate.subfork.json | 2 +- graphs/pipes/jobs/job-run.notes.md | 2 ++ graphs/pipes/jobs/job-run.subfork.json | 2 +- graphs/pipes/jobs/render-job.notes.md | 2 ++ graphs/pipes/jobs/render-job.subfork.json | 2 +- 6 files changed, 9 insertions(+), 3 deletions(-) diff --git a/graphs/pipes/jobs/approval-gate.notes.md b/graphs/pipes/jobs/approval-gate.notes.md index b32c4de..fc9595d 100644 --- a/graphs/pipes/jobs/approval-gate.notes.md +++ b/graphs/pipes/jobs/approval-gate.notes.md @@ -108,3 +108,5 @@ not been freshly imported and executed against a live service, and no approval r was created while adding it. Whether a failed poll halts dependent nodes is unverified, as described above. The Subfork version used for a manual test is not recorded because no manual test was run. + +Validated by the repository validator and the Subfork server-side validate endpoint, not yet run against a live job service. diff --git a/graphs/pipes/jobs/approval-gate.subfork.json b/graphs/pipes/jobs/approval-gate.subfork.json index 41f2a97..8ecec2b 100644 --- a/graphs/pipes/jobs/approval-gate.subfork.json +++ b/graphs/pipes/jobs/approval-gate.subfork.json @@ -228,7 +228,7 @@ "metadata": { "template": { "category": "pipes", - "status": "network-probe", + "status": "mock-only-probe", "summary": "Human approval requested as a job: submits an approval job and polls until approved, rejected, or expired.", "composite_interface": { "inputs": { diff --git a/graphs/pipes/jobs/job-run.notes.md b/graphs/pipes/jobs/job-run.notes.md index 0a6a219..602a34d 100644 --- a/graphs/pipes/jobs/job-run.notes.md +++ b/graphs/pipes/jobs/job-run.notes.md @@ -116,3 +116,5 @@ while adding it. Whether placeholders that stand alone in a template value (`par reaches a failure status raises a node error or only returns the status has not been verified either. The Subfork version used for a manual test is not recorded because no manual test was run. + +Validated by the repository validator and the Subfork server-side validate endpoint, not yet run against a live job service. diff --git a/graphs/pipes/jobs/job-run.subfork.json b/graphs/pipes/jobs/job-run.subfork.json index c77f7d0..5876da5 100644 --- a/graphs/pipes/jobs/job-run.subfork.json +++ b/graphs/pipes/jobs/job-run.subfork.json @@ -217,7 +217,7 @@ "metadata": { "template": { "category": "pipes", - "status": "network-probe", + "status": "mock-only-probe", "summary": "Generic asynchronous job over HTTP: submit a job request, then poll to a terminal status.", "composite_interface": { "inputs": { diff --git a/graphs/pipes/jobs/render-job.notes.md b/graphs/pipes/jobs/render-job.notes.md index 465b191..5b6096a 100644 --- a/graphs/pipes/jobs/render-job.notes.md +++ b/graphs/pipes/jobs/render-job.notes.md @@ -103,3 +103,5 @@ and no file downloaded while adding it. Whether the platform accepts the 250,000 response cap, and whether a poll that reaches a failure status raises a node error or only returns the status, have not been verified. The Subfork version used for a manual test is not recorded because no manual test was run. + +Validated by the repository validator and the Subfork server-side validate endpoint, not yet run against a live job service. diff --git a/graphs/pipes/jobs/render-job.subfork.json b/graphs/pipes/jobs/render-job.subfork.json index fabd8ce..c1d9a61 100644 --- a/graphs/pipes/jobs/render-job.subfork.json +++ b/graphs/pipes/jobs/render-job.subfork.json @@ -322,7 +322,7 @@ "metadata": { "template": { "category": "pipes", - "status": "network-probe", + "status": "mock-only-probe", "summary": "Asynchronous media job that returns a file: runs the job chain, rebuilds the file URL, fetches the artifact.", "composite_interface": { "inputs": { From 35cf630b7d560e012daa4952409672b0e798b0b4 Mon Sep 17 00:00:00 2001 From: anthonyshafer <835847+anthonyshafer@users.noreply.github.com> Date: Thu, 5 Nov 2026 10:00:40 -0800 Subject: [PATCH 3/3] Record run evidence in composite notes and fix card labels Replace the not-executed text in the LLM Call, Audit Log Write, and Fallback Match notes with the actual run record (date, endpoint, result, what was and was not exercised). Add the server-side validation result and the node catalog size to all seven notes, and drop the duplicated trailing line from the three job notes. Mark Media Probe Normalize as media-worker-probe to match the repository convention. Label the Job Run, Approval Gate, and Render Job cards as showing the main steps only and regenerate the embedded and sidecar thumbnails. --- .../video/media-probe-normalize.notes.md | 10 +++---- .../video/media-probe-normalize.subfork.json | 2 +- graphs/pipes/http/audit-log-write.notes.md | 16 ++++++++--- graphs/pipes/http/llm-call.notes.md | 20 +++++++++----- graphs/pipes/jobs/approval-gate.notes.md | 10 +++---- graphs/pipes/jobs/approval-gate.subfork.json | 2 +- graphs/pipes/jobs/approval-gate.thumbnail.jpg | Bin 17241 -> 18257 bytes graphs/pipes/jobs/job-run.notes.md | 16 +++++------ graphs/pipes/jobs/job-run.subfork.json | 2 +- graphs/pipes/jobs/job-run.thumbnail.jpg | Bin 15359 -> 16354 bytes graphs/pipes/jobs/render-job.notes.md | 14 +++++----- graphs/pipes/jobs/render-job.subfork.json | 2 +- graphs/pipes/jobs/render-job.thumbnail.jpg | Bin 22473 -> 23496 bytes .../pipes/transforms/fallback-match.notes.md | 25 ++++++++++++------ 14 files changed, 68 insertions(+), 51 deletions(-) diff --git a/graphs/media/video/media-probe-normalize.notes.md b/graphs/media/video/media-probe-normalize.notes.md index 913197e..3246820 100644 --- a/graphs/media/video/media-probe-normalize.notes.md +++ b/graphs/media/video/media-probe-normalize.notes.md @@ -55,8 +55,8 @@ as a render step or an upload. Connect `facts` to checks like a duration limit, ## Validation status -The graph passes the repository validator and the production node-catalog check. It has -not been freshly imported and 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. The Subfork version used for a manual test is not recorded because no -manual test was run. +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`. diff --git a/graphs/media/video/media-probe-normalize.subfork.json b/graphs/media/video/media-probe-normalize.subfork.json index 33088ad..4f4158c 100644 --- a/graphs/media/video/media-probe-normalize.subfork.json +++ b/graphs/media/video/media-probe-normalize.subfork.json @@ -78,7 +78,7 @@ "metadata": { "template": { "category": "media", - "status": "mock-only-probe", + "status": "media-worker-probe", "summary": "Probes one audio or video artifact and projects the facts into a stable shape.", "composite_interface": { "inputs": { diff --git a/graphs/pipes/http/audit-log-write.notes.md b/graphs/pipes/http/audit-log-write.notes.md index 471b029..5352c00 100644 --- a/graphs/pipes/http/audit-log-write.notes.md +++ b/graphs/pipes/http/audit-log-write.notes.md @@ -86,7 +86,15 @@ want to record. Connect the step's result into `payload` and `subject_id`, and u ## Validation status -The graph passes the repository validator and the production node-catalog check. -It has not been freshly imported and executed, and no live write was made while -adding it. The Subfork version used for a manual test is not recorded because no -manual test was run. +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 was imported and executed once on subfork.com on 2026-11-05 by anthonyshafer@gmail.com, and the +run completed. The run POSTed fixture values to the public test endpoint +`https://jsonplaceholder.typicode.com/posts`, not a real audit sink, with no credentials. The +endpoint answered 201 with an `id` of 101, which the graph returned as `record_id`, and a JSON +object passed as `payload` was sent as an object. Its nodes, edges, and graph inputs and outputs +match this file; the test run only filled in `sink_url`, `headers`, and the record fields. Whether +the endpoint stored the record was not checked. Behavior against a real sink, idempotency, and +header redaction in logs are unverified. + +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`. diff --git a/graphs/pipes/http/llm-call.notes.md b/graphs/pipes/http/llm-call.notes.md index dff9f19..9083236 100644 --- a/graphs/pipes/http/llm-call.notes.md +++ b/graphs/pipes/http/llm-call.notes.md @@ -86,10 +86,16 @@ and record which version the parent was tested with. ## Validation status -The graph passes the repository validator and the production node-catalog check. -It has not been freshly imported and executed against a live provider, and no -provider request was made while adding it. Catalog validation is not evidence of -provider execution. Whether placeholders nested inside the array and object of the -request template resolve as intended has not been confirmed in a live run. The -Subfork version used for a manual test is not recorded because no manual test was -run. +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 was imported and executed once on subfork.com on 2026-11-05 by anthonyshafer@gmail.com, and the +run completed. The run called the public echo endpoint `https://httpbin.org/anything`, not a +model provider, and sent no credentials. Its nodes, edges, and graph inputs and outputs match this +file. The test run used fixture values for the inputs and set `reply_path` to +`json.messages.1.content`, which reads the prompt back from the echoed body, instead of the default +`choices.0.message.content`. The run confirmed that placeholders nested inside the array and object +of the request template resolve as intended: the system and user messages arrived with the +fixture text. It did not exercise the default reply path or a real provider response, so provider +behavior, billing, and rate limits are unverified. + +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`. diff --git a/graphs/pipes/jobs/approval-gate.notes.md b/graphs/pipes/jobs/approval-gate.notes.md index fc9595d..1b0bd4c 100644 --- a/graphs/pipes/jobs/approval-gate.notes.md +++ b/graphs/pipes/jobs/approval-gate.notes.md @@ -103,10 +103,8 @@ make the guarded service check the approval on its own as described above. Conne ## Validation status -The graph passes the repository validator and the production node-catalog check. It has -not been freshly imported and executed against a live service, and no approval request -was created while adding it. Whether a failed poll halts dependent nodes is unverified, -as described above. The Subfork version used for a manual test is not recorded because -no manual test was run. +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, so it has not been run against a live +job service and no approval request was created. Whether a failed poll halts dependent nodes is +unverified, as described above. -Validated by the repository validator and the Subfork server-side validate endpoint, not yet run against a live job service. +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`. diff --git a/graphs/pipes/jobs/approval-gate.subfork.json b/graphs/pipes/jobs/approval-gate.subfork.json index 8ecec2b..f007479 100644 --- a/graphs/pipes/jobs/approval-gate.subfork.json +++ b/graphs/pipes/jobs/approval-gate.subfork.json @@ -1,6 +1,6 @@ { "format": "subfork.graph/1", - "thumbnail": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAFAAeADASIAAhEBAxEB/8QAHQABAAIDAQEBAQAAAAAAAAAAAAYIBAUHAwIBCf/EAFEQAAEDAwICBAkIBQsBBgcAAAEAAgMEBREGEgchCBMx0RQVFhgiQVFUlTI1VWFzk5TScXSBsrMJIzM0RFJikaGxwYIXJEJTY3IlQ0Vlg5Lw/8QAGwEBAAMBAQEBAAAAAAAAAAAAAAECAwQFBgf/xAAwEQEAAQIDBwMCBgMBAAAAAAAAAQIRAwSRBRIWITFR0RNBYmFxFCIygaGxBnLB4v/aAAwDAQACEQMRAD8AgnnicN/err8Nf3p54nDf3q6/DX96oki+84t2j8dJ8vjOGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8L2+eJw396uvw1/ennicN/err8Nf3qiSJxbtH46T5OGMh3q1jwvb54nDf3q6/DX96eeJw396uvw1/eqJInFu0fjpPk4YyHerWPC9vnicN/err8Nf3p54nDf3q6/DX96okicW7R+Ok+ThjId6tY8CIi+LfXCIug9H/hbPxq406P0VCHdXdrhHHUvb2x0zfTnf9WI2v5+3CDnyL+nPTd6DPC/RfR/v+rOGOnharzpusjmr+quE9STTZDZo3NkkcGuYJY5OwHA9hX829M6TvetbxHadPWeuvt1ka57KK2076iZ7WjLiGMBJAHM+xENUimNBwa1/da660VFofUlZWWmQw3Cnp7TPI+keBkslAYdjsEHB581GKe1VtXdI7bDR1EtxkmFMyjZE4zOlLtojDMZ3buW3Gc8kSxUU0l4KcQoNSt07JoTUrL+6AVQtbrTP4SYSS0SdXs3bMtI3YxkEepRm+WK5aZuc9tvFuq7TcYDiWkr4HwTR/wDuY8Aj/JBgop9B0f8AibUXu0WdvD7Uwul3a+S30klqmjfVMYGl72bmgFrQ9pLuwbhk8wtDQ8Pt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", + "thumbnail": "data:image/jpeg;base64,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vhrardv8Ib3gk3evd1z9OVUoprjQzmRkU8jXuBmhlY8xTgHO2RvLe0nqCgpWjwVt0pfDoZp6TvGiSOCQRvcM+hxa4D9oK2Ha+HlBeNS3+GaG51rIb4LXGy2Nja6Br3Sf9RINhGxu3G0Bo6824CjTtU1RqKeZmlbFE+CTvAI7QQHHBADhu5gZzj1gLETVd2nrqysc6sbU1jnuqJIw9hk3HLgduMgk9OiWE5umiaCTQ1JWilrI6mltEtV4zia0UU7mVkkex3m5L3gjB3ehowRzWtDyKvCLiaYUx8MNOCD3J7zu8jODt6ek+j0lUfAqn2ab7J3uUBRf02m+tZ+8FE7l8o1f18n7xUt+SttZWNMUcZ3sY/zXSuHRrQefXqegGVDJJHTSPkecve4ucfpJyVji+0NKHlERc7UREQF6Y90Tw9jnMeOjmnBH7V5RBceMqz2uo+2d708ZVntdR9s73q3RTeULjxlWe11H2zvenjKs9rqPtne9W6JeRceMqz2uo+2d708ZVntdR9s73q3RLyLjxlWe11H2zvenjKs9rqPtne9W6JeRceMqz2uo+2d708ZVntdR9s73q3RLyLjxlWe11H2zvenjKs9rqPtne9W6JeRceMqz2uo+2d715kramVhZJUzSMPVr5XEH9hKool5BERQkREQFcC41YAAq6gAegTO96t0QXHjKs9rqPtne9PGVZ7XUfbO96t0U3lC48ZVntdR9s73p4yrPa6j7Z3vVuiXkXHjKs9rqPtne9PGVZ7XUfbO96t0S8i48ZVntdR9s73p4yrPa6j7Z3vVuiXkXHjKs9rqPtne9PGVZ7XUfbO96t0S8i48ZVntdR9s73p4yrPa6j7Z3vVuiXkXHjKs9rqPtne9W6IoBEREiIiCtFWVEDNkdRNGwf+Vkjmj/ACBXrxlWe11H2zverdFN5QuPGVZ7XUfbO96eMqz2uo+2d71bol5Fx4yrPa6j7Z3vTxlWe11H2zverdEvIuPGVZ7XUfbO96eMqz2uo+2d71bol5Fx4yrPa6j7Z3vTxlWe11H2zverdEvIuPGVZ7XUfbO96eMqz2uo+2d71bol5Fx4yrPa6j7Z3vTxlWe11H2zverdEvI9SSPmeXyPdI89XPcSf8yvKIoSIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIP/9k=", "definition": { "version": "0.1.0", "name": "Approval Gate", diff --git a/graphs/pipes/jobs/approval-gate.thumbnail.jpg b/graphs/pipes/jobs/approval-gate.thumbnail.jpg index 5cfa9c4970d290c12ec1ee43cc1755623ec9a878..59608778b468e7d1164a09723c33976dc0ba5c3a 100644 GIT binary patch literal 18257 zcmeIZ1yEd1vpBj0OM<&C5;PDX*y0j`EKZQcHMslY5Fo*w0158yu*f1of(6$NEKYC_ z4gntD_wMia-GBXW)xH0!ck9)wcjug%I;Xm)yQfc2&rDCBho28C0DJ{md07Ao3IKre zcmW=e04V_KlPCYU9}C*!js6rJ9SsfrIVL8?Q|#y1*jUf8uyAk*@o{hoaIvuPN%0AY zh)GCDu<^*qNr}k`iAjk6K?DW$u?-sfGj#N4#5hsZrii!FJ1NGk!P@WK=q9vdclD^WZ|Xu! z&l8kei{aX}_An2?e#CpkAOJ`Jg1z56FV9zf3;ni~rIR6WQC_`TeOW~)bD5#v5Fo6Y z+UMLS)vnhc2EG0d@ub%l^G_!IGPvW9v}#uuJN_n7oWg>0SGIR$cenR3L9ogCk9#%? zwzY_S)M2g8rLuX z`+vmxA8q}QZT&smstEtTFcMd!Wlo%`2uQp39{}BRS2KN?w0XI>hlhx#>!rRv{YuN? zo_FLi)mwYrIDS!QTa8DiS!CNCW0!ZjJ=CHc+L;2nz?r+5Zl6S(Ix0R#`$R#|FkwH- z8)q?@0EeAS7T?*X@B?9=F++d&07C4u*1YGm(nW*CckT~~fK7k7P*&o;kPyB5JwuPY zyz!gFy1J%xHK{XfaM-AEn=)D4YT9m;laeFbcPDH8}5EIY4oZwv8P1pSt+W|>8v4Y zYI8Cgg7I>E#=#Tzl`eC|k$*sS!Y5^3-X-?X6o9cIL|Tb^>(N0arH`YpE7b$Q1*_ne80xyZMJ6J25~yiA zBC)Q25c2KBL;KShnM-5PWYdUQk73vczZHK&d>8uH+=SctETz^ge^T|Jr2D3-^9qdz zr7#Ekiw@eKzYfc2RZfUu^`S@Z%JIKrqAh`!=Tsla2kF9C90W&k$$D>iSqN^?`U9_6 zjxn^6-?Okiq-<=lDMm#`Z@(QyiHTg80dF{%kgc_gw3bneiPwd8R?XXD(nj+Fnr-q- zj3d^8?&iP(voD_9cXGIxf`hmkGBsC$bITD6kVfH+0zQ)4cgVE0G3@*TX2R8J%vKy1 znhc^(pQeFqvv6(5)Q)dQV!J+!LnDN>62!;DpO@R8ByHbkKKP4&>*Z%%GJ9z9J`=e6 za7>s;XGf90qIuVL`+fGiNu?eUj{Rem3oBv%K58O;I=a*>oi2m&o(}xI08Yr5a^6`X zQd3a{CB3(yPqsHJeR;5QEQgRMTv|;5bcqEEeEw+Eu-LC~o3uGfW1xVrmCO>K2RlpB zhx;8tHFvr2@TcJ){!10s8TgvsONs5Axo*wEfwv%d4p294+QOOghOva>M%p1J`vLI6 zICD`v`G%m#*VH;-j5@4R7#vDjnGA${27?s8I;1*)lzv|(^APd*BQLm~_8Y7a#1r6t z+7B^Z(<-i9&rFSiGoP5&+KGHb=()MY`CkJ~{ zn>oSI%wa89-P`eS)fx9r#Ssy>(B`avtsq$GwAT0~)p!q&!a85?=ixCHg!gH&GlyGO zB;B9-7gsie$XM_0Wno%F=jF)2AEt%p#kfxU?Nf^l=hkpgLz2dq-MnIV-`ZDHnJ3|+ zvfd3Fa-kRD_wQ(49Q(qwa;MUCQ|57~P22b>hvagi;hU$mGrWqN0ueL@`$7d~IJ{T4RTAN$s*#%KCOTOB@OFUpHonJW9?RYhR%eWgbIiLRS zgzy2NQ3xx_gg3rQ&a3mR3*BSnFw4)ziRryfuMw(rljrCO8dV89Ae+xa%-g}Xo(Etz zx)n5>??$FY=H>BH?QSI2u_%i7j8ux~%!Z8N45A96w14}o4O?ni!6ajc2Zl|(`?+Vw z;euGGs(aV3CZ_MZql=B!29zDC1LAtepFS5uW=;eB_c?kxK-x&wZ4VP-nN#TnB5FxL z4XLEz{v|H4oTR3S=`HJvxq7GvBEzKK=8$Kpijw~pZ0q2Fewbp04RWu}(t@Xf!jY;yQ`)GxT}spJEcjvv>~bB~$)?i0qXM#i zu>pk+!*4oGAUCdS8pLQvHl0~U_}wx9@2FmdeI{#+3# zS^NuP-ZP@jwC*IhF)xGP&L1`Zi+--3D{McZ^NDoE@#Hur)MdKL{9c7Q6e@E7n3yOk zz?ADQ@zmK;!PApyLu7O%Uvy zzKgk)I^GKLd$KN@I6a>ytlxfUTQrX(p_Z$?e?!f zxXa4)nt(4w>ZjtpuA{Kv`p)c+J!%EL^aNiI6qumw1FxU(4wF+N>YDJb#H!C}a*Eb5 zVA<01r6uc$i)!dnFOD{O@Gl6r3kI;eI#J7(sGEFWT03Gpv&h?tQB`=z7Us1rya@e@ z@Qt!6rW62uYd!J!il2HIWvm_?cBCcNt@^jmG$v2N zbwqX+siLUA8f@{IN5f(|`((&c*V!wDimALEP98{t7 z@z(Bp0ak>n&hZyB+-e}Z_uaxNL%o?+1t2GUdwgZrrbYY9mll3;5nU4^_Jh~6p&RoZTE<&>qR6;ZJ6ntI3TSlHP8TyfTu+wkW%HxeLH9v{5Ua5cIAx;xZdFt z3Imym&{0`leo-Pu)8>H9%Bzw{*|7K#2_3}BeqTeR0E|#jv&JRGb7Ub+`QjgGJ%MH{ zSZf|i#I&w1(HXBJLUtkBC2Wom_M(E~l(O7wj!056p`U0OC}Z(x_c`z0y^-4)L>WMH z7wx7aR5h}$wya$!EkWvn8XGAE05VFSC;1t&zIao4-w2&*>HK)YOyVO9!AX-(!3Y9fjz5Q;_EK7rG1bE1^ceRBQHm92V<6 zmDaPw`R3+m(&`%%QHW==juqGTbp}* zBww>vb~a_ibTAn_-_T=zLAcmNO&}xV8H!~YQqV4`R>7$SPlZz$ubfq+G1q>8^}y#5 zq7it??LI}xt9=QHi*{zLbKbdC71gm-4alvMlh#w757ei|uP(aXR%r_m9mw zCHIAK=cD<`cIxDYCiG=l{p=ngwwD#o>O+cFp&fcZ=H>Mn3tC#zDEq`F#h)hh8s%TWfG@(;|1S zl;CF+Zi}#HPGoc`N7;Z)gW>!-ZhVo$1^hcpSq*=h+B17kawPFRUaRxM_?D-4*Ib54 za^aqbGQ==+#K!#Hq{jTOG_QiC91vjftk4v=4hw((^WZ+%A#L7kItg+B89~DEsm@PM*!0wp zC}`&07#F?n`^*EsuX`<>8*?|1vWk&`k5i$fwsw_}dr#z7pUS5B!tz|$VcA6H}~;yN@>5Um{%uK{xfs#oGnHfEJ6d?~lhD@~=BU(Y;9xPBDm*Va^G z0zdl_(M}9^G3RC?j+hg?SFK{L{;=|OdUMd(iLj2|%4#B_eFRsC!O^D-?yH~!!>>pa zqm^WDyty5LXN6`ch_cqGQ@kLg{?+m3;*W`>5W{o>1Dj<`r5$rZjM?ohteOt=0GJ0} zi|p*yrQkq}i*4BoivxXZS<6_n<}%hMmSuG=KRi7>_7=IDY0A4Ju$(TMBnClmL}0R? zi$m0}V(VJcY~mGxkk_$=3BBCKi{Ge`h2GJ$BJfe}j9)MLJTl|!;N=QDX$NX{g;_;0 zjdOOT2fsVK)3COYbjf)->oJ`%$Yh!MxQbGLlNa5EQ-VL9ZhLM)18vVq z=Hbu#XL=1GB>JZvxyg9;RbvKiz>GU4f&4oAZ5&Y1>I6J5;`6M&dn(K9t}qLj$h_1n zotoGwmYEEH%gi@DSitnqX0w7i$9-6jo&_E%AjO;^AjCY4<{rlO0^pfX9ysFn`0pQoE_?XdMyPQgr!T>6_q=Qy#f*qOf;r=D_l*^%SP9*r5W z78CLH=BwyCa!u^``crq8ohmxUwR3s~VIo%(_RXSdsFwsYM@N?|Y!6t=3nmjGq{!_< z>{1i6bjT8Dq-#`{QPm8Y5&s4X6vBrT11QHQ z&d|xiKO)ofUaT6X_`(=LdX};L6T1o`zN>|KWf7s6mz9Y^%&9a4Tin@&IM#!|oL5MR z-s-Lvx9>z1_9*le9ooYYYIU*Xg&{qx`ce!T28cv?vzpN}kL5iq6`MOd=v31URvW~1 zMpLal*4)EQ?rMqLbym=EbKE;<`;6TnRd}u_*5(zPF`vU6FfMar*h#sP@fSAHfU8D3 zb%Kq;xxFSC4rW31^lYSvn6f$Sb3NF}>?;wHAiNf7u;tw;Cn>b`K@~*Y41Q};-~dd1 zoqV?5-FgAaO(Jw zN#;EQKO$ex+vclw$sVr3SFTw%gklL$b34s|;H>U$Z@w)tO1jQzN~09&S*W819e zt`>5*2}5kPhMath3!~YM@wXV5hnV@B#u8`auARTbJiIPAow}DpMsb-~hnz}J1p|{Q zj_AkF@9(w4du}^B*BeBN_I>WN%8(0(Q36-1y+z0}`wKlo4wCtPW7q0pxM8tQu}S8wrFc{HYXA9$U+9LeGD;}rk1wX2OYdW?K!KN?MIH`{+jDZe z5t(xRjus+?E-}TEQoJ7m;>pU&KN-5ccThHzQGD> zXz7OuhQ)Dhjarj?7TU<@_pk}wXBoL%vYf@XEtzQ0yQr>tYiX(VX&xgSEUw^JK%i z))L+^pe0I)3?~dH>+*_}#x$>keK-1e>G$kVgy8jG zcFtcq=}zE$$hK=J0!Ej?DN5VmYZ7La&qV$-WcRT5j@0@FU0UrbaHFLtSE4X?R|;?6 zWG2+7aG9U30LJZ_FCKiYB06?a)qkDw_k#KJG88PW*ud*RzF)sxZ5MXutiANQv? zv7=%p^?55v-8d89nLB|Zsy^z%=yjcfIsF@4>M)|9Xj6S35&Frwvw1e8e$Sg5MMj)b z(ulofm+FGl`+Tz{>G4_F-+k1TIERdO-oHf`p7%QYsv-|(qoQZD_!r8QJ;eAR5Yp>c zD-l(85iuukPZ%w>$iIL(9q3FdEjdY)^F7GRN{Ahymm1Fu=sC|*tkCWR6+}KkT8{jg zATkU~i?JS}qtPuLd3v(o@w}5cey1`;NC#U7?G9FQDAGByuH!(Gz3{h^sY$upo8ovu zcjp0bv<&Q<(f$X+aK+{_O@aZ?4rw)w!!?XqLnyKeja&UE}s!3Thmol0F@9>X*9 z-!qX?MQ<@hvXhJ!^{!jHEL44@UN}1s~ft{-g5XYD_PeMybLz+-R042%$MTMrMKmQ!c$YF zhTC8@xenZSeybXnTKDc(LXxMSR2TKHr>07lK6(&Gt!!Y9l1O+sZK;NQrWMq@oB5V0 zCLHtM+Q=9;Ezh}!lPAmv`}0qygPw>7fDBEh>>0yAmEFOqzO6`Uh^rnD!L?Csvn_f4 z%0fQMHTk3Ty9AQ+x(SXk-<~-%f_PfKOcXHy>Q_-X-kGjyi2I}HR@;TNnMN{9J_{WJdYO<+JPMt7g+dPH z4W1gNJrfTu=YtS8oXAK;4BkZ^n0k&oyvvF7pu39$L1yY0duaqiw`UR?EI~n(z9KGTxuEme_6%9 z%t0mJhhSR$_1{(@{ue>_|CUC&X$OL)L8t1P&x>Ryw`zwEf7yXGqT|84LN}xo>NaUU zl|%u-^lSyv(%9zfh(YDU4?OGd`l9&-E*((EXRmVt?Hlo*w~nE;$SRjcA=ZN$jTzbBKuZ0`V>OmsVBGjOt>QmU9DF{! zME=O5C7(OE{`Ji_p7K9oyd*cZ+zxw=^TPf&%U3tP5+VuORrc7`We%((FTbu4?Zvqu z@4sl0ZJd&(OUOsG8A!`KBOpK_!2f5ZZ;OFB$7%%5_>sz8d|MdwJ@Cr|z=KL%|8juq z0T3J4A3)Wt`W#AetsNlW0brvddkQkV)F7Z4uYJFYrPRtTa5NT_w%U%b$G8Ckvuo$Fz zCWy-ZQ|Nb>F{IX&+*gX1Tqo)J{p(9uOW^BFB*px1A@A=!v2OggMt>dvp@n7pU7#Nm zAfu$2#&$I^A@-E4C$k$5fS-0f3n+VoKlN0K()5JCmTtw2k6|qW6WUBioCWFPbY4Km zFx)q0=fsva{Ojb+TC`+TQElk)`D4?v@HczW#1>-R8pD9?D?|xFL7zs&3g72PMSEtW z_89_kOK{GV%&5LO@+X}owkucG9lKsDi7rv|N)ON5q~AG+UiYiS30NGk8~Dw58z?lb z(VuWT6|SeU?#+}>5cs+6{VQaNzAGESk;*S<(Sg0Semg?f@Bp|!Pu}po&vknMV6yz7 z3;QfJLq?RNPR%!tbm)5{`ui%6<+j)@`~kop_gig)ekz;MK)i!?F~KhE=5u+zL{Y=c zkdDz#C25+Ow(&bTbCb|$l*BbvIsgS@<&f%}i7I=_SQvlc$J+iSaRikoDXzg-<~QKY z{`sr>egZY&+tObFIK2%u;X!+gWUT=bhXfCRym{9hkzQjm4gtA+7vw<$iHDoA`kX1( zbcD%I7QlPsr!3gcP#wx8-B)MSsdZf3b)PM{ZPGU3mDb;0wikK(-k$!tawvqk9M?lu zOlOE?2z-BU@wd0^45i1xLSy0Eiuh(U>t+xaQFkBnQsBxDv({Pio4GZY^ZM zD{w7UJ_FyudG6_+(4<>|^*>{iEeU>0(}Pn9BZ$;ICxWTVsE#np&9c!A>;5th-bX9! zrhm=46aM#MF(=0%dvy`R13)c5yCj45j7j_kSJoijj^|HNc{x!HvuqEcNiGsw6tPnj%0t1$zrbN6MFji8ZB1Otc?y1sz|J{ z;0nNR=kE^2x5HbPL#VSF4%X|%aO0bIEN5IW!%6kC3Si5|QY{ycro(*&eB#hy&EPHLD*KgBXmzD4|C^q4N-qKPJO4LoH8z{ zzKP9R*R?3?&`^e0#8T0b*BHVfh2gwdNmGU z$1yvv@I0z0`WQY}x@zxKn%Zq3GAKvkTN~8;tCFsWc{}SZJzdi`zYx5uoS-^7N>89tGw1W{4^a5%Knnk>)E90v@`U1z@mFG3ACZn@F62nFIGpg&blAHW@;h?l6`!)ZyVV-}B>cz>azQC)@vRD0ir?g)8i5%Y5oNcnx zgocN|xrX%^BFTdYddOLDtnb>!)V-6brH!D>OkS`NkC9EEp>KG&8Eo$(=_j5rgDWgZ z9nh5Wp3u|L(?3?#GI#vxd%Cw>(uc+`XYTy6+cfKo0>N7CO|*Z>}Z0Dr$Y+ zo^ebNxWNbrFlYam-b^nY{I0Y@NZd`o_+QO3EA9AG)BaL}p2N=T8P*_~?5$^Gd=zd1FBsuwbx#=-)2pO)(o^Yjr z16)myEw>S3@P~di;h8-LE(a$qnb1{#d>4~6av^l3>7t~5zM1AmH6+dQq;$_?(I~%U zs!3n79=WrY$eg11>@|8}T}V({2H{h>>c)=Q=<-$4_Ed=a94w$|I;|t|2vl@y?>@~t z#glDH$JYR^fd%CV;#2LQZQ&G(P|VuSTN$u=1r@i+Ks-)3(vEPL9F)jxbNW(KJk62-D>y~dP-`T&;tS3V!<`x{A?4egX>|z4+MOgR9LQxS+b#v) z`MXBz)yOPTacz7=%xE8_Q0bqNO~kxngJtzZ8}qDzSYBd^op@>T@ohf z24+ftUA&kn*03vgxHxyL8Q;NFk3^=kvXvvbN*#ASd$9@NZ~FyCIXO_;x;AlNQ_mI4 z>ok+}+HD~9^vYo>DXo(e>eKVaVlq@|7l-yHwXH@wr=dxIChS6vQ;Sp_I4YYn-4SV? z(z%(p2nXT+ncaJlI^zU z9XunSD9;N8XmC_GnGI|~E5f&2dbI8jlX+DG|7uJ7T*YA*y{O}+EbrN>4Z6Up1liF7 zb=$(Lii(_y;+6^VMb}0{n@=)K9=ze4ky?a2JSb@R;7aMU7qgW4_3e0+usA%MJ@>*e zX|Kgp!QFE(&K~O?dn&4`%JrJPiz74Z2TLFjLsD=Mn6vn~nZ&GRshOj~5$VLWi({t$ zzN{881?G4W`CNMdD2djb6df{@7(5B>p5>?N_*^o@@6TJnq32lTv#W@cIB%AlVw2CU zbe(qD@|#R{ZOQQ$9{Z~@$2p(8IY>UO?Ic{bA6!t)yL6CpYtbQRgXF6f7J#iND5h@- z&5iD7H3Qh@%XRI#Z*J$7!L}S+9xCB8m#<=|`Kybk1k&tcNwZWmG(*I8k^C*!tNR;-B^`161K)??A}w1R+aaG8+)*mP-i6q73Bk3dq5u$7K& z!1R2&+B`=J+?OV8s&Q9;!6&vXtJjflq(!^7Ya}gyOlVX56*ShnU&geoRnFGX&|yu6 z#Db(s5VoZ<&j7BFuOe* zs;aY#FPW|$OiI|FL2K2U2M75?$w6VTSVmb|v#o|vcYf(h=WZQFKZy$WoDPAUbDK-jSFy}2X0WeB0 z{Z{Htzl~YUJnN+;7Hld#H(aoZAuB9%aDS35r?YMkgLv@Oiq&?h?1(haqj0)q9Gc&; z-Kt!;PAo`FE*Mh=Z*$J;Rm;wUsFT$BCkHw4)u$o&*v>6KW8E71oR5WqRd|R6qBAS< zvtvb-t0&K(m8Ly+>NosjHq*109Vsp0^`V3|SXG%Fn#N~U zl?_zhLkYSQc4E!4hvF>Aie7GS*Ko`)AcB7(tmlN$=-6H!E8?=aq8XU$zK!CjBjP^54f) zVZyEG@p_-z^bSc&Lq73J96SJ0NK7}2ENyzj=L<+8XFB0c;NJGq2(p0>h5-Jnp1M#>iO~ge$?c=Zbp_BFX-3tB}4Ync~gCy zmBp#IU&o;nkxyWC;T^&{ysf|Jb>&shd3DsbppfJZYxg3HD!6O($(UjfCxy|zcDiqN znUh|Py2gwQc`1i`bfP@@B>~NPJmS<2%#`c&=lLq+-NDKC_4Q%L1+Tjb=VkY_Fp0uw!BdB_BV z_s{03hQ ztOjP0h?E37!FtQh3WFmlp^aHDhbM4?Uj)^E9g;;si&N-d6nST-e@>bkxxY)5DRZf= zW*hlqFxNS$yYvl#Y$pPvksXxp$oqloZEvQ}63azUn6B-QT`^%~p4KFA0*HF(1VJDqEWsPbOhe~QKWREgN%sOY1^kv54glxYe zcf=${50-$LnPP^sbDgK-m=EtqKZ-Sv)bR78U`33krYUeq1@z0V-BwXzT)Vl;GvH#3 zuMy2=s)>VWhI6i{TJPFJD#)!%0`R(*cQXiY!iYNIAI=r&zBO^!352t<5MY7cfq#-i$uOs3p;9 zqc_YElzIRJ0~O1r)C^?~gQhgzl;CR=-FZiq~d1l0RZ3b-eE7_!;+TPE8&RfJmh!) ztc;el8i_*I1MzARx~tC!kqnq9FMr6QNByMY!(ebCVBn!HKEi^xOnt#F^al@PnnTk=l1KXDf*hZ?7 zJ^ow~LBY^=sf+;-F<3b?SZG-#*28K=jm^w&7@;L@o+z?wI3Oc%e_Y|HX&7zqT36#1 znc12KMcaL^#q>-7nluoMe*ow8sVqaz^~UrKETc6cNC8uURItvi34gY+ZKa~eB!oxN%R{KJq;6O52URjGKBh7v zxnSU$!Fltd4PTzoOi=T@$?nTljMG{>^{tHLqMi44Io*kW*Ep5G45R-7kLbSGy|>Wy zyn)*|jlu3$jaKwu(lRdz2+-Sae~}0F(XN(ECN6hKhW#Z~AGbdM-nBd?jV9gWOO0v% z-=QZCq2Dq+d#iVI#2#`DTZ3eH)nS+BdaL(^ueMvIWyS~oO2Jbq^3M5xWS2#I?#gC8 zsC-aV_qBa5OF)@O2rh8rD!h^rACNrp=?J@AO+%xg5_e*_+@|`ZrQvG2tvw4bNXvvB z+2qL`(kdF>hwCjZ`n-6q=$6GdxtF!7FpENzMmL=X(@oULUDXp4fsIkH@H+SK^g0_PrfVbdS=ztm5x=~ zpU3*{Qj`0NOs*+5VXV_7db?|wvPZp9laT3m;a>1#ojq{@-8%(Yb&F(UT(ul=kBPv4 zBV%o+!YS3KOzf6zKuD9886?v&q82%<|I`=S;4lz?rQ(B{fn`k}8=qwybKM zm6B#Dw!mJEvnG;8I5_CVZ|&7qbklSKBgLxTmHd6_v|6sFAqio zy>?~AB?+Kzt=1bEAKdny@{4A0PMywbG{&SB_vwo)V|r6&d&AyMCU4Z%!8`6`{yabS~UHZWGL3OASqjkZ7x}%(!(UB0jnbb2A7_;4(Ph;PT#TeTO^G#x&^(`%v1I6qgoMx^tFp zfTYKz+E55$s!Uk`O}L|e2omy>18|fm*2+lsb=6+CpVr~y#$4cN@#IdZ9}?x)q{|#? zHE4953y^u0`NGe{eg3ere>{ase5l8kMQy~f0%lldnUXh7vnwm`tH%D%hwb^Gr;JAoX)O&NR*F+ct-<0w**E8F|%+508hepDRoL;gWh#HRWwTXo2VmN-G|Q)MJNy@r(k;F zb0b?z_$(-Ms9V1c@~jHZrkwXAxOZ7Y@y?h*QUt2n=H-My}q#9_v0c@uG)TJ7R<=m(-q3$JF>h^LwS{8iW=_opggZmoc>!x~Xm2H@`w&RNB9@*_(Dh8!ioIEu||vwq5W%+myv5 zFX*IkK3{QVh}V($w+XhIj|9fkp_^Ztrky#ODBC{ja-Qg&SW$Hv1wohQ!JmhRUcLoh z51Z1pjM7A}13WerDt<@(Fe_v8$)jI$e=bujF4yeuC(%kDTQQnh70aL|&x<5tLp7MA zah`2&=~FEU2JgMF3F9wSXz6)bpC&v3_G#;Qe)^8}eL-niU~oL6*feK6K#t+7H5Tcf zzXmQ2-`w8d$GB5q!si(mLR}oGXa5+@!0;|=VSIQcyRNdKbzy@M1vMZ;ZA?*Bn~2ST znt_U4IRGIDpbnNBKou`!EUnQkJ2ULa>4K0Zj4^thbmc60E^C`?0HBKv!BeM=UXNc*!| zC4VjdtnS^td0AH4IzKsIs>?pv+Q!oci#0*NQ-rn!3)2`q{&`@7CV)BR8LY))M&>gb zi-PpT%Q@Fq*y;8)J|5(7bsXUOD5KJQ>y?w{$S-;xcy^lqiRq zr=zG_xZb#Y1WglGi0D^0mifK6r%K^h@2!Tb*)If zfn6I1!Wpko<_0yDO)Ytve(#poUJRI?x%p^rdgH&@j-w)qi2HkR1nDkW+75s7hBOry z+=wx$9kXRyrtfDSz9TlCvgv?jw-Kvs{Ejh34BqxC1}GqPbshuPnfqpc5DKdkm6+K^ z#W@u31{vKa#lacvhny}q@`E~Sw^9l;YX3Y3K=CnKBD?Yb$zNs+(RY#Xe zX_D*QZo>uhg0LjdNRoh^)=Ik$$yNkq2@BR}8{|=e( zH>aqD?turb{gKb#{2e2_$!PxS^55Vl>9(lJel==UrYX6s>i^(%=di%w>$B7wS5(W-ezlJ=#L)#`TR~8zaLB-OiT<6%qQ5`SU7l3@bGY-;Ns#FJbQ{yKtzCx`;_b{5itoV zDJdQyIRzOB#WNC8l0Pd!L;w9749v%vn2$;Daq&t1U#Ev|01*z_E3`FqGzP#UA~bX& zw1=+%+TTV#LPz_Z0DmPc91Kis^haoqf4|m#3P3~uZ9B$e986p^EbKo~J^BrS2U+Y;nf}lPdNRu?*uGCb z{aq#XZ&m+UApq^qDzUJCzvLzQ&DtaM-|Df@|7j80BO-K+B+O@IFZi^lh-Kecdyp{j zzbmN6^6c4oKmzc7%l(!h0>}Wu12)`OS8BfChX($uRH)o_9_yPhsB(5QPBG+HWpvuv z<)0&RT~*s>xsvyHsXUpL3`Gx4*;xOY%$w)1TZnMu_{H)QY<{h*jNIeYj+rwh?w%T3~VqePRY{cDqY` z3>Cf@Pw6}~{py=5Wna^^Yy-+0;c$^SU%Jx7)eQID++77`g z#>S3`eePvtO%sg!bXaQ4Xpz7=*`D1oMK+W^)K3{zH#MW?k!-C#A}qftP{NI5#2fH) z-EN_rU{WI`fm=NBc!ICGEWz?&ruqvEO^?g9X=0t_nVNjA#n>W0Tm(po5twTC<4v1m zcFxseKdffjBW%M&^@bi}>H%;J>}LFxXjPam`}<2Yl)PObw?lfSci#`R)dE*>$`YC7 zdslK|w-aVEd6j(J(`s{$D<{{7((*>|?~8NEctU2r>#3+Q7p7;zXPON}p+}q!tX$9E zAJEMZU6^y2c{^@=!FL9CIOWkfQPY-$k{{hK{ljSagfPfN&K*wUHBazbVanyA6#NC${<+z)in;IglDg|B9g}@a zZMOK+dJ>ij>zU^B^$T_tIrgLvbzU!dSR zpL_1g)3%KR;Yo3WTTXva-6>%)VPicelfpR>cMN}!nykzgq)gT|g5-{=$`zSyfS3TS z-+?tN3ocHG)J#QPujLmAU(OF$PlP%w0R~hs*nOwt*49IK_P*sP?Ge*H0ET6r+Xi>2 ztPSc3r+@Cr*{nW<-M2Q*eX--4sQ2K`T_)JO6|^|Y7~?RN8k9X?xSE2MY^boYfaGqA zo^LbK^tC0Ro{Q3KGO=fINA}%=e`#(&>gTv#e6B@CEX|Sm+tR+^%^;YhI}-XDc&bU3 z@!Gx0WZ&FStK|4r_0n|)s)<+HG&4DbjESVvAZnycVNG1jDb%(x1QyrIvP+YD2TW!S zsv1LW2XzhQNNyvN?I;)A?8AK;#ip8h_p%nyFgnf#o>X>7tP`|sY@1ymc~s4z@=a@$ z9j59w&c;V8_ZqIjuaZ*#V2IJKZ8fjDG4uv6S9_05t0RWsH|uTF;@tH`O?7#i=)aiO z6{Z*%o-;5!`nNKky@WIQ(@**b8n$0YkoGE=4QRHX`#jA#!&F|IUPdia%l!HnD$y4M(GWOvcjDXok7_&;gHIFuDl?DWkWIoQ4hWw9-7+=f{3*ZOwo-*z#f05@YrE^nkdt)FTF=uaM)`7>oXqQkR{0+ z=&}*66X1HV?oMz=;5rvN(g?c{d#bPdX*)#1vcbIgDi<>GX8F6t+!U+sMfwafGAiRX zmkT0@nyoj3kfwB|iWt8D(bC*FyYeh8zZ(N(skqV*c>2pIccqbarI_=G>TZqNi>ql_ zlvk8jvNQ5^)fjUycsCwNBB!D84w9!!i2`A?i$4?s%@6Yc9-gCRH^D;q;O2%o+Tf8x zW;`F_*_N8L#BQ~oug;4vx_2`Pd5f0CmSqQ5!j~jA^@AJoA`Q^wEd@1t_-4ra1;r%4 z1q0EMk0pZ5%cPV_$FhrRIyN!0wLH=<-KScR61pG<9`8m9>#CBsXV4kAq~a;AC8hfi z_Oz&D#-wb9PMV zeiA%ybILx#OcLgJNZY($Q7gC+^Q5ZCY;WIj0fS#{xTMB+*CzzLCPkC8#%(;ssM{FX zN#Z{Nm%W0Ck9h>tw9O4eKPdLlgz;mYb32=R*92wfBm!6y&9r{Vi7TF-gH2dJdQ-8! z_CKf@8vgh;kt{mEs3LKPz9upiG9aqFf*KoP+)2Y=-1xLgfiT(_3@dg)f z-08lr4UzditH!W3hpqB!OYWDHu^0C2$43|5bn6--ist5U33DehAA>tWW`*=T!?R^P zo0)d(U+N@~2SD{p@>jVY11^@H8<4p_9Dd>lZ|Wdmm50@r_|Az+vV!kUY`E}2aqVi$ zEZsO;B39Nafxh1G^@z^3;6WAlhBIyvd~M&D!mGVK`%)=6D!AIWI0vu1H}7&9hd;{Q z;$B3p$7hEHUcX;boYC3)bkZ<0jF0-=syE8tB}qP}nsZM2m`NQ$Lz|%eL}6lYp;RbM z`qLcJFS^6J;d^*`H8JvI4SN|ER zRAwRQ+ESRl-8Xs^VXV&gIA2a6bGCC?`#zbC0uY2P{VMJp3tMOp(sxe?x>G7=Ywdy9 zPYG8#iEg#%$-W*6{1Nv->I008AD!17fHLnZJyF2N?*U`%bJ-X9fXio^46{G*PK%#- zIA4@zsX8**)C(%Y38a(nxGz!38ya_h%KD{yy!!VRY01&-}X854w25HL1S8sM?^bz07ekU&tE=A zUFexJ`Xr!V$O|vlBK$?<-*>>7QXD0yBg)bQC#_I7Noh|o_b6-R<@BS);MXVRY zB;D=JO@;7<&JE^I^in1dU{3y{>`a25VzWeznAuEkT|!n|jc3z1)Maey%0_+-h{l z#+0CGs58zQo+Tb&g~xw%uyhs4H%Qn+*~6@Slq=eLUL%+U1mW=$7Iy zsChb6+Co0EM3y)<&a@pybkLivdpcoox>?{yC|HK$W0A9tI_}C!ZdecQoNZ2n!;HlD zm#JfEGtG7dZQ`Ku-Gj^)H<5$)3BN-3LW?ib%V!NiSP*!6ggAJClRgb-KKuhhvEu*B#WeOdW%Hz0b^1c+@h;Vw3Yl#>z z(mZ`kF&-pV12R;S!ql6YCd8C8$rzJEKAJY?M?&ZYL>@xn8hUkevQC)4K_THX(^RiToF}XcSZJS9KB$3~=9v zUaQYG+r*EONU7agr3xT&a6p_OaXx&unBX*n8qn)evgWWM};7goO78l+^B2*DQDq39X z#~95ojm$Ox+>()X|EP@!n-}Lu>LcF=4Ea~`^8dF?_WT8d2oVy^{NTEX>!=*2Jz7)& zNjC|?WFEj>WJs#@(JcylhsbboPdW(_|14G3^sH4NVka>Or+4|l+|pxKC^y)wCO-Rx zRcVA$lq{I#>m1gzSH1|md{_O#H$>cv9#bTGhW=K~4&rJvq*T4zpo*Y^w0lC;;X)7v zu9-Ll;x&|b<$^+KaP-A9GQ$u9x((-Y=Ejz^=8i2B+8hiqe)aFt@PdG4T+xse9@KKm z-kF(Bk+C^Dr(k+MPO|9p^g??zn%ZZYb_*TKet~j7>W6-6dP4aOW~Qgdv`E#bbjQHW z6x&|LED|DuG!j=;Zc4T;+&z9%>AR=nsxcfiBn|L|_1g4?=469mHf~qDi24L?9k*q0 zK~J$4JzK|GlhuO1i$?{c^EC|dS~0jzHrkf)fL|Q#0idE?hd1pkr0zR`;jY?UJYVcUPiVfE?V~$xcCtsLLH+7Iea@|`u%XO{F z)7vjk0x+j<1(5b1lfgI?p^z4Hn%h7slYOh4MH+Tos=3xsL5o)*yZ~-S#>^dP zojItYEZrYeS&(NX-_S3C{2{Q|*1f%Oi(s!F8~QLELFNR4=->M-W(Go9kR??G(4jdg zD1T&q8K)!WdYsp4oiFO@QK`PTE;jZzr7_B8_pQ3n#f?KV z0KSKm-$nr|tp=AHvAe)dN zKT(>T+cO=O{@mVRzEZ*MCAe%EV;?MIJ?>H2#pbp>5O#)5GmdIS^_ zfL42dx;wmT>4Y>A(htckuT0Oqb1W|{FAcKuid8bF1g-!Wr+c^PRna(d`>iKi=(4CMR%@^MYu;SJ`l5*_fW`#gp4{bS?+@^S0mxkxDf0 zx9c0~bQ^;*#{?d1)KtbmeyqM8iEK8sZ{fjal`+=XJIdz7%9?iHTh^8z0dc|9QVxA+ ziHo8e^y26fDOc5J&E1#?5|PPETA|na3)B&g5!S;|QDpWyx-7Vkz$q;|J?jXz*3$Op{+m zpmV?)9snmU;{unPY@M`8Hq);bvb9TuxR6)2bwL>Y$wZKNwp1QU|aVkVZL$VQn9S$PSc--zh{;YS5kPoK+HQi z5Ybo%Ktv>zzwD4_Swb+-kuKP`>&WSsI&8Yo6&JO1QJJupf3gZSSzt_d^jN1$q5QQ6 zQq*FM1TnL%S@o;_8aGQ!O^0(ta6yo!KTT zLlmruTV;U~4Dhsr`EqV5LKVvj2#IfC)-Z_84!knR&)UpL1Z-{_zX(eV_nH9YIkCBe zKlCUg#n>%5_6I-u9D(Fmn6?yU#q5O7Ma3qVH*Axp_!$|$sWUb3Z$gW&5+$(QC8T24 zb?go$3_4Oq+BIuWvu%HB=sDiJT%IvBqi2>Zx|lc8V#(QsDm4YU7>r@d zc~(p#4##XYOI$ie-GM9AXz##Y08k{q79&zDu|ViH@4HWnuIZuc>})E@`~jO2yTwgm zcQ+F5&MU^{pJy<@_^d;b9)X2TTddBP28|KKYbs$axo3)gcVE%GGr!O=Wan z&j~6MAh2A3ferkA_Dvsq`^TGoo5g=|KbTo41}{UbGqLzOs&JD5X$q z`BaoSW_JYio%G1@9Le1~ij{yYMh04>sLjaXgbEonXZr z&NbD!71j|iwAbNV%+%aB13F$Nep{oj#=O*buc~p@sHiHhaMoC)w$Gd(YMGx@>Anq* zu9RST0gj4^#fb`wiu#}I|1%C^-Q1>+E8eA%3d9&OQCi`zG7fkoF2xa;7bjGx%g>Gw z3D^~o#14-T7PHGdSsl;Qd>#Bk_r~Dfr>sn;eG*)l6d)#h@lk8t^vCo+ghKxm%2m8z zEHAeBOV<0$^Zovl{N9%HvNG*XoC7xUlvH|Uy?fFxxso}bZ~rJeh5XvzpK<#`JVs$_ z8yik4^U-Zri}j^+V#P0xQ1L(?>VH#_&yDviaRjADs>F;KO15L) za+Rfc|2EYApoBix;$>w(Z=>G-!N!&{9gzZB1%`hi{Trf`c>JD{wsObcNdE;&p&zp2c>^=`6r(LyP~4slpdOTH4M7|ZJ+TMW{xA7tr!Ug+)V=B z-$%~q+r<>}u*DRbT*&Jg$^Z7_bO znnHRc%3HGuTK_YKmq{{ltzMC5Eiz~KBYhCYumv5R#|h8mOk~6yQ8y) zb68%l7=1+uMC)e7#Non@H(n6gZblaf9VALjT`x&UE=RBivs!X-Ic0g(msF5H^&FS zV=E8(9hqgtne@AJJeeB$^>X;`*EcmSllx{I;z zb0xL7DRR%kHGLDFo=-Hjd5h%8H$M*Ge-ZoWBDyoR_$%HRLJsCSeUHigB_w z=4{ZvF&BMKX**2)SQMReUhJ&LQor7lB1lev!YJj(8=h-uTPRQNA|>)nEZ}P&*h~1Q z#jgiIBy;6nkI=}JkVVRDbEmeH7-xFkBgFOtUgofHW;%3#=;G$KZIUm@w|9A{m zUg6zorFp8<^t5II%X=HKAhog`+@Jz%Gf>b%cVu`f49?1Xy3>y#Wd`nPHw^+)AdYnt0vg^f3>YJ=Rmb5$9I3^%)oe@$n&2a3^L8N#BrU3j~jzcijVJpk@d z9NWPU0IRn9GS*+uBU9y&vC)%k1X&I)&705ZGT&+w-xIfe4b4{i@$xLmaUzSG-i`2h z2-qlLhb)ZKV~?b)TH%>zs+h_;@}LM~F&r;=6IC-4cv0P*5zW3Q#nSd6^qDS*BV{OLpG< zID0D$N4DM=SDx}7#4tp4{_x7SSi0CA(}G5TVS8#vh}bdFvg$bO_!$uBOVUW-oX7RR6Sp0Kh(oY!kvu zuibJ%(hI-$RR1|R)VNm_Lq=bjd~P%=m-KQ9a|vtEtnoKZ_6?UMaFc$uNt-#yoc47k z)sWWKzP!oUWnff6r;p}*l*jn>710=^8!ha1Xqa&!tuHBPs###_-HpT7+?Bk!7SN@C zV}qw|!cBBv{BhUSmmqHmBGT)%K_!TU|K5aLF}Jue)J%2*Gkv#$%WrP-IQUD?w-9VV zwp#%rq7}8oPjjrq(Vy8k7X|ykaD0m$F8-`BJpKN~A;dIzdUEE#*!z1y(;`DPZv*0MhKKyQiqzk{rpJkfQ3MhGm9Md~N-ifpgouc^W5*3Eiw$m?g^v3#R7ilg-m# z>8PeH%WH4Jd7H+zm0h|T`nF(dBWKxh7rtZ_YR(2S!Dlz0_IgOt50$w|1}WZW7teqU1Lh}gS>1)$d3s6Il|K! zM-{hK-oD%Qd#ZTuw^}oZyl@823^m7lJ81CxFEN)=>sk~wzt|u-a0ObQ=8~RS5&_XB z(RX1xt@gnB!=7<0rRSgZ9smL+T|KM)fjqiA3DM~_Ic8K4y`WZ)Q}=TcO)^f4%qwFl zxoM(vQ*+t`E%EeD)S#uMfQ^k3l45E<@Tc+^prjWh61wxooJ5vJI)sb9% zi*3ogabjS%YWi!y)kiCa{WP3rI}HxD*3J5~_vNgM$;;irMt5CMW1^rojf(7{X+hh= zCao5>`xR-B-L@B0!T-VnctQ_Xs1@3ti$aF0b*?B<#>#uhJ!KFDVyr{xTQX6snc6c7 zyKmkY#+uEUt=Lz$pPugbmcA_HddgrEq^NB-DL?Yp<}zU*&tcQ5)5OXXR?i;;wWzJT zjgnN$ImfQq{0r(&!BX!|batSqvLG`Jg{e^v#7^D^Y&7Grm8MnpHXE*ceKug^|&l zO%(e`Dui@?wM1XoMT2LsycICKCbD}R&rI~B`k-mKd0)YyGGamB>ohh(p1H0`w5j!N z&h9py97YsH-rgQR?%H!w-Jn~@P9 z6$g5goBeMgPe%CP(y{wSx&Q&9Jp>aiOlgg9a~_}cr22WbH%ct8p#eFa z2HO1d^C6wUnhzq229>iHN1*NQ#VO$^FdhAJs6Yck+)9|rYoSc%|8QMj2yh* zS17oQrKahlKIygiNNhylEWZF|?~{{-tyrC7Q-b%Vi>u9^Y(URY5H5XWnVR{&LxqzI zPhMgCSdgDEuhDX?_m4i6`zUD7joLJ;2pM8Y69yWSDCC4*TqMHxskNfZ&D967hY5`= zVLE2AzFH0d;7lP-%n%U~_QxB$KAbBA{dz^z-c(f-c3;z=%>5m9V8m*db>wB=FCp>+ z-~(Xv_XJn2T>B)eY_`y8AMWx1U{>AluVjSRu>I_R032~z;@k?GS#MxMk*SW0C5g>; zdOEVcF$E`BtXS*u643I3ae&ME)&fen%t>Xy2fk~y86Au6h zO1i<2yxBo-toq9J@v5R3;gLW`jtc6RQJUZC$Om?8-i5o<=Gf2FLlvvq4^2BVBv8Ge zT(60X#&!wp`uHPYNNE^(#Z71a4Q0=T{Y=Ln}%3y1yozeqx7`?xp@~l;sweo69Ri-95|wT)2UWbnzoCw5XgCsP58fFf^fd zUs|a~_*f;;iFh$m-k!FGXP@TBULO;zxRN3aUK{8x?d7|+nQ}Mv7AC_ozmh9(Jf@@s zgyS$G3j?1vQxz3;5>i1E2ptc-OCsg{mor2UE|u^P*$z1~(6uywY&d(kvap5O(a>PY ziVo9!UM6WJ1-7lUa#g!7y73<115Mvl*3V5ValMFnVmL%2i_w}A_kJ`v9PZtV5T@=* zEuR(+7AWR2ajgkFP{U6~0t?a|i}=)kWL>wNkt=SjxNZ@0a#p%#1{N;p7tuSxVTyxF z#kB$}sPvzT65IEx&#)?AGmbk$A4PP81O=U8?0x`*YAt~;@4S*rG?`_+&RgIl6NzGgji78YZzHBmL6DP4}R^b()GtO%J(;DV{Zn zuY69i?p05->lnAb=7o`C^U{q{+*nD5#y{J#WDjN17kOK9;gUC90XYfgvMvo5<`1d$ zVv6q>^Tm0-N%@3_P#xmz7Fe@x=``)3B; ze;-~5_f)(&@A+wu#{?%gmv~$LW#8P?fjrh$!-u!D66lvM%~s^dMF8q_5f!`5;Lxq% z`W|sPAkp8@aH!$htc@%;c4;z^}rTtabES-(i2un0)mLH~+vh zwD-m`be=o3V)y~@L~&HjT}1nknp9{dyr!R&SrHXq-QJH;1d7$%k@&Pjc+_L+>uo>V zgJNk{w<3A~%zeJ9QQrHs`^*R)T=Kc-O?(Y@r9A`T@Ds=WQF(d&j{-8kq>zz_N z$Ns2<%ijkj*1ty(84H7=2a8_ZN99|Os$8*;+Li?~lOpr} zm}V047}yweb>uok>$wD*S4l*_wVLTLfE@DZXFC{$W;W|?H%$>57Uip~Zun~L9hr=Y zj7+)z^bhq_*mvO^*AmFgI`a=onz+7QTo`O@_|eg2=_eB1DKiJZKWdV<08W!1hP=Mx z_#X29eJcHwCfUAtpfrIyS)c`_`^fd1j>V-r-N4!KnlMri5fxG*v5z8*I#Z>3awB({Aew{LWCLi_>$wXe-lGS7=9Si|*(ji-y(+qRzkzfgQ#-8D$O( z?O6sHqY4s~ER*ILLdkra-T?!i1cuC;E4eKuf!0o=%+2B8RZy(Kpc*ELAj(BjJF}1) zLk`_uAU*EUV>)Op%=OZEV( zk5%HA9a{V71P!xkGl4!WrWYa-X*Pmq!&<5s@jg3NVbAVYL*-T8Q#?!q4DM&Roq z57FT&MmoNmTWNx}5sGhSZbE~Z-ehRwnOHm3Rfp6VcQ-OXbo~$i_wd^Q(TrMirv@XT zyvVi#M-jaNLhw>=w`fuF$7|^fp4{0k!l%}zbR8%S}p!nGuAR{5E9f@T) zmz6F|)@8T9Tp2kqT0m?DP2ooj` zGy$-Gr4gGbX*vx>MM>>_shJM0lJS3;JGx8tr6uJ$CS5z!y!59*$f>qO#<)OU9H{&tzoDa@JEf~}*XV)ZenL}~lK z{G^;E2Mxw_xUFA_AByO%(`rsUPOvx5tr=fgZrw%U<`(*pQHM+MRJCgLWl2$5I(Dm9+09nc^1-aG2I=7s*w{Y2{qVG(rmZ-uspp ze-D$m}FvQCGbZ?d^qXd-txdk1wP!bAX&8b6Y^yXmVSsZ;8 zpOBxdfK=Z(WtVM~D7Y|upW<9v4No6*RT&?G;*d@-aDT;CL1i$0g7$=Sby0a~nGM>M ze($6j9m0C5t#v?b%T{lRA%0$C8(1C8ORZH4H7J4Yvu84Qi08m(jD5Il@kfwDiiocx zaGSSDtzJPEI84cWIXqG>@EvJJ)0 zSA`qiPZY|e9a@7sWZD_P6=XR-3fHer?~h{5WM)c&DIKC({^N)S-Nk>2 zr_^5lmlicjUd$s$OGGZAP4qOREm|`^1()@7X$F4t8b4k!^%#5Ofv#%ej34xSf^#MpZ@1~9 zx{?TpwI*~$#J3UlI8IoJ?Y<+&Z++s1^{86cb#-R_&f?_6iK)Zo%IH0CWjOQ(vq$A(C`@9(iYgB#3gW^DEWf1G373!gjCWP8)7lDk zraOKbd*4rTQcBm6rz9rUBX-n#9(%bCofGDT!V#Cu z;hsK6=r+e^lnt0ltYRBeZ>P9OHq=-5VN3SP4v8%fdG7u`5vb($#ll6;+lM~}B6&OS z!12Nv>aMz%bv58V88~n*9fc9jPolc)*5NCTaI)80lYYmLLq7hxYZKyYK zRj)d2&O*!{udbt4KXbi0K~2o15`Xe{QF;K_3#>Xxa zQp+8`^i#?Mpfo7e2z2t-(i7KC5hS4^Jc6~^0y3U%Shw9i1Q4XR0PJ4oS2)aZGp&?f zTo4i2HJECh3soJ_{xXE@fSa^eYI(vtW}X;Tush|i6+b4_$1Mgt!`U%;1YTgr>|MoY zR6d1y?lkbb+gLNNBs7IPWquxxTBKUl^_pMl2eI!pE_i=^`v;sCU&1|n+G2#^yO0r|9wlS!CqF&3 zz8t@`TlpMkBc$IeQ=VBr?uM~)$FGL$s#w}zcVJE)0+ujiucxCXMufu-Jw1%jS9IL` zeRx`=2{AO6+U?a`2~zE{TdVVp{Rg)%D=T0~II_Z+6W(6U-vI?%VcwOrTgcKzX4GR< z*5vn8?tZK##@X_Iqv$I`!03Jp7Wio>4|7Mvx0r|rQi00LDvBZA+!fnG@{@8MXhiWf z)~tXQg7IK-Qi|^=rC3Sa;cS@;bHfiekmXQ2k(1@KyMRHb*)G%S6gh#d+P9No3~A$u zUAz*)?aAjM!KO zp4?SXE#{C3mlXV|7(@nt|9TG2ul2ZLa>Xv_nku^!_rUH5AQIr~&NrV<@11@?)k*Nf zWP$B4`}ZbwR)E={yfGv5^LLG2!l>Q-r$O$#Bxm^%&FwCC^|&s}Qycs82POzU_$-BE z?4mXR3BbrR%YEMzzCB(;o*f@tZu+qyFD9iIUoBHf{tdqj9Nl9_*}(&!?y~`UF-%%{ zWp_^OyFgX^){q+Y9U}krZ6p&lKIqMREsLVEQd@N*4HZno_XeA_W&FIN{Vafs$QJY@ zn(*JZt^Q*}hbQ1Oq$2HXj8+}qaqOKebnKPTl=3a@qhF3mIs1#mh}jvD%BQ<<;A6~j z_e*;U^p;Ha#t|MiaCrqvUg7H=Nv!7Ee})varnwU4G>V1E_RTDMSZxiG>yRL?xO{7j z1o$7*1TH#hUJ+AnfRdjzZF=IYg4lFl+4oFnupCp4IZcAyX92*yh zKO~&fB&E)JJTu0ZdyH8O1=B?J(B^*Nu2LhLHZ);#A&*dc#Y*A@pPv0Xl7X!}FiLC* z9S2}rCG!I&>Q&gC$(%aL-O73O6}(FuZhFrCFq$uMfV|ZNMZh=C<~&0JT+lI!T)IQ%bY}CA3U;$LT00&=1D!!q>Hi(aIRi%Bp7Ir$;aMDZ<^&&Nuc{|Ybz%__^ zzO=7!!giYIJFarKAgUKvBj{!9*IBFn*EV2o>*d$j1RksJ_nĉ#qoWJNV!A6A( z%81M=UQ#L%XYE&f9ShmF{U*odXeGm3gpC271^Bm);_*ouNWb)&RXnb1mb^k?r-Z(l zAg|ghtSmhQsX3L{G^!rgjhrFG!pN`EQ2`jfbQWK!7924|u%~^(4fuiNCgXzuRD0x1 zkf9FDJ#S7e(3@y_^+iNpX&1Vh^aM`p6MxtMEFTY@V0>i|*kp6|I^F5XC)81iYi47l zFds$5cT?D}ckw^3-_}}qAnRN+IQlmZnFmT{U8}rnQl$zNFI~N2!4t=L$**Xmt-0(n zz>A@sNQZrPR#Nfc%f!jq-Uar8v?*c50r#cLxX~_U4Di%}iL4x#C4pULQ-sRPn)PJW z5sxm4Tr|<3up!s)4}hr67Y>V?Ec!RPZ-ts4)*-~Y+Ilu zyvdQlPi25z=lJc;;;ZoYBU5V-n9hy2fR+kEP=)3h&dPeeZmbzL3e#J{lJF%DRr&(} zZ*u9-82{8{)3&}IIw^FVa{vALyy5_AV3JBApao6w|Jg^XYS%J1Hrh21F0G&Nkxz=O z8*bh1Mh(caHr8{pif9navP2X^NT5kGa3pi(_Z$s}!rX7w$x`48Pm5DUf)iauoSn9U zEdy(EVs*BJ2r75k11;m(EqiP?`|8_HTmPGXdV;S>{;Ovi;}>djz~AS6!b+ zyq{=kxP&|f0c1NwQ_+SlVJMtd1aNq>oy{iUFOiieT$FA*(DgP>)lRf$eu zp@rh#Hgwti9$Y>q>y0rIf-E_rWa`p3q60AGUndbgC41F68wRK<2LyijQ^EWHT}{~| zlyrZg_{-Eo+Gl6~?P!elV$g_)e%}MUifJgsat0SV%*&iMC<%rpavc7J*l4fxEaGpZ z|6*IdBQD`DGX7%y5*!`y-v#B8DIs(FObRY})ppGE0LZj_8T0Jly}tNAa(`a$AbeQ( EUuN`_$p8QV diff --git a/graphs/pipes/jobs/job-run.notes.md b/graphs/pipes/jobs/job-run.notes.md index 602a34d..4467aff 100644 --- a/graphs/pipes/jobs/job-run.notes.md +++ b/graphs/pipes/jobs/job-run.notes.md @@ -109,12 +109,10 @@ a media or video preview panel. ## Validation status -The graph passes the repository validator and the production node-catalog check. It has -not been freshly imported and executed against a live service, and no job was submitted -while adding it. Whether placeholders that stand alone in a template value (`params` and -`inputs`) keep their JSON type has not been confirmed in a live run. Whether a poll that -reaches a failure status raises a node error or only returns the status has not been -verified either. The Subfork version used for a manual test is not recorded because no -manual test was run. - -Validated by the repository validator and the Subfork server-side validate endpoint, not yet run against a live job service. +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, so it has not been run against a live +job service and no job was submitted. Whether placeholders that stand alone in a template value +(`params` and `inputs`) keep their JSON type has not been confirmed for this graph in a live run. +Whether a poll that reaches a failure status raises a node error or only returns the status has not +been verified either. + +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`. diff --git a/graphs/pipes/jobs/job-run.subfork.json b/graphs/pipes/jobs/job-run.subfork.json index 5876da5..9e70cc6 100644 --- a/graphs/pipes/jobs/job-run.subfork.json +++ b/graphs/pipes/jobs/job-run.subfork.json @@ -1,6 +1,6 @@ { "format": "subfork.graph/1", - "thumbnail": "data:image/jpeg;base64,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V8huVZTQGGGsqYYS7fMUczms3sY3t0HGccMqd6OyLM63bZ3pek0vUQw0LJqWCz0lVTXKOgmiklnkEJ3nVr39S5r3PezcA9H1DLHFeDtk0jQ2yyur7dY6ey09PdHUQiloZqOrYCxxEb95746kDcyZmOznGeDgsTOral9GykdUTOpGO3mU7pXGNp9ZDM4B+sBcqq4Vdc2JtTV1FS2Ju7G2eZzxG32NBJwPqCiao7JiEdERUWEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARF69v0+6pgZUVM4pYJBlgDd+R4zjIbkYHDmSPqUxE1coRM2eQisXk5QfSFR+Fb+tPJyg+kKn8K39a09OpXehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1r4dNUThhlxlDvUZKbDfvw4n/ACUenUb0K8ik19vmttR1UwbktDmuYcte08iD7FGVJi3KVhERQkRTrZaJbnvvD2QQRkB80nIE8gAOJPDkP8l6nk3QfSFRn6qUfrV4oqnnCs1RCuorF5OUH0hU/hW/rTycoPpCp/Ct/WrenUjehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehXUVi8nKD6Qqfwrf1p5OUH0hU/hW/rT06jehX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", + "thumbnail": "data:image/jpeg;base64,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PM6Mub6iWkZH0KLx2TZvqktVviq+H+kLlYbbcIqyvu1BLKXyTGFgq3NAp5A4djhkPIJOBn0hYZui7eKFtAdOwGwHS5ujtVGOTrRVeDl+4TZ2YE2Iepx/nzWnWVlREYSyeVhhJMRbI4dXk5O3n5uT6l98PqvA/BPCp/BN2/wfrXdVu/tbM4z9OMpvR2LN/wBv4aab1LR0rYLbT0k+pYqe80DoyR4JS07YBXRt59hLqk+v9SFirDR6avFw0LTM0lbHU2qa24slkcyTrIoPCXMhbEQ4BhY3GHYJ5AdnbpRldUx9XtqZm9W1zGbZXDY12dzRz5A5OQO3Jz2r4ysqIjCWTysMGTEWyOHV5OTt5+bz9SnejsWUsY5duPSiIs1hERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARFl7fp91TAyoqZxSwSDLAG75HjOMhuRgcu0kfQpiJq5QiZsxCKRfByg+cKj8K386fByg+cKn8K38609OpXehHUUi+DlB84VP4Vv50+DlB84VP4Vv509Oo3oR1FIvg5QfOFT+Fb+dPg5QfOFT+Fb+dPTqN6EdRSL4OUHzhU/hW/nT4OUHzhU/hW/nT06jehHUUi+DlB84VP4Vv50+DlB84VP4Vv509Oo3oR1FIvg5QfOFT+Fb+dPg5QfOFT+Fb+dPTqN6EdRSL4OUHzhU/hW/nXw6aonDDLjKHegyU2G/bhxP+Sj06jehHkVzX2+a21HVTBuS0Oa5hy17T2EH1K2VJi3KVhERQkRX1stEtz3vD2QQRkB80nYCewADmTy7B/ksp8G6D5wqM/RSj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hGxu3G0Bo7ebcBRp2qao1FPMzStiifBJ1gEdoIDjggBw3cwM5x6wFiJqu7T11ZWOdWNqaxz3VEkYewybjlwO3GQSezsSwnN00TQSaGpK0UtZHU0tolqvGcTWiincyskj2O83Je8EYO70NGCOa1oeRV4RcTTCmPhhpwQepPWdXkZwdvZ6T6PSVR8CqfZpvundygKL+m031rP4goncvlGr+vk/iKlvyVtrKxpijjO9jH+a6Vw7GtB59vaewDKhkkjppHyPOXvcXOP0k5KxxfaGlDyiIudqIiIC9Me6J4exzmPHY5pwR9q8oguPGVZ7XUffO708ZVntdR987vVuim8oXHjKs9rqPvnd6eMqz2uo++d3q3RLyLjxlWe11H3zu9PGVZ7XUffO71bol5Fx4yrPa6j753enjKs9rqPvnd6t0S8i48ZVntdR987vTxlWe11H3zu9W6JeRceMqz2uo++d3p4yrPa6j753erdEvIuPGVZ7XUffO715kramVhZJUzSMPa18riD9hKool5BERQkREQFcC41YAAq6gAegTO71boguPGVZ7XUffO708ZVntdR987vVuim8oXHjKs9rqPvnd6eMqz2uo++d3q3RLyLjxlWe11H3zu9PGVZ7XUffO71bol5Fx4yrPa6j753enjKs9rqPvnd6t0S8i48ZVntdR987vTxlWe11H3zu9W6JeRceMqz2uo++d3p4yrPa6j753erdEvIuPGVZ7XUffO71boigERESIiIK0VZUQM2R1E0bB/2skc0f4Ar14yrPa6j753erdFN5QuPGVZ7XUffO708ZVntdR987vVuiXkXHjKs9rqPvnd6eMqz2uo++d3q3RLyLjxlWe11H3zu9PGVZ7XUffO71bol5Fx4yrPa6j753enjKs9rqPvnd6t0S8i48ZVntdR987vTxlWe11H3zu9W6JeRceMqz2uo++d3p4yrPa6j753erdEvI9SSPmeXyPdI89rnuJP8AiV5RFCRERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERB//2Q==", "definition": { "version": "0.1.0", "name": "Job Run", diff --git a/graphs/pipes/jobs/job-run.thumbnail.jpg b/graphs/pipes/jobs/job-run.thumbnail.jpg index 50913ea7c45a0129335b78fa57dcedd8c35ee533..3d138acfbd16659cd9f8f1052836843318e5877c 100644 GIT binary patch literal 16354 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 Q)W7`?Gyh+W2)>{DFWrr>F8}}l diff --git a/graphs/pipes/jobs/render-job.notes.md b/graphs/pipes/jobs/render-job.notes.md index 5b6096a..6ec9fb3 100644 --- a/graphs/pipes/jobs/render-job.notes.md +++ b/graphs/pipes/jobs/render-job.notes.md @@ -97,11 +97,9 @@ Media Preview panel. Keep polling at the top level of the parent when possible. ## Validation status -The graph passes the repository validator and the production node-catalog check. It has -not been freshly imported and executed against a live service, and no job was submitted -and no file downloaded while adding it. Whether the platform accepts the 250,000,000 byte -response cap, and whether a poll that reaches a failure status raises a node error or only -returns the status, have not been verified. The Subfork version used for a manual test is -not recorded because no manual test was run. - -Validated by the repository validator and the Subfork server-side validate endpoint, not yet run against a live job service. +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, so it has not been run against a live +job service, no job was submitted, and no file was downloaded. Whether the platform accepts the +250,000,000 byte response cap, and whether a poll that reaches a failure status raises a node error +or only returns the status, have 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`. diff --git a/graphs/pipes/jobs/render-job.subfork.json b/graphs/pipes/jobs/render-job.subfork.json index c1d9a61..5f9b99b 100644 --- a/graphs/pipes/jobs/render-job.subfork.json +++ b/graphs/pipes/jobs/render-job.subfork.json @@ -1,6 +1,6 @@ { "format": "subfork.graph/1", - "thumbnail": "data:image/jpeg;base64,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", + "thumbnail": "data:image/jpeg;base64,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", "definition": { "version": "0.1.0", "name": "Render Job", diff --git a/graphs/pipes/jobs/render-job.thumbnail.jpg b/graphs/pipes/jobs/render-job.thumbnail.jpg index de3b42007bfa97f2edb1702824d3e7d39eeaf0fe..44f17b6b9c976a6d352d55d566169a27f9992eb5 100644 GIT binary patch literal 23496 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 U@8lnU1pi*W=Ks}0yS}{n0|qh}{r~^~ diff --git a/graphs/pipes/transforms/fallback-match.notes.md b/graphs/pipes/transforms/fallback-match.notes.md index b65bfd9..56484f1 100644 --- a/graphs/pipes/transforms/fallback-match.notes.md +++ b/graphs/pipes/transforms/fallback-match.notes.md @@ -36,10 +36,10 @@ side effects. | `items` | `json` | The joined records, or the fixture | Because the join is a left join, every `left` record appears in the result even without -a match. Whether the fallback node treats an empty list as empty, and so returns the -fixture, has not been confirmed. Run the graph once with a `left` list that has records -and a `right` list that has none, and with an empty `left` list, and check which the -output contains before depending on the fallback. +a match. A run with records in `left` and an empty `right` returned the `left` records with `right` +null and did not use the fixture. Whether the fallback node treats an empty list as empty, and so +returns the fixture, has not been confirmed. Run the graph once with an empty `left` list and check +whether the output is the fixture before depending on the fallback. ## Authentication and security @@ -55,7 +55,16 @@ next transform or a table or JSON panel. ## Validation status -The graph passes the repository validator and the production node-catalog check. It has -not been freshly imported and executed. The empty-result behavior above is unverified. -The Subfork version used for a manual test is not recorded because no manual test was -run. +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 was imported and executed twice on subfork.com on 2026-11-05 by anthonyshafer@gmail.com, using +fixture inputs only and no network, and both runs completed. In the first, `left` had two records +and `right` had one match; the unmatched record came back with `right` null and the fixture was not +used. In the second, `left` had one record and `right` was empty; the record came back with `right` +null and the fixture was again not used. Neither run produced an empty join, so the fallback +itself has not been exercised. Whether an empty `left` list returns the fixture is still +unconfirmed; run it before depending on the fallback. Its nodes, edges, and graph inputs and +outputs match this file; the test runs set the fallback value on the coalesce node instead of +passing it through the `fixture` input. + +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`.