agent-token-sentinel 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -1
- package/README.md +17 -0
- package/README.zh-TW.md +17 -0
- package/dist/cli/index.js +41 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/install.d.ts +7 -0
- package/dist/cli/install.js +16 -7
- package/dist/cli/install.js.map +1 -1
- package/dist/cli/uninstall.d.ts +23 -0
- package/dist/cli/uninstall.js +176 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,16 @@ All notable changes to this project are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses
|
|
5
5
|
[Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
-
## [0.1.
|
|
7
|
+
## [0.1.1] - 2026-10-10
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- `sentinel uninstall [--claude|--cursor|--windsurf|--git|--all] [--global] [--purge] [--dry-run]`:
|
|
11
|
+
removes only what `install` added. Your own hooks, MCP servers and settings are
|
|
12
|
+
preserved, and a config file is deleted only if nothing but sentinel content was in it.
|
|
13
|
+
Recovery data (`.sentinel/`, `refs/sentinel/*` snapshots and rollback backups)
|
|
14
|
+
is kept unless `--purge` is given. Foreign git hooks and unparseable files are never touched.
|
|
15
|
+
|
|
16
|
+
## [0.1.0] - 2026-10-10
|
|
8
17
|
|
|
9
18
|
### Added
|
|
10
19
|
- Circuit breaker: line-reciprocity flip-flop detection, SHA-256 error
|
package/README.md
CHANGED
|
@@ -172,6 +172,21 @@ Windsurf reads MCP servers only from the user-global `~/.codeium/windsurf/mcp_co
|
|
|
172
172
|
|
|
173
173
|
> Hook payload fields differ between clients and versions, so they are parsed tolerantly. When a client does not report a command's exit code, failure is inferred from the output (`FAIL`, `error TS…`, `Traceback`, …). For exact results, run tests through `sentinel run -- <cmd>`; those runs are recorded once and skipped by the post-command hooks.
|
|
174
174
|
|
|
175
|
+
## Uninstall
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
npx -y agent-token-sentinel uninstall --all --dry-run # preview what would be removed
|
|
179
|
+
npx -y agent-token-sentinel uninstall --all # remove it
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- Only what `install` added is removed: sentinel hook entries, the `token-sentinel` MCP server, `SKILL.md`, rules files and the sentinel `pre-commit` hook. **Your own hooks, MCP servers and settings stay byte-for-byte unchanged**, and a config file is deleted only if nothing else was in it.
|
|
183
|
+
- **Recovery data is kept by default**: `.sentinel/` (state, Dead-End logs) and the `refs/sentinel/*` git snapshots, which include the rollback backups of any agent edits the breaker reverted. Add `--purge` to delete them too.
|
|
184
|
+
- Add `--global` to also clean Windsurf's user-global `~/.codeium/windsurf/mcp_config.json`.
|
|
185
|
+
- Foreign git hooks and config files that cannot be parsed are left untouched and reported.
|
|
186
|
+
- Restart Claude Code / Cursor / Windsurf afterwards so they stop loading the hooks and MCP server.
|
|
187
|
+
|
|
188
|
+
The sentinel never commits to your branches or edits your source code outside a rollback, so uninstalling leaves your project exactly as it was.
|
|
189
|
+
|
|
175
190
|
## MCP interface
|
|
176
191
|
|
|
177
192
|
| Tool | Purpose |
|
|
@@ -195,6 +210,7 @@ sentinel run [--raw] -- <cmd...> sentinel status [--json] sentinel r
|
|
|
195
210
|
sentinel checkpoint [label] sentinel rollback [id] sentinel distill [file|-] [--budget N]
|
|
196
211
|
sentinel prune <file> <symbol...> sentinel compact | history sentinel dead-ends
|
|
197
212
|
sentinel install [--claude|--cursor|--windsurf|--git|--all] [--global] [--command "..."] [--dry-run]
|
|
213
|
+
sentinel uninstall [--claude|--cursor|--windsurf|--git|--all] [--global] [--purge] [--dry-run]
|
|
198
214
|
sentinel hook <claude|cursor|windsurf|git-pre-commit> [--event name]
|
|
199
215
|
sentinel mcp
|
|
200
216
|
```
|
|
@@ -244,6 +260,7 @@ The suite (`tests/self-test.ts`) covers the four required scenarios plus rollbac
|
|
|
244
260
|
| 7 | 6 debug rounds | auto `[Compacted]` after round 4; ≥ 70% of history tokens freed (82.6%) |
|
|
245
261
|
| 8 | MCP client ↔ server | all tools listed and callable; validation and path-traversal errors are tool errors |
|
|
246
262
|
| 9 | `sentinel run`, `install --all`, git pre-commit | exit code passthrough, distilled output, idempotent config merge, commit rejected while OPEN |
|
|
263
|
+
| 10 | install over existing user configs → `uninstall` | dry-run changes nothing; user files byte-identical afterwards; `.sentinel/` + refs kept until `--purge`; foreign hooks and broken files untouched |
|
|
247
264
|
|
|
248
265
|
## Project layout
|
|
249
266
|
|
package/README.zh-TW.md
CHANGED
|
@@ -172,6 +172,21 @@ Windsurf 的 MCP 設定**只有全域檔** `~/.codeium/windsurf/mcp_config.json`
|
|
|
172
172
|
|
|
173
173
|
> 各客戶端、各版本送給 Hook 的 payload 欄位都不同,因此採用寬鬆解析。若客戶端沒有提供指令的 exit code,會從輸出內容(`FAIL`、`error TS…`、`Traceback` 等)推斷是否失敗。需要精確結果時,請用 `sentinel run -- <cmd>` 執行測試;這類執行只會記錄一次,post-command hook 會自動略過。
|
|
174
174
|
|
|
175
|
+
## 移除
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
npx -y agent-token-sentinel uninstall --all --dry-run # 先預覽會移除哪些東西
|
|
179
|
+
npx -y agent-token-sentinel uninstall --all # 正式移除
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- 只移除 `install` 加入的東西:Sentinel 的 Hook 項目、`token-sentinel` MCP server、`SKILL.md`、規則檔,以及 Sentinel 的 `pre-commit` hook。**你自己的 Hook、MCP server 和其他設定會一個字都不動地保留**;設定檔只有在裡面沒有其他內容時才會被刪除。
|
|
183
|
+
- **預設保留復原資料**:`.sentinel/`(狀態與 Dead-End 紀錄)和 `refs/sentinel/*` 這些 git 快照。快照裡包含熔斷器回滾 Agent 修改前的備份,加上 `--purge` 才會一併刪除。
|
|
184
|
+
- 加 `--global` 會一併清理 Windsurf 的全域設定 `~/.codeium/windsurf/mcp_config.json`。
|
|
185
|
+
- 不是 Sentinel 建立的 git hook,以及無法解析的設定檔,一律不動,只會列出提醒。
|
|
186
|
+
- 移除後請重開 Claude Code/Cursor/Windsurf,它們才會停止載入 Hook 與 MCP server。
|
|
187
|
+
|
|
188
|
+
Sentinel 不會 commit 到你的分支,除了回滾之外也不會修改你的原始碼,所以移除後專案會和安裝前完全一樣。
|
|
189
|
+
|
|
175
190
|
## MCP 介面
|
|
176
191
|
|
|
177
192
|
| Tool | 用途 |
|
|
@@ -195,6 +210,7 @@ sentinel run [--raw] -- <cmd...> sentinel status [--json] sentinel r
|
|
|
195
210
|
sentinel checkpoint [label] sentinel rollback [id] sentinel distill [file|-] [--budget N]
|
|
196
211
|
sentinel prune <file> <symbol...> sentinel compact | history sentinel dead-ends
|
|
197
212
|
sentinel install [--claude|--cursor|--windsurf|--git|--all] [--global] [--command "..."] [--dry-run]
|
|
213
|
+
sentinel uninstall [--claude|--cursor|--windsurf|--git|--all] [--global] [--purge] [--dry-run]
|
|
198
214
|
sentinel hook <claude|cursor|windsurf|git-pre-commit> [--event name]
|
|
199
215
|
sentinel mcp
|
|
200
216
|
```
|
|
@@ -249,6 +265,7 @@ CI 會在 Linux、macOS、Windows 上,以 Node 20、22、24 執行以上兩組
|
|
|
249
265
|
| 7 | 6 輪除錯 | 第 4 輪後自動產生 `[Compacted]` 摘要;釋放 ≥ 70% 歷史 Token(實測 82.6%) |
|
|
250
266
|
| 8 | MCP client ↔ server | 所有工具都能列出並呼叫;參數驗證失敗與路徑穿越都以 tool error 回傳 |
|
|
251
267
|
| 9 | `sentinel run`、`install --all`、git pre-commit | exit code 原樣傳回、輸出已蒸餾、設定合併可重複執行、OPEN 時拒絕提交 |
|
|
268
|
+
| 10 | 在使用者既有設定上安裝後再 `uninstall` | 預覽模式不改任何檔案;使用者檔案逐字還原;`.sentinel/` 與快照保留到 `--purge`;別人的 hook 與壞掉的設定檔不受影響 |
|
|
252
269
|
|
|
253
270
|
## 目錄結構
|
|
254
271
|
|
package/dist/cli/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { estimateTokens } from '../utils/tokens.js';
|
|
|
11
11
|
import { VERSION } from '../version.js';
|
|
12
12
|
import { handleGitPreCommit, handleHook } from './hooks.js';
|
|
13
13
|
import { install } from './install.js';
|
|
14
|
+
import { uninstall } from './uninstall.js';
|
|
14
15
|
const VALUE_FLAGS = new Set(['root', 'event', 'budget', 'command', 'hypothesis']);
|
|
15
16
|
export function parseArgs(argv) {
|
|
16
17
|
const out = { positionals: [], flags: {}, rest: [] };
|
|
@@ -51,6 +52,9 @@ Usage: sentinel <command> [options]
|
|
|
51
52
|
history Show the compacted debug history.
|
|
52
53
|
dead-ends Show the latest Dead-End log.
|
|
53
54
|
install [--claude] [--cursor] [--windsurf] [--git] [--all] [--global] [--command "<cli>"] [--dry-run]
|
|
55
|
+
uninstall [--claude] [--cursor] [--windsurf] [--git] [--all] [--global] [--purge] [--dry-run]
|
|
56
|
+
Remove only what install added; your other settings are kept.
|
|
57
|
+
--purge also deletes .sentinel/ and refs/sentinel/* (snapshots, rollback backups).
|
|
54
58
|
hook <claude|cursor|windsurf|git-pre-commit> [--event <name>] (called by agent/git hooks)
|
|
55
59
|
mcp Start the MCP server on stdio.
|
|
56
60
|
|
|
@@ -130,6 +134,16 @@ async function runCommand(args) {
|
|
|
130
134
|
process.stdout.write(`\n${r.trip.markdown}\n`);
|
|
131
135
|
return exitCode;
|
|
132
136
|
}
|
|
137
|
+
const ALL_TARGETS = ['claude', 'cursor', 'windsurf', 'git'];
|
|
138
|
+
function hasTargetFlag(args) {
|
|
139
|
+
return args.flags.all === true || ALL_TARGETS.some((t) => args.flags[t] === true);
|
|
140
|
+
}
|
|
141
|
+
/** Targets named by flags; none (or --all) means all of them. */
|
|
142
|
+
function selectedTargets(args) {
|
|
143
|
+
if (!hasTargetFlag(args) || args.flags.all === true)
|
|
144
|
+
return ALL_TARGETS;
|
|
145
|
+
return ALL_TARGETS.filter((t) => args.flags[t] === true);
|
|
146
|
+
}
|
|
133
147
|
export async function main(argv = process.argv.slice(2)) {
|
|
134
148
|
const args = parseArgs(argv);
|
|
135
149
|
const [command, ...pos] = args.positionals;
|
|
@@ -216,12 +230,36 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
216
230
|
process.stdout.write(logs[0]?.markdown ?? 'No dead ends recorded.\n');
|
|
217
231
|
return 0;
|
|
218
232
|
}
|
|
233
|
+
case 'uninstall': {
|
|
234
|
+
const report = uninstall({
|
|
235
|
+
root: rootFrom(args),
|
|
236
|
+
targets: selectedTargets(args),
|
|
237
|
+
global: args.flags.global === true,
|
|
238
|
+
purge: args.flags.purge === true,
|
|
239
|
+
dryRun: args.flags['dry-run'] === true,
|
|
240
|
+
});
|
|
241
|
+
const nothing = !report.edited.length && !report.deleted.length && !report.refsDeleted.length;
|
|
242
|
+
for (const e of report.edited)
|
|
243
|
+
process.stdout.write(`✎ removed sentinel entries from ${e}\n`);
|
|
244
|
+
for (const d of report.deleted)
|
|
245
|
+
process.stdout.write(`✖ deleted ${d}\n`);
|
|
246
|
+
for (const r of report.refsDeleted)
|
|
247
|
+
process.stdout.write(`✖ deleted ref ${r}\n`);
|
|
248
|
+
for (const k of report.kept)
|
|
249
|
+
process.stdout.write(`ℹ kept ${k}\n`);
|
|
250
|
+
for (const w of report.warnings)
|
|
251
|
+
process.stdout.write(`⚠ ${w}\n`);
|
|
252
|
+
process.stdout.write(nothing
|
|
253
|
+
? 'Nothing to remove: agent-token-sentinel is not installed here.\n'
|
|
254
|
+
: args.flags['dry-run'] === true
|
|
255
|
+
? 'Dry run: nothing was changed.\n'
|
|
256
|
+
: 'Uninstalled. Restart your editor / Claude Code so it stops loading the hooks and MCP server.\n');
|
|
257
|
+
return report.warnings.length ? 1 : 0;
|
|
258
|
+
}
|
|
219
259
|
case 'install': {
|
|
220
|
-
const all = args.flags.all === true;
|
|
221
|
-
const targets = ['claude', 'cursor', 'windsurf', 'git'].filter((t) => all || args.flags[t] === true);
|
|
222
260
|
const report = install({
|
|
223
261
|
root: rootFrom(args),
|
|
224
|
-
targets:
|
|
262
|
+
targets: selectedTargets(args),
|
|
225
263
|
command: typeof args.flags.command === 'string' ? args.flags.command : undefined,
|
|
226
264
|
global: args.flags.global === true,
|
|
227
265
|
dryRun: args.flags['dry-run'] === true,
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/install.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ export interface InstallReport {
|
|
|
13
13
|
skipped: string[];
|
|
14
14
|
notes: string[];
|
|
15
15
|
}
|
|
16
|
+
export declare const GIT_HOOK_MARKER = "# agent-token-sentinel pre-commit";
|
|
17
|
+
/** MCP server key written by the installer. */
|
|
18
|
+
export declare const MCP_SERVER_KEY = "token-sentinel";
|
|
16
19
|
export declare const PACKAGE_NAME = "agent-token-sentinel";
|
|
17
20
|
/** How hooks/MCP configs should invoke this installation of the CLI. */
|
|
18
21
|
export declare function defaultCommands(here?: string): {
|
|
@@ -23,5 +26,9 @@ export declare function defaultCommands(here?: string): {
|
|
|
23
26
|
};
|
|
24
27
|
};
|
|
25
28
|
export declare function install(options: InstallOptions): InstallReport;
|
|
29
|
+
/** True for hook entries written by `sentinel install` (whatever command prefix was used). */
|
|
30
|
+
export declare function isSentinelHookEntry(entry: unknown): boolean;
|
|
31
|
+
/** Where git looks for hooks (respects core.hooksPath and worktrees). */
|
|
32
|
+
export declare function gitHooksDir(root: string): string;
|
|
26
33
|
/** Compact always-on rules for Cursor / Windsurf (full guide: SKILL.md). */
|
|
27
34
|
export declare function agentRules(): string;
|
package/dist/cli/install.js
CHANGED
|
@@ -7,7 +7,9 @@ import { homedir } from 'node:os';
|
|
|
7
7
|
import { dirname, join, resolve } from 'node:path';
|
|
8
8
|
import { fileURLToPath } from 'node:url';
|
|
9
9
|
import { git, isGitRepo } from '../utils/git.js';
|
|
10
|
-
const GIT_HOOK_MARKER = '# agent-token-sentinel pre-commit';
|
|
10
|
+
export const GIT_HOOK_MARKER = '# agent-token-sentinel pre-commit';
|
|
11
|
+
/** MCP server key written by the installer. */
|
|
12
|
+
export const MCP_SERVER_KEY = 'token-sentinel';
|
|
11
13
|
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
12
14
|
export const PACKAGE_NAME = 'agent-token-sentinel';
|
|
13
15
|
/** Package-runner caches (npx, pnpm dlx, bunx) are wiped at will: never write their paths into configs. */
|
|
@@ -49,7 +51,7 @@ export function install(options) {
|
|
|
49
51
|
// Project MCP server (.mcp.json is shared with the team; the root is resolved from CLAUDE_PROJECT_DIR).
|
|
50
52
|
mergeJson(join(root, '.mcp.json'), (cfg) => {
|
|
51
53
|
const servers = (cfg.mcpServers ??= {});
|
|
52
|
-
servers[
|
|
54
|
+
servers[MCP_SERVER_KEY] = { command: mcp.command, args: mcp.args };
|
|
53
55
|
}, write);
|
|
54
56
|
mergeJson(join(root, '.claude', 'settings.json'), (cfg) => {
|
|
55
57
|
const hooks = (cfg.hooks ??= {});
|
|
@@ -67,7 +69,7 @@ export function install(options) {
|
|
|
67
69
|
if (options.targets.includes('cursor')) {
|
|
68
70
|
mergeJson(join(root, '.cursor', 'mcp.json'), (cfg) => {
|
|
69
71
|
const servers = (cfg.mcpServers ??= {});
|
|
70
|
-
servers[
|
|
72
|
+
servers[MCP_SERVER_KEY] = mcpServerEntry;
|
|
71
73
|
}, write);
|
|
72
74
|
mergeJson(join(root, '.cursor', 'hooks.json'), (cfg) => {
|
|
73
75
|
cfg.version ??= 1;
|
|
@@ -90,7 +92,7 @@ export function install(options) {
|
|
|
90
92
|
if (options.global) {
|
|
91
93
|
mergeJson(globalMcp, (cfg) => {
|
|
92
94
|
const servers = (cfg.mcpServers ??= {});
|
|
93
|
-
servers[
|
|
95
|
+
servers[MCP_SERVER_KEY] = mcpServerEntry;
|
|
94
96
|
}, write);
|
|
95
97
|
}
|
|
96
98
|
else {
|
|
@@ -103,7 +105,7 @@ export function install(options) {
|
|
|
103
105
|
report.skipped.push('git: not a git repository');
|
|
104
106
|
}
|
|
105
107
|
else {
|
|
106
|
-
const hooksDir =
|
|
108
|
+
const hooksDir = gitHooksDir(root);
|
|
107
109
|
const hookPath = join(hooksDir, 'pre-commit');
|
|
108
110
|
const script = `#!/bin/sh\n${GIT_HOOK_MARKER}\n${cli} hook git-pre-commit --root "$(git rev-parse --show-toplevel)" || exit 1\n`;
|
|
109
111
|
if (existsSync(hookPath) && !readFileSync(hookPath, 'utf8').includes(GIT_HOOK_MARKER)) {
|
|
@@ -134,8 +136,15 @@ function mergeJson(path, mutate, write) {
|
|
|
134
136
|
/** Replace any existing sentinel hook entry for `event` with `entry`; other hooks are kept. */
|
|
135
137
|
function upsertHook(hooks, event, entry) {
|
|
136
138
|
const list = Array.isArray(hooks[event]) ? hooks[event] : [];
|
|
137
|
-
|
|
138
|
-
|
|
139
|
+
hooks[event] = [...list.filter((e) => !isSentinelHookEntry(e)), entry];
|
|
140
|
+
}
|
|
141
|
+
/** True for hook entries written by `sentinel install` (whatever command prefix was used). */
|
|
142
|
+
export function isSentinelHookEntry(entry) {
|
|
143
|
+
return / hook (?:claude|cursor|windsurf)\b/.test(JSON.stringify(entry));
|
|
144
|
+
}
|
|
145
|
+
/** Where git looks for hooks (respects core.hooksPath and worktrees). */
|
|
146
|
+
export function gitHooksDir(root) {
|
|
147
|
+
return git(root, ['rev-parse', '--path-format=absolute', '--git-path', 'hooks']).stdout || join(root, '.git', 'hooks');
|
|
139
148
|
}
|
|
140
149
|
function readPackageFile(name) {
|
|
141
150
|
const path = join(packageRoot, name);
|
package/dist/cli/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAoBjD,MAAM,eAAe,GAAG,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type InstallTarget } from './install.js';
|
|
2
|
+
export interface UninstallOptions {
|
|
3
|
+
root: string;
|
|
4
|
+
targets: InstallTarget[];
|
|
5
|
+
/** Also clean the user-global Windsurf MCP config. */
|
|
6
|
+
global?: boolean;
|
|
7
|
+
/** Also delete `.sentinel/` (state, Dead-End logs) and all `refs/sentinel/*` snapshots/backups. */
|
|
8
|
+
purge?: boolean;
|
|
9
|
+
dryRun?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface UninstallReport {
|
|
12
|
+
/** Files edited (sentinel entries removed, other content kept). */
|
|
13
|
+
edited: string[];
|
|
14
|
+
/** Files or directories deleted. */
|
|
15
|
+
deleted: string[];
|
|
16
|
+
/** Git refs deleted (only with purge). */
|
|
17
|
+
refsDeleted: string[];
|
|
18
|
+
/** Data deliberately left in place, and why. */
|
|
19
|
+
kept: string[];
|
|
20
|
+
/** Problems that need a human (unparseable files, foreign hooks...). */
|
|
21
|
+
warnings: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare function uninstall(options: UninstallOptions): UninstallReport;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `sentinel uninstall` — remove exactly what `sentinel install` added.
|
|
3
|
+
*
|
|
4
|
+
* - Config files are edited surgically: only sentinel hook entries and the
|
|
5
|
+
* `token-sentinel` MCP server are removed; everything else is preserved.
|
|
6
|
+
* A file is deleted only when nothing but sentinel content was in it.
|
|
7
|
+
* - Recovery data (`.sentinel/`, `refs/sentinel/*` snapshots and rollback
|
|
8
|
+
* backups) is kept unless `--purge` is given.
|
|
9
|
+
* - Never throws on a malformed file: it is reported and left untouched.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, readdirSync, readFileSync, rmdirSync, rmSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
13
|
+
import { join, resolve } from 'node:path';
|
|
14
|
+
import { git, isGitRepo } from '../utils/git.js';
|
|
15
|
+
import { GIT_HOOK_MARKER, gitHooksDir, isSentinelHookEntry, MCP_SERVER_KEY } from './install.js';
|
|
16
|
+
export function uninstall(options) {
|
|
17
|
+
const root = resolve(options.root);
|
|
18
|
+
const report = { edited: [], deleted: [], refsDeleted: [], kept: [], warnings: [] };
|
|
19
|
+
const dry = !!options.dryRun;
|
|
20
|
+
const tag = (p) => (dry ? `${p} (dry-run)` : p);
|
|
21
|
+
const deleteFile = (path) => {
|
|
22
|
+
if (!existsSync(path))
|
|
23
|
+
return;
|
|
24
|
+
if (!dry)
|
|
25
|
+
unlinkSync(path);
|
|
26
|
+
report.deleted.push(tag(path));
|
|
27
|
+
};
|
|
28
|
+
const deleteDir = (path) => {
|
|
29
|
+
if (!existsSync(path))
|
|
30
|
+
return;
|
|
31
|
+
if (!dry)
|
|
32
|
+
rmSync(path, { recursive: true, force: true });
|
|
33
|
+
report.deleted.push(tag(path));
|
|
34
|
+
};
|
|
35
|
+
/** Remove directories the installer created, but only when they are now empty. */
|
|
36
|
+
const pruneEmptyDirs = (...dirs) => {
|
|
37
|
+
if (dry)
|
|
38
|
+
return;
|
|
39
|
+
for (const d of dirs) {
|
|
40
|
+
try {
|
|
41
|
+
if (existsSync(d) && readdirSync(d).length === 0) {
|
|
42
|
+
rmdirSync(d);
|
|
43
|
+
report.deleted.push(d);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
/* not empty or not ours */
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
/** Load JSON, apply `strip` (returns true when it removed something), then save or delete. */
|
|
52
|
+
const editJson = (path, strip) => {
|
|
53
|
+
if (!existsSync(path))
|
|
54
|
+
return;
|
|
55
|
+
let cfg;
|
|
56
|
+
try {
|
|
57
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
58
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
|
|
59
|
+
throw new Error('not a JSON object');
|
|
60
|
+
cfg = parsed;
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
report.warnings.push(`${path}: left untouched, could not parse (${err.message})`);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!strip(cfg))
|
|
67
|
+
return;
|
|
68
|
+
if (Object.keys(cfg).length === 0) {
|
|
69
|
+
deleteFile(path);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (!dry)
|
|
73
|
+
writeFileSync(path, `${JSON.stringify(cfg, null, 2)}\n`);
|
|
74
|
+
report.edited.push(tag(path));
|
|
75
|
+
};
|
|
76
|
+
const stripMcp = (cfg) => {
|
|
77
|
+
const servers = cfg.mcpServers;
|
|
78
|
+
if (!isObject(servers) || !(MCP_SERVER_KEY in servers))
|
|
79
|
+
return false;
|
|
80
|
+
delete servers[MCP_SERVER_KEY];
|
|
81
|
+
if (Object.keys(servers).length === 0)
|
|
82
|
+
delete cfg.mcpServers;
|
|
83
|
+
return true;
|
|
84
|
+
};
|
|
85
|
+
/** Remove sentinel hook entries; drop emptied events/`hooks`; drop a lone `version` (Cursor). */
|
|
86
|
+
const stripHooks = (cfg, dropLoneVersion) => {
|
|
87
|
+
const hooks = cfg.hooks;
|
|
88
|
+
if (!isObject(hooks))
|
|
89
|
+
return false;
|
|
90
|
+
let changed = false;
|
|
91
|
+
for (const [event, list] of Object.entries(hooks)) {
|
|
92
|
+
if (!Array.isArray(list))
|
|
93
|
+
continue;
|
|
94
|
+
const kept = list.filter((e) => !isSentinelHookEntry(e));
|
|
95
|
+
if (kept.length === list.length)
|
|
96
|
+
continue;
|
|
97
|
+
changed = true;
|
|
98
|
+
if (kept.length)
|
|
99
|
+
hooks[event] = kept;
|
|
100
|
+
else
|
|
101
|
+
delete hooks[event];
|
|
102
|
+
}
|
|
103
|
+
if (!changed)
|
|
104
|
+
return false;
|
|
105
|
+
if (Object.keys(hooks).length === 0)
|
|
106
|
+
delete cfg.hooks;
|
|
107
|
+
if (dropLoneVersion && Object.keys(cfg).length === 1 && 'version' in cfg)
|
|
108
|
+
delete cfg.version;
|
|
109
|
+
return true;
|
|
110
|
+
};
|
|
111
|
+
if (options.targets.includes('claude')) {
|
|
112
|
+
editJson(join(root, '.mcp.json'), stripMcp);
|
|
113
|
+
editJson(join(root, '.claude', 'settings.json'), (cfg) => stripHooks(cfg, false));
|
|
114
|
+
deleteDir(join(root, '.claude', 'skills', 'token-sentinel'));
|
|
115
|
+
pruneEmptyDirs(join(root, '.claude', 'skills'), join(root, '.claude'));
|
|
116
|
+
}
|
|
117
|
+
if (options.targets.includes('cursor')) {
|
|
118
|
+
editJson(join(root, '.cursor', 'mcp.json'), stripMcp);
|
|
119
|
+
editJson(join(root, '.cursor', 'hooks.json'), (cfg) => stripHooks(cfg, true));
|
|
120
|
+
deleteFile(join(root, '.cursor', 'rules', 'token-sentinel.mdc'));
|
|
121
|
+
pruneEmptyDirs(join(root, '.cursor', 'rules'), join(root, '.cursor'));
|
|
122
|
+
}
|
|
123
|
+
if (options.targets.includes('windsurf')) {
|
|
124
|
+
editJson(join(root, '.windsurf', 'hooks.json'), (cfg) => stripHooks(cfg, false));
|
|
125
|
+
deleteFile(join(root, '.windsurf', 'rules', 'token-sentinel.md'));
|
|
126
|
+
pruneEmptyDirs(join(root, '.windsurf', 'rules'), join(root, '.windsurf'));
|
|
127
|
+
const globalMcp = join(homedir(), '.codeium', 'windsurf', 'mcp_config.json');
|
|
128
|
+
if (options.global)
|
|
129
|
+
editJson(globalMcp, stripMcp);
|
|
130
|
+
else if (existsSync(globalMcp) && readFileSync(globalMcp, 'utf8').includes(`"${MCP_SERVER_KEY}"`)) {
|
|
131
|
+
report.kept.push(`${globalMcp} still lists "${MCP_SERVER_KEY}" (user-global). Re-run with --global to remove it.`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const gitRepo = isGitRepo(root);
|
|
135
|
+
if (options.targets.includes('git') && gitRepo) {
|
|
136
|
+
const hookPath = join(gitHooksDir(root), 'pre-commit');
|
|
137
|
+
if (existsSync(hookPath)) {
|
|
138
|
+
const body = readFileSync(hookPath, 'utf8');
|
|
139
|
+
if (body.includes(GIT_HOOK_MARKER))
|
|
140
|
+
deleteFile(hookPath);
|
|
141
|
+
else if (/\b(?:sentinel|agent-token-sentinel)\b.*hook git-pre-commit/.test(body)) {
|
|
142
|
+
report.warnings.push(`${hookPath} is your own hook but calls the sentinel — remove the "hook git-pre-commit" line by hand.`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Recovery data.
|
|
147
|
+
const stateDir = join(root, '.sentinel');
|
|
148
|
+
const refs = gitRepo ? listSentinelRefs(root) : [];
|
|
149
|
+
if (options.purge) {
|
|
150
|
+
deleteDir(stateDir);
|
|
151
|
+
for (const ref of refs) {
|
|
152
|
+
if (!dry)
|
|
153
|
+
git(root, ['update-ref', '-d', ref]);
|
|
154
|
+
report.refsDeleted.push(tag(ref));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
if (existsSync(stateDir))
|
|
159
|
+
report.kept.push(`${stateDir} (state + Dead-End logs). Add --purge to delete.`);
|
|
160
|
+
const backups = refs.filter((r) => r.startsWith('refs/sentinel/backups/')).length;
|
|
161
|
+
if (refs.length) {
|
|
162
|
+
report.kept.push(`${refs.length} git snapshot ref(s) under refs/sentinel/` +
|
|
163
|
+
(backups ? `, including ${backups} rollback backup(s) that may hold reverted agent edits` : '') +
|
|
164
|
+
'. Add --purge to delete.');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return report;
|
|
168
|
+
}
|
|
169
|
+
function listSentinelRefs(root) {
|
|
170
|
+
const out = git(root, ['for-each-ref', '--format=%(refname)', 'refs/sentinel/']).stdout;
|
|
171
|
+
return out ? out.split('\n').filter(Boolean) : [];
|
|
172
|
+
}
|
|
173
|
+
function isObject(v) {
|
|
174
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/cli/uninstall.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED