cite-agent 1.3.2__tar.gz → 1.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cite_agent-1.3.2/cite_agent.egg-info → cite_agent-1.3.4}/PKG-INFO +1 -1
- cite_agent-1.3.4/cite_agent/__version__.py +1 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/cli.py +40 -9
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/enhanced_ai_agent.py +8 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4/cite_agent.egg-info}/PKG-INFO +1 -1
- {cite_agent-1.3.2 → cite_agent-1.3.4}/setup.py +1 -1
- cite_agent-1.3.2/cite_agent/__version__.py +0 -1
- {cite_agent-1.3.2 → cite_agent-1.3.4}/LICENSE +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/MANIFEST.in +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/README.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/__main__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/account_client.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/agent_backend_only.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/ascii_plotting.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/auth.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/backend_only_client.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/cli_conversational.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/cli_enhanced.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/cli_workflow.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/dashboard.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/rate_limiter.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/session_manager.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/setup_config.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/streaming_ui.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/telemetry.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/ui.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/updater.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/web_search.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/workflow.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent/workflow_integration.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent.egg-info/SOURCES.txt +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent.egg-info/dependency_links.txt +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent.egg-info/entry_points.txt +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent.egg-info/requires.txt +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/cite_agent.egg-info/top_level.txt +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/BETA_LAUNCH_CHECKLIST.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/BETA_RELEASE_CHECKLIST.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/ENHANCED_CAPABILITIES.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/GROQ_RATE_LIMITS.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/INSTALL.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/PUBLISHING_PYPI.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/SECURE_PACKAGING_GUIDE.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/SECURITY_AUDIT.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/USER_GETTING_STARTED.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/docs/playbooks/BETA_LAUNCH_PLAYBOOK.md +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/requirements.txt +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/setup.cfg +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/auth_service/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/auth_service/auth_manager.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/graph/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/graph/knowledge_graph.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/llm_service/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/llm_service/llm_manager.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/paper_service/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/paper_service/openalex.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/performance_service/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/performance_service/rust_performance.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/chatbot.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/citation_manager.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/context_manager.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/conversation_manager.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/critical_paper_detector.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/enhanced_research.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/enhanced_synthesizer.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/query_generator.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/synthesizer.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/search_service/__init__.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/search_service/indexer.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/search_service/search_engine.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/simple_enhanced_main.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/beta_launch_test_suite.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/enhanced/test_account_client.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/enhanced/test_archive_agent.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/enhanced/test_enhanced_agent_runtime.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/enhanced/test_reasoning_engine.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/enhanced/test_setup_config.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/enhanced/test_tool_framework.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/integration_test.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/test_truth_seeking_comprehensive.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_accuracy_system.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_agent_live.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_backend_local.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_cerebras_comparison.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_improved_prompt.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_qualitative_robustness.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_qualitative_system.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_truth_seeking_chinese.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_truth_seeking_comprehensive.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tests/validation/test_truth_seeking_real.py +0 -0
- {cite_agent-1.3.2 → cite_agent-1.3.4}/tools/security_audit.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.3.4"
|
|
@@ -747,7 +747,8 @@ Examples:
|
|
|
747
747
|
|
|
748
748
|
# Handle version
|
|
749
749
|
if args.version:
|
|
750
|
-
|
|
750
|
+
from cite_agent.__version__ import __version__
|
|
751
|
+
print(f"Cite Agent v{__version__}")
|
|
751
752
|
print("AI Research Assistant with real data integration")
|
|
752
753
|
return
|
|
753
754
|
|
|
@@ -820,13 +821,14 @@ Examples:
|
|
|
820
821
|
updater.show_update_status()
|
|
821
822
|
sys.exit(0)
|
|
822
823
|
|
|
823
|
-
# Auto-
|
|
824
|
-
def
|
|
825
|
-
"""
|
|
824
|
+
# Auto-upgrade on startup (silent, non-blocking)
|
|
825
|
+
def auto_upgrade_if_needed():
|
|
826
|
+
"""Automatically upgrade to latest version if available"""
|
|
826
827
|
try:
|
|
827
828
|
# Only check once per day to avoid API spam
|
|
828
829
|
from pathlib import Path
|
|
829
830
|
import time
|
|
831
|
+
import subprocess
|
|
830
832
|
|
|
831
833
|
check_file = Path.home() / ".cite_agent" / ".last_update_check"
|
|
832
834
|
check_file.parent.mkdir(exist_ok=True)
|
|
@@ -846,15 +848,44 @@ Examples:
|
|
|
846
848
|
if update_info and update_info.get("available"):
|
|
847
849
|
current = update_info["current"]
|
|
848
850
|
latest = update_info["latest"]
|
|
849
|
-
|
|
850
|
-
print(f"
|
|
851
|
-
|
|
851
|
+
|
|
852
|
+
print(f"\n🔄 Updating Cite Agent: v{current} → v{latest}...")
|
|
853
|
+
|
|
854
|
+
# Detect if installed via pipx or pip
|
|
855
|
+
import shutil
|
|
856
|
+
if shutil.which("pipx"):
|
|
857
|
+
# Try pipx upgrade first
|
|
858
|
+
result = subprocess.run(
|
|
859
|
+
["pipx", "upgrade", "cite-agent"],
|
|
860
|
+
capture_output=True,
|
|
861
|
+
text=True,
|
|
862
|
+
timeout=60
|
|
863
|
+
)
|
|
864
|
+
if result.returncode == 0:
|
|
865
|
+
print(f"✅ Updated to v{latest} (via pipx)")
|
|
866
|
+
print("🔄 Restart cite-agent to use the new version\n")
|
|
867
|
+
return
|
|
868
|
+
|
|
869
|
+
# Fall back to pip install --user
|
|
870
|
+
result = subprocess.run(
|
|
871
|
+
[sys.executable, "-m", "pip", "install", "--upgrade", "--user", "cite-agent"],
|
|
872
|
+
capture_output=True,
|
|
873
|
+
text=True,
|
|
874
|
+
timeout=60
|
|
875
|
+
)
|
|
876
|
+
|
|
877
|
+
if result.returncode == 0:
|
|
878
|
+
print(f"✅ Updated to v{latest}")
|
|
879
|
+
print("🔄 Restart cite-agent to use the new version\n")
|
|
880
|
+
else:
|
|
881
|
+
# Silent fail - don't show errors to users
|
|
882
|
+
pass
|
|
852
883
|
except:
|
|
853
884
|
pass # Silently fail, don't block startup
|
|
854
885
|
|
|
855
|
-
# Run
|
|
886
|
+
# Run auto-upgrade in background (doesn't delay startup)
|
|
856
887
|
import threading
|
|
857
|
-
threading.Thread(target=
|
|
888
|
+
threading.Thread(target=auto_upgrade_if_needed, daemon=True).start()
|
|
858
889
|
|
|
859
890
|
# Handle query or interactive mode
|
|
860
891
|
async def run_cli():
|
|
@@ -1696,6 +1696,14 @@ class EnhancedNocturnalAgent:
|
|
|
1696
1696
|
tokens_used=detail.get('tokens_used_today', 0)
|
|
1697
1697
|
)
|
|
1698
1698
|
|
|
1699
|
+
elif response.status == 503:
|
|
1700
|
+
# Backend AI service temporarily unavailable (Cerebras/Groq rate limited)
|
|
1701
|
+
# Graceful degradation: return helpful message instead of error
|
|
1702
|
+
return ChatResponse(
|
|
1703
|
+
response="⚠️ AI service temporarily busy. Try again in a moment, or rephrase your question.",
|
|
1704
|
+
error_message="Service temporarily unavailable"
|
|
1705
|
+
)
|
|
1706
|
+
|
|
1699
1707
|
elif response.status == 200:
|
|
1700
1708
|
data = await response.json()
|
|
1701
1709
|
response_text = data.get('response', '')
|
|
@@ -7,7 +7,7 @@ long_description = readme_path.read_text() if readme_path.exists() else "Termina
|
|
|
7
7
|
|
|
8
8
|
setup(
|
|
9
9
|
name="cite-agent",
|
|
10
|
-
version="1.3.
|
|
10
|
+
version="1.3.4",
|
|
11
11
|
author="Cite-Agent Team",
|
|
12
12
|
author_email="contact@citeagent.dev",
|
|
13
13
|
description="Terminal AI assistant for academic research with citation verification",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.3.2"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cite_agent-1.3.2 → cite_agent-1.3.4}/src/services/research_service/critical_paper_detector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|