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:
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user