Skip to content

Commit d42655b

Browse files
authored
Merge pull request #6 from pr1m8/final-refactor
Merge final-refactor: full framework refactor with MemoryAgent v2, research agents, 53 agents verified
2 parents 1fa0a81 + 3938594 commit d42655b

46 files changed

Lines changed: 3495 additions & 1635 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.env.example‎

Lines changed: 31 additions & 182 deletions
Original file line numberDiff line numberDiff line change
@@ -1,183 +1,32 @@
1-
# Auto-generated .env.example from backup
2-
# Values intentionally blank.
1+
# =============================================================================
2+
# Haive Framework - Environment Configuration
3+
# =============================================================================
4+
# Copy this file to .env and fill in your values.
35

4-
AI21_API_KEY=
5-
ALCHEMY_API_KEY=
6-
ALPHAVANTAGE_API_KEY=
7-
AMADEUS_CLIENT_ID=
8-
AMADEUS_CLIENT_SECRET=
9-
ANTHROPIC_API_KEY=
10-
APIFY_API_TOKEN=
11-
APP_ENV=
12-
ASKNEWS_CLIENT_ID=
13-
ASKNEWS_CLIENT_SECRET=
14-
AWS_ACCESS_KEY_ID=
15-
AWS_DEFAULT_REGION=
16-
AWS_ENDPOINT_URL=
17-
AWS_SECRET_ACCESS_KEY=
18-
AZURE_AI_SERVICES_ENDPOINT=
19-
AZURE_AI_SERVICES_KEY=
20-
AZURE_AI_SERVICES_REGION=
21-
AZURE_CLIENT_ID=
22-
AZURE_DEPLOYMENT_NAME=
23-
AZURE_OBJECT_ID=
24-
AZURE_OPENAI_API_BASE=
25-
AZURE_OPENAI_API_KEY=
26-
AZURE_OPENAI_API_VERSION=
27-
AZURE_OPENAI_ENDPOINT=
28-
AZURE_SECRET_ID=
29-
AZURE_TENANT_ID=
30-
BING_SEARCH_URL=
31-
BING_SUPERVISION_KEY=
32-
BRAVE_SEARCH_API_KEY=
33-
CLICKUP_API_KEY=
34-
CLICKUP_CLIENT_ID=
35-
CLICKUP_CLIENT_SECRET=
36-
CLICKUP_REDIRECT_URI=
37-
CLOUDFLARE_ACCOUNT_ID=
38-
CLOUDFLARE_API_TOKEN=
39-
CLOUDFLARE_R2_BUCKET=
40-
CLOUDFLARE_R2_ENDPOINT=
41-
DATAFORSEO_LOGIN=
42-
DATAFORSEO_PASSWORD=
43-
DEBUG=
44-
DEEPL_API_KEY=
45-
DEEPSEEK_API_KEY=
46-
DISCORD_APPLICATION_ID=
47-
DISCORD_BOT_TOKEN=
48-
DISCORD_CLIENT_ID=
49-
DISCORD_PUBLIC_KEY=
50-
DOCS_PACKAGES_BASE_URL=
51-
DOCS_PUBLIC_BASE_URL=
52-
DOCS_ROOT_URL=
53-
DROPBOX_ACCESS_TOKEN=
54-
DROPBOX_APP_KEY=
55-
DROPBOX_APP_SECRET=
56-
DROPBOX_FOLDER_PATH=
57-
ELEVENLABS_API_KEY=
58-
EMBEDDINGS_API_ENDPOINT=
59-
EMBEDDINGS_API_KEY=
60-
EMBEDDINGS_API_REGION=
61-
EMBEDDINGS_API_VERSION=
62-
ETHERSCAN_API_KEY=
63-
FIGMA_ACCESS_TOKEN=
64-
FINANCIAL_DATASETS_API_KEY=
65-
FIREWORKS_AI_API_KEY=
66-
GITHUB_ACCESS_TOKEN=
67-
GITHUB_APP_ID=
68-
GITHUB_APP_PRIVATE_KEY=
69-
GITHUB_BASE_BRANCH=
70-
GITHUB_BASE_URL=
71-
GITHUB_BRANCH=
72-
GITHUB_ORG=
73-
GITHUB_REPOSITORY=
74-
GMAIL_API_KEY=
75-
GMAIL_CLIENT_ID=
76-
GMAIL_CLIENT_SECRET=
77-
GOOGLE_API_KEY=
78-
GOOGLE_BOOKS_API_KEY=
79-
GOOGLE_CSE_ID=
80-
GPLACES_API_KEY=
81-
GROQ_API_KEY=
82-
HAIVE_AGENTS_DOCS_URL=
83-
HAIVE_AGENTS_REPO_URL=
84-
HAIVE_CORE_DOCS_URL=
85-
HAIVE_CORE_REPO_URL=
86-
HAIVE_DATAFLOW_DOCS_URL=
87-
HAIVE_DATAFLOW_REPO_URL=
88-
HAIVE_GAMES_DOCS_URL=
89-
HAIVE_GAMES_REPO_URL=
90-
HAIVE_HAP_DOCS_URL=
91-
HAIVE_HAP_REPO_URL=
92-
HAIVE_MCP_DOCS_URL=
93-
HAIVE_MCP_REPO_URL=
94-
HAIVE_PREBUILT_DOCS_URL=
95-
HAIVE_PREBUILT_REPO_URL=
96-
HAIVE_TOOLS_DOCS_URL=
97-
HAIVE_TOOLS_REPO_URL=
98-
HF_TOKEN=
99-
JIRA_API_KEY=
100-
JIRA_BASE_URL=
101-
JIRA_ISSUE_TYPE=
102-
JIRA_PROJECT_KEY=
103-
MERRIAM_WEBSTER_API_KEY=
104-
MISTRAL_API_KEY=
105-
MONGO_URI=
106-
NEO4J_DATABASE=
107-
NEO4J_PASSWORD=
108-
NEO4J_URI=
109-
NEO4J_USER=
110-
NEWSAPI_KEY=
111-
NOTION_API_KEY=
112-
OCR_AGENT=
113-
OPENAI_API_KEY=
114-
OPENAI_API_TYPE=
115-
OPENAI_API_VERSION=
116-
OPENWEATHERMAP_API_KEY=
117-
OUTLINE_API_KEY=
118-
OUTLINE_INSTANCE_URL=
119-
PEFT_AVAILABLE=
120-
PERPLEXITY_API_KEY=
121-
PINECONE=
122-
POLYGON_API_KEY=
123-
POSTGRES_CONNECTION_STRING=
124-
REDDIT_CLIENT_ID=
125-
REDDIT_CLIENT_SECRET=
126-
REDDIT_USER_AGENT=
127-
SALESFORCE_DOMAIN=
128-
SALESFORCE_PASSWORD=
129-
SALESFORCE_SECURITY_TOKEN=
130-
SALESFORCE_USERNAME=
131-
SCENEX_API_KEY=
132-
SECRET_KEY=
133-
SERPAPI_API_KEY=
134-
SERP_API_KEY=
135-
SLACK_USER_TOKEN=
136-
SPOONACULAR_API_KEY=
137-
STEAM_ID=
138-
STEAM_KEY=
139-
STRIPE_SECRET_KEY=
140-
SUPABASE_ANON_KEY=
141-
SUPABASE_DATABASE_URI=
142-
SUPABASE_DATABASE_URI_SSL=
143-
SUPABASE_DATABASE_URL=
144-
SUPABASE_DBNAME=
145-
SUPABASE_HOST=
146-
SUPABASE_KEY=
147-
SUPABASE_PASSWORD=
148-
SUPABASE_PORT=
149-
SUPABASE_PROJECT_URL=
150-
SUPABASE_SERVICE_KEY=
151-
SUPABASE_URL=
152-
SUPABASE_USER=
153-
TAVILY_API_KEY=
154-
TWILIO_ACCOUNT_SID=
155-
TWILIO_AUTH_TOKEN=
156-
TWILIO_FROM_NUMBER=
157-
TWILIO_TO_NUMBER=
158-
TWITTER_ACCESS_TOKEN=
159-
TWITTER_ACCESS_TOKEN_SECRET=
160-
TWITTER_API_KEY=
161-
TWITTER_API_SECRET=
162-
TWITTER_BEARER_TOKEN=
163-
WOLFRAM_ALPHA_APPID=
164-
_T=
165-
__all__=
166-
__slots__=
167-
doc=
168-
error_msg=
169-
file_path=
170-
file_paths=
171-
found_secrets_file=
172-
msg=
173-
path=
174-
secrets=
175-
secrets_dirs=
176-
secrets_file_str=
177-
secrets_paths=
178-
stacklevel=
179-
sub_folder_path=
180-
sub_secrets=
181-
value=
182-
value_type=
183-
watcher_type=
6+
# -- LangSmith (Observability & Tracing) --------------------------------------
7+
LANGSMITH_TRACING=true
8+
LANGSMITH_API_KEY=your-langsmith-api-key
9+
LANGSMITH_PROJECT=haive
10+
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
11+
12+
# -- LLM Provider Keys --------------------------------------------------------
13+
OPENAI_API_KEY=your-openai-api-key
14+
ANTHROPIC_API_KEY=your-anthropic-api-key
15+
16+
# Azure OpenAI (optional)
17+
AZURE_OPENAI_API_KEY=your-azure-api-key
18+
AZURE_OPENAI_ENDPOINT=your-azure-endpoint
19+
AZURE_OPENAI_API_VERSION=2024-02-01
20+
21+
# Google (optional)
22+
GOOGLE_API_KEY=your-google-api-key
23+
24+
# -- LangGraph Platform (for remote deployment) --------------------------------
25+
LANGGRAPH_API_URL=http://localhost:8123
26+
27+
# -- PostgreSQL Persistence (optional) ----------------------------------------
28+
# DB_HOST=localhost
29+
# DB_PORT=5432
30+
# DB_NAME=haive
31+
# DB_USER=postgres
32+
# DB_PASS=postgres

