Agent Hub
⊕ Live agents, on demand or on a schedule
Every worker and script runs from here: run it now, give it a schedule, or set up a task for it. Jobs are durable (Supabase queue); each run claims a lease, heartbeats, and completes or fails with a full event trail visible in Mission Control.
queue connectedOpenRouter readyGemini images readyPrintify readyLaya not set
Queue: 303 queued · 0 working · 658 completed · 2 failed
Schedules are evaluated by
/api/agents/tick (Vercel cron daily, VPS timer every minute, or the button). Locked by design: shopify_draft_create, shopify_reconcile, performance_analysis.◭Source Analyst
readyScores the demand signal behind a product (who searches for it, the gifting occasion, competition) and records a signal score before any creative work.
- Takes
- source_analysis
- Queue
- 0 queued · 0 working
- Writes
- funnel_snapshots (source-analysis-v1) · collection_products.lifecycle_status → signal_scored
- External
- OpenRouter text model
- Last run
- Oct 18, 7:19 PM · 1 ok / 0 failed (manual)
◇Concept Generator
readyProduces three distinct visual concept options for a product (motif, composition, palette, why it sells) so a human can pick a direction before image credits are spent.
- Takes
- concept_generation
- Queue
- 0 queued · 0 working
- Writes
- funnel_snapshots (concepts-v1) · review_messages (agent note)
- External
- OpenRouter text model
- Last run
- never
◐Creative Director
readyTurns a product row into a scored creative brief (buyer, hook, graphic direction, commerce story) and posts it to the workroom for KEEP / REWRITE / KILL.
- Takes
- creative_brief
- Queue
- 0 queued · 0 working
- Writes
- funnel_snapshots (creative-brief-v1) · collection_products.lifecycle_status → brief_locked · review_messages (agent note)
- External
- OpenRouter text model
- Last run
- Oct 18, 3:49 PM · 5 ok / 0 failed (manual)
✦Asset Generator
readyGenerates a versioned image asset (master graphic, light/dark print variants, hero, lifestyle, ad still) with Gemini from the locked brief PLUS the FGS design system (print spec per surface, composition + lettering rules, style family, conversion rules per view, negative list — lib/design-system.ts). Stores it in the bucket and queues automated QA. Revisions branch from the requested base version.
- Takes
- asset_generation, revision_generation
- Queue
- 202 queued · 0 working
- Writes
- product-images bucket (production/<product>/<role>/vN.png) · production_assets · asset_versions (status automated_qa) · funnel_snapshots (assets-v1) · asset_quality_assurance job · review_messages
- External
- Gemini image credits
- Last run
- Oct 18, 7:19 PM · 0 ok / 1 failed (manual) · Gemini gemini-3.1-flash-lite-image failed (403): { "error": { "code": 403, "message": "Lightning dunning decis
☑QA Gatekeeper
readyAutomated QA on a generated asset version: technical checks (reachable, PNG size, alpha), a vision-model review against the brief, and a Laya typed decision on whether the findings block printing. Passing versions become review_ready for the human gate.
- Takes
- asset_quality_assurance
- Queue
- 0 queued · 0 working
- Writes
- asset_versions.qa_result + status (review_ready | rewrite_requested | failed) · funnel_snapshots (assets-v1) · review_messages
- External
- OpenRouter text model
- Last run
- Oct 18, 3:59 PM · 1 ok / 0 failed (manual)
≡Listing Writer
readyWrites the commerce pack: marketplace listing, five-email sales sequence, annual promotion plan and bundle placements from the approved strategy and kept assets. Laya checks the copy for unguaranteeable claims.
- Takes
- commerce_pack_generation
- Queue
- 50 queued · 0 working
- Writes
- funnel_snapshots (commerce-pack-v1: listing_draft + listing + email_sequence + promotion_plan) · collection_products.lifecycle_status → commerce_ready · review_messages
- External
- OpenRouter text model
- Last run
- Oct 14, 12:58 AM · 1 ok / 0 failed (api)
▶UGC Writer
readyWrites the social/UGC pack: 3 short-form video scripts with hooks, shot lists and captions, plus 5 ad headlines, from the brief's commerce story.
- Takes
- ugc_pack_generation
- Queue
- 50 queued · 0 working
- Writes
- funnel_snapshots (ugc-pack-v1: copy_version_map.ugc) · review_messages
- External
- OpenRouter text model
- Last run
- Oct 13, 5:51 PM · 1 ok / 0 failed (api)
◈POD Mapper
readyMaps a product to its fulfilment. Necklace + message-card jewelry maps to ShineOn (Love Knot Necklace, manual upload — ShineOn has no product API). Candles map to Printed Mint (blueprint 1488 / provider 70, 9oz Amber Lavender by default). Other lines get a live Printify catalog shortlist the owner confirms before a draft can be created.
- Takes
- pod_mapping
- Queue
- 1 queued · 0 working
- Writes
- funnel_snapshots.pod_mapping (pod-mapping-v1) · collection_products.lifecycle_status → pod_mapped · review_messages
- External
- none
- Last run
- Oct 13, 5:51 PM · 1 ok / 0 failed (api)
⬡POD Draft Creator
readyCreates the product on Printify as an UNPUBLISHED draft from the confirmed POD mapping and a QA-passed asset. Never publishes; never touches Shopify.
- Takes
- pod_draft_create
- Queue
- 0 queued · 0 working
- Writes
- Printify shop (unpublished product, tags fgs-control-plane + product:<id>) · funnel_snapshots.pod_mapping.supplier_product_id · collection_products.lifecycle_status → pod_draft_ready · review_messages
- External
- Printify (unpublished draft only)
- Last run
- never
Set up a task
Creates a durable job in the queue for the chosen agent and product. Tasks for pod_draft_create are draft-only; shopify jobs cannot be created here.
Tasks (durable jobs)
Newest first. Failed rows show the agent's error; retryable failures return to the queue automatically.
Recent activity
30 rows
| When | Job | Event | % | Message |
|---|---|---|---|---|
| Oct 18, 7:33 PM | 31c5203e | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:33 PM | 09514e18 | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:33 PM | 259f6512 | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:33 PM | fff16962 | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:33 PM | 6d9e6933 | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:33 PM | 2ef0fc42 | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:33 PM | fb0ea0d9 | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:33 PM | 5711f63b | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:33 PM | f2e9cbd1 | job_queued | 0 | Queued for an approved, scoped agent worker. |
| Oct 18, 7:19 PM | 12d0e46a | job_failed | Asset Generator failed: Gemini gemini-3.1-flash-lite-image failed (403): { "error": { "code": 403, "message": "Lightning dunning decision is deny for project: projects/667992514505", "st |
WhenOct 18, 7:33 PM
Job31c5203e
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:33 PM
Job09514e18
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:33 PM
Job259f6512
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:33 PM
Jobfff16962
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:33 PM
Job6d9e6933
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:33 PM
Job2ef0fc42
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:33 PM
Jobfb0ea0d9
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:33 PM
Job5711f63b
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:33 PM
Jobf2e9cbd1
Eventjob_queued
%0
MessageQueued for an approved, scoped agent worker.
WhenOct 18, 7:19 PM
Job12d0e46a
Eventjob_failed
%
MessageAsset Generator failed: Gemini gemini-3.1-flash-lite-image failed (403): {
"error": {
"code": 403,
"message": "Lightning dunning decision is deny for project: projects/667992514505",
"st
Page 1 / 3