@@ -2,10 +2,23 @@ import { Command, Option } from 'clipanion';
22import { resolve } from 'node:path' ;
33import { existsSync } from 'node:fs' ;
44import chalk from 'chalk' ;
5+ import type { AgentType } from '@skillkit/core' ;
56import { SessionManager , findAllSkills , loadConfig , getProjectConfigPath } from '@skillkit/core' ;
67import { detectAgent , getAdapter } from '@skillkit/agents' ;
78import { getSearchDirs } from '../helpers.js' ;
89
10+ interface StatusOverview {
11+ agent : string ;
12+ config : string | null ;
13+ configAgent : string ;
14+ version : string ;
15+ totalSkills : number ;
16+ projectSkills : number ;
17+ globalSkills : number ;
18+ skillsDir : string ;
19+ recentHistory : Array < { status : string ; skillName : string ; completedAt : string } > ;
20+ }
21+
922/**
1023 * Status command - show current session state
1124 */
@@ -137,8 +150,8 @@ export class StatusCommand extends Command {
137150 return 0 ;
138151 }
139152
140- private async buildOverview ( manager : SessionManager ) : Promise < Record < string , unknown > > {
141- let agent = 'universal' ;
153+ private async buildOverview ( manager : SessionManager ) : Promise < StatusOverview > {
154+ let agent : AgentType = 'universal' ;
142155 try {
143156 agent = await detectAgent ( ) ;
144157 } catch {
@@ -160,15 +173,15 @@ export class StatusCommand extends Command {
160173
161174 let searchDirs : string [ ] = [ ] ;
162175 try {
163- searchDirs = getSearchDirs ( agent as any ) ;
176+ searchDirs = getSearchDirs ( agent ) ;
164177 } catch {
165178 // fallback
166179 }
167180
168181 const allSkills = findAllSkills ( searchDirs ) ;
169182 const projectSkills = allSkills . filter ( s => s . location === 'project' ) ;
170183 const globalSkills = allSkills . filter ( s => s . location === 'global' ) ;
171- const adapter = getAdapter ( agent as any ) ;
184+ const adapter = getAdapter ( agent ) ;
172185 const recentHistory = manager . getHistory ( 3 ) ;
173186
174187 return {
@@ -184,26 +197,24 @@ export class StatusCommand extends Command {
184197 } ;
185198 }
186199
187- private showOverview ( overview : Record < string , unknown > ) : void {
200+ private showOverview ( overview : StatusOverview ) : void {
188201 console . log ( '' ) ;
189202 console . log ( chalk . cyan ( ' Project Overview' ) ) ;
190- console . log ( ` Agent: ${ chalk . bold ( String ( overview . agent ) ) } ` ) ;
203+ console . log ( ` Agent: ${ chalk . bold ( overview . agent ) } ` ) ;
191204 console . log ( ` Config: ${ overview . config ? chalk . green ( 'skillkit.yaml' ) : chalk . dim ( 'none (defaults)' ) } ` ) ;
192- console . log ( ` Version: ${ chalk . bold ( String ( overview . version ) ) } ` ) ;
205+ console . log ( ` Version: ${ chalk . bold ( overview . version ) } ` ) ;
193206 console . log ( '' ) ;
194207
195- const total = overview . totalSkills as number ;
196- console . log ( chalk . cyan ( ` Skills (${ total } installed)` ) ) ;
208+ console . log ( chalk . cyan ( ` Skills (${ overview . totalSkills } installed)` ) ) ;
197209 console . log ( ` Project: ${ overview . projectSkills } skills in ${ overview . skillsDir } ` ) ;
198210 console . log ( ` Global: ${ overview . globalSkills } skills` ) ;
199211 console . log ( '' ) ;
200212
201213 console . log ( chalk . cyan ( ' Recent Activity' ) ) ;
202- const history = overview . recentHistory as Array < { status : string ; skillName : string ; completedAt : string } > ;
203- if ( history . length === 0 ) {
214+ if ( overview . recentHistory . length === 0 ) {
204215 console . log ( chalk . dim ( ' No recent executions.' ) ) ;
205216 } else {
206- for ( const entry of history ) {
217+ for ( const entry of overview . recentHistory ) {
207218 const statusColor = entry . status === 'completed' ? chalk . green : chalk . red ;
208219 console . log ( ` ${ statusColor ( '\u25cf' ) } ${ entry . skillName } - ${ new Date ( entry . completedAt ) . toLocaleDateString ( ) } ` ) ;
209220 }
0 commit comments