From 0355858596338fe7a2dff03e9ed702db43e8f9dd Mon Sep 17 00:00:00 2001 From: Bagas Purwa Sentika Date: Sun, 14 Jun 2026 12:02:04 +0800 Subject: [PATCH] docs: update project state through Phase 3 Phase 2: memory, session search, git worktree configured Phase 3: Telegram gateway connected, DM pairing approved Phase 4: custom skills created (aws-diagnostics, jira-query, confluence-search, bitbucket-pr) --- .aws/config | 66 ++++++++ .planning/ROADMAP.md | 2 +- .planning/research/hermes/AUTOMATION.md | 104 ++++++++++++ .planning/research/hermes/EXTENSIBILITY.md | 109 +++++++++++++ .planning/research/hermes/GATEWAY.md | 105 ++++++++++++ .planning/research/hermes/MEMORY.md | 81 ++++++++++ .planning/research/hermes/SECURITY.md | 150 ++++++++++++++++++ .planning/research/hermes/SKILLS.md | 79 +++++++++ .planning/research/hermes/SUMMARY.md | 67 ++++++++ .../lib/python3.9/_bootlocale.cpython-39.pyc | Bin 0 -> 1306 bytes .../python3.9/_collections_abc.cpython-39.pyc | Bin 0 -> 31816 bytes .../python3.9/_sitebuiltins.cpython-39.pyc | Bin 0 -> 3580 bytes .../3.9/lib/python3.9/abc.cpython-39.pyc | Bin 0 -> 5854 bytes .../3.9/lib/python3.9/codecs.cpython-39.pyc | Bin 0 -> 33967 bytes .../3.9/lib/python3.9/datetime.cpython-39.pyc | Bin 0 -> 58176 bytes .../encodings/__init__.cpython-39.pyc | Bin 0 -> 4004 bytes .../encodings/aliases.cpython-39.pyc | Bin 0 -> 6409 bytes .../python3.9/encodings/cp437.cpython-39.pyc | Bin 0 -> 7927 bytes .../encodings/latin_1.cpython-39.pyc | Bin 0 -> 1974 bytes .../python3.9/encodings/utf_8.cpython-39.pyc | Bin 0 -> 1711 bytes .../lib/python3.9/genericpath.cpython-39.pyc | Bin 0 -> 4103 bytes .../3.9/lib/python3.9/io.cpython-39.pyc | Bin 0 -> 3487 bytes .../3.9/lib/python3.9/os.cpython-39.pyc | Bin 0 -> 32076 bytes .../lib/python3.9/posixpath.cpython-39.pyc | Bin 0 -> 10408 bytes .../3.9/lib/python3.9/site.cpython-39.pyc | Bin 0 -> 17473 bytes .../3.9/lib/python3.9/stat.cpython-39.pyc | Bin 0 -> 4451 bytes 26 files changed, 762 insertions(+), 1 deletion(-) create mode 100644 .planning/research/hermes/AUTOMATION.md create mode 100644 .planning/research/hermes/EXTENSIBILITY.md create mode 100644 .planning/research/hermes/GATEWAY.md create mode 100644 .planning/research/hermes/MEMORY.md create mode 100644 .planning/research/hermes/SECURITY.md create mode 100644 .planning/research/hermes/SKILLS.md create mode 100644 .planning/research/hermes/SUMMARY.md create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/_bootlocale.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/_collections_abc.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/_sitebuiltins.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/abc.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/codecs.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/datetime.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/encodings/__init__.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/encodings/aliases.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/encodings/cp437.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/encodings/latin_1.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/encodings/utf_8.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/genericpath.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/io.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/os.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/posixpath.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site.cpython-39.pyc create mode 100644 Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/stat.cpython-39.pyc diff --git a/.aws/config b/.aws/config index 39599ff..6fa526a 100644 --- a/.aws/config +++ b/.aws/config @@ -25,3 +25,69 @@ sso_session = rzaws-sw-rai sso_account_id = 669031108410 sso_role_name = dev_Restricted region = us-east-1 + +[profile rzaws-sw-rai-ava-dev] +sso_session = rzaws-sw-rai +sso_account_id = 534546104464 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-ava-prod] +sso_session = rzaws-sw-rai +sso_account_id = 574548986353 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-ava-rc] +sso_session = rzaws-sw-rai +sso_account_id = 129898047946 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-cs-dev] +sso_session = rzaws-sw-rai +sso_account_id = 555292118981 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-cs-prod] +sso_session = rzaws-sw-rai +sso_account_id = 352821214080 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-cs-rc] +sso_session = rzaws-sw-rai +sso_account_id = 345692661332 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-preprod] +sso_session = rzaws-sw-rai +sso_account_id = 239732580264 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-qac-prod] +sso_session = rzaws-sw-rai +sso_account_id = 615471542132 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-voicekit-dev] +sso_session = rzaws-sw-rai +sso_account_id = 576393818327 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-voicekit-prod] +sso_session = rzaws-sw-rai +sso_account_id = 427880591172 +sso_role_name = dev_Restricted +region = us-east-1 + +[profile rzaws-sw-rai-voicekit-rc] +sso_session = rzaws-sw-rai +sso_account_id = 045861053828 +sso_role_name = dev_Restricted +region = us-east-1 diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 3f36bb9..d671816 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -1,6 +1,6 @@ # Roadmap: ngn-agent -**Current Phase:** None yet — start with Phase 1 +**Current Phase:** Phase 2 — Memory, Git & Session Management **Total Phases:** 4 **v1 Requirements:** 22 mapped — all covered ✓ diff --git a/.planning/research/hermes/AUTOMATION.md b/.planning/research/hermes/AUTOMATION.md new file mode 100644 index 0000000..75e5961 --- /dev/null +++ b/.planning/research/hermes/AUTOMATION.md @@ -0,0 +1,104 @@ +# Hermes Agent: Automation (Cron) + +## Capabilities + +Hermes has a full cron system built into the gateway daemon. Everything below is available through the `cronjob` tool — the agent can set it up via conversation. + +## Job Types + +| Type | Schedule | Example | +|------|----------|---------| +| One-shot | Relative delay | `30m`, `2h` | +| Recurring | Interval | `every 30m`, `every 2h` | +| Recurring | Cron expression | `0 9 * * *` | +| One-shot | ISO timestamp | `2026-03-15T09:00:00` | +| **No-agent mode** | Any schedule | Script-only, zero LLM cost | + +## Delivery Targets + +``` +origin → Back to where the job was created +local → Save to ~/.hermes/cron/output/ +telegram → Telegram home channel +discord → Discord +slack → Slack +email → Email +all → Every connected platform +"telegram:123:456" → Specific chat + thread +``` + +## No-Agent Mode (Script-Only) + +For watchdogs, disk checks, health pings — zero LLM cost: + +```bash +# Script at ~/.hermes/scripts/check-disk.sh +# Agent skips this entirely — just runs script, delivers stdout +hermes cron create "every 5m" --no-agent --script check-disk.sh --deliver telegram +``` + +- Empty stdout → silent tick (no delivery) +- Non-zero exit → error alert delivered +- `{"wakeAgent": false}` → silent tick + +## Skill-Backed Cron Jobs + +Load one or more skills before running the prompt: + +```python +cronjob(action="create", skill="blogwatcher", + prompt="Check configured feeds, summarize anything new.", + schedule="0 9 * * *", name="Morning Feeds") +``` + +## Job Chaining + +```python +cronjob(action="create", name="daily-digest", + schedule="every day 7am", + context_from=["ai-news-fetch", "github-prs-fetch"], + prompt="Write the daily digest using the outputs above.") +``` + +## Job Lifecycle + +``` +hermes cron list +hermes cron pause +hermes cron resume +hermes cron run +hermes cron edit --schedule "every 4h" +hermes cron remove +``` + +## Provider Recovery for Cron + +Cron jobs inherit fallback_providers and credential pool rotation. Per-job provider override: + +```python +cronjob(action="create", schedule="every 2h", + provider="openrouter", model="google/gemini-3-flash-preview", + prompt="Check server status") +``` + +## Scheduled Task (Chat) + +``` +/cron add "every 1h" "Summarize new feed items" --skill blogwatcher +``` + +## Key ngn-agent Use Cases + +| Use Case | How | +|----------|-----| +| Daily report | Cron + skill → delivered to Telegram | +| Stale session cleanup | Cron + no-agent script to list, archive old sessions | +| Jira summary | Cron + MCP Jira skill → delivered to Telegram | +| Infra health check | Cron + no-agent script, deliver only on error | +| S3 cleanup monitoring | Cron + AWS CLI script, wakeAgent only when issue found | + +## ngn-agent should NOT build + +- Custom scheduler (use Hermes cron) +- Report delivery system (use cron delivery targets) +- Script execution (use no-agent mode) \ No newline at end of file diff --git a/.planning/research/hermes/EXTENSIBILITY.md b/.planning/research/hermes/EXTENSIBILITY.md new file mode 100644 index 0000000..7511876 --- /dev/null +++ b/.planning/research/hermes/EXTENSIBILITY.md @@ -0,0 +1,109 @@ +# Hermes Agent: Extensibility (Plugins, MCP, Profiles) + +## Plugin System + +Plugins add tools, hooks, CLI commands, and slash commands without modifying Hermes core. + +### Structure +``` +~/.hermes/plugins/my-plugin/ +├── plugin.yaml # Manifest +├── __init__.py # register(ctx) — wires schemas to handlers +├── schemas.py # Tool schemas (what the LLM sees) +└── tools.py # Tool handlers (what runs when called) +``` + +### Capabilities + +| Capability | API | Use for ngn-agent | +|------------|-----|-------------------| +| Add tools | `ctx.register_tool()` | Jira/Confluence tools | +| Add hooks | `ctx.register_hook()` | Log infra commands, enforce guardrails | +| Add slash commands | `ctx.register_command()` | /jira, /confluence shortcuts | +| Add CLI commands | `ctx.register_cli_command()` | `ngn check-health`, `ngn report` | +| Inject messages | `ctx.inject_message()` | Alert the agent mid-conversation | +| Bundle skills | `ctx.register_skill()` | Ship infra skills with plugin | +| LLM access | `ctx.llm.complete()` | Run LLM calls from plugin code | +| Register platform | `ctx.register_platform()` | Custom gateway channels | + +### Plugin Lifecycle + +```bash +hermes plugins # Interactive toggle UI +hermes plugins list # Table: enabled/disabled/not enabled +hermes plugins install user/repo # Install from GitHub +hermes plugins enable my-plugin # Add to allow-list +``` + +Plugins are opt-in: `plugins.enabled` in config.yaml + +### Available Hooks + +| Hook | Fires | Use | +|------|-------|-----| +| pre_tool_call | Before any tool | Log all commands, check IAM scope | +| post_tool_call | After any tool | Capture tool results for audit | +| pre_llm_call | Once per turn | Inject context like current IAM role | +| post_llm_call | After LLM turn | Save learnings | +| on_session_start | New session | Set up context, load env facts | +| on_session_end | Session ends | Archive session, capture memory | + +## MCP (Model Context Protocol) + +MCP servers add external tools by declaring them in config.yaml: + +```yaml +mcp_servers: + github: + command: npx + args: ["-y", "@modelcontextprotocol/server-github"] + env: + GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_..." +``` + +**No plugin code needed** — just config. Tools are auto-discovered and registered alongside built-in tools. Perfect for Jira, Confluence, or any MCP-compatible service. + +## Profiles (Multi-Agent) + +Profiles are separate Hermes homes with their own config, .env, memory, skills, and gateway. + +```bash +hermes profile create coder # Create profile + "coder" CLI command +coder chat # Chat with coder profile +coder gateway start # Start coder's gateway separately + +hermes profile list # Show all profiles +hermes profile use coder # Set as sticky default +``` + +### Storage +``` +~/.hermes/ # Default profile +~/.hermes/profiles/coder/ # Named profile +~/.hermes/profiles/research/ # Another profile +``` + +### Profile Sharing +```bash +hermes profile export coder # Export as tar.gz +hermes profile install github.com/you/research-bot # Install from git +``` + +Each profile can have different: +- LLM providers/models +- Bot tokens (separate Telegram bot per profile) +- Skills +- Memory +- Cron jobs +- Security settings + +## ngn-agent Implications + +- **Don't build a plugin system** — Hermes already has one +- **Use MCP for Jira/Confluence** — no code, just config +- **Create a custom plugin** for ngn-agent-specific hooks: + - `pre_tool_call` hook to verify IAM scope before AWS commands + - `on_session_start` hook to inject current environment context + - `post_tool_call` hook to audit all infra actions +- **Use profiles** if ngn-agent needs separate identities (e.g., dev vs prod gateways) +- **Profile isolation** means we can run multiple ngn-agent instances independently \ No newline at end of file diff --git a/.planning/research/hermes/GATEWAY.md b/.planning/research/hermes/GATEWAY.md new file mode 100644 index 0000000..a3c939e --- /dev/null +++ b/.planning/research/hermes/GATEWAY.md @@ -0,0 +1,105 @@ +# Hermes Agent: Gateway System (Messaging) + +## Platform Support + +Hermes supports 20+ messaging platforms. Key ones for ngn-agent: + +| Platform | Voice | Images | Files | Threads | Reactions | Typing | Streaming | +|----------|-------|--------|-------|---------|-----------|--------|-----------| +| **Telegram** | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ | +| **Discord** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Slack** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Microsoft Teams** | — | ✅ | — | ✅ | — | ✅ | — | +| **Email** | — | ✅ | ✅ | ✅ | — | — | — | + +## Telegram Setup + +```bash +# Interactive wizard +hermes gateway setup + +# Or manual: +# 1. Create bot via @BotFather → get token +# 2. Set TELEGRAM_BOT_TOKEN in ~/.hermes/.env +# 3. Set TELEGRAM_ALLOWED_USERS or use DM pairing +# 4. Start gateway: hermes gateway +# 5. Register as service: hermes gateway install +``` + +## Security & User Authorization + +**Default: deny all.** Every user must be in an allowlist or paired via DM. + +```yaml +# Allowlist (recommended for known users) +TELEGRAM_ALLOWED_USERS=123456789 + +# DM pairing (alternative — users get pairing codes) +# User DMs bot → gets code "XKGH5N7P" +# Admin approves: hermes pairing approve telegram XKGH5N7P +# Code expires 1hr, cryptographic randomness, rate-limited + +# Admin vs Regular user split +gateway: + platforms: + telegram: + extra: + allow_from: ["111", "222"] + allow_admin_from: ["111"] + user_allowed_commands: [status, model] +``` + +## Session Management + +```yaml +session_reset: + mode: both # both | idle | daily | none + idle_minutes: 1440 # 24 hours + at_hour: 4 # 4 AM daily +``` + +Per-platform overrides: +```json +{ + "reset_by_platform": { + "telegram": { "mode": "idle", "idle_minutes": 240 } + } +} +``` + +## Gateway Commands + +``` +hermes gateway # Run in foreground +hermes gateway setup # Configure platforms interactively +hermes gateway install # Install as service (launchd/systemd) +hermes gateway start/stop/status +``` + +## Gateway Slash Commands (inside chat) + +`/new /reset /model /retry /undo /status /stop /approve /deny /sethome` +`/compress /background /platform /skills /cron /help` + +## Multi-Platform Operations + +- `/platform list|pause|resume` — manage individual adapters without restart +- Automatic circuit breaker — pauses adapter on repeated failures +- Restart notifications — sends "agent is back" to home channels +- Session resume across restarts — auto-recovers interrupted sessions + +## Admin vs Regular Users + +Two tiers: admin (full access) and user (restricted slash commands). Configured per platform per scope (DM vs group). Use `/whoami` to check your access. + +## Background Sessions + +`/background Check all servers` spawns isolated async agent. Results delivered to originating chat when done. Non-blocking — main chat stays interactive. + +## Key ngn-agent Considerations + +- **Start with Telegram** — most accessible, mobile-friendly +- **Use DM pairing** for initial setup, switch to allowlist for stability +- **Set session_reset.mode: idle** with longer timeout for infra context retention +- **Background sessions** perfect for `"Check all prod servers"` type commands +- **Circuit breaker** auto-pauses Telegram if API goes down — monitor gateway logs \ No newline at end of file diff --git a/.planning/research/hermes/MEMORY.md b/.planning/research/hermes/MEMORY.md new file mode 100644 index 0000000..acb5fa7 --- /dev/null +++ b/.planning/research/hermes/MEMORY.md @@ -0,0 +1,81 @@ +# Hermes Agent: Memory System Deep Dive + +## Built-in Memory + +### MEMORY.md (Agent's Notes) +- Capacity: 2,200 chars (~800 tokens) +- Stores: environment facts, project conventions, lessons learned, completed work +- Format: frozen snapshot at session start in system prompt +- Tool: `memory` with actions add/replace/remove +- Auto-saves: agent proactively saves facts it discovers +- Compaction: when full, agent consolidates or removes entries + +### USER.md (User Profile) +- Capacity: 1,375 chars (~500 tokens) +- Stores: preferences, communication style, expectations +- Write gating: `memory.write_approval: true` requires approval before saves + +### Session Search +- FTS5 full-text search on all past conversations +- Unlimited storage (all sessions in SQLite) +- `session_search` tool for the agent; `hermes sessions list` for the user +- ~20ms queries, no LLM call cost for search + +## External Memory Providers (8 total) + +| Provider | Storage | Cost | Tools | Best For | +|----------|---------|------|-------|----------| +| **Honcho** | Cloud | Paid | 5 | Multi-agent, cross-session user modeling | +| **OpenViking** | Self-hosted | Free | 5 | Structured knowledge hierarchy | +| **Mem0** | Cloud | Paid | 3 | Hands-off auto extraction | +| **Hindsight** | Cloud/Local | Free/Paid | 3 | Knowledge graph + entity relationships | +| **Holographic** | Local SQLite | Free | 2 | No external deps, trust scoring | +| **RetainDB** | Cloud | $20/mo | 5 | Teams using RetainDB | +| **ByteRover** | Local/Cloud | Free/Paid | 3 | Portable CLI-based memory | +| **Supermemory** | Cloud | Paid | 4 | Semantic recall + session graph | + +## Recommended for ngn-agent + +**Phase 2 start:** Built-in memory only — sufficient for ~15 env facts + ~10 user preferences. + +**If more capacity needed:** Holographic (local SQLite + FTS5, zero external deps) or Honcho (cross-session user modeling with dialectic reasoning, good for platform engineering context that spans multiple projects). + +## Key Settings + +```yaml +memory: + memory_enabled: true + user_profile_enabled: true + memory_char_limit: 2200 + user_char_limit: 1375 + write_approval: false # true to require approval before saves + nudge_interval: 10 # turns between save nudges + flush_min_turns: 6 # save memories on exit/reset after N turns +``` + +## What the Agent Auto-Saves + +The agent proactively saves: +- User preferences ("prefers TypeScript" → USER.md) +- Environment facts ("this server runs Debian 12" → MEMORY.md) +- Corrections ("don't use sudo for Docker" → MEMORY.md) +- Conventions ("project uses tabs" → MEMORY.md) +- Completed work ("migrated DB from MySQL to PG" → MEMORY.md) + +## What It Skips + +- Trivial/obvious info +- Easily web-searchable facts +- Raw data dumps +- Session-specific ephemera +- Info already in context files + +## Memory Write Approval Flow + +```yaml +# When write_approval: true: +# CLI: prompts inline +# Gateway: stages for /memory pending → /memory approve +``` + +Toggle at runtime: `/memory approval on|off` \ No newline at end of file diff --git a/.planning/research/hermes/SECURITY.md b/.planning/research/hermes/SECURITY.md new file mode 100644 index 0000000..0786a54 --- /dev/null +++ b/.planning/research/hermes/SECURITY.md @@ -0,0 +1,150 @@ +# Hermes Agent: Security Model & Safety Features + +## 7-Layer Security Model + +1. User authorization (allowlists, DM pairing) +2. Dangerous command approval (manual/smart/off) +3. Container isolation (Docker with hardened settings) +4. MCP credential filtering (env stripping for subprocesses) +5. Context file scanning (prompt injection detection) +6. Cross-session isolation (no data sharing between sessions) +7. Input sanitization (working directory allowlist) + +## Dangerous Command Approval + +Three modes in `~/.hermes/config.yaml`: + +```yaml +approvals: + mode: manual # manual | smart | off + timeout: 60 # seconds to wait for response + cron_mode: deny # deny | approve — what cron does when hitting dangerous cmd +``` + +### Pattern Detection + +Hermes detects and prompts on these patterns (non-exhaustive): + +| Category | Patterns | +|----------|---------| +| Delete | `rm -r`, `rm --recursive`, `rm ... /` | +| Permissions | `chmod 777/666`, `o+w`, `a+w` | +| Filesystem | `mkfs`, `dd if=`, `> /dev/sd` | +| SQL | `DROP TABLE`, `DELETE FROM` (no WHERE), `TRUNCATE` | +| System | `> /etc/`, `systemctl stop/restart`, `kill -9 -1` | +| Remote exec | `curl ... | sh`, `bash <(curl ...)` | +| Script exec | `python -e`, `perl -e`, `ruby -e` | +| Sensitive writes | `tee`/`>`/`>>` to `/etc/`, `~/.ssh/`, `~/.hermes/.env` | + +### Hardline Blocklist (Always-On, Even in YOLO Mode) + +- `rm -rf /` and variants +- Fork bombs (`:(){ :|:& };:`) +- `mkfs.*` on mounted root +- `dd if=/dev/zero of=/dev/sd*` +- Piping untrusted URLs to `sh` at rootfs level + +### Approval Flow + +``` +⚠️ DANGEROUS COMMAND: recursive delete + rm -rf /tmp/old-project + [o]nce | [s]ession | [a]lways | [d]eny +``` + +### YOLO Mode + +``` +hermes --yolo # Bypass all approval prompts for this session +/yolo # Toggle in-session +``` + +**YOLO does NOT bypass the hardline blocklist.** + +## Docker Container Hardening + +```bash +--cap-drop ALL # Drop ALL Linux capabilities +--cap-add DAC_OVERRIDE,CHOWN,FOWNER # Only add back what's needed +--security-opt no-new-privileges # Block privilege escalation +--pids-limit 256 # Limit process count +--tmpfs /tmp:rw,nosuid,size=512m # Size-limited temp dirs +``` + +**Important:** When terminal backend is `docker`, dangerous command checks are **skipped** — the container itself is the security boundary. This is by design. + +## Tirith Pre-Exec Scanning + +Optional scanner for content-level threats: +- Homograph URL spoofing +- Pipe-to-interpreter patterns +- Terminal injection attacks + +```yaml +security: + tirith_enabled: true + tirith_fail_open: true # Allow commands if tirith unavailable +``` + +## SSRF Protection + +All URL-capable tools block: +- Private networks (RFC 1918): `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16` +- Loopback: `127.0.0.0/8`, `::1` +- Cloud metadata: `metadata.google.internal`, `169.254.169.254` +- CGNAT: `100.64.0.0/10` + +Opt-out: `security.allow_private_urls: true` (not recommended for ngn-agent) + +## Context File Injection Protection + +Scans AGENTS.md, .cursorrules, SOUL.md for: +- Instructions to ignore prior instructions +- Hidden HTML comments with suspicious keywords +- Attempts to read secrets (`.env`, credentials) +- Credential exfiltration via `curl` +- Invisible Unicode characters + +Blocked files show: `[BLOCKED: file contained potential prompt injection]` + +## MCP Credential Handling + +Only `PATH, HOME, USER, LANG, LC_ALL, TERM, SHELL, TMPDIR` passed to MCP subprocesses. +All API keys, tokens, secrets are stripped. +Explicit `env:` config in mcp_servers is passed through intentionally. + +## Website Blocklist + +```yaml +security: + website_blocklist: + enabled: true + domains: + - "*.internal.company.com" + - "admin.example.com" +``` + +## Key ngn-agent Implications + +| Concern | Mitigation | +|---------|------------| +| Mutating AWS commands in Docker | IAM policy on dev_Restricted role — the real safety net | +| rm -rf / inside container | Container is ephemeral, but hardline blocklist still blocks it | +| Agent modifying own code | Docker terminal means it can't touch host files | +| Accidental terraform apply | Container has limited IAM — won't have apply perms | +| Prompt injection | Context file scanning + approval system + container isolation | +| AWS creds inside container | `./.aws/` mounted read-only, limited role, no admin access | + +## ngn-agent Config + +```yaml +# Our Phase 1 config +approvals: + mode: manual # Start with manual approvals + timeout: 60 + cron_mode: deny # Never auto-approve dangerous commands in cron + +terminal: + backend: docker # Container is our security boundary + # ... see config.yaml for details +``` \ No newline at end of file diff --git a/.planning/research/hermes/SKILLS.md b/.planning/research/hermes/SKILLS.md new file mode 100644 index 0000000..3f4bca2 --- /dev/null +++ b/.planning/research/hermes/SKILLS.md @@ -0,0 +1,79 @@ +# Hermes Agent: Skills System Deep Dive + +## What It Is + +Skills are on-demand knowledge documents (SKILL.md files) that the agent loads when needed. Progressive disclosure minimizes token usage — the agent only loads full content when actually executing a skill. + +## Architecture + +``` +Level 0: skills_list() → [{name, description, category}] (~3k tokens) +Level 1: skill_view(name) → Full content + metadata (varies) +Level 2: skill_view(name, path) → Specific reference file (varies) +``` + +## Storage + +``` +~/.hermes/skills/ # Single source of truth +├── devops/ +│ └── deploy-k8s/ +│ ├── SKILL.md # Main instructions (required) +│ ├── references/ +│ ├── templates/ +│ ├── scripts/ +│ └── assets/ +├── .hub/ # Skills Hub state +│ ├── lock.json +│ ├── quarantine/ +│ └── audit.log +└── .bundled_manifest # Tracks seeded bundled skills +``` + +## How ngn-agent Should Use This + +**DON'T BUILD a custom skill system** — Hermes already has it. Instead: + +1. **Author custom skills** as SKILL.md files in `~/.hermes/skills/` or via the skill hub tap system +2. **Use skill bundles** to group related infra workflows under one command +3. **Let the agent self-improve** — `skill_manage` tool creates/updates skills after complex tasks +4. **Publish as a tap** if sharing with a team: `hermes skills tap add myorg/ngn-skills` + +## SKILL.md Format + +```yaml +--- +name: my-skill +description: Brief description +version: 1.0.0 +platforms: [macos, linux] +metadata: + hermes: + tags: [python, automation] + category: devops + requires_toolsets: [terminal] +--- +# Skill Title +## Procedure +1. Step one +2. Step two +## Pitfalls +## Verification +``` + +## Key Capabilities for ngn-agent + +| Capability | Description | Use for ngn-agent | +|------------|-------------|-------------------| +| Skill Hub install | `hermes skills install openai/skills/k8s` | Install community infra skills | +| Agent-created skills | Agent auto-saves workflows as skills | Self-improving diagnostic skills | +| Skill bundles | `hermes bundles create infra --skill aws-diagnostics --skill jira` | Group related tools | +| External dirs | `skills.external_dirs: [~/.agents/skills]` | Share skills across tools | +| Conditional activation | `fallback_for_toolsets/frequires_toolsets` | Only show skills when needed | +| Write approval gating | `skills.write_approval: true` | Safety gate for agent-created skills | + +## Limitations + +- Skills are per-profile (each Hermes profile has its own `~/.hermes/skills/`) +- External dirs are not read-only by default (agent can modify shared skills) +- Skills Hub requires GitHub API (60 req/hr unauthenticated, 5000 with GITHUB_TOKEN) \ No newline at end of file diff --git a/.planning/research/hermes/SUMMARY.md b/.planning/research/hermes/SUMMARY.md new file mode 100644 index 0000000..a9414b6 --- /dev/null +++ b/.planning/research/hermes/SUMMARY.md @@ -0,0 +1,67 @@ +# Hermes Agent: Feature Research Summary + +**Context:** This research maps Hermes v0.16.0 capabilities so ngn-agent doesn't reimplement what Hermes already provides. All features listed are built-in — ngn-agent should leverage them, not rebuild them. + +**Date:** 2026-06-14 + +--- + +## What Hermes Does Out of the Box (Don't Reinvent) + +- Multi-session management with resume (hermes --continue, sessions list) +- Persistent memory (MEMORY.md + USER.md) with auto-learning +- Full-text session search (FTS5 on SQLite) +- 8 external memory providers (Honcho, Mem0, Hindsight, OpenViking, Holographic, RetainDB, ByteRover, Supermemory) +- Skills system with progressive disclosure (3-level loading) +- Skills Hub with 8 search sources (official, skills.sh, well-known, GitHub, ClawHub, LobeHub, browse.sh, direct URL) +- Git worktree isolation (hermes -w) +- Agent-created skills (skill_manage tool) - self-improving by default +- Skill bundles (group skills under one slash command) +- Cron/automation with 30+ delivery targets +- No-agent cron mode (script-only, zero LLM cost) +- Multi-provider fallback (credential pools + cross-provider) +- Docker container backend with security hardening +- Dangerous command approval (manual/smart/off modes) +- Hardline blocklist for catastrophic commands +- 20+ messaging platforms (Telegram, Discord, Slack, WhatsApp, Signal, Teams, etc.) +- DM pairing for gateway authorization +- Session isolation with configurable reset policies +- Profiles for multi-agent setups +- Plugin system (tools + hooks + commands) +- MCP server integration +- Context compression with configurable thresholds +- Worktree isolation for git parallel branch work +- SOUL.md for personality/identity +- Subagent delegation (delegate_task) +- Background sessions (/background) +- Kanban multi-agent board +- Docker sandbox with --cap-drop ALL, no-new-privileges, PID limits +- SSRF protection and tirith pre-exec scanning + +## What ngn-agent Needs to Build + +Based on initial-plan.md, these features are NOT built into Hermes: + +1. **Jira integration** — Hermes has no built-in Jira tool. Need custom skill or MCP server +2. **Confluence integration** — Same, need custom skill or MCP server +3. **Infrastructure-specific diagnostics** — Generic skills exist but no AWS/terraform-specific ones by default +4. **Read-only infra safety layer** — Hermes has dangerous command approval but nothing specific to cloud APIs +5. **Auto session cleanup (30d archive)** — Hermes has session reset policies but not our specific archive flow +6. **Telegram gateway** — Hermes supports it, just needs bot token config +7. **SSO session automation** — Need custom startup script (already created scripts/start-session.sh) +8. **Custom reporting pipeline** — Cron + skills can provide this + +## Key Limitations to Know + +| Area | Limitation | +|------|------------| +| Memory capacity | MEMORY.md: ~800 tokens, USER.md: ~500 tokens. External providers (Honcho, etc.) remove this limit. | +| Docker dangerous commands | Checks are skipped in Docker mode — container is the boundary | +| Cron provider recovery | Inherits fallback_providers; per-job provider override available | +| Gateway user authorization | Allowlists or DM pairing required — denies all by default | +| Skills are per-profile | Each Hermes profile has its own skills directory | +| Plugin discovery | User plugins opt-in via plugins.enabled in config.yaml | + +## Recommended Memory Strategy for ngn-agent + +Start with built-in memory (MEMORY.md + USER.md) — no external deps needed. If the ~1300 token limit is hit, add Honcho (cross-session user modeling) or Holographic (local SQLite with FTS5 search, no external deps). \ No newline at end of file diff --git a/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/_bootlocale.cpython-39.pyc b/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/_bootlocale.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ada84d93d0e6c2a8abb99a4056213d3f6a0ef6db GIT binary patch literal 1306 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