‎.github/workflows/publish.yml‎

Lines changed: 90 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
name: 🚀 Publish Release
2+
name: Publish Release
33
on:
44
release:
55
types: [published]
@@ -9,57 +9,124 @@ permissions:
99
concurrency:
1010
group: release-${{ github.ref }}
1111
cancel-in-progress: true
12+
1213
jobs:
13-
publish:
14-
name: 📦 Publish ${{ matrix.package }}
14+
# Phase 1: Publish haive-core first (no dependencies)
15+
publish-core:
16+
name: Publish haive-core
17+
runs-on: ubuntu-latest
18+
env:
19+
ACTIONS_STEP_DEBUG: ${{ secrets.ACTIONS_DEBUG || 'false' }}
20+
steps:
21+
- name: Checkout Code
22+
uses: actions/checkout@v4
23+
with:
24+
submodules: true
25+
token: ${{ secrets.GH_TOKEN }}
26+
- name: Get Package Poetry Info
27+
id: poetry
28+
uses: ./.github/actions/get-package-poetry-info
29+
with:
30+
package: haive-core
31+
- name: Set up Python ${{ steps.poetry.outputs.python }}
32+
uses: actions/setup-python@v5
33+
with:
34+
python-version: ${{ steps.poetry.outputs.python }}
35+
cache: poetry
36+
- name: Install Poetry
37+
run: pipx install poetry==2.1.0
38+
- name: Configure PyPI Credentials
39+
run: poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }}
40+
- name: Build and Publish haive-core
41+
run: |
42+
cd packages/haive-core
43+
poetry build --format wheel
44+
poetry publish --skip-existing
45+
- name: Upload Artifact
46+
uses: actions/upload-artifact@v4
47+
with:
48+
name: haive-core-dist
49+
path: packages/haive-core/dist/
50+
51+
# Phase 2: Publish haive-agents (depends on haive-core)
52+
publish-agents:
53+
name: Publish haive-agents
54+
needs: publish-core
55+
runs-on: ubuntu-latest
56+
env:
57+
ACTIONS_STEP_DEBUG: ${{ secrets.ACTIONS_DEBUG || 'false' }}
58+
steps:
59+
- name: Checkout Code
60+
uses: actions/checkout@v4
61+
with:
62+
submodules: true
63+
token: ${{ secrets.GH_TOKEN }}
64+
- name: Get Package Poetry Info
65+
id: poetry
66+
uses: ./.github/actions/get-package-poetry-info
67+
with:
68+
package: haive-agents
69+
- name: Set up Python ${{ steps.poetry.outputs.python }}
70+
uses: actions/setup-python@v5
71+
with:
72+
python-version: ${{ steps.poetry.outputs.python }}
73+
cache: poetry
74+
- name: Install Poetry
75+
run: pipx install poetry==2.1.0
76+
- name: Configure PyPI Credentials
77+
run: poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }}
78+
- name: Build and Publish haive-agents
79+
run: |
80+
cd packages/haive-agents
81+
poetry build --format wheel
82+
poetry publish --skip-existing
83+
- name: Upload Artifact
84+
uses: actions/upload-artifact@v4
85+
with:
86+
name: haive-agents-dist
87+
path: packages/haive-agents/dist/
88+
89+
# Phase 3: Publish remaining packages in parallel (depend on haive-agents)
90+
publish-remaining:
91+
name: Publish ${{ matrix.package }}
92+
needs: publish-agents
1593
runs-on: ubuntu-latest
1694
env:
1795
ACTIONS_STEP_DEBUG: ${{ secrets.ACTIONS_DEBUG || 'false' }}
1896
strategy:
97+
fail-fast: false
1998
matrix:
2099
package:
21-
- haive-core
22-
- haive-agents
23100
- haive-games
24101
- haive-tools
25102
- haive-prebuilt
26103
- haive-dataflow
27104
steps:
28-
- name: 📥 Checkout Code
105+
- name: Checkout Code
29106
uses: actions/checkout@v4
30107
with:
31108
submodules: true
32109
token: ${{ secrets.GH_TOKEN }}
33-
- name: 📦 Get Package Poetry Info
110+
- name: Get Package Poetry Info
34111
id: poetry
35112
uses: ./.github/actions/get-package-poetry-info
36113
with:
37114
package: ${{ matrix.package }}
38-
- name: 🧾 Echo Package Metadata
39-
run: |
40-
echo "📦 Name: ${{ steps.poetry.outputs.name }}"
41-
echo "🔖 Version: ${{ steps.poetry.outputs.version }}"
42-
echo "🧑 Authors: ${{ steps.poetry.outputs.authors || 'N/A' }}"
43-
echo "📄 License: ${{ steps.poetry.outputs.license || 'N/A' }}"
44-
echo "📝 Description: ${{ steps.poetry.outputs.description || 'N/A' }}"
45-
echo "🌐 Homepage: ${{ steps.poetry.outputs.homepage || 'N/A' }}"
46-
echo "🔗 Repository: ${{ steps.poetry.outputs.repository || 'N/A' }}"
47-
echo "📚 Docs: ${{ steps.poetry.outputs.documentation || 'N/A' }}"
48-
echo "🏷 Classifiers: ${{ steps.poetry.outputs.classifiers || 'N/A' }}"
49-
- name: 🐍 Set up Python ${{ steps.poetry.outputs.python }}
115+
- name: Set up Python ${{ steps.poetry.outputs.python }}
50116
uses: actions/setup-python@v5
51117
with:
52118
python-version: ${{ steps.poetry.outputs.python }}
53119
cache: poetry
54-
- name: 🛠 Install Poetry
120+
- name: Install Poetry
55121
run: pipx install poetry==2.1.0
56-
- name: 🔐 Configure PyPI Credentials
122+
- name: Configure PyPI Credentials
57123
run: poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }}
58-
- name: 📦 Build Package (No Publish)
124+
- name: Build and Publish ${{ matrix.package }}
59125
run: |
60126
cd packages/${{ matrix.package }}
61127
poetry build --format wheel
62-
- name: 📤 Upload Package as Artifact
128+
poetry publish --skip-existing
129+
- name: Upload Artifact
63130
uses: actions/upload-artifact@v4
64131
with:
65132
name: ${{ matrix.package }}-dist

0 commit comments

Comments
 (0)