jarviscore-framework 0.1.0__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.
- jarviscore_framework-0.1.0/.env.example +146 -0
- jarviscore_framework-0.1.0/LICENSE +21 -0
- jarviscore_framework-0.1.0/MANIFEST.in +30 -0
- jarviscore_framework-0.1.0/PKG-INFO +136 -0
- jarviscore_framework-0.1.0/README.md +92 -0
- jarviscore_framework-0.1.0/TESTING_GUIDE.md +420 -0
- jarviscore_framework-0.1.0/examples/calculator_agent_example.py +77 -0
- jarviscore_framework-0.1.0/examples/multi_agent_workflow.py +132 -0
- jarviscore_framework-0.1.0/examples/research_agent_example.py +76 -0
- jarviscore_framework-0.1.0/jarviscore/__init__.py +54 -0
- jarviscore_framework-0.1.0/jarviscore/cli/__init__.py +7 -0
- jarviscore_framework-0.1.0/jarviscore/cli/__main__.py +33 -0
- jarviscore_framework-0.1.0/jarviscore/cli/check.py +404 -0
- jarviscore_framework-0.1.0/jarviscore/cli/smoketest.py +371 -0
- jarviscore_framework-0.1.0/jarviscore/config/__init__.py +7 -0
- jarviscore_framework-0.1.0/jarviscore/config/settings.py +128 -0
- jarviscore_framework-0.1.0/jarviscore/core/__init__.py +7 -0
- jarviscore_framework-0.1.0/jarviscore/core/agent.py +163 -0
- jarviscore_framework-0.1.0/jarviscore/core/mesh.py +463 -0
- jarviscore_framework-0.1.0/jarviscore/core/profile.py +64 -0
- jarviscore_framework-0.1.0/jarviscore/docs/API_REFERENCE.md +932 -0
- jarviscore_framework-0.1.0/jarviscore/docs/CONFIGURATION.md +753 -0
- jarviscore_framework-0.1.0/jarviscore/docs/GETTING_STARTED.md +600 -0
- jarviscore_framework-0.1.0/jarviscore/docs/TROUBLESHOOTING.md +424 -0
- jarviscore_framework-0.1.0/jarviscore/docs/USER_GUIDE.md +983 -0
- jarviscore_framework-0.1.0/jarviscore/execution/__init__.py +94 -0
- jarviscore_framework-0.1.0/jarviscore/execution/code_registry.py +298 -0
- jarviscore_framework-0.1.0/jarviscore/execution/generator.py +268 -0
- jarviscore_framework-0.1.0/jarviscore/execution/llm.py +430 -0
- jarviscore_framework-0.1.0/jarviscore/execution/repair.py +283 -0
- jarviscore_framework-0.1.0/jarviscore/execution/result_handler.py +332 -0
- jarviscore_framework-0.1.0/jarviscore/execution/sandbox.py +555 -0
- jarviscore_framework-0.1.0/jarviscore/execution/search.py +281 -0
- jarviscore_framework-0.1.0/jarviscore/orchestration/__init__.py +18 -0
- jarviscore_framework-0.1.0/jarviscore/orchestration/claimer.py +101 -0
- jarviscore_framework-0.1.0/jarviscore/orchestration/dependency.py +143 -0
- jarviscore_framework-0.1.0/jarviscore/orchestration/engine.py +292 -0
- jarviscore_framework-0.1.0/jarviscore/orchestration/status.py +96 -0
- jarviscore_framework-0.1.0/jarviscore/p2p/__init__.py +23 -0
- jarviscore_framework-0.1.0/jarviscore/p2p/broadcaster.py +353 -0
- jarviscore_framework-0.1.0/jarviscore/p2p/coordinator.py +364 -0
- jarviscore_framework-0.1.0/jarviscore/p2p/keepalive.py +361 -0
- jarviscore_framework-0.1.0/jarviscore/p2p/swim_manager.py +290 -0
- jarviscore_framework-0.1.0/jarviscore/profiles/__init__.py +6 -0
- jarviscore_framework-0.1.0/jarviscore/profiles/autoagent.py +264 -0
- jarviscore_framework-0.1.0/jarviscore/profiles/customagent.py +137 -0
- jarviscore_framework-0.1.0/jarviscore_framework.egg-info/PKG-INFO +136 -0
- jarviscore_framework-0.1.0/jarviscore_framework.egg-info/SOURCES.txt +61 -0
- jarviscore_framework-0.1.0/jarviscore_framework.egg-info/dependency_links.txt +1 -0
- jarviscore_framework-0.1.0/jarviscore_framework.egg-info/requires.txt +22 -0
- jarviscore_framework-0.1.0/jarviscore_framework.egg-info/top_level.txt +5 -0
- jarviscore_framework-0.1.0/pyproject.toml +99 -0
- jarviscore_framework-0.1.0/setup.cfg +4 -0
- jarviscore_framework-0.1.0/tests/conftest.py +44 -0
- jarviscore_framework-0.1.0/tests/test_agent.py +165 -0
- jarviscore_framework-0.1.0/tests/test_autoagent.py +140 -0
- jarviscore_framework-0.1.0/tests/test_autoagent_day4.py +186 -0
- jarviscore_framework-0.1.0/tests/test_customagent.py +248 -0
- jarviscore_framework-0.1.0/tests/test_integration.py +293 -0
- jarviscore_framework-0.1.0/tests/test_llm_fallback.py +185 -0
- jarviscore_framework-0.1.0/tests/test_mesh.py +356 -0
- jarviscore_framework-0.1.0/tests/test_p2p_integration.py +375 -0
- jarviscore_framework-0.1.0/tests/test_remote_sandbox.py +116 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# JARVISCORE FRAMEWORK CONFIGURATION
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Copy this file to .env and fill in your values
|
|
5
|
+
# All settings are optional - framework provides sensible defaults
|
|
6
|
+
# Standard environment variable names (no JARVISCORE_ prefix)
|
|
7
|
+
|
|
8
|
+
# =============================================================================
|
|
9
|
+
# LLM CONFIGURATION (Zero-Config with Automatic Fallback)
|
|
10
|
+
# =============================================================================
|
|
11
|
+
# Framework tries providers in order: Claude → vLLM → Azure → Gemini
|
|
12
|
+
# At least ONE provider must be configured for AutoAgent to work
|
|
13
|
+
|
|
14
|
+
# --- Anthropic Claude ---
|
|
15
|
+
# Standard: CLAUDE_API_KEY or ANTHROPIC_API_KEY
|
|
16
|
+
# CLAUDE_API_KEY=your-anthropic-api-key
|
|
17
|
+
# CLAUDE_ENDPOINT=https://api.anthropic.com # Optional: custom endpoint
|
|
18
|
+
# CLAUDE_MODEL=claude-sonnet-4
|
|
19
|
+
|
|
20
|
+
# --- vLLM (Local/Self-Hosted) ---
|
|
21
|
+
# Recommended for development and cost-effective production
|
|
22
|
+
# LLM_ENDPOINT=http://localhost:8000
|
|
23
|
+
# LLM_MODEL=Qwen/Qwen2.5-Coder-32B-Instruct
|
|
24
|
+
|
|
25
|
+
# --- Azure OpenAI ---
|
|
26
|
+
# Standard: AZURE_API_KEY or AZURE_OPENAI_KEY
|
|
27
|
+
# AZURE_API_KEY=your-azure-openai-key
|
|
28
|
+
# AZURE_ENDPOINT=https://your-resource.openai.azure.com
|
|
29
|
+
# AZURE_DEPLOYMENT=gpt-4o
|
|
30
|
+
# AZURE_API_VERSION=2024-02-15-preview
|
|
31
|
+
|
|
32
|
+
# --- Google Gemini ---
|
|
33
|
+
# GEMINI_API_KEY=your-gemini-api-key
|
|
34
|
+
# GEMINI_MODEL=gemini-1.5-flash
|
|
35
|
+
# GEMINI_TEMPERATURE=0.1
|
|
36
|
+
# GEMINI_TIMEOUT=30.0
|
|
37
|
+
|
|
38
|
+
# Common LLM Settings
|
|
39
|
+
# LLM_TIMEOUT=120.0
|
|
40
|
+
# LLM_TEMPERATURE=0.7
|
|
41
|
+
|
|
42
|
+
# =============================================================================
|
|
43
|
+
# EXECUTION SETTINGS
|
|
44
|
+
# =============================================================================
|
|
45
|
+
# Sandbox execution and code generation limits
|
|
46
|
+
|
|
47
|
+
# Maximum execution time for generated code (seconds)
|
|
48
|
+
EXECUTION_TIMEOUT=300
|
|
49
|
+
|
|
50
|
+
# Maximum number of autonomous repair attempts
|
|
51
|
+
MAX_REPAIR_ATTEMPTS=3
|
|
52
|
+
|
|
53
|
+
# Maximum retries for failed operations
|
|
54
|
+
MAX_RETRIES=3
|
|
55
|
+
|
|
56
|
+
# =============================================================================
|
|
57
|
+
# SANDBOX CONFIGURATION (Phase 2)
|
|
58
|
+
# =============================================================================
|
|
59
|
+
# Sandbox execution mode: "local" (in-process) or "remote" (service)
|
|
60
|
+
# Default: local (for development)
|
|
61
|
+
# Production: remote (uses JarvisCore's Azure Container Apps sandbox)
|
|
62
|
+
SANDBOX_MODE=local
|
|
63
|
+
|
|
64
|
+
# Remote sandbox service URL (provided by JarvisCore)
|
|
65
|
+
# Azure Container Apps sandbox service - no setup required!
|
|
66
|
+
# Uncomment and set SANDBOX_MODE=remote to use it
|
|
67
|
+
# SANDBOX_SERVICE_URL=https://browser-task-executor.bravesea-3f5f7e75.eastus.azurecontainerapps.io
|
|
68
|
+
|
|
69
|
+
# =============================================================================
|
|
70
|
+
# STORAGE CONFIGURATION (Phase 1)
|
|
71
|
+
# =============================================================================
|
|
72
|
+
# Directory for result storage and code registry
|
|
73
|
+
LOG_DIRECTORY=./logs
|
|
74
|
+
|
|
75
|
+
# =============================================================================
|
|
76
|
+
# P2P CONFIGURATION (For Distributed Mode)
|
|
77
|
+
# =============================================================================
|
|
78
|
+
# Required only if using mesh in distributed mode
|
|
79
|
+
# Autonomous mode works without P2P
|
|
80
|
+
|
|
81
|
+
# Enable P2P mesh networking
|
|
82
|
+
P2P_ENABLED=true
|
|
83
|
+
|
|
84
|
+
# Node identification
|
|
85
|
+
NODE_NAME=jarviscore-node-1
|
|
86
|
+
|
|
87
|
+
# Bind address and port for P2P communication
|
|
88
|
+
BIND_HOST=127.0.0.1
|
|
89
|
+
BIND_PORT=7946
|
|
90
|
+
|
|
91
|
+
# Seed nodes to join existing mesh (comma-separated)
|
|
92
|
+
# Example: 192.168.1.100:7946,192.168.1.101:7946
|
|
93
|
+
# SEED_NODES=
|
|
94
|
+
|
|
95
|
+
# ZeroMQ port offset (P2P messaging)
|
|
96
|
+
ZMQ_PORT_OFFSET=1000
|
|
97
|
+
|
|
98
|
+
# Transport type: udp, tcp, or hybrid
|
|
99
|
+
TRANSPORT_TYPE=hybrid
|
|
100
|
+
|
|
101
|
+
# =============================================================================
|
|
102
|
+
# KEEPALIVE SETTINGS (P2P Health Monitoring)
|
|
103
|
+
# =============================================================================
|
|
104
|
+
|
|
105
|
+
# Enable smart keepalive (suppresses when active)
|
|
106
|
+
KEEPALIVE_ENABLED=true
|
|
107
|
+
|
|
108
|
+
# Keepalive interval (seconds)
|
|
109
|
+
KEEPALIVE_INTERVAL=90
|
|
110
|
+
|
|
111
|
+
# Keepalive timeout (seconds)
|
|
112
|
+
KEEPALIVE_TIMEOUT=10
|
|
113
|
+
|
|
114
|
+
# Activity suppression window (seconds)
|
|
115
|
+
# If agent is actively working, suppress keepalive for this duration
|
|
116
|
+
ACTIVITY_SUPPRESS_WINDOW=60
|
|
117
|
+
|
|
118
|
+
# =============================================================================
|
|
119
|
+
# LOGGING
|
|
120
|
+
# =============================================================================
|
|
121
|
+
# Log level: DEBUG, INFO, WARNING, ERROR, CRITICAL
|
|
122
|
+
LOG_LEVEL=INFO
|
|
123
|
+
|
|
124
|
+
# =============================================================================
|
|
125
|
+
# EXAMPLES
|
|
126
|
+
# =============================================================================
|
|
127
|
+
|
|
128
|
+
# Example 1: Local development with vLLM
|
|
129
|
+
# LLM_ENDPOINT=http://localhost:8000
|
|
130
|
+
# LLM_MODEL=Qwen/Qwen2.5-Coder-32B-Instruct
|
|
131
|
+
# P2P_ENABLED=false
|
|
132
|
+
|
|
133
|
+
# Example 2: Production with Azure OpenAI + P2P mesh
|
|
134
|
+
# AZURE_API_KEY=sk-...
|
|
135
|
+
# AZURE_ENDPOINT=https://my-resource.openai.azure.com
|
|
136
|
+
# AZURE_DEPLOYMENT=gpt-4o
|
|
137
|
+
# P2P_ENABLED=true
|
|
138
|
+
# BIND_HOST=0.0.0.0
|
|
139
|
+
# BIND_PORT=7946
|
|
140
|
+
# SEED_NODES=192.168.1.100:7946
|
|
141
|
+
|
|
142
|
+
# Example 3: Zero-config (use defaults)
|
|
143
|
+
# Just don't set any variables and framework will:
|
|
144
|
+
# - Try to detect available LLM providers
|
|
145
|
+
# - Use sensible defaults for all settings
|
|
146
|
+
# - Work in autonomous mode (no P2P)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 JarvisCore Contributors
|
|
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,30 @@
|
|
|
1
|
+
# Include documentation
|
|
2
|
+
include README.md
|
|
3
|
+
include LICENSE
|
|
4
|
+
include .env.example
|
|
5
|
+
include TESTING_GUIDE.md
|
|
6
|
+
|
|
7
|
+
# Include all markdown docs in package
|
|
8
|
+
recursive-include jarviscore/docs *.md
|
|
9
|
+
|
|
10
|
+
# Include examples
|
|
11
|
+
recursive-include examples *.py
|
|
12
|
+
|
|
13
|
+
# Include tests (optional, for users who want to run tests)
|
|
14
|
+
recursive-include tests *.py
|
|
15
|
+
|
|
16
|
+
# Exclude compiled Python files
|
|
17
|
+
global-exclude *.pyc
|
|
18
|
+
global-exclude __pycache__
|
|
19
|
+
global-exclude *.so
|
|
20
|
+
global-exclude .DS_Store
|
|
21
|
+
|
|
22
|
+
# Exclude development files
|
|
23
|
+
exclude .gitignore
|
|
24
|
+
exclude pytest.ini
|
|
25
|
+
exclude benchmark_performance.py
|
|
26
|
+
exclude benchmark_results.txt
|
|
27
|
+
prune .venv
|
|
28
|
+
prune .git
|
|
29
|
+
prune logs
|
|
30
|
+
prune jarviscore.egg-info
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: jarviscore-framework
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: P2P distributed agent framework with LLM code generation and event-sourced state management
|
|
5
|
+
Author-email: Ruth Mutua <mutuandinda82@gmail.com>, Muyukani Kizito <muyukani@prescottdata.io>
|
|
6
|
+
Maintainer-email: Prescott Data <info@prescottdata.io>
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/yourusername/jarviscore
|
|
9
|
+
Project-URL: Documentation, https://jarviscore.readthedocs.io
|
|
10
|
+
Project-URL: Repository, https://github.com/yourusername/jarviscore
|
|
11
|
+
Project-URL: Issues, https://github.com/yourusername/jarviscore/issues
|
|
12
|
+
Keywords: agents,p2p,llm,distributed,workflow,orchestration
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: pydantic>=2.0.0
|
|
24
|
+
Requires-Dist: pydantic-settings>=2.0.0
|
|
25
|
+
Requires-Dist: swim-p2p
|
|
26
|
+
Requires-Dist: pyzmq
|
|
27
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
28
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
29
|
+
Requires-Dist: beautifulsoup4>=4.12.0
|
|
30
|
+
Requires-Dist: anthropic>=0.18.0
|
|
31
|
+
Requires-Dist: openai>=1.0.0
|
|
32
|
+
Requires-Dist: google-generativeai>=0.3.0
|
|
33
|
+
Requires-Dist: httpx>=0.25.0
|
|
34
|
+
Provides-Extra: dev
|
|
35
|
+
Requires-Dist: pytest>=7.4.0; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
37
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
38
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
39
|
+
Requires-Dist: mypy>=1.5.0; extra == "dev"
|
|
40
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
41
|
+
Provides-Extra: all
|
|
42
|
+
Requires-Dist: jarviscore[dev]; extra == "all"
|
|
43
|
+
Dynamic: license-file
|
|
44
|
+
|
|
45
|
+
# JarvisCore Framework
|
|
46
|
+
|
|
47
|
+
**P2P distributed agent framework with LLM code generation and production-grade state management**
|
|
48
|
+
|
|
49
|
+
## Features
|
|
50
|
+
|
|
51
|
+
- ✅ **Simple Agent Definition** - Write just 3 attributes, framework handles everything
|
|
52
|
+
- ✅ **P2P Mesh Architecture** - Automatic agent discovery and task routing via SWIM protocol
|
|
53
|
+
- ✅ **Event-Sourced State** - Complete audit trail with crash recovery
|
|
54
|
+
- ✅ **Autonomous Execution** - LLM code generation with automatic repair
|
|
55
|
+
|
|
56
|
+
## Installation
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install jarviscore
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Setup & Validation
|
|
63
|
+
|
|
64
|
+
### 1. Configure LLM Provider
|
|
65
|
+
|
|
66
|
+
Copy the example config and add your API key:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
cp .env.example .env
|
|
70
|
+
# Edit .env and add one of: CLAUDE_API_KEY, AZURE_API_KEY, GEMINI_API_KEY, or LLM_ENDPOINT
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 2. Validate Installation
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Check setup
|
|
77
|
+
python -m jarviscore.cli.check
|
|
78
|
+
|
|
79
|
+
# Test LLM connectivity
|
|
80
|
+
python -m jarviscore.cli.check --validate-llm
|
|
81
|
+
|
|
82
|
+
# Run smoke test (end-to-end validation)
|
|
83
|
+
python -m jarviscore.cli.smoketest
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
✅ **All checks pass?** You're ready to build agents!
|
|
87
|
+
|
|
88
|
+
## Quick Start
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
from jarviscore import Mesh
|
|
92
|
+
from jarviscore.profiles import PromptDevAgent
|
|
93
|
+
|
|
94
|
+
# Define agent (3 lines)
|
|
95
|
+
class ScraperAgent(PromptDevAgent):
|
|
96
|
+
role = "scraper"
|
|
97
|
+
capabilities = ["web_scraping"]
|
|
98
|
+
system_prompt = "You are an expert web scraper..."
|
|
99
|
+
|
|
100
|
+
# Create mesh and run workflow
|
|
101
|
+
mesh = Mesh(mode="autonomous")
|
|
102
|
+
mesh.add(ScraperAgent)
|
|
103
|
+
await mesh.start()
|
|
104
|
+
|
|
105
|
+
results = await mesh.workflow(
|
|
106
|
+
workflow_id="wf-123",
|
|
107
|
+
steps=[
|
|
108
|
+
{"id": "scrape", "task": "Scrape example.com", "role": "scraper"}
|
|
109
|
+
]
|
|
110
|
+
)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Architecture
|
|
114
|
+
|
|
115
|
+
JarvisCore is built on three layers:
|
|
116
|
+
|
|
117
|
+
1. **Execution Layer (20%)** - Profile-specific execution (Prompt-Dev, MCP)
|
|
118
|
+
2. **Orchestration Layer (60%)** - Workflow engine, dependencies, state management
|
|
119
|
+
3. **P2P Layer (20%)** - Agent discovery, task routing, mesh coordination
|
|
120
|
+
|
|
121
|
+
## Documentation
|
|
122
|
+
|
|
123
|
+
- [User Guide](jarviscore/docs/USER_GUIDE.md) - Complete guide for AutoAgent users
|
|
124
|
+
- [API Reference](jarviscore/docs/API_REFERENCE.md) - Detailed API documentation
|
|
125
|
+
- [Configuration Guide](jarviscore/docs/CONFIGURATION.md) - Settings and environment variables
|
|
126
|
+
- [Troubleshooting](jarviscore/docs/TROUBLESHOOTING.md) - Common issues and solutions
|
|
127
|
+
- [Examples](examples/) - Working code examples
|
|
128
|
+
|
|
129
|
+
## Development Status
|
|
130
|
+
|
|
131
|
+
**Version:** 0.1.0 (Alpha)
|
|
132
|
+
**Day 1:** Core framework foundation ✅
|
|
133
|
+
|
|
134
|
+
## License
|
|
135
|
+
|
|
136
|
+
MIT License - see LICENSE file for details
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# JarvisCore Framework
|
|
2
|
+
|
|
3
|
+
**P2P distributed agent framework with LLM code generation and production-grade state management**
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- ✅ **Simple Agent Definition** - Write just 3 attributes, framework handles everything
|
|
8
|
+
- ✅ **P2P Mesh Architecture** - Automatic agent discovery and task routing via SWIM protocol
|
|
9
|
+
- ✅ **Event-Sourced State** - Complete audit trail with crash recovery
|
|
10
|
+
- ✅ **Autonomous Execution** - LLM code generation with automatic repair
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install jarviscore
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Setup & Validation
|
|
19
|
+
|
|
20
|
+
### 1. Configure LLM Provider
|
|
21
|
+
|
|
22
|
+
Copy the example config and add your API key:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
cp .env.example .env
|
|
26
|
+
# Edit .env and add one of: CLAUDE_API_KEY, AZURE_API_KEY, GEMINI_API_KEY, or LLM_ENDPOINT
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2. Validate Installation
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Check setup
|
|
33
|
+
python -m jarviscore.cli.check
|
|
34
|
+
|
|
35
|
+
# Test LLM connectivity
|
|
36
|
+
python -m jarviscore.cli.check --validate-llm
|
|
37
|
+
|
|
38
|
+
# Run smoke test (end-to-end validation)
|
|
39
|
+
python -m jarviscore.cli.smoketest
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
✅ **All checks pass?** You're ready to build agents!
|
|
43
|
+
|
|
44
|
+
## Quick Start
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from jarviscore import Mesh
|
|
48
|
+
from jarviscore.profiles import PromptDevAgent
|
|
49
|
+
|
|
50
|
+
# Define agent (3 lines)
|
|
51
|
+
class ScraperAgent(PromptDevAgent):
|
|
52
|
+
role = "scraper"
|
|
53
|
+
capabilities = ["web_scraping"]
|
|
54
|
+
system_prompt = "You are an expert web scraper..."
|
|
55
|
+
|
|
56
|
+
# Create mesh and run workflow
|
|
57
|
+
mesh = Mesh(mode="autonomous")
|
|
58
|
+
mesh.add(ScraperAgent)
|
|
59
|
+
await mesh.start()
|
|
60
|
+
|
|
61
|
+
results = await mesh.workflow(
|
|
62
|
+
workflow_id="wf-123",
|
|
63
|
+
steps=[
|
|
64
|
+
{"id": "scrape", "task": "Scrape example.com", "role": "scraper"}
|
|
65
|
+
]
|
|
66
|
+
)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Architecture
|
|
70
|
+
|
|
71
|
+
JarvisCore is built on three layers:
|
|
72
|
+
|
|
73
|
+
1. **Execution Layer (20%)** - Profile-specific execution (Prompt-Dev, MCP)
|
|
74
|
+
2. **Orchestration Layer (60%)** - Workflow engine, dependencies, state management
|
|
75
|
+
3. **P2P Layer (20%)** - Agent discovery, task routing, mesh coordination
|
|
76
|
+
|
|
77
|
+
## Documentation
|
|
78
|
+
|
|
79
|
+
- [User Guide](jarviscore/docs/USER_GUIDE.md) - Complete guide for AutoAgent users
|
|
80
|
+
- [API Reference](jarviscore/docs/API_REFERENCE.md) - Detailed API documentation
|
|
81
|
+
- [Configuration Guide](jarviscore/docs/CONFIGURATION.md) - Settings and environment variables
|
|
82
|
+
- [Troubleshooting](jarviscore/docs/TROUBLESHOOTING.md) - Common issues and solutions
|
|
83
|
+
- [Examples](examples/) - Working code examples
|
|
84
|
+
|
|
85
|
+
## Development Status
|
|
86
|
+
|
|
87
|
+
**Version:** 0.1.0 (Alpha)
|
|
88
|
+
**Day 1:** Core framework foundation ✅
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
MIT License - see LICENSE file for details
|