aidevops 2.100.19 → 2.101.0

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.
package/README.md CHANGED
@@ -92,9 +92,9 @@ The result: AI agents that work *with* your development process, not around it.
92
92
  ### Agent Structure
93
93
 
94
94
  - Primary agents (Build+, SEO, Marketing, etc.) with @plan-plus subagent for planning-only mode
95
- - 572+ subagent markdown files organized by domain
96
- - 157 helper scripts in `.agent/scripts/`
97
- - 22 slash commands for common workflows
95
+ - 614+ subagent markdown files organized by domain
96
+ - 164 helper scripts in `.agent/scripts/`
97
+ - 28 slash commands for common workflows
98
98
 
99
99
  <!-- AI-CONTEXT-END -->
100
100
 
@@ -480,7 +480,7 @@ aidevops implements proven agent design patterns identified by [Lance Martin (La
480
480
 
481
481
  | Pattern | Description | aidevops Implementation |
482
482
  |---------|-------------|------------------------|
483
- | **Give Agents a Computer** | Filesystem + shell for persistent context | `~/.aidevops/.agent-workspace/`, 157 helper scripts |
483
+ | **Give Agents a Computer** | Filesystem + shell for persistent context | `~/.aidevops/.agent-workspace/`, 164 helper scripts |
484
484
  | **Multi-Layer Action Space** | Few tools, push actions to computer | Per-agent MCP filtering (~12-20 tools each) |
485
485
  | **Progressive Disclosure** | Load context on-demand | Subagent routing with content summaries, YAML frontmatter, read-on-demand |
486
486
  | **Offload Context** | Write results to filesystem | `.agent-workspace/work/[project]/` for persistence |
@@ -489,7 +489,9 @@ aidevops implements proven agent design patterns identified by [Lance Martin (La
489
489
  | **Multi-Agent Orchestration** | Coordinate parallel agents | TOON mailbox, agent registry, stateless coordinator |
490
490
  | **Compaction Resilience** | Preserve context across compaction | OpenCode plugin injects dynamic state at compaction time |
491
491
  | **Ralph Loop** | Iterative execution until complete | `ralph-loop-helper.sh`, `full-loop-helper.sh` |
492
- | **Evolve Context** | Learn from sessions | `/remember`, `/recall` with SQLite FTS5 |
492
+ | **Evolve Context** | Learn from sessions | `/remember`, `/recall` with SQLite FTS5 + opt-in semantic search |
493
+ | **Pattern Tracking** | Learn what works/fails | `pattern-tracker-helper.sh`, `/patterns` command |
494
+ | **Cost-Aware Routing** | Match model to task complexity | `model-routing.md` with 5-tier guidance, `/route` command |
493
495
 
494
496
  **Key insight**: Context is a finite resource with diminishing returns. aidevops treats every token as precious - loading only what's needed, when it's needed.
495
497
 
@@ -518,7 +520,7 @@ Coordinator (pulse loop)
518
520
  | Mailbox | `mail-helper.sh` | TOON-based inter-agent messaging (send, check, broadcast, archive) |
519
521
  | Coordinator | `coordinator-helper.sh` | Stateless pulse loop: collect reports, dispatch tasks, track idle workers |
520
522
  | Registry | `mail-helper.sh register` | Agent registration with role, branch, worktree, heartbeat |
521
- | Model routing | `generate-opencode-agents.sh` | Maps agent tiers to cost-effective models |
523
+ | Model routing | `model-routing.md`, `/route` | Cost-aware 5-tier routing guidance (haiku/flash/sonnet/pro/opus) |
522
524
 
523
525
  **How it works:**
524
526
 
@@ -538,37 +540,64 @@ Coordinator (pulse loop)
538
540
 
539
541
  ### Parallel Agents & Headless Dispatch
540
542
 
541
- Run multiple AI sessions concurrently with isolated contexts:
543
+ Run multiple AI sessions concurrently with isolated contexts. Named **runners** provide persistent agent identities with their own instructions and memory.
542
544
 
543
545
  | Feature | Description |
544
546
  |---------|-------------|
545
- | **Headless dispatch** | `claude -p` / OpenCode server API for non-interactive execution |
546
- | **Session management** | Deterministic session IDs, resume with `--resume` |
547
- | **Memory namespaces** | Per-agent memory isolation with shared access when needed |
547
+ | **Headless dispatch** | `opencode run` for one-shot tasks, `opencode serve` + `--attach` for warm server |
548
+ | **Runners** | Named agent instances with per-runner AGENTS.md, config, and run logs (`runner-helper.sh`) |
549
+ | **Session management** | Resume sessions with `-s <id>` or `-c`, fork with SDK |
550
+ | **Memory namespaces** | Per-runner memory isolation with shared access when needed |
551
+ | **SDK orchestration** | `@opencode-ai/sdk` for TypeScript parallel dispatch via `Promise.all` |
548
552
  | **Matrix integration** | Chat-triggered dispatch via self-hosted Matrix (optional) |
549
553
 
554
+ ```bash
555
+ # Create a named runner
556
+ runner-helper.sh create code-reviewer --description "Reviews code for security and quality"
557
+
558
+ # Dispatch a task (one-shot)
559
+ runner-helper.sh run code-reviewer "Review src/auth/ for vulnerabilities"
560
+
561
+ # Dispatch against warm server (faster, no MCP cold boot)
562
+ opencode serve --port 4096 &
563
+ runner-helper.sh run code-reviewer "Review src/auth/" --attach http://localhost:4096
564
+
565
+ # Parallel dispatch via CLI
566
+ opencode run --attach http://localhost:4096 --title "Review" "Review src/auth/" &
567
+ opencode run --attach http://localhost:4096 --title "Tests" "Generate tests for src/utils/" &
568
+ wait
569
+
570
+ # List runners and status
571
+ runner-helper.sh list
572
+ runner-helper.sh status code-reviewer
573
+ ```
574
+
550
575
  **Architecture:**
551
576
 
552
577
  ```text
553
578
  OpenCode Server (opencode serve)
554
- ├── Session 1 (code-reviewer)
555
- ├── Session 2 (seo-analyst)
579
+ ├── Session 1 (runner/code-reviewer)
580
+ ├── Session 2 (runner/seo-analyst)
556
581
  └── Session 3 (scheduled-task)
557
582
 
558
583
  HTTP API / SSE Events
559
584
 
560
585
  ┌────────┴────────┐
561
- │ Dispatch Layer │ ← Matrix bot, cron, CLI
586
+ │ Dispatch Layer │ ← runner-helper.sh, cron, Matrix bot, SDK
562
587
  └─────────────────┘
563
588
  ```
564
589
 
590
+ **Example runner templates:** [code-reviewer](.agent/tools/ai-assistants/runners/code-reviewer.md), [seo-analyst](.agent/tools/ai-assistants/runners/seo-analyst.md) - copy and customize for your own runners.
591
+
592
+ **See:** [headless-dispatch.md](.agent/tools/ai-assistants/headless-dispatch.md) for full documentation including parallel vs sequential decision guide, SDK examples, CI/CD integration, and custom agent configuration.
593
+
565
594
  ### Self-Improving Agent System
566
595
 
567
596
  Agents that learn from experience and contribute improvements:
568
597
 
569
598
  | Phase | Description |
570
599
  |-------|-------------|
571
- | **Review** | Analyze memory for success/failure patterns |
600
+ | **Review** | Analyze memory for success/failure patterns (`pattern-tracker-helper.sh`) |
572
601
  | **Refine** | Generate and apply improvements to agents |
573
602
  | **Test** | Validate in isolated OpenCode sessions |
574
603
  | **PR** | Contribute to community with privacy filtering |
@@ -596,7 +625,7 @@ Cron-based agent dispatch for automated workflows:
596
625
 
597
626
  ```bash
598
627
  # Example: Daily SEO report at 9am
599
- 0 9 * * * ~/.aidevops/agents/scripts/droid-helper.sh dispatch "seo-analyst" "Generate daily SEO report"
628
+ 0 9 * * * ~/.aidevops/agents/scripts/runner-helper.sh run "seo-analyst" "Generate daily SEO report"
600
629
  ```
601
630
 
602
631
  **See:** [TODO.md](TODO.md) tasks t109-t118 for implementation status.
@@ -1252,7 +1281,7 @@ aidevops is registered as a **Claude Code plugin marketplace**. Install with two
1252
1281
  /plugin install aidevops@aidevops
1253
1282
  ```
1254
1283
 
1255
- This installs the complete framework: 14 primary agents, 572+ subagents, and 157 helper scripts.
1284
+ This installs the complete framework: 14 primary agents, 614+ subagents, and 163 helper scripts.
1256
1285
 
1257
1286
  ### Importing External Skills
1258
1287
 
@@ -1340,7 +1369,7 @@ Ordered as they appear in OpenCode Tab selector and other AI assistants (15 tota
1340
1369
 
1341
1370
  ### **Example Subagents with MCP Integration**
1342
1371
 
1343
- These are examples of subagents that have supporting MCPs enabled. See `.agent/` for the full list of 572+ subagents organized by domain.
1372
+ These are examples of subagents that have supporting MCPs enabled. See `.agent/` for the full list of 614+ subagents organized by domain.
1344
1373
 
1345
1374
  | Agent | Purpose | MCPs Enabled |
1346
1375
  |-------|---------|--------------|
@@ -1717,7 +1746,7 @@ See `.agent/workflows/session-manager.md` for the complete guide.
1717
1746
 
1718
1747
  ### Cross-Session Memory System
1719
1748
 
1720
- **"Compound, then clear"** - Sessions should build on each other. The memory system stores knowledge, patterns, and learnings for future sessions using SQLite FTS5 for fast full-text search.
1749
+ **"Compound, then clear"** - Sessions should build on each other. The memory system stores knowledge, patterns, and learnings for future sessions using SQLite FTS5 for fast full-text search, with opt-in semantic similarity search via vector embeddings.
1721
1750
 
1722
1751
  **Slash commands:**
1723
1752
 
@@ -1727,6 +1756,8 @@ See `.agent/workflows/session-manager.md` for the complete guide.
1727
1756
  | `/recall {query}` | Search memories by keyword |
1728
1757
  | `/recall --recent` | Show 10 most recent memories |
1729
1758
  | `/recall --stats` | Show memory statistics |
1759
+ | `/patterns {task}` | Show success/failure patterns for a task type |
1760
+ | `/route {task}` | Suggest optimal model tier for a task |
1730
1761
 
1731
1762
  **Memory types:**
1732
1763
 
@@ -1739,6 +1770,29 @@ See `.agent/workflows/session-manager.md` for the complete guide.
1739
1770
  | `TOOL_CONFIG` | Tool setup notes |
1740
1771
  | `DECISION` | Architecture decisions |
1741
1772
  | `CONTEXT` | Background info |
1773
+ | `SUCCESS_PATTERN` | Approaches that consistently work |
1774
+ | `FAILURE_PATTERN` | Approaches that consistently fail |
1775
+
1776
+ **Semantic search (opt-in):**
1777
+
1778
+ ```bash
1779
+ # Enable semantic similarity search (~90MB model download)
1780
+ memory-embeddings-helper.sh setup
1781
+
1782
+ # Search by meaning, not just keywords
1783
+ memory-helper.sh recall "how to optimize queries" --semantic
1784
+ ```
1785
+
1786
+ **Pattern tracking:**
1787
+
1788
+ ```bash
1789
+ # Record what worked
1790
+ pattern-tracker-helper.sh record --outcome success --task-type bugfix \
1791
+ --model sonnet --description "Structured debugging found root cause"
1792
+
1793
+ # Get suggestions for a new task
1794
+ pattern-tracker-helper.sh suggest "refactor the auth middleware"
1795
+ ```
1742
1796
 
1743
1797
  **CLI usage:**
1744
1798
 
@@ -1746,18 +1800,26 @@ See `.agent/workflows/session-manager.md` for the complete guide.
1746
1800
  # Store a memory
1747
1801
  ~/.aidevops/agents/scripts/memory-helper.sh store "WORKING_SOLUTION" "Fixed CORS with nginx headers" "cors,nginx"
1748
1802
 
1749
- # Recall memories
1803
+ # Recall memories (keyword search - default)
1750
1804
  ~/.aidevops/agents/scripts/memory-helper.sh recall "cors"
1751
1805
 
1806
+ # Recall memories (semantic similarity - opt-in)
1807
+ ~/.aidevops/agents/scripts/memory-helper.sh recall "cors" --semantic
1808
+
1752
1809
  # View statistics
1753
1810
  ~/.aidevops/agents/scripts/memory-helper.sh stats
1754
1811
 
1755
1812
  # Maintenance
1756
1813
  ~/.aidevops/agents/scripts/memory-helper.sh validate # Check for stale entries
1757
1814
  ~/.aidevops/agents/scripts/memory-helper.sh prune # Remove stale memories
1815
+
1816
+ # Namespaces (per-runner memory isolation)
1817
+ ~/.aidevops/agents/scripts/memory-helper.sh --namespace my-runner store --content "Runner learning"
1818
+ ~/.aidevops/agents/scripts/memory-helper.sh --namespace my-runner recall "query" --shared
1819
+ ~/.aidevops/agents/scripts/memory-helper.sh namespaces # List all namespaces
1758
1820
  ```
1759
1821
 
1760
- **Storage:** `~/.aidevops/.agent-workspace/memory/memory.db`
1822
+ **Storage:** `~/.aidevops/.agent-workspace/memory/memory.db` (+ optional `embeddings.db` for semantic search, `namespaces/` for per-runner isolation)
1761
1823
 
1762
1824
  See `.agent/memory/README.md` for complete documentation.
1763
1825
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.100.19
1
+ 2.101.0
package/aidevops.sh CHANGED
@@ -3,7 +3,7 @@
3
3
  # AI DevOps Framework CLI
4
4
  # Usage: aidevops <command> [options]
5
5
  #
6
- # Version: 2.100.10
6
+ # Version: 2.101.0
7
7
 
8
8
  set -euo pipefail
9
9
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "2.100.19",
3
+ "version": "2.101.0",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/setup.sh CHANGED
@@ -3,7 +3,7 @@
3
3
  # AI Assistant Server Access Framework Setup Script
4
4
  # Helps developers set up the framework for their infrastructure
5
5
  #
6
- # Version: 2.100.10
6
+ # Version: 2.101.0
7
7
  #
8
8
  # Quick Install (one-liner):
9
9
  # bash <(curl -fsSL https://aidevops.dev/install)
@@ -1952,6 +1952,17 @@ deploy_aidevops_agents() {
1952
1952
  print_info "Injected OpenCode plan-reminder into Plan+"
1953
1953
  fi
1954
1954
  fi
1955
+ # Migrate mailbox from TOON files to SQLite (if old files exist)
1956
+ local aidevops_workspace_dir="${AIDEVOPS_WORKSPACE_DIR:-$HOME/.aidevops/.agent-workspace}"
1957
+ local mail_dir="${AIDEVOPS_MAIL_DIR:-${aidevops_workspace_dir}/mail}"
1958
+ local mail_script="$target_dir/scripts/mail-helper.sh"
1959
+ if [[ -x "$mail_script" ]] && find "$mail_dir" -name "*.toon" 2>/dev/null | grep -q .; then
1960
+ if "$mail_script" migrate; then
1961
+ print_success "Mailbox migration complete"
1962
+ else
1963
+ print_warning "Mailbox migration had issues (non-critical, old files preserved)"
1964
+ fi
1965
+ fi
1955
1966
  else
1956
1967
  print_error "Failed to deploy agents"
1957
1968
  return 1
@@ -3717,7 +3728,22 @@ echo " aidevops uninstall - Remove aidevops"
3717
3728
  if [[ "$launch_onboarding" =~ ^[Yy]?$ || "$launch_onboarding" == "Y" ]]; then
3718
3729
  echo ""
3719
3730
  echo "Starting OpenCode with Onboarding agent..."
3720
- opencode --agent Onboarding --prompt "/onboarding"
3731
+ # Detect available auth provider and select appropriate model
3732
+ # Prefer Anthropic (Claude) > Google (Gemini) > OpenCode Zen > OpenAI
3733
+ local onboarding_model=""
3734
+ local auth_file="$HOME/.local/share/opencode/auth.json"
3735
+ if [[ -f "$auth_file" ]]; then
3736
+ if jq -e '.anthropic' "$auth_file" &>/dev/null; then
3737
+ onboarding_model="anthropic/claude-sonnet-4-5"
3738
+ elif jq -e '.google' "$auth_file" &>/dev/null; then
3739
+ onboarding_model="google/gemini-2.5-flash"
3740
+ fi
3741
+ fi
3742
+ local opencode_args=("--agent" "Onboarding" "--prompt" "/onboarding")
3743
+ if [[ -n "$onboarding_model" ]]; then
3744
+ opencode_args+=("--model" "$onboarding_model")
3745
+ fi
3746
+ opencode "${opencode_args[@]}"
3721
3747
  else
3722
3748
  echo ""
3723
3749
  echo "You can run /onboarding anytime in OpenCode to configure services."
@@ -63,7 +63,7 @@ create_backup_with_rotation() {
63
63
  if (( backup_count > BACKUP_KEEP_COUNT )); then
64
64
  local to_delete=$((backup_count - BACKUP_KEEP_COUNT))
65
65
  # Delete oldest backups (sorted by name = sorted by date)
66
- find "$backup_type_dir" -maxdepth 1 -type d -name "20*" -print0 2>/dev/null | sort -z | head -z -n "$to_delete" | xargs -0 rm -rf
66
+ find "$backup_type_dir" -maxdepth 1 -type d -name "20*" 2>/dev/null | sort | head -n "$to_delete" | while read -r old_backup; do rm -rf "$old_backup"; done
67
67
  print_info "Rotated backups: removed $to_delete old backup(s)"
68
68
  fi
69
69