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
ready
Scores 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
ready
Produces 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
ready
Turns 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
ready
Generates 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
ready
Automated 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
ready
Writes 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
ready
Writes 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
ready
Maps 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
ready
Creates 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
WhenJobEvent%Message
Oct 18, 7:33 PM31c5203ejob_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:33 PM09514e18job_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:33 PM259f6512job_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:33 PMfff16962job_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:33 PM6d9e6933job_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:33 PM2ef0fc42job_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:33 PMfb0ea0d9job_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:33 PM5711f63bjob_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:33 PMf2e9cbd1job_queued0Queued for an approved, scoped agent worker.
Oct 18, 7:19 PM12d0e46ajob_failedAsset 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