99 */
1010component extends = " coldbox-cli.models.BaseAICommand" {
1111
12+ // DI
13+ property name = " agentRegistry" inject = " AgentRegistry@coldbox-cli" ;
14+
1215 /**
1316 * Run the command
1417 *
@@ -53,17 +56,29 @@ component extends="coldbox-cli.models.BaseAICommand" {
5356
5457 // Overview
5558 print .boldCyanLine ( " 📊 Overview" )
56- print .line ( " Language: #arguments .stats .language #" )
57- print .line ( " Template: #arguments .stats .templateType #" )
58- print .line ( " Last Sync: #arguments .stats .lastSync #" )
59+ var overviewData = [
60+ [ " Language" , arguments .stats .language ],
61+ [ " Template" , arguments .stats .templateType ],
62+ [ " Last Sync" , arguments .stats .lastSync ]
63+ ]
64+ print .table (
65+ headerNames = [ " Property" , " Value" ],
66+ data = overviewData
67+ )
5968 print .line ()
6069
6170 // Guidelines
6271 print .boldGreenLine ( " 📚 Guidelines (#arguments .stats .guidelines .total #)" )
63- print .line ( " Core: #arguments .stats .guidelines .core #" )
64- print .line ( " Module: #arguments .stats .guidelines .module #" )
65- print .line ( " Custom: #arguments .stats .guidelines .custom #" )
66- print .line ( " Override: #arguments .stats .guidelines .override #" )
72+ var guidelinesData = [
73+ [ " Core" , arguments .stats .guidelines .core ],
74+ [ " Module" , arguments .stats .guidelines .module ],
75+ [ " Custom" , arguments .stats .guidelines .custom ],
76+ [ " Override" , arguments .stats .guidelines .override ]
77+ ]
78+ print .table (
79+ headerNames = [ " Type" , " Count" ],
80+ data = guidelinesData
81+ )
6782
6883 if ( arguments .verbose && arguments .stats .guidelines .totalSize > 0 ) {
6984 print .dim ( " Total Size: #variables .utility .formatBytes ( arguments .stats .guidelines .totalSize ) #" )
@@ -74,10 +89,16 @@ component extends="coldbox-cli.models.BaseAICommand" {
7489
7590 // Skills
7691 print .boldYellowLine ( " 🎯 Skills (#arguments .stats .skills .total #)" )
77- print .line ( " Core: #arguments .stats .skills .core #" )
78- print .line ( " Module: #arguments .stats .skills .module #" )
79- print .line ( " Custom: #arguments .stats .skills .custom #" )
80- print .line ( " Override: #arguments .stats .skills .override #" )
92+ var skillsData = [
93+ [ " Core" , arguments .stats .skills .core ],
94+ [ " Module" , arguments .stats .skills .module ],
95+ [ " Custom" , arguments .stats .skills .custom ],
96+ [ " Override" , arguments .stats .skills .override ]
97+ ]
98+ print .table (
99+ headerNames = [ " Type" , " Count" ],
100+ data = skillsData
101+ )
81102
82103 if ( arguments .verbose && arguments .stats .skills .totalSize > 0 ) {
83104 print .dim ( " Total Size: #variables .utility .formatBytes ( arguments .stats .skills .totalSize ) #" )
@@ -88,9 +109,16 @@ component extends="coldbox-cli.models.BaseAICommand" {
88109 // Agents
89110 print .boldMagentaLine ( " 🤖 Agents (#arguments .stats .agents .total #)" )
90111 if ( arguments .stats .agents .total > 0 ) {
112+ var agentFiles = variables .agentRegistry .getAgentConfigPaths ()
113+ var agentsData = []
91114 arguments .stats .agents .configured .each ( ( agent ) = > {
92- print .line ( " • #agent #" )
115+ var configFile = agentFiles [ agent ] ?: " Unknown"
116+ agentsData .append ( [ agent , configFile ] )
93117 } )
118+ print .table (
119+ headerNames = [ " Agent" , " Config File" ],
120+ data = agentsData
121+ )
94122 } else {
95123 print .dimLine ( " (none configured)" )
96124 }
@@ -99,16 +127,29 @@ component extends="coldbox-cli.models.BaseAICommand" {
99127
100128 // MCP Servers
101129 print .boldCyanLine ( " 🌐 MCP Servers (#arguments .stats .mcpServers .total #)" )
102- print .line ( " Core: #arguments .stats .mcpServers .core #" )
103- print .line ( " Module: #arguments .stats .mcpServers .module #" )
104- print .line ( " Custom: #arguments .stats .mcpServers .custom #" )
130+ var mcpData = [
131+ [ " Core" , arguments .stats .mcpServers .core ],
132+ [ " Module" , arguments .stats .mcpServers .module ],
133+ [ " Custom" , arguments .stats .mcpServers .custom ]
134+ ]
135+ print .table (
136+ headerNames = [ " Type" , " Count" ],
137+ data = mcpData
138+ )
105139 print .line ()
106140
107141 // Context Estimate
108142 print .boldWhiteLine ( " 💾 Estimated AI Context Usage" )
109- print .line ( " Guidelines: ~#arguments .stats .contextEstimate .guidelinesKB # KB" )
110- print .line ( " Skills: ~#arguments .stats .contextEstimate .skillsKB # KB" )
111- print .boldLine ( " Total: ~#arguments .stats .contextEstimate .totalKB # KB" )
143+ var contextData = [
144+ [ " Guidelines" , " ~#arguments .stats .contextEstimate .guidelinesKB # KB" ],
145+ [ " Skills" , " ~#arguments .stats .contextEstimate .skillsKB # KB" ],
146+ [ " Total" , " ~#arguments .stats .contextEstimate .totalKB # KB" ]
147+ ]
148+ print .table (
149+ headerNames = [ " Component" , " Size" ],
150+ data = contextData
151+ )
152+ print .line ()
112153
113154 // Show usage indicator based on common AI models (using GPT-4 128K as baseline)
114155 var estimatedTokens = arguments .stats .contextEstimate .totalKB * 300
@@ -171,7 +212,10 @@ component extends="coldbox-cli.models.BaseAICommand" {
171212
172213 // Tips
173214 printTip ( " Run 'coldbox ai tree' to see the structure" )
174- printTip ( " Run 'coldbox ai stats --verbose' for detailed breakdown" )
215+
216+ if ( ! arguments .verbose ){
217+ printTip ( " Run 'coldbox ai stats --verbose' for detailed breakdown" )
218+ }
175219 }
176220
177221}
0 commit comments