@@ -6,6 +6,7 @@ import { Provider } from "../provider/provider"
66import { Log } from "../util/log"
77import type { Skill } from "../skill"
88import type { Fingerprint } from "./fingerprint"
9+ import { Tracer } from "./observability/tracing"
910
1011const log = Log . create ( { service : "skill-selector" } )
1112
@@ -58,12 +59,21 @@ export async function selectSkillsWithLLM(
5859 fingerprint : Fingerprint . Result | undefined ,
5960 deps ?: SkillSelectorDeps ,
6061) : Promise < Skill . Info [ ] > {
62+ const startTime = Date . now ( )
63+
6164 // Return cached result if cwd hasn't changed (0ms)
6265 const cwd = fingerprint ?. cwd
6366 if ( cachedResult && cwd === cachedCwd ) {
6467 log . info ( "returning cached skill selection" , {
6568 count : cachedResult . length ,
6669 } )
70+ Tracer . active ?. logSpan ( {
71+ name : "skill-selection" ,
72+ startTime,
73+ endTime : Date . now ( ) ,
74+ input : { fingerprint : fingerprint ?. tags , source : "cache" } ,
75+ output : { count : cachedResult . length , skills : cachedResult . map ( ( s ) => s . name ) } ,
76+ } )
6777 return cachedResult
6878 }
6979
@@ -147,11 +157,26 @@ export async function selectSkillsWithLLM(
147157 count : matched . length ,
148158 names : matched . map ( ( s ) => s . name ) ,
149159 } )
160+ Tracer . active ?. logSpan ( {
161+ name : "skill-selection" ,
162+ startTime,
163+ endTime : Date . now ( ) ,
164+ input : { fingerprint : fingerprint ?. tags , totalSkills : skills . length , source : "llm" } ,
165+ output : { count : matched . length , skills : matched . map ( ( s ) => s . name ) } ,
166+ } )
150167 return cache ( matched )
151168 } catch ( e ) {
152169 log . info ( "skill selection failed, returning all skills" , {
153170 error : e instanceof Error ? e . message : String ( e ) ,
154171 } )
172+ Tracer . active ?. logSpan ( {
173+ name : "skill-selection" ,
174+ startTime,
175+ endTime : Date . now ( ) ,
176+ status : "error" ,
177+ input : { fingerprint : fingerprint ?. tags , source : "fallback" } ,
178+ output : { count : skills . length , error : e instanceof Error ? e . message : String ( e ) } ,
179+ } )
155180 return cache ( skills )
156181 }
157182}
0 commit comments