bn~uA=p-|w;JmHaLJ@X#Ok>D5 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 literal 0 HcmV?d00001 diff --git a/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/encodings/aliases.cpython-39.pyc b/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/encodings/aliases.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..05c1ab4073f993627c59b93f4f522e03b15e806c GIT binary patch literal 6409 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 E1u}GNv;Y7A literal 0 HcmV?d00001 diff --git a/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/genericpath.cpython-39.pyc b/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/genericpath.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b2a97aeb89a181264187449dd15e60fb63317614 GIT binary patch literal 4103 zcmcInTW=f36`t8$E?3mWwvzagw86k=6EjdLJ84=Zae9+4Fkm=_B_t@}mR;=(r4^UE z^vuu}h2=}t0!5$tSRg217k$YO%0str?Nk0jU)=A^in1iT2Aral=6*ZZ@0^Vn7h4R! zzyIT(Y4I9k|DwUspNGNEP|P1tN!DeOOE2SH?pm+wZ87Qpm3Ms^$j0wjH;|!hqHV}X z&Y=xuOU|Qh$_2TIHj+#76xum?TAo4MlFRZnwDaM^}u!hY~J9)gwwMJKkCn+tf80{RC`O7J?15Q!a4hb z<>v!tJ?rRlCJ58*zPGi){ys&IDbeTFuhU)zQJ0k5;!-u5_BvyPeTQ`*`>?$;r8a=kXNPLo^)Qy@wHp`^cx_%?N!|9v*?{7C0y>XH#17rAhlsf!;A*BH*`}hc@G=3#Ye}070A&^?eHWmp&$rd8Yx1-i! z{0pgVfV!U^p_azSsHF*F!P#ntPRUF}P;JqZ-UVj4_4?kvXWk<~x4}-MWc%JepE4Vw z$EVyjUF+GXW*k z0QMM&4kLpj%)HrpP zsiwJOM3Y(gD30j2(V4;6)N?)lgin3zk&^do(!YL=^h0gd;C!6!II-h6bL0!e_&RR_ zP`6qFzYWTM@Gq5B8hWZRk!%6XrQjb5+oa?nmm>W^jzD!}#@(Rf)F9b%!5~p1%B(16 zP|`L-R*}S6h8#|))MX+wdPP4@Go)HX$WichQfdcXuYU#Q{r@guiuJ!nsU;k?c#CVA z`yVCz@pBTUMD0L?n>)xm&5I;WVd8*|s?jHVnla+{M_0P2Uc$;e$Q~TB;yG4mE+GS% z{U`_?;>aH{DA{9JI7|d6pf9?Shf%|F;6h{H!#wTqF&CC$84LowR|b-wW7B5YEW-iA zn4#CCIYN%o2a=2kmCDeKSs6-?dVQE5?fWs#KDdfg*dra<&{cs(&ha6EOts|s4$jE_26b&VEedHNrjVhNbBHhXhjcv|gX5fTP z=14Ys@schIyMoNbwl97{jTpugv56~&BRlDQ;{eRT7`(Zm`)MxqI}l|%s`#k#jT%*9 zoLSf6G}>;2>Q*k*Zg;+3sRt3Bu6v8K48aXg;6OFkGb9*XHo-fFkcl;0Jb<;fpyH`RX}|pwVvJxv{bL$)&c4^%l@NhXBV= z1|*2obOkAsRR|k^68QIB;QQ@#fHcLq#ftkp+v}{w`MWrl?$Qw`jNpNiEu0i-UVn!i z1{H%8S%5Lf-s-C1c2#p5lTrO~0rB+`n1ku{s;Ji^BkJ|qjc!EWaWtv|5Nf*NHuhNE zjnKL~Gzt2oE>8E7ZIujqIMTCt!u$!F3?)kpN{FD6kP1{1J`K6|G(b;(iq-a+s@dzw zBI)&xW{JHXpbb+5;Vx0vyOasq6h_$D!N*K i%Kn6G)(BKV14MdJGn$VUqPeKy{=#S(GmFtubnZVe66|FF literal 0 HcmV?d00001 diff --git a/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/io.cpython-39.pyc b/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/io.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4d93eed95f8c0fa08fd13f210c74906db1ad17d GIT binary patch literal 3487 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 CZSXw+ literal 0 HcmV?d00001 diff --git a/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/posixpath.cpython-39.pyc b/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/posixpath.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4b7d879a30ebdb3cce37bc8b3d8ab6addaeb0f3f GIT binary patch literal 10408 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 Z!c(;$v(Mlg-G0VCZtp?+QwUeo{s(`~Xc7Pb literal 0 HcmV?d00001 diff --git a/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site.cpython-39.pyc b/Library/Caches/com.apple.python/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..10543b6689f6f929e5df5524d8462d3a6cc29c05 GIT binary patch literal 17473 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 C_VtPY literal 0 HcmV?d00001