Skip to content

logly/mureo

v0.9.7 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

advertising agentic-ai ai-agents claude-code cli codex
+11 more
cursor facebook-ads gemini-cli google-ads marketing marketing-automation mcp meta-ads model-context-protocol python search-console

ReleasePort's take

Light signal
editorial:auto 12d

Release v0.9.7 adds optional `account_credential_fields` support to mureo.core.providers and updates built‑in adapters accordingly.

Why it matters: If you author or maintain provider plugins, update implementations to declare credential fields; otherwise treat as FYI.

Summary

AI summary

Added optional account_credential_fields for provider plugins enabling introspection and validation.

Changes in this release

Feature Medium

Adds optional account_credential_fields for self-describing providers in mureo.core.providers.

Adds optional account_credential_fields for self-describing providers in mureo.core.providers.

Source: llm_adapter@2026-05-22

Confidence: high

Feature Medium

Introduces optional `account_credential_fields` on provider plugins.

Introduces optional `account_credential_fields` on provider plugins.

Source: granite4.1:30b@2026-05-22-audit

Confidence: high

Feature Low

Adds public `AccountCredentialField` dataclass to `mureo.core.providers`.

Adds public `AccountCredentialField` dataclass to `mureo.core.providers`.

Source: granite4.1:30b@2026-05-22-audit

Confidence: high

Feature Low

Provides `get_account_credential_fields(provider)` accessor for safe retrieval.

Provides `get_account_credential_fields(provider)` accessor for safe retrieval.

Source: granite4.1:30b@2026-05-22-audit

Confidence: high

Feature Low

Extends plugin authoring documentation with guidance on declaring credential fields.

Extends plugin authoring documentation with guidance on declaring credential fields.

Source: granite4.1:30b@2026-05-22-audit

Confidence: high

Refactor Low

Updates built-in adapters (`GoogleAdsAdapter`, `MetaAdsAdapter`) to declare account credential fields.

Updates built-in adapters (`GoogleAdsAdapter`, `MetaAdsAdapter`) to declare account credential fields.

Source: granite4.1:30b@2026-05-22-audit

Confidence: high

Full changelog

Added — Optional account_credential_fields for self-describing providers (#131)

Provider plugins (built-in google_ads / meta_ads, and third-party plugins discovered via the mureo.providers entry-point group) can now declare an optional account_credential_fields: tuple[AccountCredentialField, ...] class attribute so introspection tooling — the mureo providers … CLI, configuration wizards, plugin authoring guides — can render setup prompts, validate config, and document plugins without hardcoding per-provider knowledge.

from mureo.core.providers import AccountCredentialField

class MyAdsProvider:
    name = "my_ads"
    display_name = "My Ads"
    capabilities = frozenset({...})
    account_credential_fields = (
        AccountCredentialField(
            key="advertiser_id",
            display_name="Advertiser ID",
            placeholder="adv-12345",
            required=True,
            description="From the MyAds dashboard.",
        ),
    )
  • New public surface in mureo.core.providers: AccountCredentialField (frozen dataclass — key, display_name, placeholder="", required=False, description="") and get_account_credential_fields(provider) -> tuple[AccountCredentialField, ...] accessor. The accessor reads the optional attribute defensively (returns () when absent) and validates the shape (tuple of AccountCredentialField only) — malformed declarations raise TypeError at introspection time, not deep inside the consuming UI.
  • BaseProvider Protocol is unchanged. The new attribute is documented as optional in the BaseProvider docstring; the Protocol body itself stays stable so every pre-feature plugin keeps loading without modification.
  • Built-in adapters updated: mureo.adapters.google_ads.GoogleAdsAdapter declares customer_id; mureo.adapters.meta_ads.MetaAdsAdapter declares ad_account_id. Operator-shared credentials (developer token, app secret, refresh token, MCC login_customer_id) intentionally do NOT appear — those belong to a separate operator-level layer.
  • Plugin author guide: docs/plugin-authoring.md §3 (BaseProvider) gains a Declaring per-account credential fields (optional) subsection covering the dataclass shape, defaults, and the accessor's defensive-read / strict-validation semantics.

Backward compatibility: providers that do not declare account_credential_fields continue to load unchanged; get_account_credential_fields() returns (), which downstream tooling treats as "no per-account configuration needed."

Install

pip install --upgrade mureo

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track logly/mureo

Get notified when new releases ship.

Sign up free

About logly/mureo

Framework for AI agents (Claude Code, Cursor, Codex, Gemini) to operate Google Ads, Meta Ads, and Search Console. Grounded in a local STRATEGY.md — not metric-chasing. Defense-in-depth security, local-first. Apache 2.0.

All releases →

Beta — feedback welcome: [email protected]