Skip to content

flows: helpers runtime fanout — generate runtime wrappers for all 51 relayfile providers (extends N #324) #340

Description

@kjgbot

Extends slice N (#324, merged as #332). N shipped typed codegen for a handful of providers. This slice extends scripts/generate-helpers.mjs to emit runtime wrappers (not just types) for all 51 relayfile-adapters providers, using the slack pattern from B (#299 → #314).

Scope

Enhance scripts/generate-helpers.mjs to walk every adapter in /Users/khaliqgant/Projects/AgentWorkforce/relayfile-adapters/packages/*/ and emit for each provider:

  1. Typed helper client in packages/surface/src/helpers/<provider>.ts (already done for slack/github/linear/notion/stripe by N)
  2. NEW: Runtime wrapper that lowers each verb to a journaled effect step consuming the @relayfile/relay-helpers client, with mount writeback + mock mode (same shape as packages/surface/src/slack.ts)
  3. NEW: Preflight for each provider's credential/mount requirement, mirroring the slack preflight

Providers to add (46 remaining)

airtable, asana, azure-blob, box, calendly, clickup, cloudflare, confluence, daytona, docker-hub, dropbox, fathom, gcp, gcs, gmail, google-calendar, google-drive, granola, hubspot, intercom, jira, mailgun, mixpanel, neon, onedrive, pipedrive, postgres, posthog, recall, reddit, redis, s3, salesforce, segment, sendgrid, sharepoint, shopify, shortcut, teams, telegram, x, webhook-server, zendesk (plus the 5 N already covered as regression check)

Not-in-scope

  • Provider-specific TRIGGERS (on(slack.mention(...))) — separate follow-up
  • Rich block/attachment types beyond what relay-helpers already exports
  • Direct-token transports (mount writeback is the sanctioned path)

Acceptance

  • `f.github.createIssue({repo, title, body})` typechecks + runs → journaled effect step → relayfile mount write
  • Same for f.linear.createIssue, f.notion.appendBlock, f.stripe.createInvoice, etc.
  • Regression: existing f.slack.post keeps working
  • Codegen is idempotent: rerunning produces same output
  • Mock mode (`RELAYFLOWS__MOCK=1`) works uniformly for all providers

Depends on

Files to touch

scripts/generate-helpers.mjs (enhance), packages/surface/src/helpers/*.ts (generated for all providers), packages/surface/src/effect-transport.ts (new — shared effect+mount writeback that all providers use), packages/sdk/src/preflight.ts (generic provider-credential check), tests + fixture flow per-provider smoke

🤖 Filed by relayflow-lead-0910

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions