Phase 11: register /skill-reinject command — SPEC §7.

Wire pi.registerCommand with a minimal handler stub so later subcommands can plug into commands.ts.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-17 12:52:58 +07:00
parent b22ee7fefc
commit dc07e516af
2 changed files with 34 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
import type { ExtensionState, RuntimeFlags } from "./state.js";
export interface SkillReinjectCommandDeps {
state: ExtensionState;
runtime: RuntimeFlags;
persistState: () => void;
}
export function registerSkillReinjectCommand(pi: ExtensionAPI, _deps: SkillReinjectCommandDeps): void {
pi.registerCommand("skill-reinject", {
description:
"Skill re-inject after compaction (usage: /skill-reinject [on|off|list|now|integration ...])",
handler: handleSkillReinjectCommand,
});
}
async function handleSkillReinjectCommand(
args: string,
ctx: ExtensionCommandContext,
): Promise<void> {
const trimmed = args.trim();
if (!trimmed) {
return;
}
const subcommand = trimmed.split(/\s+/)[0];
if (ctx.hasUI) {
ctx.ui.notify(`skill-reinject: unknown subcommand "${subcommand}"`, "warning");
}
}
+3
View File
@@ -7,6 +7,7 @@ import {
type Skill,
} from "@earendil-works/pi-coding-agent";
import { detectAndCachePiAutoCompact, resolveDeliveryMode } from "./auto-compact.js";
import { registerSkillReinjectCommand } from "./commands.js";
import {
consumeCompactionOnSessionCompact,
createCompactionRuntime,
@@ -44,6 +45,8 @@ export default function skillReinject(pi: ExtensionAPI): void {
saveState(pi, state);
}
registerSkillReinjectCommand(pi, { state, runtime, persistState });
function trackSkillAndPersist(input: TrackSkillInput): void {
trackSkill(state, input);
persistState();