from .card import CARD from .settings import Settings from .connectors.github import GitHubConnector from .connectors.sharepoint import SharePointConnector from .routes import ingest_route from .triggers import register_triggers from .governance import authorize from .publication import publish_document from .validation import validate_document def create_agent_app(settings: Settings | None = None) -> dict: config = settings or Settings.from_env() source, publisher = GitHubConnector(config.github_token), SharePointConnector(config.sharepoint_site_url) app = {"card": CARD, "settings": config, "routes": {"/ingest": lambda payload: ingest_route(payload, source)}, "triggers": {}, "governance": authorize, "publication": lambda doc: publish_document(doc, publisher, config), "validation": validate_document} register_triggers(app, app["routes"]["/ingest"]) return app