aidevops 3.32.313 → 3.32.315

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
@@ -1,7 +1,7 @@
1
1
  <!-- SPDX-License-Identifier: MIT -->
2
2
  <!-- SPDX-FileCopyrightText: 2025-2026 Marcus Quinn -->
3
3
 
4
- ![AI DevOps social graph preview](docs/assets/og-image.png)
4
+ ![AI DevOps 15 main agents, 2,250+ sub agents, 2,140+ helper scripts, and 100+ slash commands](docs/assets/og-image.png)
5
5
 
6
6
  # AI DevOps Framework
7
7
 
@@ -60,7 +60,7 @@ The result: an AI operations platform that manages projects across every busines
60
60
  [![Copyright](https://img.shields.io/badge/Copyright-Marcus%20Quinn%202025--2026-blue.svg)](https://github.com/marcusquinn)
61
61
 
62
62
  <!-- Release & Version Info -->
63
- [![Version](https://img.shields.io/badge/Version-3.32.313-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
63
+ [![Version](https://img.shields.io/badge/Version-3.32.315-blue.svg)](https://github.com/marcusquinn/aidevops/releases)
64
64
  [![npm version](https://img.shields.io/npm/v/aidevops)](https://www.npmjs.com/package/aidevops)
65
65
  [![Homebrew](https://img.shields.io/badge/homebrew-marcusquinn%2Ftap-orange)](https://github.com/marcusquinn/homebrew-tap)
66
66
  [![GitHub repository](https://img.shields.io/badge/github-repository-181717.svg?logo=github)](https://github.com/marcusquinn/aidevops)
@@ -126,10 +126,12 @@ the required notices and preferred credit text.
126
126
 
127
127
  ### Agent Structure
128
128
 
129
- - 14 primary agents (Build+, Automate, Product, SEO, Marketing-Sales, etc.) with specialist @subagents on demand
130
- - 2,350+ agent and subagent markdown files organized by domain
131
- - 1,960+ helper scripts in `.agents/scripts/`
132
- - 210+ slash commands and workflow guides for common operations
129
+ - 15 primary agents (Build+, Automate, Product, SEO, Marketing-Sales, etc.) with specialist @subagents on demand
130
+ - 2,250+ supporting Markdown guides: subagents, skills, references, templates, commands, and workflows organized by domain
131
+ - 2,140+ scripts in `.agents/scripts/` (shell helpers and tests)
132
+ - 100+ slash commands and 100+ workflow guides for common operations
133
+
134
+ Counts checked on 5 September 2026: 15 root agent files (excluding `AGENTS.md`), 2,268 regular Markdown files in `.agents/` subdirectories (excluding symlink aliases), 2,146 shell scripts, 106 slash-command entry points, and 104 workflow guides. Command and workflow source guides are included in the supporting-guide total, not additional agents. See [hero count maintenance](DESIGN.md#readme-hero-counts) for sources and refresh instructions.
133
135
 
134
136
  ### What You Can Ask aidevops To Do
135
137
 
@@ -143,6 +145,7 @@ the required notices and preferred credit text.
143
145
 
144
146
  Since the last README feature refresh, aidevops has added or expanded:
145
147
 
148
+ - **Local harness evaluation pilot**: compare OpenCode with the aidevops plugin through ChatGPT OAuth and local Docker, with verifier results and context/compaction telemetry. See the [FrontierHarness pilot and measured limitations](.agents/tools/ai-assistants/frontier-harness-eval.md); this is not a leaderboard-superiority claim.
146
149
  - **Evidence-based model routing**: sealed historical replay evaluates model tiers and reasoning effort against deterministic hidden checks, with isolated macOS and Linux sandboxes and an explicit trusted-local posture that cannot automatically change routing (`.agents/workflows/optimize-tiers.md`).
147
150
  - **Indexed worker worktrees**: dispatched linked worktrees can initialize branch-local CodeGraph indexes asynchronously, with bounded queues, disk-capacity checks, and failure isolation from worker launch (`.agents/scripts/codegraph-worktree-init-helper.sh`).
148
151
  - **Audited non-Git deployment copies**: reviewed worktree content can converge into allowlisted stable runtime directories through dry-run manifests, private receipts, verified activation, recovery, and rollback (`.agents/reference/dirty-worktree-preservation.md`).
@@ -839,9 +842,9 @@ aidevops implements proven agent design patterns identified by [Lance Martin (La
839
842
 
840
843
  | Pattern | Description | aidevops Implementation |
841
844
  |---------|-------------|------------------------|
842
- | **Give Agents a Computer** | Filesystem + shell for persistent context | `~/.aidevops/.agent-workspace/`, 1,960+ helper scripts |
845
+ | **Give Agents a Computer** | Filesystem + shell for persistent context | `~/.aidevops/.agent-workspace/`, 2,140+ scripts (shell helpers and tests) |
843
846
  | **Multi-Layer Action Space** | Few tools, push actions to computer | Per-agent MCP filtering (~12-20 tools each) |
844
- | **Knowledge Graph Routing** | Indexed, cross-referenced agents instead of isolated skills | `subagent-index.toon` maps 2,350+ agents by domain, purpose, and dependency — agents discover related context through the graph, not just their own file |
847
+ | **Knowledge Graph Routing** | Indexed, cross-referenced agents instead of isolated skills | `subagent-index.toon` routes agent context within a library of 2,250+ supporting guides — agents discover related context through the graph, not just their own file |
845
848
  | **Progressive Disclosure** | Load context on-demand | Subagent routing with content summaries, YAML frontmatter, read-on-demand |
846
849
  | **Offload Context** | Write results to filesystem | `.agent-workspace/work/[project]/` for persistence |
847
850
  | **Cache Context** | Prompt caching for cost | Stable instruction prefixes |
@@ -1901,7 +1904,7 @@ aidevops is registered as a **Claude Code plugin marketplace**. Install with two
1901
1904
  /plugin install aidevops@aidevops
1902
1905
  ```
1903
1906
 
1904
- This installs the complete framework: 14 primary agents, 2,350+ subagents, and 1,960+ helper scripts.
1907
+ This installs the complete framework: 15 primary agents, 2,250+ supporting guides, and 2,140+ scripts (shell helpers and tests).
1905
1908
 
1906
1909
  ### Importing External Skills
1907
1910
 
@@ -2054,7 +2057,7 @@ The long-term direction is to make slash commands and `@mentions` unnecessary al
2054
2057
 
2055
2058
  ### **Example Subagents with MCP Integration**
2056
2059
 
2057
- These are examples of subagents that have supporting MCPs enabled. See `.agents/` for the full list of 2,350+ subagents organized by domain.
2060
+ These are examples of subagents that have supporting MCPs enabled. See `.agents/` for the library of 2,250+ supporting guides organized by domain.
2058
2061
 
2059
2062
  | Agent | Purpose | MCPs Enabled |
2060
2063
  |-------|---------|--------------|
@@ -2761,8 +2764,8 @@ aidevops/
2761
2764
  ├── AGENTS.md # AI agent guidance (dev)
2762
2765
  ├── .agents/ # Agents and documentation
2763
2766
  │ ├── AGENTS.md # User guide (deployed to ~/.aidevops/agents/)
2764
- │ ├── *.md # 12 primary agents
2765
- │ ├── scripts/ # 1,480+ helper scripts
2767
+ │ ├── *.md # 15 primary agents
2768
+ │ ├── scripts/ # 2,140+ shell scripts (helpers and tests)
2766
2769
  │ ├── tools/ # Cross-domain utilities (video, browser, git, etc.)
2767
2770
  │ ├── services/ # External service integrations
2768
2771
  │ └── workflows/ # Development process guides
@@ -2886,7 +2889,7 @@ See `.agents/tools/credentials/multi-tenant.md` for complete documentation.
2886
2889
  - Autonomous supervisor — pulse runs every 2 minutes, merging PRs, dispatching workers, killing stuck processes, advancing missions
2887
2890
  - Operational intelligence — struggle-ratio detection, orphaned PR recovery, circuit breaker, dynamic concurrency
2888
2891
  - Cost-aware routing — provider-aware model selection across OpenAI, Anthropic, Gemini, Cursor, Grok, and local models with budget tracking
2889
- - Progressive context — 2,350+ subagents loaded on demand, project bundles auto-configuring quality gates and model tiers
2892
+ - Progressive context — 2,250+ supporting guides available on demand, project bundles auto-configuring quality gates and model tiers
2890
2893
  - Self-improving — session mining extracts learnings, quality findings auto-create tasks, patterns feed back into agent prompts
2891
2894
 
2892
2895
  **Get Started:**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.32.313
1
+ 3.32.315
package/aidevops.sh CHANGED
@@ -5,7 +5,7 @@
5
5
  # AI DevOps Framework CLI
6
6
  # Usage: aidevops <command> [options]
7
7
  #
8
- # Version: 3.32.313
8
+ # Version: 3.32.315
9
9
 
10
10
  set -euo pipefail
11
11
 
@@ -1,10 +1,10 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="182" height="20" role="img" aria-label="dependencies: 123 direct">
2
- <title>dependencies: 123 direct</title>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="182" height="20" role="img" aria-label="dependencies: 125 direct">
2
+ <title>dependencies: 125 direct</title>
3
3
  <linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient>
4
4
  <clipPath id="r"><rect width="182" height="20" rx="3" fill="#fff"/></clipPath>
5
5
  <g clip-path="url(#r)"><rect width="98" height="20" fill="#555"/><rect x="98" width="84" height="20" fill="#4c1"/><rect width="182" height="20" fill="url(#s)"/></g>
6
6
  <g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11">
7
7
  <text x="49.0" y="15" fill="#010101" fill-opacity=".3">dependencies</text><text x="49.0" y="14">dependencies</text>
8
- <text x="140.0" y="15" fill="#010101" fill-opacity=".3">123 direct</text><text x="140.0" y="14">123 direct</text>
8
+ <text x="140.0" y="15" fill="#010101" fill-opacity=".3">125 direct</text><text x="140.0" y="14">125 direct</text>
9
9
  </g>
10
10
  </svg>
@@ -3,21 +3,21 @@
3
3
  <rect width="520" height="96" fill="#ffffff"/>
4
4
  <rect x="20" y="10" width="480" height="14" rx="3" fill="#eaecef"/>
5
5
  <rect x="20" y="10" width="271" height="14" fill="#89e051"/>
6
- <rect x="291" y="10" width="117" height="14" fill="#083fa1"/>
7
- <rect x="408" y="10" width="61" height="14" fill="#e34c26"/>
8
- <rect x="469" y="10" width="12" height="14" fill="#3572A5"/>
9
- <rect x="481" y="10" width="10" height="14" fill="#f1e05a"/>
10
- <rect x="491" y="10" width="9" height="14" fill="#292929"/>
6
+ <rect x="291" y="10" width="91" height="14" fill="#083fa1"/>
7
+ <rect x="382" y="10" width="44" height="14" fill="#3572A5"/>
8
+ <rect x="426" y="10" width="41" height="14" fill="#e34c26"/>
9
+ <rect x="467" y="10" width="21" height="14" fill="#f1e05a"/>
10
+ <rect x="488" y="10" width="12" height="14" fill="#292929"/>
11
11
  <rect x="20" y="34" width="10" height="10" rx="2" fill="#89e051"/>
12
- <text x="34" y="44" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Shell <tspan fill="#57606a">54.7%</tspan></text>
12
+ <text x="34" y="44" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Shell <tspan fill="#57606a">55.1%</tspan></text>
13
13
  <rect x="270" y="34" width="10" height="10" rx="2" fill="#083fa1"/>
14
- <text x="284" y="44" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Markdown <tspan fill="#57606a">23.6%</tspan></text>
15
- <rect x="20" y="50" width="10" height="10" rx="2" fill="#e34c26"/>
16
- <text x="34" y="60" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">HTML <tspan fill="#57606a">12.4%</tspan></text>
17
- <rect x="270" y="50" width="10" height="10" rx="2" fill="#3572A5"/>
18
- <text x="284" y="60" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Python <tspan fill="#57606a">2.5%</tspan></text>
14
+ <text x="284" y="44" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Markdown <tspan fill="#57606a">18.5%</tspan></text>
15
+ <rect x="20" y="50" width="10" height="10" rx="2" fill="#3572A5"/>
16
+ <text x="34" y="60" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Python <tspan fill="#57606a">9.0%</tspan></text>
17
+ <rect x="270" y="50" width="10" height="10" rx="2" fill="#e34c26"/>
18
+ <text x="284" y="60" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">HTML <tspan fill="#57606a">8.5%</tspan></text>
19
19
  <rect x="20" y="66" width="10" height="10" rx="2" fill="#f1e05a"/>
20
- <text x="34" y="76" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">JavaScript <tspan fill="#57606a">2.1%</tspan></text>
20
+ <text x="34" y="76" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">JavaScript <tspan fill="#57606a">4.4%</tspan></text>
21
21
  <rect x="270" y="66" width="10" height="10" rx="2" fill="#292929"/>
22
- <text x="284" y="76" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">JSON <tspan fill="#57606a">1.4%</tspan></text>
22
+ <text x="284" y="76" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">JSON <tspan fill="#57606a">1.7%</tspan></text>
23
23
  </svg>
@@ -3,21 +3,21 @@
3
3
  <rect width="520" height="96" fill="#ffffff"/>
4
4
  <rect x="20" y="10" width="480" height="14" rx="3" fill="#eaecef"/>
5
5
  <rect x="20" y="10" width="271" height="14" fill="#89e051"/>
6
- <rect x="291" y="10" width="117" height="14" fill="#083fa1"/>
7
- <rect x="408" y="10" width="61" height="14" fill="#e34c26"/>
8
- <rect x="469" y="10" width="12" height="14" fill="#3572A5"/>
9
- <rect x="481" y="10" width="10" height="14" fill="#f1e05a"/>
10
- <rect x="491" y="10" width="9" height="14" fill="#292929"/>
6
+ <rect x="291" y="10" width="91" height="14" fill="#083fa1"/>
7
+ <rect x="382" y="10" width="44" height="14" fill="#3572A5"/>
8
+ <rect x="426" y="10" width="41" height="14" fill="#e34c26"/>
9
+ <rect x="467" y="10" width="21" height="14" fill="#f1e05a"/>
10
+ <rect x="488" y="10" width="12" height="14" fill="#292929"/>
11
11
  <rect x="20" y="34" width="10" height="10" rx="2" fill="#89e051"/>
12
- <text x="34" y="44" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Shell <tspan fill="#57606a">54.7%</tspan></text>
12
+ <text x="34" y="44" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Shell <tspan fill="#57606a">55.1%</tspan></text>
13
13
  <rect x="270" y="34" width="10" height="10" rx="2" fill="#083fa1"/>
14
- <text x="284" y="44" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Markdown <tspan fill="#57606a">23.6%</tspan></text>
15
- <rect x="20" y="50" width="10" height="10" rx="2" fill="#e34c26"/>
16
- <text x="34" y="60" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">HTML <tspan fill="#57606a">12.4%</tspan></text>
17
- <rect x="270" y="50" width="10" height="10" rx="2" fill="#3572A5"/>
18
- <text x="284" y="60" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Python <tspan fill="#57606a">2.5%</tspan></text>
14
+ <text x="284" y="44" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Markdown <tspan fill="#57606a">18.5%</tspan></text>
15
+ <rect x="20" y="50" width="10" height="10" rx="2" fill="#3572A5"/>
16
+ <text x="34" y="60" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">Python <tspan fill="#57606a">9.0%</tspan></text>
17
+ <rect x="270" y="50" width="10" height="10" rx="2" fill="#e34c26"/>
18
+ <text x="284" y="60" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">HTML <tspan fill="#57606a">8.5%</tspan></text>
19
19
  <rect x="20" y="66" width="10" height="10" rx="2" fill="#f1e05a"/>
20
- <text x="34" y="76" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">JavaScript <tspan fill="#57606a">2.1%</tspan></text>
20
+ <text x="34" y="76" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">JavaScript <tspan fill="#57606a">4.4%</tspan></text>
21
21
  <rect x="270" y="66" width="10" height="10" rx="2" fill="#292929"/>
22
- <text x="284" y="76" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">JSON <tspan fill="#57606a">1.4%</tspan></text>
22
+ <text x="284" y="76" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11" fill="#24292f">JSON <tspan fill="#57606a">1.7%</tspan></text>
23
23
  </svg>
@@ -1,10 +1,10 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="154" height="20" role="img" aria-label="lines of code: 1.03M">
2
- <title>lines of code: 1.03M</title>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="154" height="20" role="img" aria-label="lines of code: 1.49M">
2
+ <title>lines of code: 1.49M</title>
3
3
  <linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient>
4
4
  <clipPath id="r"><rect width="154" height="20" rx="3" fill="#fff"/></clipPath>
5
5
  <g clip-path="url(#r)"><rect width="105" height="20" fill="#555"/><rect x="105" width="49" height="20" fill="#007ec6"/><rect width="154" height="20" fill="url(#s)"/></g>
6
6
  <g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11">
7
7
  <text x="52.5" y="15" fill="#010101" fill-opacity=".3">lines of code</text><text x="52.5" y="14">lines of code</text>
8
- <text x="129.5" y="15" fill="#010101" fill-opacity=".3">1.03M</text><text x="129.5" y="14">1.03M</text>
8
+ <text x="129.5" y="15" fill="#010101" fill-opacity=".3">1.49M</text><text x="129.5" y="14">1.49M</text>
9
9
  </g>
10
10
  </svg>
@@ -1,10 +1,10 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="154" height="20" role="img" aria-label="lines of code: 1.03M">
2
- <title>lines of code: 1.03M</title>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="154" height="20" role="img" aria-label="lines of code: 1.49M">
2
+ <title>lines of code: 1.49M</title>
3
3
  <linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient>
4
4
  <clipPath id="r"><rect width="154" height="20" rx="3" fill="#fff"/></clipPath>
5
5
  <g clip-path="url(#r)"><rect width="105" height="20" fill="#555"/><rect x="105" width="49" height="20" fill="#007ec6"/><rect width="154" height="20" fill="url(#s)"/></g>
6
6
  <g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="11">
7
7
  <text x="52.5" y="15" fill="#010101" fill-opacity=".3">lines of code</text><text x="52.5" y="14">lines of code</text>
8
- <text x="129.5" y="15" fill="#010101" fill-opacity=".3">1.03M</text><text x="129.5" y="14">1.03M</text>
8
+ <text x="129.5" y="15" fill="#010101" fill-opacity=".3">1.49M</text><text x="129.5" y="14">1.49M</text>
9
9
  </g>
10
10
  </svg>
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "aidevops.repo-metrics.v1",
3
3
  "schema_version": 1,
4
- "generated_at": "2026-07-03T19:02:38Z",
4
+ "generated_at": "2026-09-05T04:13:50Z",
5
5
  "tool": {
6
6
  "name": "aidevops repo-metrics",
7
7
  "version": "1.0.0"
@@ -11,111 +11,111 @@
11
11
  "slug": "marcusquinn/aidevops"
12
12
  },
13
13
  "summary": {
14
- "source_files": 5298,
15
- "code": 1025070,
16
- "comments": 148493,
17
- "blanks": 209430,
18
- "languages": 15,
19
- "dependencies": 123
14
+ "source_files": 7186,
15
+ "code": 1493498,
16
+ "comments": 160857,
17
+ "blanks": 262512,
18
+ "languages": 16,
19
+ "dependencies": 125
20
20
  },
21
21
  "languages": [
22
22
  {
23
23
  "name": "Shell",
24
- "files": 1722,
25
- "code": 561171,
26
- "comments": 135081,
27
- "blanks": 100128,
28
- "percentage": 54.74,
24
+ "files": 2318,
25
+ "code": 823273,
26
+ "comments": 144832,
27
+ "blanks": 121646,
28
+ "percentage": 55.12,
29
29
  "color": "#89e051"
30
30
  },
31
31
  {
32
32
  "name": "Markdown",
33
- "files": 2923,
34
- "code": 241678,
33
+ "files": 3163,
34
+ "code": 276146,
35
35
  "comments": 0,
36
- "blanks": 80839,
37
- "percentage": 23.58,
36
+ "blanks": 91029,
37
+ "percentage": 18.49,
38
38
  "color": "#083fa1"
39
39
  },
40
+ {
41
+ "name": "Python",
42
+ "files": 799,
43
+ "code": 135028,
44
+ "comments": 3325,
45
+ "blanks": 22343,
46
+ "percentage": 9.04,
47
+ "color": "#3572A5"
48
+ },
40
49
  {
41
50
  "name": "HTML",
42
51
  "files": 54,
43
- "code": 126975,
52
+ "code": 126973,
44
53
  "comments": 0,
45
54
  "blanks": 14712,
46
- "percentage": 12.39,
55
+ "percentage": 8.5,
47
56
  "color": "#e34c26"
48
57
  },
49
- {
50
- "name": "Python",
51
- "files": 151,
52
- "code": 25472,
53
- "comments": 1487,
54
- "blanks": 5535,
55
- "percentage": 2.48,
56
- "color": "#3572A5"
57
- },
58
58
  {
59
59
  "name": "JavaScript",
60
- "files": 131,
61
- "code": 21312,
62
- "comments": 7488,
63
- "blanks": 3230,
64
- "percentage": 2.08,
60
+ "files": 391,
61
+ "code": 65999,
62
+ "comments": 8241,
63
+ "blanks": 7221,
64
+ "percentage": 4.42,
65
65
  "color": "#f1e05a"
66
66
  },
67
67
  {
68
68
  "name": "JSON",
69
- "files": 110,
70
- "code": 14764,
69
+ "files": 213,
70
+ "code": 26031,
71
71
  "comments": 0,
72
- "blanks": 203,
73
- "percentage": 1.44,
72
+ "blanks": 205,
73
+ "percentage": 1.74,
74
74
  "color": "#292929"
75
75
  },
76
76
  {
77
77
  "name": "TypeScript",
78
- "files": 82,
79
- "code": 12227,
80
- "comments": 1771,
81
- "blanks": 1727,
82
- "percentage": 1.19,
78
+ "files": 96,
79
+ "code": 14359,
80
+ "comments": 1708,
81
+ "blanks": 1947,
82
+ "percentage": 0.96,
83
83
  "color": "#3178c6"
84
84
  },
85
85
  {
86
86
  "name": "YAML",
87
- "files": 83,
88
- "code": 9580,
89
- "comments": 2407,
90
- "blanks": 1515,
91
- "percentage": 0.93,
87
+ "files": 102,
88
+ "code": 12051,
89
+ "comments": 2489,
90
+ "blanks": 1664,
91
+ "percentage": 0.81,
92
92
  "color": "#cb171e"
93
93
  },
94
94
  {
95
95
  "name": "CSS",
96
96
  "files": 2,
97
- "code": 6215,
97
+ "code": 6862,
98
98
  "comments": 11,
99
- "blanks": 915,
100
- "percentage": 0.61,
99
+ "blanks": 1020,
100
+ "percentage": 0.46,
101
101
  "color": "#563d7c"
102
102
  },
103
103
  {
104
104
  "name": "TSX",
105
- "files": 33,
106
- "code": 5198,
105
+ "files": 37,
106
+ "code": 5863,
107
107
  "comments": 169,
108
- "blanks": 566,
109
- "percentage": 0.51,
108
+ "blanks": 638,
109
+ "percentage": 0.39,
110
110
  "color": "#3178c6"
111
111
  },
112
112
  {
113
113
  "name": "AWK",
114
- "files": 3,
115
- "code": 262,
114
+ "files": 4,
115
+ "code": 613,
116
116
  "comments": 0,
117
- "blanks": 14,
118
- "percentage": 0.03,
117
+ "blanks": 38,
118
+ "percentage": 0.04,
119
119
  "color": "#c30e9b"
120
120
  },
121
121
  {
@@ -127,13 +127,22 @@
127
127
  "percentage": 0.01,
128
128
  "color": "#e38c00"
129
129
  },
130
+ {
131
+ "name": "SVG",
132
+ "files": 3,
133
+ "code": 84,
134
+ "comments": 3,
135
+ "blanks": 3,
136
+ "percentage": 0.01,
137
+ "color": "#6e7781"
138
+ },
130
139
  {
131
140
  "name": "TOML",
132
141
  "files": 1,
133
142
  "code": 61,
134
143
  "comments": 13,
135
144
  "blanks": 11,
136
- "percentage": 0.01,
145
+ "percentage": 0.0,
137
146
  "color": "#9c4221"
138
147
  },
139
148
  {
@@ -156,19 +165,28 @@
156
165
  }
157
166
  ],
158
167
  "dependencies": {
159
- "direct": 123,
160
- "locked": 0,
161
- "total": 123,
168
+ "direct": 125,
169
+ "locked": 51,
170
+ "total": 125,
162
171
  "ecosystems": [
163
172
  "npm",
164
173
  "python"
165
174
  ],
166
175
  "manifests": [
176
+ {
177
+ "path": ".agents/package.json",
178
+ "ecosystem": "npm",
179
+ "direct": 1,
180
+ "locked": 5,
181
+ "dependencies": [
182
+ "ajv"
183
+ ]
184
+ },
167
185
  {
168
186
  "path": ".agents/plugins/opencode-aidevops/package.json",
169
187
  "ecosystem": "npm",
170
188
  "direct": 3,
171
- "locked": 0,
189
+ "locked": 46,
172
190
  "dependencies": [
173
191
  "@bufbuild/protobuf",
174
192
  "@opencode-ai/plugin",
@@ -233,7 +251,7 @@
233
251
  {
234
252
  "path": "package.json",
235
253
  "ecosystem": "npm",
236
- "direct": 12,
254
+ "direct": 14,
237
255
  "locked": 0,
238
256
  "dependencies": [
239
257
  "@secretlint/secretlint-rule-preset-recommend",
@@ -241,7 +259,9 @@
241
259
  "@types/react",
242
260
  "@types/react-dom",
243
261
  "@vitejs/plugin-react",
262
+ "ajv",
244
263
  "elysia",
264
+ "file-type",
245
265
  "hono",
246
266
  "react",
247
267
  "react-dom",
@@ -6,31 +6,32 @@ Generated by `aidevops metrics generate`.
6
6
  ## Summary
7
7
 
8
8
  | Metric | Value |
9
- |---|---:|
10
- | Source files | 5,298 |
11
- | Lines of code | 1,025,070 |
12
- | Comment lines | 148,493 |
13
- | Blank lines | 209,430 |
14
- | Languages | 15 |
15
- | Direct dependencies | 123 |
16
- | Locked/total dependencies | 123 |
9
+ | --- | ---: |
10
+ | Source files | 7,186 |
11
+ | Lines of code | 1,493,498 |
12
+ | Comment lines | 160,857 |
13
+ | Blank lines | 262,512 |
14
+ | Languages | 16 |
15
+ | Direct dependencies | 125 |
16
+ | Locked/total dependencies | 125 |
17
17
 
18
18
  ## Languages
19
19
 
20
20
  | Language | Code lines | Files | Share |
21
- |---|---:|---:|---:|
22
- | Shell | 561,171 | 1,722 | 54.7% |
23
- | Markdown | 241,678 | 2,923 | 23.6% |
24
- | HTML | 126,975 | 54 | 12.4% |
25
- | Python | 25,472 | 151 | 2.5% |
26
- | JavaScript | 21,312 | 131 | 2.1% |
27
- | JSON | 14,764 | 110 | 1.4% |
28
- | TypeScript | 12,227 | 82 | 1.2% |
29
- | YAML | 9,580 | 83 | 0.9% |
30
- | CSS | 6,215 | 2 | 0.6% |
31
- | TSX | 5,198 | 33 | 0.5% |
32
- | AWK | 262 | 3 | 0.0% |
21
+ | --- | ---: | ---: | ---: |
22
+ | Shell | 823,273 | 2,318 | 55.1% |
23
+ | Markdown | 276,146 | 3,163 | 18.5% |
24
+ | Python | 135,028 | 799 | 9.0% |
25
+ | HTML | 126,973 | 54 | 8.5% |
26
+ | JavaScript | 65,999 | 391 | 4.4% |
27
+ | JSON | 26,031 | 213 | 1.7% |
28
+ | TypeScript | 14,359 | 96 | 1.0% |
29
+ | YAML | 12,051 | 102 | 0.8% |
30
+ | CSS | 6,862 | 2 | 0.5% |
31
+ | TSX | 5,863 | 37 | 0.4% |
32
+ | AWK | 613 | 4 | 0.0% |
33
33
  | SQL | 99 | 1 | 0.0% |
34
+ | SVG | 84 | 3 | 0.0% |
34
35
  | TOML | 61 | 1 | 0.0% |
35
36
  | Ruby | 47 | 1 | 0.0% |
36
37
  | Dockerfile | 9 | 1 | 0.0% |
@@ -38,14 +39,15 @@ Generated by `aidevops metrics generate`.
38
39
  ## Dependency manifests
39
40
 
40
41
  | Ecosystem | Manifest | Direct | Locked |
41
- |---|---|---:|---:|
42
- | npm | `.agents/plugins/opencode-aidevops/package.json` | 3 | 0 |
42
+ | --- | --- | ---: | ---: |
43
+ | npm | `.agents/package.json` | 1 | 5 |
44
+ | npm | `.agents/plugins/opencode-aidevops/package.json` | 3 | 46 |
43
45
  | npm | `.agents/scripts/accessibility/package.json` | 1 | 0 |
44
46
  | npm | `.agents/scripts/higgsfield/package.json` | 1 | 0 |
45
47
  | npm | `.agents/scripts/higgsfield/remotion/package.json` | 10 | 0 |
46
48
  | npm | `.agents/scripts/package.json` | 1 | 0 |
47
49
  | npm | `.agents/scripts/simplex-bot/package.json` | 2 | 0 |
48
- | npm | `package.json` | 12 | 0 |
50
+ | npm | `package.json` | 14 | 0 |
49
51
  | npm | `packages/gui-api/package.json` | 0 | 0 |
50
52
  | npm | `packages/gui-desktop/package.json` | 0 | 0 |
51
53
  | npm | `packages/gui-shared/package.json` | 0 | 0 |
@@ -53,5 +55,7 @@ Generated by `aidevops metrics generate`.
53
55
  | python | `requirements-lock.txt` | 81 | 0 |
54
56
  | python | `requirements.txt` | 14 | 0 |
55
57
 
56
- Refresh policy: run locally when needed, or use the managed weekly/24h-fresh workflow. The scanner uses git-tracked/unignored files and does not contact external services by default.
58
+ Refresh policy: run locally when needed, or use the managed weekly/24h-fresh
59
+ workflow. The scanner uses git-tracked/unignored files and does not contact
60
+ external services by default.
57
61
  <!-- aidevops:repo-metrics:end -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "3.32.313",
3
+ "version": "3.32.315",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.11",
package/setup.sh CHANGED
@@ -17,7 +17,7 @@ fi
17
17
  # AI Assistant Server Access Framework Setup Script
18
18
  # Helps developers set up the framework for their infrastructure
19
19
  #
20
- # Version: 3.32.313
20
+ # Version: 3.32.315
21
21
  #
22
22
  # Quick Install:
23
23
  # npm install -g aidevops && aidevops update (recommended)