- collect.py: copy repo MCP bundles to ROOT/<name>/mcp (instead of ROOT/mcp/<name>); add nginx location guard to deny /<name>/mcp/ - config.py: bundle roots now point to <repo>/mcp and standards/mcp for static bundles - Rename core.py -> mcp_server.py and update imports in main.py and registry.py - Dockerfile: per-repo MCP COPYs under /app/<name>/mcp, drop blog copy; add ports 8008/8009 in .drone.yml - Restore standards/mcp/libraries.json from git for registry server
39 lines
3.0 KiB
JSON
39 lines
3.0 KiB
JSON
{
|
|
"module": "mail_intake.adapters.base",
|
|
"content": {
|
|
"path": "mail_intake.adapters.base",
|
|
"docstring": "# Summary\n\nMail provider adapter contracts for Mail Intake.\n\nThis module defines the **provider-agnostic adapter interface** used for\nread-only mail ingestion.\n\nAdapters encapsulate all provider-specific access logic and expose a\nminimal, normalized contract to the rest of the system. No provider-specific\ntypes or semantics should leak beyond implementations of this interface.",
|
|
"objects": {
|
|
"MailIntakeAdapter": {
|
|
"name": "MailIntakeAdapter",
|
|
"kind": "class",
|
|
"path": "mail_intake.adapters.base.MailIntakeAdapter",
|
|
"signature": null,
|
|
"docstring": "Base adapter interface for mail providers.\n\nNotes:\n **Guarantees:**\n\n - Discover messages matching a query.\n - Retrieve full message payloads.\n - Retrieve full thread payloads.\n\n **Lifecycle:**\n\n - Adapters are intentionally read-only and must not mutate provider state.",
|
|
"members": {
|
|
"iter_message_refs": {
|
|
"name": "iter_message_refs",
|
|
"kind": "function",
|
|
"path": "mail_intake.adapters.base.MailIntakeAdapter.iter_message_refs",
|
|
"signature": "iter_message_refs(query: str) -> Iterator[dict[str, str]]",
|
|
"docstring": "Iterate over lightweight message references matching a query.\n\nArgs:\n query (str):\n Provider-specific query string used to filter messages.\n\nReturns:\n Iterator[dict[str, str]]:\n An iterator over lightweight message reference dictionaries.\n\nYields:\n dict[str, str]:\n Dictionaries containing message and thread identifiers.\n\nNotes:\n **Guarantees:**\n\n - Implementations must yield dictionaries containing at least\n `message_id` and `thread_id`.\n\nExample:\n Typical yield:\n\n ```python\n {\n \"message_id\": \"...\",\n \"thread_id\": \"...\"\n }\n ```"
|
|
},
|
|
"fetch_message": {
|
|
"name": "fetch_message",
|
|
"kind": "function",
|
|
"path": "mail_intake.adapters.base.MailIntakeAdapter.fetch_message",
|
|
"signature": "fetch_message(message_id: str) -> dict[str, Any]",
|
|
"docstring": "Fetch a full raw message by message identifier.\n\nArgs:\n message_id (str):\n Provider-specific message identifier.\n\nReturns:\n dict[str, Any]:\n Provider-native message payload (e.g., Gmail message JSON structure)."
|
|
},
|
|
"fetch_thread": {
|
|
"name": "fetch_thread",
|
|
"kind": "function",
|
|
"path": "mail_intake.adapters.base.MailIntakeAdapter.fetch_thread",
|
|
"signature": "fetch_thread(thread_id: str) -> dict[str, Any]",
|
|
"docstring": "Fetch a full raw thread by thread identifier.\n\nArgs:\n thread_id (str):\n Provider-specific thread identifier.\n\nReturns:\n dict[str, Any]:\n Provider-native thread payload."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |