diff --git a/src/commands.ts b/src/commands.ts index 9aa779e..f7d8227 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -1,11 +1,14 @@ -import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/pi-coding-agent"; +import type { ExtensionAPI, ExtensionCommandContext, Skill } from "@earendil-works/pi-coding-agent"; import { resolveDeliveryMode } from "./auto-compact.js"; +import { reinjectNow } from "./reinject.js"; import { readSettings, writeGlobalSettings, type SkillReinjectSettings } from "./settings.js"; import type { AutoCompactIntegration, ExtensionState, RuntimeFlags } from "./state.js"; export interface SkillReinjectCommandDeps { + pi: ExtensionAPI; state: ExtensionState; runtime: RuntimeFlags; + getRegisteredSkills: () => readonly Skill[]; persistState: () => void; } @@ -120,6 +123,10 @@ async function handleSkillReinjectCommand( handleIntegrationOverride(trimmed, ctx, deps); return; } + if (subcommand === "now") { + handleReinjectNow(ctx, deps); + return; + } if (ctx.hasUI) { ctx.ui.notify(`skill-reinject: unknown subcommand "${subcommand}"`, "warning"); @@ -219,3 +226,8 @@ function handleIntegrationOverride( const settings = readSettings(ctx); ctx.ui.notify(formatDeliveryLine(settings, deps.runtime, mode), "info"); } + +function handleReinjectNow(ctx: ExtensionCommandContext, deps: SkillReinjectCommandDeps): void { + const settings = readSettings(ctx); + reinjectNow(deps.pi, deps.state, settings, ctx, deps.getRegisteredSkills()); +} diff --git a/src/index.ts b/src/index.ts index d4b6bff..786796d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -45,7 +45,13 @@ export default function skillReinject(pi: ExtensionAPI): void { saveState(pi, state); } - registerSkillReinjectCommand(pi, { state, runtime, persistState }); + registerSkillReinjectCommand(pi, { + pi, + state, + runtime, + getRegisteredSkills: () => registeredSkills, + persistState, + }); function trackSkillAndPersist(input: TrackSkillInput): void { trackSkill(state, input);