Skip to content

add 16 frog-canonical GTM bots with provider integration stubs#233

Open
lev-goryachev wants to merge 4 commits intomainfrom
bots-frog-clean
Open

add 16 frog-canonical GTM bots with provider integration stubs#233
lev-goryachev wants to merge 4 commits intomainfrom
bots-frog-clean

Conversation

@lev-goryachev
Copy link
Contributor

Summary

  • 16 new bots in strict frog template format: market_signal_bot + 15 GTM-stage bots covering the full customer journey from discovery to scale
  • 98 canonical fi_*.py provider integration stubs with called_by_model interface
  • integration_tool_runtime.py refactored: removed provider_dispatch/provider_registry dependencies, now uses inline importlib dispatch

Bot list

market_signal_bot, customer_discovery_bot, pain_alternatives_bot, positioning_offer_bot, mvp_validation_bot, pilot_delivery_bot, gtm_economics_rtm_bot, pipeline_qualification_bot, segment_qualification_bot, experiment_design_bot, churn_learning_bot, retention_intelligence_bot, partner_ecosystem_bot, creative_paid_channels_bot, pricing_validation_bot, scale_governance_bot

Each bot has

  • *_bot.py — frog template, no deviations: explicit TOOLS list, one @rcx.on_tool_call per tool, try/finally around event loop
  • *_install.pymarketplace_upsert_dev_bot with all metadata, provide_tools(tools), per-expert fexp_allow_tools
  • *_prompts.py — strings only: BOT_PERSONALITY_MD, SKILL_* constants, PROMPT_WRITE_* blocks, one def {expert}_prompt() per expert
  • *_tools.py — complexity absorber: API tool constants, TOOL_ALLOWED_METHOD_IDS, handle_api_tool_call with inline importlib dispatch, write tools with embedded strict pdoc schemas
  • setup_schema.json — bot setup fields

Provider integration pattern

All fi_*.py stubs are canonical: class Integration{PascalProvider} with async def called_by_model(self, toolcall, model_produced_args). Unimplemented providers return structured INTEGRATION_UNAVAILABLE payload. No provider_dispatch.py or provider_registry.py.

@lev-goryachev lev-goryachev force-pushed the bots-frog-clean branch 2 times, most recently from 4ca90c0 to b848fa7 Compare March 12, 2026 10:14
Unify the branch work into one change that aligns the toolless bot architecture with broader provider support for discovery, outreach, and market research workflows.
Register Facebook scopes for Executor and make the runtime status flow report existing Meta connections instead of asking users to reconnect.
… use case)

Replace fi_meta.py, fi_instagram.py, and facebook/fi_facebook.py with flat
per-use-case files matching Meta developer console use cases:

  fi_meta_marketing_manage.py   - Create & manage ads (campaigns, adsets, ads,
                                  creatives, audiences, pixels, targeting, rules)
  fi_meta_marketing_metrics.py  - Measure ad performance (all insights endpoints)
  fi_meta_pages.py              - Manage Pages and ad accounts
  fi_meta_ad_leads.py           - Capture & manage ad leads (stub)
  fi_meta_app_ads.py            - App ads (stub)
  fi_meta_threads.py            - Threads API (stub)
  fi_meta_whatsapp.py           - WhatsApp Business (stub)
  fi_meta_catalog.py            - Catalog API (stub)
  fi_meta_messenger.py          - Messenger (stub)
  fi_meta_instagram.py          - Instagram messaging & content (stub)

facebook/ subpackage is kept as internal implementation library used by the
three real integration files above.
- Merge client.py + exceptions.py + models.py + utils.py into _fi_meta_helpers.py
- Inline campaigns/adsets/ads/audiences/pixels/targeting/rules into fi_meta_marketing_manage.py
- Inline insights.py into fi_meta_marketing_metrics.py
- Inline accounts.py into fi_meta_pages.py
- Delete facebook/ subpackage entirely

All fi_meta_*.py files now self-contained with single helper dep.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant