Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
49e8db9
Remove Docusaurus documentation system
leex279 Nov 8, 2025
44bbcfc
Add OpenRouter embeddings support
leex279 Nov 8, 2025
4cfa872
Add unit tests for OpenRouter model discovery
leex279 Nov 8, 2025
f32f0c3
Fix embedding provider grid to fit all providers in one line
leex279 Nov 8, 2025
71fbae5
Fix credential_service to recognize OpenRouter as embedding provider
leex279 Nov 8, 2025
4d2851c
Address CodeRabbit review: Improve openrouterService robustness
leex279 Nov 8, 2025
038b00d
Delete PRPs/openrouter-embeddings-support.md
leex279 Nov 8, 2025
7f10527
Add robust cache validation with type guards in openrouterService
leex279 Nov 8, 2025
b4b534b
Add comprehensive API response validation in discoverModels
leex279 Nov 8, 2025
7e66f34
Merge pull request #849 from coleam00/feature/remove-docusaurus-docum…
sean-esk Nov 12, 2025
9bb1683
Update README for Supabase service role key instructions (#836)
steinybot Nov 24, 2025
ecaece4
Merge pull request #852 from coleam00/feature/openrouter-embeddings-s…
sean-esk Nov 29, 2025
6daf22d
chore(security): add CODEOWNERS and Dependabot configuration
POWERFULMOVES Dec 23, 2025
112b141
feat(hardened): Add nested submodule integrations for standalone oper…
POWERFULMOVES Jan 10, 2026
8beeb89
feat(pmoves): add Claude Code MCP adapter for PMOVES.AI integration
Dec 7, 2025
c38303c
fix: Restore fail-fast behavior for API key validation in upload
POWERFULMOVES Jan 14, 2026
55343d2
Merge branch 'coleam00:main' into PMOVES.AI-Edition-Hardened
POWERFULMOVES Jan 14, 2026
5d65667
chore(deps): Update uv.lock with dependency revisions
POWERFULMOVES Jan 16, 2026
580f945
feat(observability): add Prometheus metrics endpoint
Dec 29, 2025
08a3210
feat(search): Add Hi-RAG v2 semantic expansion to keyword extraction
Jan 16, 2026
68f5458
feat(pmoves-ai): Add PMOVES.AI integration patterns (#3)
POWERFULMOVES Jan 21, 2026
ea42b9b
chore: Add GitHub Actions workflows and update submodule SHAs
POWERFULMOVES Feb 3, 2026
5fc6ceb
fix(pr): Address CodeRabbit review issues
POWERFULMOVES Feb 3, 2026
5919bb1
feat: Sync main to hardened - MCP adapter, CODEOWNERS, nested submodu…
POWERFULMOVES Feb 7, 2026
4c1e19a
fix: resolve merge conflicts from main into PMOVES.AI-Edition-Hardened
hunnibear Feb 13, 2026
daaf165
docs: add PMOVES.AI skill hints context tags
hunnibear Feb 18, 2026
72c5466
chore(submodules): update nested PMOVES-HiRAG submodule pointer
hunnibear Feb 18, 2026
03150da
security: update PBKDF2 iterations to 600,000
hunnibear Feb 18, 2026
238c401
fix: correct indentation in state_reconciliation.py if-block
hunnibear Feb 19, 2026
6ea1a78
fix(env): strip export syntax and add NATS auth to env.shared defaults
hunnibear Feb 21, 2026
2a2d104
docs(claude): add CHIT-aware integration context (#9)
POWERFULMOVES Mar 2, 2026
37109ce
fix(auth): align NATS default URLs with credentialed runtime (#10)
POWERFULMOVES Mar 2, 2026
178ebb9
chore(submodules): sync HiRAG and BotZ gateway pointers (#11)
POWERFULMOVES Mar 2, 2026
dd2f2ed
fix(security): add USER directive to archon-ui Dockerfile
hunnibear Mar 9, 2026
f4bd252
feat(github): add GitHub App token minting and client
hunnibear Mar 14, 2026
e04f02f
chore(submodules): promote nested submodule pointers (HiRAG, BotZ-gat…
POWERFULMOVES Apr 17, 2026
ddffb25
chore(submodules): recover nested wipes + promote BoTZ skill pointers
POWERFULMOVES Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# CodeRabbit Configuration for PMOVES Submodule
reviews:
review_status: true
branches:
- "main"
- "feat/*"
- "fix/*"
excluded_branches:
- "origin/main"
language: "en-US"
doc_target_coverage: 80
4 changes: 2 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ ARCHON_AGENTS_PORT=8052
# Leave unset or comment out if you don't plan to use agent work orders
AGENT_WORK_ORDERS_PORT=8053
ARCHON_UI_PORT=3737
ARCHON_DOCS_PORT=3838

# Agent Work Orders Feature (Optional)
# Enable the agent work orders microservice for automated task execution
Expand Down Expand Up @@ -125,7 +124,8 @@ PROD=false
# Run the credentials_setup.sql file in your Supabase SQL editor to set up the credentials table.
# Then use the Settings page in the web UI to manage:
# - OPENAI_API_KEY (encrypted)
# - MODEL_CHOICE
# - OPENROUTER_API_KEY (encrypted, format: sk-or-v1-..., get from https://openrouter.ai/keys)
# - MODEL_CHOICE
# - TRANSPORT settings
# - RAG strategy flags (USE_CONTEXTUAL_EMBEDDINGS, USE_HYBRID_SEARCH, etc.)
# - Crawler settings:
Expand Down
10 changes: 1 addition & 9 deletions .github/test-release-notes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -113,18 +113,14 @@ FILES_CHANGED=$(git diff ${PREVIOUS_TAG}..${CURRENT_TAG} --stat | tail -1)
# Detailed changes by component
CHANGES_FRONTEND=$(git diff ${PREVIOUS_TAG}..${CURRENT_TAG} --stat -- archon-ui-main/ | head -20)
CHANGES_BACKEND=$(git diff ${PREVIOUS_TAG}..${CURRENT_TAG} --stat -- python/ | head -20)
CHANGES_DOCS=$(git diff ${PREVIOUS_TAG}..${CURRENT_TAG} --stat -- '*.md' PRPs/ | head -10)

FILE_CHANGES="### File Changes by Component

**Frontend:**
$CHANGES_FRONTEND

**Backend:**
$CHANGES_BACKEND

**Documentation:**
$CHANGES_DOCS"
$CHANGES_BACKEND"

echo -e "${GREEN}Files summary: $FILES_CHANGED${NC}"

Expand Down Expand Up @@ -226,10 +222,6 @@ Generate comprehensive release notes following this structure:
Thanks to everyone who contributed to this release:
[List unique contributors with @ mentions]

## 📚 Documentation

[If documentation changes, list them]

## ⚠️ Breaking Changes

[List any breaking changes - this is beta software, so breaking changes are expected]
Expand Down
7 changes: 0 additions & 7 deletions .github/workflows/release-notes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,6 @@ jobs:
echo "**Backend:**" >> changes.txt
git diff ${PREVIOUS_TAG}..${CURRENT_TAG} --stat -- python/ | head -20 >> changes.txt
echo "" >> changes.txt
echo "**Documentation:**" >> changes.txt
git diff ${PREVIOUS_TAG}..${CURRENT_TAG} --stat -- '*.md' PRPs/ | head -10 >> changes.txt

- name: Get closed PRs
id: prs
Expand Down Expand Up @@ -190,18 +188,13 @@ jobs:
Thanks to everyone who contributed to this release:
[List unique contributors with @ mentions]

## 📚 Documentation

[If documentation changes, list them]

## ⚠️ Breaking Changes

[List any breaking changes - this is beta software, so breaking changes are expected]

## 🔗 Links

- **Full Changelog:** https://github.com/${{ github.repository }}/compare/${{ steps.prev_tag.outputs.previous_tag }}...${{ steps.get_tag.outputs.tag }}
- **Installation Guide:** [Link to docs]

---

Expand Down
23 changes: 23 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -332,3 +332,26 @@ When connected to Claude/Cursor/Windsurf, the following tools are available:
- Docker Compose handles service orchestration
- TanStack Query for all data fetching - NO PROP DRILLING
- Vertical slice architecture in `/features` - features own their sub-features

## CHIT & Geometry Bus Integration

Archon is a **CHIT-aware form consumer** — it receives CGP packets via Agent Zero's MCP interface and can embed geometry context into prompt/form schemas.

**Integration pattern:**
- Archon does not connect to NATS geometry subjects directly
- CGP data flows through Agent Zero MCP → Archon `external_tools` interface
- Form schemas can reference CGP attribution for contributor-aware prompts
- `persona_service.py` may consume CGP context for persona calibration

**CGP Schema:** Uses canonical `chit.cgp.v1.0` format. See `pmoves/docs/audit/CHIT_INTEGRATION_STATUS.md`.

**Extend:** Add `agent.graphiti.signed.v1` emission to Archon (currently only BoTZ gateway emits this).

<!-- PMOVES.AI-CONTEXT-TAGS -->
## PMOVES.AI Skill Hints

**Primary Skills:** `/agents:status`, `/agents:mcp-query`, `/deploy:up`, `/deploy:services`, `/health:quick`, `/botz:profile`
**Context Files:** `mcp-api.md`, `nats-subjects.md`, `services-catalog.md`, `geometry-nats-subjects.md`
**Domain Tags:** `orchestration`, `agents`, `mcp`, `chit`
**Context Tier:** 2 (On-Demand (Major Subsystem))
<!-- /PMOVES.AI-CONTEXT-TAGS -->
93 changes: 93 additions & 0 deletions PMOVES.AI_INTEGRATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# PMOVES.AI Integration Guide for Archon Agent Service

## Integration Complete

The PMOVES.AI integration template has been applied to Archon Agent Service.

## Next Steps

### 1. Customize Environment Variables

Edit the following files with your service-specific values:

- `env.shared` - Base environment configuration
- `env.tier-agent` - AGENT tier specific configuration
- `chit/secrets_manifest_v2.yaml` - Add your service's required secrets

### 2. Update Docker Compose

Add the PMOVES.AI environment anchor to your `docker-compose.yml`:

```yaml
services:
archon:
<<: [*env-tier-agent, *pmoves-healthcheck]
# Your existing service configuration...
```

### 3. Integrate Health Check

Add the health check endpoint to your service:

```python
from pmoves_health import add_custom_check, get_health_status

@app.get("/healthz")
async def health_check():
return await get_health_status()
```

### 4. Add Service Announcement

Add NATS service announcement to your startup:

```python
from pmoves_announcer import announce_service

@app.on_event("startup")
async def startup():
await announce_service(
slug="archon",
name="Archon Agent Service",
url=f"http://archon:8091",
port=8091,
tier="agent"
)
```

### 5. Test Integration

```bash
# Test health check
curl http://localhost:8091/healthz

# Verify environment variables loaded
docker compose exec archon env | grep PMOVES

# Verify NATS announcement
nats sub "services.announce.v1"
```

## Service Details

- **Name:** Archon Agent Service
- **Slug:** archon
- **Tier:** agent
- **Port:** 8091
- **Health Check:** http://localhost:8091/healthz
- **NATS Enabled:** False
- **GPU Enabled:** False

## Files Created

- `env.shared` - Base PMOVES.AI environment
- `env.tier-agent` - Tier-specific environment
- `chit/secrets_manifest_v2.yaml` - CHIT secrets configuration
- `pmoves_health/` - Health check module
- `pmoves_announcer/` - NATS service announcer
- `pmoves_registry/` - Service registry client
- `docker-compose.pmoves.yml` - PMOVES.AI YAML anchors

## Support

For questions or issues, see the PMOVES.AI documentation.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ This new vision for Archon replaces the old one (the agenteer). Archon used to b
```

IMPORTANT NOTES:
- For cloud Supabase: they recently introduced a new type of service role key but use the legacy one (the longer one).
- For local Supabase: set SUPABASE_URL to http://host.docker.internal:8000 (unless you have an IP address set up).
- For cloud Supabase: They recently introduced a new type of service role key but use the legacy one (the longer one).
- For local Supabase: Set `SUPABASE_URL` to http://host.docker.internal:8000 (unless you have an IP address set up). To get `SUPABASE_SERVICE_KEY` run `supabase status -o env`.

3. **Database Setup**: In your [Supabase project](https://supabase.com/dashboard) SQL Editor, copy, paste, and execute the contents of `migration/complete_setup.sql`

Expand Down
6 changes: 6 additions & 0 deletions archon-ui-main/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ RUN mkdir -p /app/coverage && chmod 777 /app/coverage
# Copy source code
COPY . .

# Security: Run as non-root user
RUN addgroup -g 65532 -S pmoves && \
adduser -u 65532 -S -G pmoves -h /app pmoves && \
chown -R pmoves:pmoves /app
USER pmoves

# Expose the port configured in package.json (3737)
EXPOSE 3737

Expand Down
6 changes: 3 additions & 3 deletions archon-ui-main/src/components/settings/RAGSettings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import OllamaModelSelectionModal from './OllamaModelSelectionModal';
type ProviderKey = 'openai' | 'google' | 'ollama' | 'anthropic' | 'grok' | 'openrouter';

// Providers that support embedding models
const EMBEDDING_CAPABLE_PROVIDERS: ProviderKey[] = ['openai', 'google', 'ollama'];
const EMBEDDING_CAPABLE_PROVIDERS: ProviderKey[] = ['openai', 'google', 'openrouter', 'ollama'];

interface ProviderModels {
chatModel: string;
Expand All @@ -42,7 +42,7 @@ const getDefaultModels = (provider: ProviderKey): ProviderModels => {
anthropic: 'text-embedding-3-small', // Fallback to OpenAI
google: 'text-embedding-004',
grok: 'text-embedding-3-small', // Fallback to OpenAI
openrouter: 'text-embedding-3-small',
openrouter: 'openai/text-embedding-3-small', // MUST include provider prefix for OpenRouter
ollama: 'nomic-embed-text'
};

Expand Down Expand Up @@ -1291,7 +1291,7 @@ const manualTestConnection = async (
Select {activeSelection === 'chat' ? 'Chat' : 'Embedding'} Provider
</label>
<div className={`grid gap-3 mb-4 ${
activeSelection === 'chat' ? 'grid-cols-6' : 'grid-cols-3'
activeSelection === 'chat' ? 'grid-cols-6' : 'grid-cols-4'
}`}>
{[
{ key: 'openai', name: 'OpenAI', logo: '/img/OpenAI.png', color: 'green' },
Expand Down
Loading
Loading