arionxiv 1.0.30__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.
Files changed (78) hide show
  1. arionxiv-1.0.30/LICENSE +21 -0
  2. arionxiv-1.0.30/MANIFEST.in +17 -0
  3. arionxiv-1.0.30/PKG-INFO +337 -0
  4. arionxiv-1.0.30/README.md +242 -0
  5. arionxiv-1.0.30/arionxiv/__init__.py +40 -0
  6. arionxiv-1.0.30/arionxiv/__main__.py +10 -0
  7. arionxiv-1.0.30/arionxiv/arxiv_operations/__init__.py +0 -0
  8. arionxiv-1.0.30/arionxiv/arxiv_operations/client.py +225 -0
  9. arionxiv-1.0.30/arionxiv/arxiv_operations/fetcher.py +173 -0
  10. arionxiv-1.0.30/arionxiv/arxiv_operations/searcher.py +122 -0
  11. arionxiv-1.0.30/arionxiv/arxiv_operations/utils.py +293 -0
  12. arionxiv-1.0.30/arionxiv/cli/__init__.py +4 -0
  13. arionxiv-1.0.30/arionxiv/cli/commands/__init__.py +1 -0
  14. arionxiv-1.0.30/arionxiv/cli/commands/analyze.py +587 -0
  15. arionxiv-1.0.30/arionxiv/cli/commands/auth.py +369 -0
  16. arionxiv-1.0.30/arionxiv/cli/commands/chat.py +714 -0
  17. arionxiv-1.0.30/arionxiv/cli/commands/daily.py +482 -0
  18. arionxiv-1.0.30/arionxiv/cli/commands/fetch.py +217 -0
  19. arionxiv-1.0.30/arionxiv/cli/commands/library.py +295 -0
  20. arionxiv-1.0.30/arionxiv/cli/commands/preferences.py +429 -0
  21. arionxiv-1.0.30/arionxiv/cli/commands/search.py +254 -0
  22. arionxiv-1.0.30/arionxiv/cli/commands/settings_unified.py +1407 -0
  23. arionxiv-1.0.30/arionxiv/cli/commands/trending.py +41 -0
  24. arionxiv-1.0.30/arionxiv/cli/commands/welcome.py +168 -0
  25. arionxiv-1.0.30/arionxiv/cli/main.py +407 -0
  26. arionxiv-1.0.30/arionxiv/cli/ui/__init__.py +1 -0
  27. arionxiv-1.0.30/arionxiv/cli/ui/global_theme_manager.py +173 -0
  28. arionxiv-1.0.30/arionxiv/cli/ui/logo.py +127 -0
  29. arionxiv-1.0.30/arionxiv/cli/ui/splash.py +89 -0
  30. arionxiv-1.0.30/arionxiv/cli/ui/theme.py +32 -0
  31. arionxiv-1.0.30/arionxiv/cli/ui/theme_system.py +391 -0
  32. arionxiv-1.0.30/arionxiv/cli/utils/__init__.py +54 -0
  33. arionxiv-1.0.30/arionxiv/cli/utils/animations.py +522 -0
  34. arionxiv-1.0.30/arionxiv/cli/utils/api_client.py +583 -0
  35. arionxiv-1.0.30/arionxiv/cli/utils/api_config.py +505 -0
  36. arionxiv-1.0.30/arionxiv/cli/utils/command_suggestions.py +147 -0
  37. arionxiv-1.0.30/arionxiv/cli/utils/db_config_manager.py +254 -0
  38. arionxiv-1.0.30/arionxiv/github_actions_runner.py +206 -0
  39. arionxiv-1.0.30/arionxiv/main.py +23 -0
  40. arionxiv-1.0.30/arionxiv/prompts/__init__.py +9 -0
  41. arionxiv-1.0.30/arionxiv/prompts/prompts.py +247 -0
  42. arionxiv-1.0.30/arionxiv/rag_techniques/__init__.py +8 -0
  43. arionxiv-1.0.30/arionxiv/rag_techniques/basic_rag.py +1454 -0
  44. arionxiv-1.0.30/arionxiv/scheduler_daemon.py +139 -0
  45. arionxiv-1.0.30/arionxiv/server.py +1000 -0
  46. arionxiv-1.0.30/arionxiv/server_main.py +24 -0
  47. arionxiv-1.0.30/arionxiv/services/__init__.py +73 -0
  48. arionxiv-1.0.30/arionxiv/services/llm_client.py +30 -0
  49. arionxiv-1.0.30/arionxiv/services/llm_inference/__init__.py +58 -0
  50. arionxiv-1.0.30/arionxiv/services/llm_inference/groq_client.py +469 -0
  51. arionxiv-1.0.30/arionxiv/services/llm_inference/llm_utils.py +250 -0
  52. arionxiv-1.0.30/arionxiv/services/llm_inference/openrouter_client.py +564 -0
  53. arionxiv-1.0.30/arionxiv/services/unified_analysis_service.py +872 -0
  54. arionxiv-1.0.30/arionxiv/services/unified_auth_service.py +457 -0
  55. arionxiv-1.0.30/arionxiv/services/unified_config_service.py +453 -0
  56. arionxiv-1.0.30/arionxiv/services/unified_daily_dose_service.py +823 -0
  57. arionxiv-1.0.30/arionxiv/services/unified_database_service.py +1633 -0
  58. arionxiv-1.0.30/arionxiv/services/unified_llm_service.py +366 -0
  59. arionxiv-1.0.30/arionxiv/services/unified_paper_service.py +604 -0
  60. arionxiv-1.0.30/arionxiv/services/unified_pdf_service.py +522 -0
  61. arionxiv-1.0.30/arionxiv/services/unified_prompt_service.py +344 -0
  62. arionxiv-1.0.30/arionxiv/services/unified_scheduler_service.py +589 -0
  63. arionxiv-1.0.30/arionxiv/services/unified_user_service.py +954 -0
  64. arionxiv-1.0.30/arionxiv/utils/__init__.py +51 -0
  65. arionxiv-1.0.30/arionxiv/utils/api_helpers.py +200 -0
  66. arionxiv-1.0.30/arionxiv/utils/file_cleanup.py +150 -0
  67. arionxiv-1.0.30/arionxiv/utils/ip_helper.py +96 -0
  68. arionxiv-1.0.30/arionxiv.egg-info/PKG-INFO +337 -0
  69. arionxiv-1.0.30/arionxiv.egg-info/SOURCES.txt +76 -0
  70. arionxiv-1.0.30/arionxiv.egg-info/dependency_links.txt +1 -0
  71. arionxiv-1.0.30/arionxiv.egg-info/entry_points.txt +4 -0
  72. arionxiv-1.0.30/arionxiv.egg-info/not-zip-safe +1 -0
  73. arionxiv-1.0.30/arionxiv.egg-info/requires.txt +59 -0
  74. arionxiv-1.0.30/arionxiv.egg-info/top_level.txt +1 -0
  75. arionxiv-1.0.30/pyproject.toml +179 -0
  76. arionxiv-1.0.30/requirements.txt +72 -0
  77. arionxiv-1.0.30/setup.cfg +4 -0
  78. arionxiv-1.0.30/setup.py +139 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Arion Das
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,17 @@
1
+ include README.md
2
+ include LICENSE
3
+ include requirements.txt
4
+ include library.json
5
+ recursive-include arionxiv *.py
6
+ recursive-include arionxiv *.json
7
+ prune downloads
8
+ prune logs
9
+ prune venv
10
+ prune tests
11
+ prune scripts
12
+ prune .git
13
+ global-exclude __pycache__
14
+ global-exclude *.py[cod]
15
+ global-exclude *.so
16
+ global-exclude .DS_Store
17
+ global-exclude *.egg-info
@@ -0,0 +1,337 @@
1
+ Metadata-Version: 2.4
2
+ Name: arionxiv
3
+ Version: 1.0.30
4
+ Summary: AI-Powered Research Paper Analysis and Management System
5
+ Home-page: https://github.com/ArionDas/ArionXiv
6
+ Author: Arion Das
7
+ Author-email: Arion Das <ariondasad@gmail.com>
8
+ Maintainer-email: Arion Das <ariondasad@gmail.com>
9
+ License: MIT
10
+ Project-URL: Homepage, https://github.com/ArionDas/ArionXiv
11
+ Project-URL: Documentation, https://github.com/ArionDas/ArionXiv#readme
12
+ Project-URL: Repository, https://github.com/ArionDas/ArionXiv
13
+ Project-URL: Bug Tracker, https://github.com/ArionDas/ArionXiv/issues
14
+ Keywords: arxiv,research,papers,ai,machine-learning,nlp,analysis,academic,scientific,publication,pdf,text-extraction,mongodb,cli,api
15
+ Platform: any
16
+ Classifier: Development Status :: 4 - Beta
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Intended Audience :: Science/Research
19
+ Classifier: Intended Audience :: Education
20
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
+ Classifier: Topic :: Text Processing :: Linguistic
22
+ Classifier: Topic :: Database :: Front-Ends
23
+ Classifier: License :: OSI Approved :: MIT License
24
+ Classifier: Programming Language :: Python :: 3
25
+ Classifier: Programming Language :: Python :: 3.8
26
+ Classifier: Programming Language :: Python :: 3.9
27
+ Classifier: Programming Language :: Python :: 3.10
28
+ Classifier: Programming Language :: Python :: 3.11
29
+ Classifier: Programming Language :: Python :: 3.12
30
+ Classifier: Operating System :: OS Independent
31
+ Classifier: Environment :: Console
32
+ Classifier: Environment :: Web Environment
33
+ Requires-Python: >=3.8
34
+ Description-Content-Type: text/markdown
35
+ License-File: LICENSE
36
+ Requires-Dist: rich>=13.0.0
37
+ Requires-Dist: click>=8.0.0
38
+ Requires-Dist: colorama>=0.4.6
39
+ Requires-Dist: requests>=2.31.0
40
+ Requires-Dist: aiohttp>=3.8.0
41
+ Requires-Dist: httpx>=0.24.0
42
+ Requires-Dist: PyPDF2>=3.0.0
43
+ Requires-Dist: pymupdf>=1.23.0
44
+ Requires-Dist: Pillow>=9.0.0
45
+ Requires-Dist: arxiv>=2.0.0
46
+ Requires-Dist: pydantic>=2.0.0
47
+ Requires-Dist: python-dotenv>=1.0.0
48
+ Requires-Dist: PyJWT>=2.8.0
49
+ Requires-Dist: structlog>=23.0.0
50
+ Requires-Dist: numpy<2.0.0,>=1.24.0
51
+ Requires-Dist: google-genai>=1.0.0
52
+ Requires-Dist: groq>=0.4.0
53
+ Requires-Dist: pymongo<5.0,>=4.9
54
+ Requires-Dist: motor>=3.0.0
55
+ Provides-Extra: advanced-pdf
56
+ Requires-Dist: pdfplumber>=0.10.0; extra == "advanced-pdf"
57
+ Requires-Dist: pytesseract>=0.3.10; extra == "advanced-pdf"
58
+ Requires-Dist: tabula-py>=2.9.0; extra == "advanced-pdf"
59
+ Requires-Dist: Pillow>=9.0.0; extra == "advanced-pdf"
60
+ Requires-Dist: opencv-python>=4.8.0; extra == "advanced-pdf"
61
+ Provides-Extra: ml
62
+ Requires-Dist: sentence-transformers>=3.0.0; extra == "ml"
63
+ Requires-Dist: torch>=2.0.0; extra == "ml"
64
+ Requires-Dist: transformers>=4.20.0; extra == "ml"
65
+ Provides-Extra: enhanced-ui
66
+ Requires-Dist: inquirer>=3.1.0; extra == "enhanced-ui"
67
+ Requires-Dist: tabulate>=0.9.0; extra == "enhanced-ui"
68
+ Requires-Dist: prompt-toolkit>=3.0.0; extra == "enhanced-ui"
69
+ Requires-Dist: alive-progress>=3.1.0; extra == "enhanced-ui"
70
+ Provides-Extra: dev
71
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
72
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
73
+ Requires-Dist: black>=23.0.0; extra == "dev"
74
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
75
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
76
+ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
77
+ Provides-Extra: all
78
+ Requires-Dist: pdfplumber>=0.10.0; extra == "all"
79
+ Requires-Dist: pytesseract>=0.3.10; extra == "all"
80
+ Requires-Dist: tabula-py>=2.9.0; extra == "all"
81
+ Requires-Dist: Pillow>=9.0.0; extra == "all"
82
+ Requires-Dist: opencv-python>=4.8.0; extra == "all"
83
+ Requires-Dist: sentence-transformers>=3.0.0; extra == "all"
84
+ Requires-Dist: torch>=2.0.0; extra == "all"
85
+ Requires-Dist: transformers>=4.20.0; extra == "all"
86
+ Requires-Dist: inquirer>=3.1.0; extra == "all"
87
+ Requires-Dist: tabulate>=0.9.0; extra == "all"
88
+ Requires-Dist: prompt-toolkit>=3.0.0; extra == "all"
89
+ Requires-Dist: alive-progress>=3.1.0; extra == "all"
90
+ Dynamic: author
91
+ Dynamic: home-page
92
+ Dynamic: license-file
93
+ Dynamic: platform
94
+ Dynamic: requires-python
95
+
96
+ # ArionXiv
97
+
98
+ A command-line interface for discovering, analyzing, and interacting with research papers from arXiv.
99
+
100
+ ---
101
+
102
+ ## Installation
103
+
104
+ ```bash
105
+ pip install arionxiv
106
+ ```
107
+
108
+ If the command is not found after installation, add Python scripts to PATH:
109
+
110
+ **Windows (PowerShell):**
111
+ ```powershell
112
+ python -c "import sysconfig; p=sysconfig.get_path('scripts'); import os; os.system(f'setx PATH \"%PATH%;{p}\"')"
113
+ ```
114
+
115
+ **macOS / Linux:**
116
+ ```bash
117
+ echo "export PATH=\"\$PATH:$(python3 -c 'import sysconfig; print(sysconfig.get_path(\"scripts\"))')\"" >> ~/.bashrc && source ~/.bashrc
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Getting Started
123
+
124
+ ### First Run
125
+
126
+ ```bash
127
+ arionxiv
128
+ ```
129
+
130
+ On first run, register or login to your account:
131
+
132
+ ```bash
133
+ arionxiv register # Create a new account
134
+ arionxiv login # Login to existing account
135
+ ```
136
+
137
+ That's it. No API keys or configuration required.
138
+
139
+ ---
140
+
141
+ ## Features
142
+
143
+ ### 1. Paper Search
144
+
145
+ Search arXiv with relevance scoring and filtering.
146
+
147
+ ```bash
148
+ arionxiv search "transformer architecture"
149
+ arionxiv search "reinforcement learning" --max-results 20
150
+ ```
151
+
152
+ <!-- Screenshot: search results -->
153
+
154
+ ---
155
+
156
+ ### 2. Paper Analysis
157
+
158
+ AI-powered deep analysis of research papers.
159
+
160
+ ```bash
161
+ arionxiv analyze 2301.00001
162
+ arionxiv analyze 2301.00001 --detailed
163
+ ```
164
+
165
+ <!-- Screenshot: analysis output -->
166
+
167
+ ---
168
+
169
+ ### 3. Chat with Papers
170
+
171
+ Interactive RAG-based Q&A with any paper. Supports session persistence and history.
172
+
173
+ ```bash
174
+ arionxiv chat
175
+ arionxiv chat 2301.00001
176
+ ```
177
+
178
+ **Features:**
179
+ - Context-aware responses using paper content
180
+ - Session persistence across restarts
181
+ - Chat history (last 8 Q&A pairs) on resume
182
+ - Cached embeddings for instant session loading
183
+
184
+ <!-- Screenshot: chat interface -->
185
+
186
+ ---
187
+
188
+ ### 4. Personal Library
189
+
190
+ Save papers and manage your research collection.
191
+
192
+ ```bash
193
+ arionxiv library
194
+ arionxiv settings papers
195
+ ```
196
+
197
+ <!-- Screenshot: library view -->
198
+
199
+ ---
200
+
201
+ ### 5. Daily Dose
202
+
203
+ Personalized daily paper recommendations based on your research interests.
204
+
205
+ ```bash
206
+ arionxiv daily
207
+ arionxiv daily --run
208
+ arionxiv daily --view
209
+ ```
210
+
211
+ Configure schedule and preferences:
212
+
213
+ ```bash
214
+ arionxiv settings daily
215
+ ```
216
+
217
+ <!-- Screenshot: daily dose -->
218
+
219
+ ---
220
+
221
+ ### 6. Trending Papers
222
+
223
+ Discover trending research topics and papers.
224
+
225
+ ```bash
226
+ arionxiv trending
227
+ ```
228
+
229
+ <!-- Screenshot: trending view -->
230
+
231
+ ---
232
+
233
+ ### 7. Themes
234
+
235
+ Customizable terminal interface with multiple color themes.
236
+
237
+ ```bash
238
+ arionxiv settings theme
239
+ ```
240
+
241
+ Available themes: cyan, green, magenta, yellow, red, blue, white
242
+
243
+ <!-- Screenshot: theme options -->
244
+
245
+ ---
246
+
247
+ ## Command Reference
248
+
249
+ | Command | Description |
250
+ |---------|-------------|
251
+ | `arionxiv` | Main menu |
252
+ | `arionxiv search <query>` | Search for papers |
253
+ | `arionxiv fetch <paper_id>` | Download paper PDF |
254
+ | `arionxiv analyze <paper_id>` | AI analysis |
255
+ | `arionxiv chat [paper_id]` | Chat with papers |
256
+ | `arionxiv daily` | Daily recommendations |
257
+ | `arionxiv trending` | Trending topics |
258
+ | `arionxiv library` | Saved papers |
259
+ | `arionxiv settings` | Configuration |
260
+ | `arionxiv login` | Authenticate |
261
+ | `arionxiv register` | Create account |
262
+ | `arionxiv session` | Check auth status |
263
+ | `arionxiv --help` | Show all commands |
264
+
265
+ ---
266
+
267
+ ## Configuration
268
+
269
+ ### Settings Commands
270
+
271
+ ```bash
272
+ arionxiv settings show # View all settings
273
+ arionxiv settings theme # Change color theme
274
+ arionxiv settings api # Configure optional API keys (Gemini, Groq, HuggingFace)
275
+ arionxiv settings prefs # Research preferences
276
+ arionxiv settings daily # Daily dose schedule
277
+ arionxiv settings papers # Manage saved papers
278
+ ```
279
+
280
+ ### Self-Hosting (Optional)
281
+
282
+ If you want to run your own backend instead of using the hosted service:
283
+
284
+ | Variable | Description |
285
+ |----------|-------------|
286
+ | `MONGODB_URI` | MongoDB connection string |
287
+ | `OPENROUTER_API_KEY` | OpenRouter API key |
288
+ | `JWT_SECRET_KEY` | Authentication secret |
289
+ | `GEMINI_API_KEY` | Google Gemini embeddings (optional) |
290
+ | `GROQ_API_KEY` | Fallback LLM provider (optional) |
291
+
292
+ ---
293
+
294
+ ## Optional Dependencies
295
+
296
+ ```bash
297
+ pip install arionxiv[advanced-pdf] # OCR and table extraction
298
+ pip install arionxiv[ml] # Local embeddings
299
+ pip install arionxiv[all] # All extras
300
+ ```
301
+
302
+ ---
303
+
304
+ ## Daily Dose Automation
305
+
306
+ ### GitHub Actions
307
+
308
+ 1. Fork the repository
309
+ 2. Add secrets in Settings > Secrets:
310
+ - `MONGODB_URI`
311
+ - `OPENROUTER_API_KEY`
312
+ - `JWT_SECRET_KEY`
313
+ 3. The workflow runs hourly and processes users based on their scheduled time
314
+
315
+ ---
316
+
317
+ ## Alternative Invocation
318
+
319
+ If the `arionxiv` command is not available:
320
+
321
+ ```bash
322
+ python -m arionxiv <command>
323
+ ```
324
+
325
+ ---
326
+
327
+ ## Links
328
+
329
+ - PyPI: https://pypi.org/project/arionxiv/
330
+ - GitHub: https://github.com/ArionDas/ArionXiv
331
+ - Issues: https://github.com/ArionDas/ArionXiv/issues
332
+
333
+ ---
334
+
335
+ ## License
336
+
337
+ MIT License
@@ -0,0 +1,242 @@
1
+ # ArionXiv
2
+
3
+ A command-line interface for discovering, analyzing, and interacting with research papers from arXiv.
4
+
5
+ ---
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ pip install arionxiv
11
+ ```
12
+
13
+ If the command is not found after installation, add Python scripts to PATH:
14
+
15
+ **Windows (PowerShell):**
16
+ ```powershell
17
+ python -c "import sysconfig; p=sysconfig.get_path('scripts'); import os; os.system(f'setx PATH \"%PATH%;{p}\"')"
18
+ ```
19
+
20
+ **macOS / Linux:**
21
+ ```bash
22
+ echo "export PATH=\"\$PATH:$(python3 -c 'import sysconfig; print(sysconfig.get_path(\"scripts\"))')\"" >> ~/.bashrc && source ~/.bashrc
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Getting Started
28
+
29
+ ### First Run
30
+
31
+ ```bash
32
+ arionxiv
33
+ ```
34
+
35
+ On first run, register or login to your account:
36
+
37
+ ```bash
38
+ arionxiv register # Create a new account
39
+ arionxiv login # Login to existing account
40
+ ```
41
+
42
+ That's it. No API keys or configuration required.
43
+
44
+ ---
45
+
46
+ ## Features
47
+
48
+ ### 1. Paper Search
49
+
50
+ Search arXiv with relevance scoring and filtering.
51
+
52
+ ```bash
53
+ arionxiv search "transformer architecture"
54
+ arionxiv search "reinforcement learning" --max-results 20
55
+ ```
56
+
57
+ <!-- Screenshot: search results -->
58
+
59
+ ---
60
+
61
+ ### 2. Paper Analysis
62
+
63
+ AI-powered deep analysis of research papers.
64
+
65
+ ```bash
66
+ arionxiv analyze 2301.00001
67
+ arionxiv analyze 2301.00001 --detailed
68
+ ```
69
+
70
+ <!-- Screenshot: analysis output -->
71
+
72
+ ---
73
+
74
+ ### 3. Chat with Papers
75
+
76
+ Interactive RAG-based Q&A with any paper. Supports session persistence and history.
77
+
78
+ ```bash
79
+ arionxiv chat
80
+ arionxiv chat 2301.00001
81
+ ```
82
+
83
+ **Features:**
84
+ - Context-aware responses using paper content
85
+ - Session persistence across restarts
86
+ - Chat history (last 8 Q&A pairs) on resume
87
+ - Cached embeddings for instant session loading
88
+
89
+ <!-- Screenshot: chat interface -->
90
+
91
+ ---
92
+
93
+ ### 4. Personal Library
94
+
95
+ Save papers and manage your research collection.
96
+
97
+ ```bash
98
+ arionxiv library
99
+ arionxiv settings papers
100
+ ```
101
+
102
+ <!-- Screenshot: library view -->
103
+
104
+ ---
105
+
106
+ ### 5. Daily Dose
107
+
108
+ Personalized daily paper recommendations based on your research interests.
109
+
110
+ ```bash
111
+ arionxiv daily
112
+ arionxiv daily --run
113
+ arionxiv daily --view
114
+ ```
115
+
116
+ Configure schedule and preferences:
117
+
118
+ ```bash
119
+ arionxiv settings daily
120
+ ```
121
+
122
+ <!-- Screenshot: daily dose -->
123
+
124
+ ---
125
+
126
+ ### 6. Trending Papers
127
+
128
+ Discover trending research topics and papers.
129
+
130
+ ```bash
131
+ arionxiv trending
132
+ ```
133
+
134
+ <!-- Screenshot: trending view -->
135
+
136
+ ---
137
+
138
+ ### 7. Themes
139
+
140
+ Customizable terminal interface with multiple color themes.
141
+
142
+ ```bash
143
+ arionxiv settings theme
144
+ ```
145
+
146
+ Available themes: cyan, green, magenta, yellow, red, blue, white
147
+
148
+ <!-- Screenshot: theme options -->
149
+
150
+ ---
151
+
152
+ ## Command Reference
153
+
154
+ | Command | Description |
155
+ |---------|-------------|
156
+ | `arionxiv` | Main menu |
157
+ | `arionxiv search <query>` | Search for papers |
158
+ | `arionxiv fetch <paper_id>` | Download paper PDF |
159
+ | `arionxiv analyze <paper_id>` | AI analysis |
160
+ | `arionxiv chat [paper_id]` | Chat with papers |
161
+ | `arionxiv daily` | Daily recommendations |
162
+ | `arionxiv trending` | Trending topics |
163
+ | `arionxiv library` | Saved papers |
164
+ | `arionxiv settings` | Configuration |
165
+ | `arionxiv login` | Authenticate |
166
+ | `arionxiv register` | Create account |
167
+ | `arionxiv session` | Check auth status |
168
+ | `arionxiv --help` | Show all commands |
169
+
170
+ ---
171
+
172
+ ## Configuration
173
+
174
+ ### Settings Commands
175
+
176
+ ```bash
177
+ arionxiv settings show # View all settings
178
+ arionxiv settings theme # Change color theme
179
+ arionxiv settings api # Configure optional API keys (Gemini, Groq, HuggingFace)
180
+ arionxiv settings prefs # Research preferences
181
+ arionxiv settings daily # Daily dose schedule
182
+ arionxiv settings papers # Manage saved papers
183
+ ```
184
+
185
+ ### Self-Hosting (Optional)
186
+
187
+ If you want to run your own backend instead of using the hosted service:
188
+
189
+ | Variable | Description |
190
+ |----------|-------------|
191
+ | `MONGODB_URI` | MongoDB connection string |
192
+ | `OPENROUTER_API_KEY` | OpenRouter API key |
193
+ | `JWT_SECRET_KEY` | Authentication secret |
194
+ | `GEMINI_API_KEY` | Google Gemini embeddings (optional) |
195
+ | `GROQ_API_KEY` | Fallback LLM provider (optional) |
196
+
197
+ ---
198
+
199
+ ## Optional Dependencies
200
+
201
+ ```bash
202
+ pip install arionxiv[advanced-pdf] # OCR and table extraction
203
+ pip install arionxiv[ml] # Local embeddings
204
+ pip install arionxiv[all] # All extras
205
+ ```
206
+
207
+ ---
208
+
209
+ ## Daily Dose Automation
210
+
211
+ ### GitHub Actions
212
+
213
+ 1. Fork the repository
214
+ 2. Add secrets in Settings > Secrets:
215
+ - `MONGODB_URI`
216
+ - `OPENROUTER_API_KEY`
217
+ - `JWT_SECRET_KEY`
218
+ 3. The workflow runs hourly and processes users based on their scheduled time
219
+
220
+ ---
221
+
222
+ ## Alternative Invocation
223
+
224
+ If the `arionxiv` command is not available:
225
+
226
+ ```bash
227
+ python -m arionxiv <command>
228
+ ```
229
+
230
+ ---
231
+
232
+ ## Links
233
+
234
+ - PyPI: https://pypi.org/project/arionxiv/
235
+ - GitHub: https://github.com/ArionDas/ArionXiv
236
+ - Issues: https://github.com/ArionDas/ArionXiv/issues
237
+
238
+ ---
239
+
240
+ ## License
241
+
242
+ MIT License
@@ -0,0 +1,40 @@
1
+ """
2
+ ArionXiv - AI-Powered Research Paper Analysis and Management
3
+
4
+ A comprehensive tool for discovering, analyzing, and managing research papers
5
+ from arXiv with AI-powered insights and organizational features.
6
+ """
7
+
8
+ __version__ = "1.0.29"
9
+ __author__ = "Arion Das"
10
+ __email__ = "ariondasad@gmail.com"
11
+ __description__ = "AI-Powered Research Paper Analysis and Management"
12
+
13
+ # Lazy imports to avoid requiring fastapi for CLI/GitHub Actions usage
14
+ # Services are imported on-demand when accessed
15
+ def __getattr__(name):
16
+ """Lazy import of services to avoid loading fastapi for CLI usage."""
17
+ if name == "config":
18
+ from .services.unified_config_service import config
19
+ return config
20
+ elif name == "database_service":
21
+ from .services.unified_database_service import database_service
22
+ return database_service
23
+ elif name == "paper_service":
24
+ from .services.unified_paper_service import paper_service
25
+ return paper_service
26
+ elif name == "analysis_service":
27
+ from .services.unified_analysis_service import analysis_service
28
+ return analysis_service
29
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
30
+
31
+ __all__ = [
32
+ "__version__",
33
+ "__author__",
34
+ "__email__",
35
+ "__description__",
36
+ "config",
37
+ "database_service",
38
+ "paper_service",
39
+ "analysis_service"
40
+ ]
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ ArionXiv package main entry point
4
+ """
5
+
6
+ import sys
7
+ from .cli.main import cli
8
+
9
+ if __name__ == "__main__":
10
+ cli()
File without changes