- Add hand-written wiki (index, overview, how-to, extending, dev) following the platform anatomy - Remove stale nested docs/lib/mail_intake and regenerate the flat lib reference to match docforge.nav.yml - Regenerate MCP bundle with standardized docstrings
345 lines
18 KiB
JSON
345 lines
18 KiB
JSON
{
|
|
"module": "mail_intake.models",
|
|
"content": {
|
|
"path": "mail_intake.models",
|
|
"docstring": "# Summary\n\nDomain models for Mail Intake.\n\nThis package defines the **canonical, provider-agnostic data models**\nused throughout the Mail Intake ingestion pipeline.\n\nModels in this package:\n\n- Represent fully parsed and normalized mail data.\n- Are safe to persist, serialize, and index.\n- Contain no provider-specific payloads or API semantics.\n- Serve as stable inputs for downstream processing and analysis.\n\nThese models form the core internal data contract of the library.\n\n---\n\n# Public API\n\n- `MailIntakeMessage`\n- `MailIntakeThread`\n\n---",
|
|
"objects": {
|
|
"MailIntakeMessage": {
|
|
"name": "MailIntakeMessage",
|
|
"kind": "class",
|
|
"path": "mail_intake.models.MailIntakeMessage",
|
|
"signature": "MailIntakeMessage(message_id: str, thread_id: str, timestamp: datetime, from_email: str, from_name: str | None, subject: str, body_text: str, snippet: str, raw_headers: dict[str, str])",
|
|
"docstring": "Canonical internal representation of a single email message.\n\nNotes:\n **Guarantees:**\n\n - This model represents a fully parsed and normalized email message.\n - It is intentionally provider-agnostic and suitable for\n persistence, indexing, and downstream processing.\n\n **Constraints:**\n\n - No provider-specific identifiers, payloads, or API semantics\n should appear in this model.",
|
|
"members": {
|
|
"message_id": {
|
|
"name": "message_id",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.message_id",
|
|
"signature": null,
|
|
"docstring": "Provider-specific message identifier."
|
|
},
|
|
"thread_id": {
|
|
"name": "thread_id",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.thread_id",
|
|
"signature": null,
|
|
"docstring": "Provider-specific thread identifier to which this message belongs."
|
|
},
|
|
"timestamp": {
|
|
"name": "timestamp",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.timestamp",
|
|
"signature": null,
|
|
"docstring": "Message timestamp as a timezone-naive UTC datetime."
|
|
},
|
|
"from_email": {
|
|
"name": "from_email",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.from_email",
|
|
"signature": null,
|
|
"docstring": "Sender email address."
|
|
},
|
|
"from_name": {
|
|
"name": "from_name",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.from_name",
|
|
"signature": null,
|
|
"docstring": "Optional human-readable sender name."
|
|
},
|
|
"subject": {
|
|
"name": "subject",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.subject",
|
|
"signature": null,
|
|
"docstring": "Raw subject line of the message."
|
|
},
|
|
"body_text": {
|
|
"name": "body_text",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.body_text",
|
|
"signature": null,
|
|
"docstring": "Extracted plain-text body content of the message."
|
|
},
|
|
"snippet": {
|
|
"name": "snippet",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.snippet",
|
|
"signature": null,
|
|
"docstring": "Short provider-supplied preview snippet of the message."
|
|
},
|
|
"raw_headers": {
|
|
"name": "raw_headers",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeMessage.raw_headers",
|
|
"signature": null,
|
|
"docstring": "Normalized mapping of message headers (header name → value)."
|
|
}
|
|
}
|
|
},
|
|
"MailIntakeThread": {
|
|
"name": "MailIntakeThread",
|
|
"kind": "class",
|
|
"path": "mail_intake.models.MailIntakeThread",
|
|
"signature": "MailIntakeThread(thread_id: str, normalized_subject: str, participants: set[str] = ..., messages: list[MailIntakeMessage] = ..., last_activity_at: datetime | None = ...)",
|
|
"docstring": "Canonical internal representation of an email thread.\n\nNotes:\n **Guarantees:**\n\n - A thread groups multiple related messages under a single subject\n and participant set.\n - It is designed to support reasoning over conversational context\n such as job applications, interviews, follow-ups, and ongoing discussions.\n - This model is provider-agnostic and safe to persist.",
|
|
"members": {
|
|
"thread_id": {
|
|
"name": "thread_id",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeThread.thread_id",
|
|
"signature": null,
|
|
"docstring": "Provider-specific thread identifier."
|
|
},
|
|
"normalized_subject": {
|
|
"name": "normalized_subject",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeThread.normalized_subject",
|
|
"signature": null,
|
|
"docstring": "Normalized subject line used to group related messages."
|
|
},
|
|
"participants": {
|
|
"name": "participants",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeThread.participants",
|
|
"signature": null,
|
|
"docstring": "Set of unique participant email addresses observed in the thread."
|
|
},
|
|
"messages": {
|
|
"name": "messages",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeThread.messages",
|
|
"signature": null,
|
|
"docstring": "Ordered list of messages belonging to this thread."
|
|
},
|
|
"last_activity_at": {
|
|
"name": "last_activity_at",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.MailIntakeThread.last_activity_at",
|
|
"signature": null,
|
|
"docstring": "Timestamp of the most recent message in the thread."
|
|
},
|
|
"add_message": {
|
|
"name": "add_message",
|
|
"kind": "function",
|
|
"path": "mail_intake.models.MailIntakeThread.add_message",
|
|
"signature": "add_message(message: MailIntakeMessage)",
|
|
"docstring": "Add a message to the thread and update derived fields.\n\nArgs:\n message (MailIntakeMessage):\n Parsed mail message to add to the thread.\n\nNotes:\n **Responsibilities:**\n\n - Appends the message to the thread.\n - Tracks unique participants.\n - Updates the last activity timestamp."
|
|
}
|
|
}
|
|
},
|
|
"message": {
|
|
"name": "message",
|
|
"kind": "module",
|
|
"path": "mail_intake.models.message",
|
|
"signature": null,
|
|
"docstring": "# Summary\n\nMessage domain models for Mail Intake.\n\nThis module defines the **canonical, provider-agnostic representation**\nof an individual email message as used internally by the Mail Intake\ningestion pipeline.\n\nModels in this module are safe to persist and must not contain any\nprovider-specific fields or semantics.",
|
|
"members": {
|
|
"MailIntakeMessage": {
|
|
"name": "MailIntakeMessage",
|
|
"kind": "class",
|
|
"path": "mail_intake.models.message.MailIntakeMessage",
|
|
"signature": "MailIntakeMessage(message_id: str, thread_id: str, timestamp: datetime, from_email: str, from_name: str | None, subject: str, body_text: str, snippet: str, raw_headers: dict[str, str])",
|
|
"docstring": "Canonical internal representation of a single email message.\n\nNotes:\n **Guarantees:**\n\n - This model represents a fully parsed and normalized email message.\n - It is intentionally provider-agnostic and suitable for\n persistence, indexing, and downstream processing.\n\n **Constraints:**\n\n - No provider-specific identifiers, payloads, or API semantics\n should appear in this model.",
|
|
"members": {
|
|
"message_id": {
|
|
"name": "message_id",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.message_id",
|
|
"signature": null,
|
|
"docstring": "Provider-specific message identifier."
|
|
},
|
|
"thread_id": {
|
|
"name": "thread_id",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.thread_id",
|
|
"signature": null,
|
|
"docstring": "Provider-specific thread identifier to which this message belongs."
|
|
},
|
|
"timestamp": {
|
|
"name": "timestamp",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.timestamp",
|
|
"signature": null,
|
|
"docstring": "Message timestamp as a timezone-naive UTC datetime."
|
|
},
|
|
"from_email": {
|
|
"name": "from_email",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.from_email",
|
|
"signature": null,
|
|
"docstring": "Sender email address."
|
|
},
|
|
"from_name": {
|
|
"name": "from_name",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.from_name",
|
|
"signature": null,
|
|
"docstring": "Optional human-readable sender name."
|
|
},
|
|
"subject": {
|
|
"name": "subject",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.subject",
|
|
"signature": null,
|
|
"docstring": "Raw subject line of the message."
|
|
},
|
|
"body_text": {
|
|
"name": "body_text",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.body_text",
|
|
"signature": null,
|
|
"docstring": "Extracted plain-text body content of the message."
|
|
},
|
|
"snippet": {
|
|
"name": "snippet",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.snippet",
|
|
"signature": null,
|
|
"docstring": "Short provider-supplied preview snippet of the message."
|
|
},
|
|
"raw_headers": {
|
|
"name": "raw_headers",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.message.MailIntakeMessage.raw_headers",
|
|
"signature": null,
|
|
"docstring": "Normalized mapping of message headers (header name → value)."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"thread": {
|
|
"name": "thread",
|
|
"kind": "module",
|
|
"path": "mail_intake.models.thread",
|
|
"signature": null,
|
|
"docstring": "# Summary\n\nThread domain models for Mail Intake.\n\nThis module defines the **canonical, provider-agnostic representation**\nof an email thread as used internally by the Mail Intake ingestion pipeline.\n\nThreads group related messages and serve as the primary unit of reasoning\nfor higher-level correspondence workflows.",
|
|
"members": {
|
|
"MailIntakeMessage": {
|
|
"name": "MailIntakeMessage",
|
|
"kind": "class",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage",
|
|
"signature": "MailIntakeMessage(message_id: str, thread_id: str, timestamp: datetime, from_email: str, from_name: str | None, subject: str, body_text: str, snippet: str, raw_headers: dict[str, str])",
|
|
"docstring": "Canonical internal representation of a single email message.\n\nNotes:\n **Guarantees:**\n\n - This model represents a fully parsed and normalized email message.\n - It is intentionally provider-agnostic and suitable for\n persistence, indexing, and downstream processing.\n\n **Constraints:**\n\n - No provider-specific identifiers, payloads, or API semantics\n should appear in this model.",
|
|
"members": {
|
|
"message_id": {
|
|
"name": "message_id",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.message_id",
|
|
"signature": null,
|
|
"docstring": "Provider-specific message identifier."
|
|
},
|
|
"thread_id": {
|
|
"name": "thread_id",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.thread_id",
|
|
"signature": null,
|
|
"docstring": "Provider-specific thread identifier to which this message belongs."
|
|
},
|
|
"timestamp": {
|
|
"name": "timestamp",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.timestamp",
|
|
"signature": null,
|
|
"docstring": "Message timestamp as a timezone-naive UTC datetime."
|
|
},
|
|
"from_email": {
|
|
"name": "from_email",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.from_email",
|
|
"signature": null,
|
|
"docstring": "Sender email address."
|
|
},
|
|
"from_name": {
|
|
"name": "from_name",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.from_name",
|
|
"signature": null,
|
|
"docstring": "Optional human-readable sender name."
|
|
},
|
|
"subject": {
|
|
"name": "subject",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.subject",
|
|
"signature": null,
|
|
"docstring": "Raw subject line of the message."
|
|
},
|
|
"body_text": {
|
|
"name": "body_text",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.body_text",
|
|
"signature": null,
|
|
"docstring": "Extracted plain-text body content of the message."
|
|
},
|
|
"snippet": {
|
|
"name": "snippet",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.snippet",
|
|
"signature": null,
|
|
"docstring": "Short provider-supplied preview snippet of the message."
|
|
},
|
|
"raw_headers": {
|
|
"name": "raw_headers",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeMessage.raw_headers",
|
|
"signature": null,
|
|
"docstring": "Normalized mapping of message headers (header name → value)."
|
|
}
|
|
}
|
|
},
|
|
"MailIntakeThread": {
|
|
"name": "MailIntakeThread",
|
|
"kind": "class",
|
|
"path": "mail_intake.models.thread.MailIntakeThread",
|
|
"signature": "MailIntakeThread(thread_id: str, normalized_subject: str, participants: set[str] = ..., messages: list[MailIntakeMessage] = ..., last_activity_at: datetime | None = ...)",
|
|
"docstring": "Canonical internal representation of an email thread.\n\nNotes:\n **Guarantees:**\n\n - A thread groups multiple related messages under a single subject\n and participant set.\n - It is designed to support reasoning over conversational context\n such as job applications, interviews, follow-ups, and ongoing discussions.\n - This model is provider-agnostic and safe to persist.",
|
|
"members": {
|
|
"thread_id": {
|
|
"name": "thread_id",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeThread.thread_id",
|
|
"signature": null,
|
|
"docstring": "Provider-specific thread identifier."
|
|
},
|
|
"normalized_subject": {
|
|
"name": "normalized_subject",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeThread.normalized_subject",
|
|
"signature": null,
|
|
"docstring": "Normalized subject line used to group related messages."
|
|
},
|
|
"participants": {
|
|
"name": "participants",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeThread.participants",
|
|
"signature": null,
|
|
"docstring": "Set of unique participant email addresses observed in the thread."
|
|
},
|
|
"messages": {
|
|
"name": "messages",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeThread.messages",
|
|
"signature": null,
|
|
"docstring": "Ordered list of messages belonging to this thread."
|
|
},
|
|
"last_activity_at": {
|
|
"name": "last_activity_at",
|
|
"kind": "attribute",
|
|
"path": "mail_intake.models.thread.MailIntakeThread.last_activity_at",
|
|
"signature": null,
|
|
"docstring": "Timestamp of the most recent message in the thread."
|
|
},
|
|
"add_message": {
|
|
"name": "add_message",
|
|
"kind": "function",
|
|
"path": "mail_intake.models.thread.MailIntakeThread.add_message",
|
|
"signature": "add_message(message: MailIntakeMessage) -> None",
|
|
"docstring": "Add a message to the thread and update derived fields.\n\nArgs:\n message (MailIntakeMessage):\n Parsed mail message to add to the thread.\n\nNotes:\n **Responsibilities:**\n\n - Appends the message to the thread.\n - Tracks unique participants.\n - Updates the last activity timestamp."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |