diff --git a/a2as.yaml b/a2as.yaml
new file mode 100644
index 0000000..ac887cc
--- /dev/null
+++ b/a2as.yaml
@@ -0,0 +1,158 @@
+manifest:
+ version: "0.1.2"
+ schema: https://a2as.org/cert/schema
+ subject:
+ name: iamtomshaw/quotation-agent
+ source: https://github.com/iamtomshaw/quotation-agent
+ branch: main
+ commit: "7ea95357"
+ scope: [main.py]
+ issued:
+ by: A2AS.org
+ at: '2026-01-26T16:13:07Z'
+ signatures:
+ digest: sha256:D4V0WqJBErOYQcl2enoyR60-DZdDEBmG2f9Ckg_1d78
+ key: ed25519:eyg-dG5Tavtr1CAG-xWABE-2vEomLE6y__yD-UgbKw0
+ sig: ed25519:5e7nHrL4n76z5WePdwLSNYfiBxDZY_wQIggYO0rGVhE-kIgaPldBDjaWvLOfMzOahEdx-Z9vzw8NASJ6IV0WBg
+
+agents:
+ agent:
+ type: instance
+ models: [gpt-4o]
+ tools: [get_pricing_from_notion, WebSearchTool, currency_conversion]
+ params:
+ function: run_quotation_agent
+ name: Quotation Agent
+ instructions: [, You are a pricing and quotation agent that provides accurate and competitive pricing quotes
+ based on user requests. You are an expert in the influencer marketing industry so you know how to price campaigns
+ effectively., 'You are pricing campaigns for Tom Shaw, a programming and tech content creator with a focus on software
+ development, AI, and technology trends.', , , 'Provide accurate and competitive pricing quotes
+ that are beneficial for the influencer to ensure that they are paid a fair rate for their services. If you do not
+ have enough information, or need any details specified (for example, the type of content, duration, on or off site
+ production, etc), ask the user for more information.', , , You have access to tools that can fetch
+ information on the influencer's pricing list. You have the ability to search the web for additional information
+ if needed. Make sure to specify when you have used a tool so that the user knows where the information came from.
+ You can also convert currencies using the exchange rate API., , ]
+
+models:
+ gpt-4o:
+ type: literal
+ agents: [agent]
+
+tools:
+ currency_conversion:
+ type: decorator
+ agents: [agent]
+ params:
+ description: Convert currency using an external API
+ get_pricing_from_notion:
+ type: decorator
+ agents: [agent]
+ WebSearchTool:
+ type: module
+ agents: [agent]
+
+imports:
+ Agent: agents.Agent
+ APIKeyHeader: fastapi.security.APIKeyHeader
+ BaseModel: pydantic.BaseModel
+ datetime: datetime.datetime
+ Depends: fastapi.Depends
+ FastAPI: fastapi.FastAPI
+ function_tool: agents.function_tool
+ HTTP_403_FORBIDDEN: starlette.status.HTTP_403_FORBIDDEN
+ HTTPException: fastapi.HTTPException
+ json: json
+ load_dotenv: dotenv.load_dotenv
+ os: os
+ requests: requests
+ Runner: agents.Runner
+ TResponseInputItem: agents.TResponseInputItem
+ uuid: uuid
+ WebSearchTool: agents.WebSearchTool
+ WebSocket: fastapi.WebSocket
+ WebSocketDisconnect: fastapi.WebSocketDisconnect
+
+functions:
+ __init__:
+ type: sync
+ module: main
+ args: [self]
+ broadcast:
+ type: async
+ module: main
+ args: [self, message]
+ clear_chat:
+ type: sync
+ module: main
+ args: [api_key]
+ connect:
+ type: async
+ module: main
+ args: [self, websocket]
+ currency_conversion:
+ type: tool
+ module: main
+ args: [amount, from_currency, to_currency]
+ disconnect:
+ type: sync
+ module: main
+ args: [self, websocket]
+ get_pricing_from_notion:
+ type: tool
+ module: main
+ process_chat_message:
+ type: async
+ module: main
+ args: [message]
+ params:
+ returns: str
+ read_root:
+ type: sync
+ module: main
+ args: [api_key]
+ run_quotation_agent:
+ type: async
+ module: main
+ args: [message, page_id]
+ send_message:
+ type: async
+ module: main
+ args: [self, message, websocket]
+ verify_api_key:
+ type: sync
+ module: main
+ args: [api_key]
+ websocket_endpoint:
+ type: async
+ module: main
+ args: [websocket]
+
+variables:
+ API_KEY:
+ type: env
+ params:
+ caller: [os.getenv]
+ path: [main]
+ API_KEY_NAME:
+ type: env
+ EXCHANGE_RATE_API_KEY:
+ type: env
+ params:
+ caller: [os.getenv]
+ path: [main]
+ NOTION_API_KEY:
+ type: env
+ params:
+ caller: [os.getenv]
+ path: [main]
+ NOTION_PAGE_ID:
+ type: env
+ params:
+ caller: [os.getenv]
+ path: [main]