docs: add wiki and refresh flat lib with mcp artifacts
- 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
This commit is contained in:
@@ -8,70 +8,70 @@
|
||||
"name": "MailIntakeMessage",
|
||||
"kind": "class",
|
||||
"path": "mail_intake.models.MailIntakeMessage",
|
||||
"signature": "<bound method Alias.signature of Alias('MailIntakeMessage', '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.MailIntakeMessage.message_id",
|
||||
"signature": "<bound method Alias.signature of Alias('message_id', '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.MailIntakeMessage.thread_id",
|
||||
"signature": "<bound method Alias.signature of Alias('thread_id', '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.MailIntakeMessage.timestamp",
|
||||
"signature": "<bound method Alias.signature of Alias('timestamp', '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.MailIntakeMessage.from_email",
|
||||
"signature": "<bound method Alias.signature of Alias('from_email', 'mail_intake.models.message.MailIntakeMessage.from_email')>",
|
||||
"signature": null,
|
||||
"docstring": "Sender email address."
|
||||
},
|
||||
"from_name": {
|
||||
"name": "from_name",
|
||||
"kind": "attribute",
|
||||
"path": "mail_intake.models.MailIntakeMessage.from_name",
|
||||
"signature": "<bound method Alias.signature of Alias('from_name', 'mail_intake.models.message.MailIntakeMessage.from_name')>",
|
||||
"signature": null,
|
||||
"docstring": "Optional human-readable sender name."
|
||||
},
|
||||
"subject": {
|
||||
"name": "subject",
|
||||
"kind": "attribute",
|
||||
"path": "mail_intake.models.MailIntakeMessage.subject",
|
||||
"signature": "<bound method Alias.signature of Alias('subject', '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.MailIntakeMessage.body_text",
|
||||
"signature": "<bound method Alias.signature of Alias('body_text', '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.MailIntakeMessage.snippet",
|
||||
"signature": "<bound method Alias.signature of Alias('snippet', '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.MailIntakeMessage.raw_headers",
|
||||
"signature": "<bound method Alias.signature of Alias('raw_headers', 'mail_intake.models.message.MailIntakeMessage.raw_headers')>",
|
||||
"signature": null,
|
||||
"docstring": "Normalized mapping of message headers (header name → value)."
|
||||
}
|
||||
}
|
||||
@@ -80,49 +80,49 @@
|
||||
"name": "MailIntakeThread",
|
||||
"kind": "class",
|
||||
"path": "mail_intake.models.MailIntakeThread",
|
||||
"signature": "<bound method Alias.signature of Alias('MailIntakeThread', '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.MailIntakeThread.thread_id",
|
||||
"signature": "<bound method Alias.signature of Alias('thread_id', '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.MailIntakeThread.normalized_subject",
|
||||
"signature": "<bound method Alias.signature of Alias('normalized_subject', '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.MailIntakeThread.participants",
|
||||
"signature": "<bound method Alias.signature of Alias('participants', '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.MailIntakeThread.messages",
|
||||
"signature": "<bound method Alias.signature of Alias('messages', '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.MailIntakeThread.last_activity_at",
|
||||
"signature": "<bound method Alias.signature of Alias('last_activity_at', '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.MailIntakeThread.add_message",
|
||||
"signature": "<bound method Alias.signature of Alias('add_message', 'mail_intake.models.thread.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."
|
||||
}
|
||||
}
|
||||
@@ -134,25 +134,11 @@
|
||||
"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": {
|
||||
"dataclass": {
|
||||
"name": "dataclass",
|
||||
"kind": "alias",
|
||||
"path": "mail_intake.models.message.dataclass",
|
||||
"signature": "<bound method Alias.signature of Alias('dataclass', 'dataclasses.dataclass')>",
|
||||
"docstring": null
|
||||
},
|
||||
"datetime": {
|
||||
"name": "datetime",
|
||||
"kind": "alias",
|
||||
"path": "mail_intake.models.message.datetime",
|
||||
"signature": "<bound method Alias.signature of Alias('datetime', 'datetime.datetime')>",
|
||||
"docstring": null
|
||||
},
|
||||
"MailIntakeMessage": {
|
||||
"name": "MailIntakeMessage",
|
||||
"kind": "class",
|
||||
"path": "mail_intake.models.message.MailIntakeMessage",
|
||||
"signature": "<bound method Class.signature of Class('MailIntakeMessage', 18, 79)>",
|
||||
"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": {
|
||||
@@ -229,95 +215,74 @@
|
||||
"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": {
|
||||
"dataclass": {
|
||||
"name": "dataclass",
|
||||
"kind": "alias",
|
||||
"path": "mail_intake.models.thread.dataclass",
|
||||
"signature": "<bound method Alias.signature of Alias('dataclass', 'dataclasses.dataclass')>",
|
||||
"docstring": null
|
||||
},
|
||||
"field": {
|
||||
"name": "field",
|
||||
"kind": "alias",
|
||||
"path": "mail_intake.models.thread.field",
|
||||
"signature": "<bound method Alias.signature of Alias('field', 'dataclasses.field')>",
|
||||
"docstring": null
|
||||
},
|
||||
"datetime": {
|
||||
"name": "datetime",
|
||||
"kind": "alias",
|
||||
"path": "mail_intake.models.thread.datetime",
|
||||
"signature": "<bound method Alias.signature of Alias('datetime', 'datetime.datetime')>",
|
||||
"docstring": null
|
||||
},
|
||||
"MailIntakeMessage": {
|
||||
"name": "MailIntakeMessage",
|
||||
"kind": "class",
|
||||
"path": "mail_intake.models.thread.MailIntakeMessage",
|
||||
"signature": "<bound method Alias.signature of Alias('MailIntakeMessage', '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.thread.MailIntakeMessage.message_id",
|
||||
"signature": "<bound method Alias.signature of Alias('message_id', '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.thread.MailIntakeMessage.thread_id",
|
||||
"signature": "<bound method Alias.signature of Alias('thread_id', '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.thread.MailIntakeMessage.timestamp",
|
||||
"signature": "<bound method Alias.signature of Alias('timestamp', '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.thread.MailIntakeMessage.from_email",
|
||||
"signature": "<bound method Alias.signature of Alias('from_email', 'mail_intake.models.message.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": "<bound method Alias.signature of Alias('from_name', 'mail_intake.models.message.MailIntakeMessage.from_name')>",
|
||||
"signature": null,
|
||||
"docstring": "Optional human-readable sender name."
|
||||
},
|
||||
"subject": {
|
||||
"name": "subject",
|
||||
"kind": "attribute",
|
||||
"path": "mail_intake.models.thread.MailIntakeMessage.subject",
|
||||
"signature": "<bound method Alias.signature of Alias('subject', '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.thread.MailIntakeMessage.body_text",
|
||||
"signature": "<bound method Alias.signature of Alias('body_text', '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.thread.MailIntakeMessage.snippet",
|
||||
"signature": "<bound method Alias.signature of Alias('snippet', '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.thread.MailIntakeMessage.raw_headers",
|
||||
"signature": "<bound method Alias.signature of Alias('raw_headers', 'mail_intake.models.message.MailIntakeMessage.raw_headers')>",
|
||||
"signature": null,
|
||||
"docstring": "Normalized mapping of message headers (header name → value)."
|
||||
}
|
||||
}
|
||||
@@ -326,7 +291,7 @@
|
||||
"name": "MailIntakeThread",
|
||||
"kind": "class",
|
||||
"path": "mail_intake.models.thread.MailIntakeThread",
|
||||
"signature": "<bound method Class.signature of Class('MailIntakeThread', 19, 80)>",
|
||||
"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": {
|
||||
@@ -368,7 +333,7 @@
|
||||
"name": "add_message",
|
||||
"kind": "function",
|
||||
"path": "mail_intake.models.thread.MailIntakeThread.add_message",
|
||||
"signature": "<bound method Function.signature of Function('add_message', 59, 80)>",
|
||||
"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."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user