···129129 MemoryType.CONVERSATION,
130130 )
131131132132- logger.debug(f"💾 Stored interaction in episodic memory")
132132+ logger.debug("💾 Stored interaction in episodic memory")
133133 except Exception as e:
134134 logger.warning(f"Failed to store in memory: {e}")
135135
+20-16
src/bot/config.py
···1212 )
13131414 # Bluesky credentials
1515- bluesky_handle: str = Field(..., description="The handle of the Bluesky account")
1515+ bluesky_handle: str = Field(
1616+ default=..., description="The handle of the Bluesky account"
1717+ )
1618 bluesky_password: str = Field(
1717- ..., description="The password of the Bluesky account"
1919+ default=..., description="The password of the Bluesky account"
1820 )
1921 bluesky_service: str = Field(
2020- "https://bsky.social", description="The service URL of the Bluesky account"
2222+ default="https://bsky.social",
2323+ description="The service URL of the Bluesky account",
2124 )
22252326 # Bot configuration
2424- bot_name: str = Field("Bot", description="The name of the bot")
2727+ bot_name: str = Field(default="Bot", description="The name of the bot")
2528 personality_file: str = Field(
2626- "personalities/phi.md", description="The file containing the bot's personality"
2929+ default="personalities/phi.md",
3030+ description="The file containing the bot's personality",
2731 )
28322933 # LLM configuration (support multiple providers)
3034 openai_api_key: str | None = Field(
3131- None, description="The API key for the OpenAI API"
3535+ default=None, description="The API key for the OpenAI API"
3236 )
3337 anthropic_api_key: str | None = Field(
3434- None, description="The API key for the Anthropic API"
3838+ default=None, description="The API key for the Anthropic API"
3539 )
36403741 # Google Search configuration
3842 google_api_key: str | None = Field(
3939- None, description="The API key for the Google API"
4343+ default=None, description="The API key for the Google API"
4044 )
4145 google_search_engine_id: str | None = Field(
4242- None, description="The search engine ID for the Google API"
4646+ default=None, description="The search engine ID for the Google API"
4347 )
44484549 # TurboPuffer configuration
4650 turbopuffer_api_key: str | None = Field(
4747- None, description="The API key for the TurboPuffer API"
5151+ default=None, description="The API key for the TurboPuffer API"
4852 )
4953 turbopuffer_namespace: str = Field(
5050- "bot-memories", description="The namespace for the TurboPuffer API"
5454+ default="bot-memories", description="The namespace for the TurboPuffer API"
5155 )
5256 turbopuffer_region: str = Field(
5353- "gcp-us-central1", description="The region for the TurboPuffer API"
5757+ default="gcp-us-central1", description="The region for the TurboPuffer API"
5458 )
55595660 # Server configuration
5757- host: str = Field("0.0.0.0", description="The host for the server")
5858- port: int = Field(8000, description="The port for the server")
6161+ host: str = Field(default="0.0.0.0", description="The host for the server")
6262+ port: int = Field(default=8000, description="The port for the server")
59636064 # Polling configuration
6165 notification_poll_interval: int = Field(
6262- 10, description="The interval for polling for notifications"
6666+ default=10, description="The interval for polling for notifications"
6367 )
64686569 # Debug mode
6666- debug: bool = Field(True, description="Whether to run in debug mode")
7070+ debug: bool = Field(default=True, description="Whether to run in debug mode")
67716872 @model_validator(mode="after")
6973 def configure_logging(self) -> Self: