From 04dcab5b4260005c285dfe3ee4bc89ccb1fd6eca Mon Sep 17 00:00:00 2001 From: GRayHook Date: Wed, 17 Jun 2026 10:08:04 +0700 Subject: [PATCH] =?UTF-8?q?Phase=202:=20add=20settings=20types=20=E2=80=94?= =?UTF-8?q?=20SPEC=20=C2=A77.3=20contract=20and=20defaults.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Defines SkillReinjectSettings and default values so read/merge/effective helpers share one source of truth. Co-authored-by: Cursor --- src/settings.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/settings.ts diff --git a/src/settings.ts b/src/settings.ts new file mode 100644 index 0000000..ae7fb4a --- /dev/null +++ b/src/settings.ts @@ -0,0 +1,25 @@ +import type { AutoCompactIntegration } from "./state"; + +/** Global/project skillReinject.* settings (SPEC §7.3). */ +export interface SkillReinjectSettings { + enabled: boolean; + trackReadPaths: boolean; + triggerTurn: boolean; + reinjectOnManualCompaction: boolean; + autoCompactIntegration: AutoCompactIntegration; + suffix: string; +} + +/** Defaults from SPEC §7.3 — extension off until explicitly enabled. */ +export const DEFAULT_SKILL_REINJECT_SETTINGS: Readonly = { + enabled: false, + trackReadPaths: true, + triggerTurn: false, + reinjectOnManualCompaction: false, + autoCompactIntegration: "auto", + suffix: "[skill-reinject] Re-applied after compaction.", +}; + +export function createDefaultSettings(): SkillReinjectSettings { + return { ...DEFAULT_SKILL_REINJECT_SETTINGS }; +}