Phase 7: add reinjectNow — force immediate re-inject of all tracked skills for debug.
Uses idle vs followUp delivery based on ctx.isIdle(); skips unregistered skills via existing buildReinjectBlocks warnings. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -150,6 +150,29 @@ export function sendImmediateReinjectAllFollowUp(
|
||||
}
|
||||
}
|
||||
|
||||
/** Force re-inject all tracked registered skills for /skill-reinject now (SPEC §7.1). */
|
||||
export function reinjectNow(
|
||||
pi: ExtensionAPI,
|
||||
state: ExtensionState,
|
||||
settings: SkillReinjectSettings,
|
||||
ctx: ExtensionContext,
|
||||
registeredSkills: readonly Pick<Skill, "name" | "filePath" | "baseDir">[],
|
||||
): void {
|
||||
const registered = registeredSkillNames(registeredSkills);
|
||||
const skillNames = state.skills.map((skill) => skill.name).filter((name) => registered.has(name));
|
||||
if (skillNames.length === 0) {
|
||||
if (ctx.hasUI) {
|
||||
ctx.ui.notify("skill-reinject: no tracked skills to re-inject", "info");
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (ctx.isIdle()) {
|
||||
sendImmediateReinjectIdle(pi, skillNames, state, settings, registeredSkills, ctx);
|
||||
return;
|
||||
}
|
||||
sendImmediateReinjectAllFollowUp(pi, skillNames, state, settings, registeredSkills, ctx);
|
||||
}
|
||||
|
||||
/**
|
||||
* Defer path on before_agent_start: inject one combined message, then clear queue (SPEC §6.5.1).
|
||||
* Returns undefined when pendingReinject is empty.
|
||||
|
||||
Reference in New Issue
Block a user