feat: implement agent communication bus
feat: add agent message dataclass feat: define message types enum feat: create agent communication bus class feat: initialize database connection feat: create agent messages table feat: implement send_message method feat: implement receive_messages method feat: add agent roles feat: add agent manager feat: add agent communication feat: create autonomous detection module feat: create autonomous mode module feat: add cache api feat: add tool cache feat: add command handlers feat: add help docs feat: add multiplexer commands feat: update pyproject.toml version to 1.8.0 feat: update changelog with version 1.7.0 details feat: create rp init file feat: create rp main file feat: create core assistant class feat: add verbose mode to rp main feat: add interactive mode to rp main feat: add session management to rp main feat: add plugin support to rp main feat: add usage statistics to rp main
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import json
|
||||
import urllib.error
|
||||
import urllib.parse
|
||||
import urllib.request
|
||||
|
||||
|
||||
def http_fetch(url, headers=None):
|
||||
"""Fetch content from an HTTP URL.
|
||||
|
||||
Args:
|
||||
url: The URL to fetch.
|
||||
headers: Optional HTTP headers.
|
||||
|
||||
Returns:
|
||||
Dict with status and content.
|
||||
"""
|
||||
try:
|
||||
req = urllib.request.Request(url)
|
||||
if headers:
|
||||
for key, value in headers.items():
|
||||
req.add_header(key, value)
|
||||
with urllib.request.urlopen(req) as response:
|
||||
content = response.read().decode("utf-8")
|
||||
return {"status": "success", "content": content[:10000]}
|
||||
except Exception as e:
|
||||
return {"status": "error", "error": str(e)}
|
||||
|
||||
|
||||
def _perform_search(base_url, query, params=None):
|
||||
try:
|
||||
full_url = f"https://static.molodetz.nl/search.cgi?query={query}"
|
||||
with urllib.request.urlopen(full_url) as response:
|
||||
content = response.read().decode("utf-8")
|
||||
return {"status": "success", "content": json.loads(content)}
|
||||
except Exception as e:
|
||||
return {"status": "error", "error": str(e)}
|
||||
|
||||
|
||||
def web_search(query):
|
||||
"""Perform a web search.
|
||||
|
||||
Args:
|
||||
query: Search query.
|
||||
|
||||
Returns:
|
||||
Dict with status and search results.
|
||||
"""
|
||||
base_url = "https://search.molodetz.nl/search"
|
||||
return _perform_search(base_url, query)
|
||||
|
||||
|
||||
def web_search_news(query):
|
||||
"""Perform a web search for news.
|
||||
|
||||
Args:
|
||||
query: Search query for news.
|
||||
|
||||
Returns:
|
||||
Dict with status and news search results.
|
||||
"""
|
||||
base_url = "https://search.molodetz.nl/search"
|
||||
return _perform_search(base_url, query)
|
||||
Reference in New Issue
Block a user