oh-my-claude-sisyphus 3.8.12 → 3.8.14
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/commands/omc-setup.md +45 -9
- package/dist/__tests__/mnemosyne/finder.test.js +44 -0
- package/dist/__tests__/mnemosyne/finder.test.js.map +1 -1
- package/dist/__tests__/omc-tools-server.test.js +15 -6
- package/dist/__tests__/omc-tools-server.test.js.map +1 -1
- package/dist/__tests__/task-continuation.test.js +5 -2
- package/dist/__tests__/task-continuation.test.js.map +1 -1
- package/dist/__tests__/tools/skills-tools.test.d.ts +2 -0
- package/dist/__tests__/tools/skills-tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools/skills-tools.test.js +63 -0
- package/dist/__tests__/tools/skills-tools.test.js.map +1 -0
- package/dist/hooks/__tests__/bridge-pkill.test.d.ts +8 -0
- package/dist/hooks/__tests__/bridge-pkill.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/bridge-pkill.test.js +188 -0
- package/dist/hooks/__tests__/bridge-pkill.test.js.map +1 -0
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +17 -0
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/clear-suggestions/index.d.ts.map +1 -1
- package/dist/hooks/clear-suggestions/index.js +6 -0
- package/dist/hooks/clear-suggestions/index.js.map +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +0 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/learner/bridge.d.ts +7 -2
- package/dist/hooks/learner/bridge.d.ts.map +1 -1
- package/dist/hooks/learner/bridge.js +59 -30
- package/dist/hooks/learner/bridge.js.map +1 -1
- package/dist/hooks/learner/constants.d.ts +5 -1
- package/dist/hooks/learner/constants.d.ts.map +1 -1
- package/dist/hooks/learner/constants.js +5 -1
- package/dist/hooks/learner/constants.js.map +1 -1
- package/dist/hooks/learner/finder.d.ts +4 -2
- package/dist/hooks/learner/finder.d.ts.map +1 -1
- package/dist/hooks/learner/finder.js +58 -23
- package/dist/hooks/learner/finder.js.map +1 -1
- package/dist/hooks/learner/loader.d.ts.map +1 -1
- package/dist/hooks/learner/loader.js +3 -4
- package/dist/hooks/learner/loader.js.map +1 -1
- package/dist/hooks/learner/types.d.ts +3 -1
- package/dist/hooks/learner/types.d.ts.map +1 -1
- package/dist/hooks/mode-registry/index.d.ts +7 -0
- package/dist/hooks/mode-registry/index.d.ts.map +1 -1
- package/dist/hooks/mode-registry/index.js +9 -0
- package/dist/hooks/mode-registry/index.js.map +1 -1
- package/dist/hooks/skill-bridge.cjs +50 -27
- package/dist/hooks/todo-continuation/__tests__/isUserAbort.test.d.ts +2 -0
- package/dist/hooks/todo-continuation/__tests__/isUserAbort.test.d.ts.map +1 -0
- package/dist/hooks/todo-continuation/__tests__/isUserAbort.test.js +119 -0
- package/dist/hooks/todo-continuation/__tests__/isUserAbort.test.js.map +1 -0
- package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
- package/dist/hooks/todo-continuation/index.js +6 -12
- package/dist/hooks/todo-continuation/index.js.map +1 -1
- package/dist/hud/usage-api.d.ts.map +1 -1
- package/dist/hud/usage-api.js +148 -3
- package/dist/hud/usage-api.js.map +1 -1
- package/dist/mcp/omc-tools-server.d.ts +2 -1
- package/dist/mcp/omc-tools-server.d.ts.map +1 -1
- package/dist/mcp/omc-tools-server.js +7 -3
- package/dist/mcp/omc-tools-server.js.map +1 -1
- package/dist/tools/skills-tools.d.ts +75 -0
- package/dist/tools/skills-tools.d.ts.map +1 -0
- package/dist/tools/skills-tools.js +151 -0
- package/dist/tools/skills-tools.js.map +1 -0
- package/package.json +1 -1
- package/scripts/persistent-mode.mjs +7 -5
- package/scripts/post-tool-verifier.mjs +1 -36
- package/scripts/skill-injector.mjs +21 -17
- package/skills/cancel/SKILL.md +1 -1
- package/templates/hooks/persistent-mode.mjs +7 -5
|
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/hooks/learner/bridge.ts
|
|
21
21
|
var bridge_exports = {};
|
|
22
22
|
__export(bridge_exports, {
|
|
23
|
+
GLOBAL_SKILLS_DIR: () => GLOBAL_SKILLS_DIR,
|
|
23
24
|
PROJECT_SKILLS_SUBDIR: () => PROJECT_SKILLS_SUBDIR,
|
|
24
25
|
SKILL_EXTENSION: () => SKILL_EXTENSION,
|
|
25
26
|
USER_SKILLS_DIR: () => USER_SKILLS_DIR,
|
|
@@ -34,9 +35,11 @@ var import_fs = require("fs");
|
|
|
34
35
|
var import_path = require("path");
|
|
35
36
|
var import_os = require("os");
|
|
36
37
|
var USER_SKILLS_DIR = (0, import_path.join)((0, import_os.homedir)(), ".claude", "skills", "omc-learned");
|
|
37
|
-
var
|
|
38
|
+
var GLOBAL_SKILLS_DIR = (0, import_path.join)((0, import_os.homedir)(), ".omc", "skills");
|
|
39
|
+
var PROJECT_SKILLS_SUBDIR = (0, import_path.join)(".omc", "skills");
|
|
38
40
|
var SKILL_EXTENSION = ".md";
|
|
39
41
|
var SESSION_TTL_MS = 60 * 60 * 1e3;
|
|
42
|
+
var MAX_RECURSION_DEPTH = 10;
|
|
40
43
|
var STATE_FILE = ".omc/state/skill-sessions.json";
|
|
41
44
|
function getStateFilePath(projectRoot) {
|
|
42
45
|
return (0, import_path.join)(projectRoot, STATE_FILE);
|
|
@@ -84,14 +87,15 @@ function markSkillsInjected(sessionId, paths, projectRoot) {
|
|
|
84
87
|
};
|
|
85
88
|
writeSessionState(projectRoot, state);
|
|
86
89
|
}
|
|
87
|
-
function findSkillFilesRecursive(dir, results) {
|
|
90
|
+
function findSkillFilesRecursive(dir, results, depth = 0) {
|
|
88
91
|
if (!(0, import_fs.existsSync)(dir)) return;
|
|
92
|
+
if (depth > MAX_RECURSION_DEPTH) return;
|
|
89
93
|
try {
|
|
90
94
|
const entries = (0, import_fs.readdirSync)(dir, { withFileTypes: true });
|
|
91
95
|
for (const entry of entries) {
|
|
92
96
|
const fullPath = (0, import_path.join)(dir, entry.name);
|
|
93
97
|
if (entry.isDirectory()) {
|
|
94
|
-
findSkillFilesRecursive(fullPath, results);
|
|
98
|
+
findSkillFilesRecursive(fullPath, results, depth + 1);
|
|
95
99
|
} else if (entry.isFile() && entry.name.endsWith(SKILL_EXTENSION)) {
|
|
96
100
|
results.push(fullPath);
|
|
97
101
|
}
|
|
@@ -106,33 +110,51 @@ function safeRealpathSync(filePath) {
|
|
|
106
110
|
return filePath;
|
|
107
111
|
}
|
|
108
112
|
}
|
|
109
|
-
function
|
|
113
|
+
function isWithinBoundary(realPath, boundary) {
|
|
114
|
+
const sep = process.platform === "win32" ? "\\" : "/";
|
|
115
|
+
const normalizedReal = realPath.replace(/\\/g, "/").replace(/\/+/g, "/");
|
|
116
|
+
const normalizedBoundary = boundary.replace(/\\/g, "/").replace(/\/+/g, "/");
|
|
117
|
+
return normalizedReal === normalizedBoundary || normalizedReal.startsWith(normalizedBoundary + "/");
|
|
118
|
+
}
|
|
119
|
+
function findSkillFiles(projectRoot, options) {
|
|
110
120
|
const candidates = [];
|
|
111
121
|
const seenRealPaths = /* @__PURE__ */ new Set();
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
realPath
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
const scope = options?.scope ?? "all";
|
|
123
|
+
if (scope === "project" || scope === "all") {
|
|
124
|
+
const projectSkillsDir = (0, import_path.join)(projectRoot, PROJECT_SKILLS_SUBDIR);
|
|
125
|
+
const projectFiles = [];
|
|
126
|
+
findSkillFilesRecursive(projectSkillsDir, projectFiles);
|
|
127
|
+
for (const filePath of projectFiles) {
|
|
128
|
+
const realPath = safeRealpathSync(filePath);
|
|
129
|
+
if (seenRealPaths.has(realPath)) continue;
|
|
130
|
+
if (!isWithinBoundary(realPath, projectSkillsDir)) continue;
|
|
131
|
+
seenRealPaths.add(realPath);
|
|
132
|
+
candidates.push({
|
|
133
|
+
path: filePath,
|
|
134
|
+
realPath,
|
|
135
|
+
scope: "project",
|
|
136
|
+
sourceDir: projectSkillsDir
|
|
137
|
+
});
|
|
138
|
+
}
|
|
124
139
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
if (scope === "user" || scope === "all") {
|
|
141
|
+
const userDirs = [GLOBAL_SKILLS_DIR, USER_SKILLS_DIR];
|
|
142
|
+
for (const userDir of userDirs) {
|
|
143
|
+
const userFiles = [];
|
|
144
|
+
findSkillFilesRecursive(userDir, userFiles);
|
|
145
|
+
for (const filePath of userFiles) {
|
|
146
|
+
const realPath = safeRealpathSync(filePath);
|
|
147
|
+
if (seenRealPaths.has(realPath)) continue;
|
|
148
|
+
if (!isWithinBoundary(realPath, userDir)) continue;
|
|
149
|
+
seenRealPaths.add(realPath);
|
|
150
|
+
candidates.push({
|
|
151
|
+
path: filePath,
|
|
152
|
+
realPath,
|
|
153
|
+
scope: "user",
|
|
154
|
+
sourceDir: userDir
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
136
158
|
}
|
|
137
159
|
return candidates;
|
|
138
160
|
}
|
|
@@ -338,6 +360,7 @@ function matchSkillsForInjection(prompt, projectRoot, sessionId, options = {}) {
|
|
|
338
360
|
}
|
|
339
361
|
// Annotate the CommonJS export names for ESM import in node:
|
|
340
362
|
0 && (module.exports = {
|
|
363
|
+
GLOBAL_SKILLS_DIR,
|
|
341
364
|
PROJECT_SKILLS_SUBDIR,
|
|
342
365
|
SKILL_EXTENSION,
|
|
343
366
|
USER_SKILLS_DIR,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isUserAbort.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/todo-continuation/__tests__/isUserAbort.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { isUserAbort } from '../index.js';
|
|
3
|
+
describe('isUserAbort', () => {
|
|
4
|
+
it('should return false for undefined context', () => {
|
|
5
|
+
expect(isUserAbort()).toBe(false);
|
|
6
|
+
});
|
|
7
|
+
it('should return true for user_requested flag', () => {
|
|
8
|
+
expect(isUserAbort({ user_requested: true })).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
it('should return true for userRequested flag', () => {
|
|
11
|
+
expect(isUserAbort({ userRequested: true })).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
// Exact match patterns (should match when these strings appear anywhere)
|
|
14
|
+
it('should return true for exact "cancel" stop reason', () => {
|
|
15
|
+
expect(isUserAbort({ stop_reason: 'cancel' })).toBe(true);
|
|
16
|
+
});
|
|
17
|
+
it('should return true for exact "abort" stop reason', () => {
|
|
18
|
+
expect(isUserAbort({ stop_reason: 'abort' })).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
it('should return true for exact "aborted" stop reason', () => {
|
|
21
|
+
expect(isUserAbort({ stop_reason: 'aborted' })).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
it('should return true for exact "interrupt" stop reason', () => {
|
|
24
|
+
expect(isUserAbort({ stop_reason: 'interrupt' })).toBe(true);
|
|
25
|
+
});
|
|
26
|
+
// Compound substring patterns (user_cancel, ctrl_c, manual_stop should still match)
|
|
27
|
+
it('should return true for "user_cancel" stop reason', () => {
|
|
28
|
+
expect(isUserAbort({ stop_reason: 'user_cancel' })).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
it('should return true for "ctrl_c" stop reason', () => {
|
|
31
|
+
expect(isUserAbort({ stop_reason: 'ctrl_c' })).toBe(true);
|
|
32
|
+
});
|
|
33
|
+
it('should return true for "manual_stop" stop reason', () => {
|
|
34
|
+
expect(isUserAbort({ stop_reason: 'manual_stop' })).toBe(true);
|
|
35
|
+
});
|
|
36
|
+
it('should return true for "user_interrupt" stop reason', () => {
|
|
37
|
+
expect(isUserAbort({ stop_reason: 'user_interrupt' })).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
// FALSE POSITIVES THAT SHOULD NOW BE FIXED
|
|
40
|
+
// These contain "cancel" or "interrupt" but are NOT user aborts
|
|
41
|
+
it('should return false for "cancelled_operation" (no longer substring-matches)', () => {
|
|
42
|
+
expect(isUserAbort({ stop_reason: 'cancelled_operation' })).toBe(false);
|
|
43
|
+
});
|
|
44
|
+
it('should return false for "interrupted_by_system" (no longer substring-matches)', () => {
|
|
45
|
+
expect(isUserAbort({ stop_reason: 'interrupted_by_system' })).toBe(false);
|
|
46
|
+
});
|
|
47
|
+
it('should return false for "context_limit"', () => {
|
|
48
|
+
expect(isUserAbort({ stop_reason: 'context_limit' })).toBe(false);
|
|
49
|
+
});
|
|
50
|
+
it('should return false for "operation_cancelled_by_timeout"', () => {
|
|
51
|
+
expect(isUserAbort({ stop_reason: 'operation_cancelled_by_timeout' })).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
it('should return false for "auto_interrupt"', () => {
|
|
54
|
+
expect(isUserAbort({ stop_reason: 'auto_interrupt' })).toBe(false);
|
|
55
|
+
});
|
|
56
|
+
it('should return false for empty stop reason', () => {
|
|
57
|
+
expect(isUserAbort({ stop_reason: '' })).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
it('should return false for empty context object', () => {
|
|
60
|
+
expect(isUserAbort({})).toBe(false);
|
|
61
|
+
});
|
|
62
|
+
// Test camelCase variant
|
|
63
|
+
it('should support stopReason camelCase field', () => {
|
|
64
|
+
expect(isUserAbort({ stopReason: 'cancel' })).toBe(true);
|
|
65
|
+
expect(isUserAbort({ stopReason: 'user_cancel' })).toBe(true);
|
|
66
|
+
expect(isUserAbort({ stopReason: 'context_limit' })).toBe(false);
|
|
67
|
+
});
|
|
68
|
+
// Test case insensitivity
|
|
69
|
+
it('should be case insensitive for stop_reason', () => {
|
|
70
|
+
expect(isUserAbort({ stop_reason: 'CANCEL' })).toBe(true);
|
|
71
|
+
expect(isUserAbort({ stop_reason: 'Cancel' })).toBe(true);
|
|
72
|
+
expect(isUserAbort({ stop_reason: 'USER_CANCEL' })).toBe(true);
|
|
73
|
+
});
|
|
74
|
+
// Edge cases
|
|
75
|
+
it('should handle null stop_reason', () => {
|
|
76
|
+
const context = { stop_reason: null };
|
|
77
|
+
expect(isUserAbort(context)).toBe(false);
|
|
78
|
+
});
|
|
79
|
+
it('should prioritize explicit flags over stop_reason', () => {
|
|
80
|
+
expect(isUserAbort({
|
|
81
|
+
user_requested: true,
|
|
82
|
+
stop_reason: 'context_limit'
|
|
83
|
+
})).toBe(true);
|
|
84
|
+
});
|
|
85
|
+
// Test that exact patterns only match exactly (issue #210 fix)
|
|
86
|
+
it('should match "abort" only as exact match', () => {
|
|
87
|
+
expect(isUserAbort({ stop_reason: 'abort' })).toBe(true);
|
|
88
|
+
// These should NOT match anymore - exact match only for short words
|
|
89
|
+
expect(isUserAbort({ stop_reason: 'user_abort' })).toBe(false);
|
|
90
|
+
expect(isUserAbort({ stop_reason: 'abort_by_user' })).toBe(false);
|
|
91
|
+
});
|
|
92
|
+
it('should match "cancel" only as exact match', () => {
|
|
93
|
+
expect(isUserAbort({ stop_reason: 'cancel' })).toBe(true);
|
|
94
|
+
// user_cancel matches via substring patterns (compound word)
|
|
95
|
+
expect(isUserAbort({ stop_reason: 'user_cancel' })).toBe(true);
|
|
96
|
+
// cancel_requested should NOT match - not in compound patterns
|
|
97
|
+
expect(isUserAbort({ stop_reason: 'cancel_requested' })).toBe(false);
|
|
98
|
+
});
|
|
99
|
+
it('should NOT match partial words (issue #210 fix)', () => {
|
|
100
|
+
// Fixed: short generic words now use exact match to prevent false positives
|
|
101
|
+
expect(isUserAbort({ stop_reason: 'cancellation' })).toBe(false);
|
|
102
|
+
expect(isUserAbort({ stop_reason: 'interruption' })).toBe(false);
|
|
103
|
+
});
|
|
104
|
+
// Combined field test - snake_case is checked first, then camelCase
|
|
105
|
+
it('should check snake_case first, fallback to camelCase', () => {
|
|
106
|
+
// snake_case has value, so camelCase is not checked
|
|
107
|
+
expect(isUserAbort({
|
|
108
|
+
stop_reason: 'unrelated',
|
|
109
|
+
stopReason: 'cancel'
|
|
110
|
+
})).toBe(false);
|
|
111
|
+
});
|
|
112
|
+
it('should prefer snake_case when both present and valid', () => {
|
|
113
|
+
expect(isUserAbort({
|
|
114
|
+
stop_reason: 'cancel',
|
|
115
|
+
stopReason: 'unrelated'
|
|
116
|
+
})).toBe(true);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=isUserAbort.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isUserAbort.test.js","sourceRoot":"","sources":["../../../../src/hooks/todo-continuation/__tests__/isUserAbort.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/todo-continuation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwBH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAS3D;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACzE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/todo-continuation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,20 +70,14 @@ export function isUserAbort(context) {
|
|
|
70
70
|
if (context.user_requested || context.userRequested)
|
|
71
71
|
return true;
|
|
72
72
|
// Check stop_reason patterns indicating user abort
|
|
73
|
-
//
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
'ctrl_c',
|
|
78
|
-
'manual_stop',
|
|
79
|
-
'aborted',
|
|
80
|
-
'abort', // generic patterns from shell/Node.js templates
|
|
81
|
-
'cancel',
|
|
82
|
-
'interrupt',
|
|
83
|
-
];
|
|
73
|
+
// Exact-match patterns: short generic words that cause false positives with .includes()
|
|
74
|
+
const exactPatterns = ['aborted', 'abort', 'cancel', 'interrupt'];
|
|
75
|
+
// Substring patterns: compound words safe for .includes() matching
|
|
76
|
+
const substringPatterns = ['user_cancel', 'user_interrupt', 'ctrl_c', 'manual_stop'];
|
|
84
77
|
// Support both snake_case and camelCase field names
|
|
85
78
|
const reason = (context.stop_reason ?? context.stopReason ?? '').toLowerCase();
|
|
86
|
-
return
|
|
79
|
+
return exactPatterns.some(p => reason === p) ||
|
|
80
|
+
substringPatterns.some(p => reason.includes(p));
|
|
87
81
|
}
|
|
88
82
|
/**
|
|
89
83
|
* Detect if stop was triggered by context-limit related reasons.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/todo-continuation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;GAGG;AACH,SAAS,QAAQ,CAAC,OAAe,EAAE,GAAG,IAAe;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IACpC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,mBAAmB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,oDAAoD;IACpD,qDAAqD;IACrD,qDAAqD;IACrD,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;IACpE,OAAO,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAyED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,WAAW,CAAC,OAAqB;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,0EAA0E;IAC1E,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEjE,mDAAmD;IACnD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/todo-continuation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-api.d.ts","sourceRoot":"","sources":["../../src/hud/usage-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"usage-api.d.ts","sourceRoot":"","sources":["../../src/hud/usage-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAsZ7C;;;;;;;GAOG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA+C3D"}
|
package/dist/hud/usage-api.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* API: api.anthropic.com/api/oauth/usage
|
|
12
12
|
* Response: { five_hour: { utilization }, seven_day: { utilization } }
|
|
13
13
|
*/
|
|
14
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
14
|
+
import { existsSync, readFileSync, writeFileSync, renameSync, unlinkSync, mkdirSync } from 'fs';
|
|
15
15
|
import { homedir } from 'os';
|
|
16
16
|
import { join, dirname } from 'path';
|
|
17
17
|
import { execSync } from 'child_process';
|
|
@@ -20,6 +20,13 @@ import https from 'https';
|
|
|
20
20
|
const CACHE_TTL_SUCCESS_MS = 30 * 1000; // 30 seconds for successful responses
|
|
21
21
|
const CACHE_TTL_FAILURE_MS = 15 * 1000; // 15 seconds for failures
|
|
22
22
|
const API_TIMEOUT_MS = 10000;
|
|
23
|
+
const TOKEN_REFRESH_URL_HOSTNAME = 'platform.claude.com';
|
|
24
|
+
const TOKEN_REFRESH_URL_PATH = '/v1/oauth/token';
|
|
25
|
+
/**
|
|
26
|
+
* OAuth client_id for Claude Code (public client).
|
|
27
|
+
* This is the production value; can be overridden via CLAUDE_CODE_OAUTH_CLIENT_ID env var.
|
|
28
|
+
*/
|
|
29
|
+
const DEFAULT_OAUTH_CLIENT_ID = '9d1c250a-e61b-44d9-88ed-5944d1962f5e';
|
|
23
30
|
/**
|
|
24
31
|
* Get the cache file path
|
|
25
32
|
*/
|
|
@@ -96,6 +103,8 @@ function readKeychainCredentials() {
|
|
|
96
103
|
return {
|
|
97
104
|
accessToken: creds.accessToken,
|
|
98
105
|
expiresAt: creds.expiresAt,
|
|
106
|
+
refreshToken: creds.refreshToken,
|
|
107
|
+
source: 'keychain',
|
|
99
108
|
};
|
|
100
109
|
}
|
|
101
110
|
}
|
|
@@ -120,6 +129,8 @@ function readFileCredentials() {
|
|
|
120
129
|
return {
|
|
121
130
|
accessToken: creds.accessToken,
|
|
122
131
|
expiresAt: creds.expiresAt,
|
|
132
|
+
refreshToken: creds.refreshToken,
|
|
133
|
+
source: 'file',
|
|
123
134
|
};
|
|
124
135
|
}
|
|
125
136
|
}
|
|
@@ -152,6 +163,60 @@ function validateCredentials(creds) {
|
|
|
152
163
|
}
|
|
153
164
|
return true;
|
|
154
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* Attempt to refresh an expired OAuth access token using the refresh token.
|
|
168
|
+
* Returns updated credentials on success, null on failure.
|
|
169
|
+
*/
|
|
170
|
+
function refreshAccessToken(refreshToken) {
|
|
171
|
+
return new Promise((resolve) => {
|
|
172
|
+
const clientId = process.env.CLAUDE_CODE_OAUTH_CLIENT_ID || DEFAULT_OAUTH_CLIENT_ID;
|
|
173
|
+
const body = new URLSearchParams({
|
|
174
|
+
grant_type: 'refresh_token',
|
|
175
|
+
refresh_token: refreshToken,
|
|
176
|
+
client_id: clientId,
|
|
177
|
+
}).toString();
|
|
178
|
+
const req = https.request({
|
|
179
|
+
hostname: TOKEN_REFRESH_URL_HOSTNAME,
|
|
180
|
+
path: TOKEN_REFRESH_URL_PATH,
|
|
181
|
+
method: 'POST',
|
|
182
|
+
headers: {
|
|
183
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
184
|
+
'Content-Length': Buffer.byteLength(body),
|
|
185
|
+
},
|
|
186
|
+
timeout: API_TIMEOUT_MS,
|
|
187
|
+
}, (res) => {
|
|
188
|
+
let data = '';
|
|
189
|
+
res.on('data', (chunk) => { data += chunk; });
|
|
190
|
+
res.on('end', () => {
|
|
191
|
+
if (res.statusCode === 200) {
|
|
192
|
+
try {
|
|
193
|
+
const parsed = JSON.parse(data);
|
|
194
|
+
if (parsed.access_token) {
|
|
195
|
+
resolve({
|
|
196
|
+
accessToken: parsed.access_token,
|
|
197
|
+
refreshToken: parsed.refresh_token || refreshToken,
|
|
198
|
+
expiresAt: parsed.expires_in
|
|
199
|
+
? Date.now() + parsed.expires_in * 1000
|
|
200
|
+
: parsed.expires_at,
|
|
201
|
+
});
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
// JSON parse failed
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (process.env.OMC_DEBUG) {
|
|
210
|
+
console.error(`[usage-api] Token refresh failed: HTTP ${res.statusCode}`);
|
|
211
|
+
}
|
|
212
|
+
resolve(null);
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
req.on('error', () => resolve(null));
|
|
216
|
+
req.on('timeout', () => { req.destroy(); resolve(null); });
|
|
217
|
+
req.end(body);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
155
220
|
/**
|
|
156
221
|
* Fetch usage from Anthropic API
|
|
157
222
|
*/
|
|
@@ -194,6 +259,64 @@ function fetchUsageFromApi(accessToken) {
|
|
|
194
259
|
req.end();
|
|
195
260
|
});
|
|
196
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Persist refreshed credentials back to the file-based credential store.
|
|
264
|
+
* Keychain write-back is not supported (read-only for HUD).
|
|
265
|
+
* Updates only the claudeAiOauth fields, preserving other data.
|
|
266
|
+
*/
|
|
267
|
+
function writeBackCredentials(creds) {
|
|
268
|
+
try {
|
|
269
|
+
const credPath = join(homedir(), '.claude/.credentials.json');
|
|
270
|
+
if (!existsSync(credPath))
|
|
271
|
+
return;
|
|
272
|
+
const content = readFileSync(credPath, 'utf-8');
|
|
273
|
+
const parsed = JSON.parse(content);
|
|
274
|
+
// Update the nested structure
|
|
275
|
+
if (parsed.claudeAiOauth) {
|
|
276
|
+
parsed.claudeAiOauth.accessToken = creds.accessToken;
|
|
277
|
+
if (creds.expiresAt != null) {
|
|
278
|
+
parsed.claudeAiOauth.expiresAt = creds.expiresAt;
|
|
279
|
+
}
|
|
280
|
+
if (creds.refreshToken) {
|
|
281
|
+
parsed.claudeAiOauth.refreshToken = creds.refreshToken;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
// Flat structure
|
|
286
|
+
parsed.accessToken = creds.accessToken;
|
|
287
|
+
if (creds.expiresAt != null) {
|
|
288
|
+
parsed.expiresAt = creds.expiresAt;
|
|
289
|
+
}
|
|
290
|
+
if (creds.refreshToken) {
|
|
291
|
+
parsed.refreshToken = creds.refreshToken;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
// Atomic write: write to tmp file, then rename (atomic on POSIX, best-effort on Windows)
|
|
295
|
+
const tmpPath = `${credPath}.tmp.${process.pid}`;
|
|
296
|
+
try {
|
|
297
|
+
writeFileSync(tmpPath, JSON.stringify(parsed, null, 2), { mode: 0o600 });
|
|
298
|
+
renameSync(tmpPath, credPath);
|
|
299
|
+
}
|
|
300
|
+
catch (writeErr) {
|
|
301
|
+
// Clean up orphaned tmp file on failure
|
|
302
|
+
try {
|
|
303
|
+
if (existsSync(tmpPath)) {
|
|
304
|
+
unlinkSync(tmpPath);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
// Ignore cleanup errors
|
|
309
|
+
}
|
|
310
|
+
throw writeErr;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
// Silent failure - credential write-back is best-effort
|
|
315
|
+
if (process.env.OMC_DEBUG) {
|
|
316
|
+
console.error('[usage-api] Failed to write back refreshed credentials');
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
197
320
|
/**
|
|
198
321
|
* Parse API response into RateLimits
|
|
199
322
|
*/
|
|
@@ -255,11 +378,33 @@ export async function getUsage() {
|
|
|
255
378
|
return cache.data;
|
|
256
379
|
}
|
|
257
380
|
// Get credentials
|
|
258
|
-
|
|
259
|
-
if (!creds
|
|
381
|
+
let creds = getCredentials();
|
|
382
|
+
if (!creds) {
|
|
260
383
|
writeCache(null, true);
|
|
261
384
|
return null;
|
|
262
385
|
}
|
|
386
|
+
// If credentials are expired, attempt token refresh
|
|
387
|
+
if (!validateCredentials(creds)) {
|
|
388
|
+
if (creds.refreshToken) {
|
|
389
|
+
const refreshed = await refreshAccessToken(creds.refreshToken);
|
|
390
|
+
if (refreshed) {
|
|
391
|
+
// Update in-memory credentials
|
|
392
|
+
creds = { ...creds, ...refreshed };
|
|
393
|
+
// Persist refreshed credentials back to store
|
|
394
|
+
writeBackCredentials(creds);
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
// Refresh failed - fall through to return null
|
|
398
|
+
writeCache(null, true);
|
|
399
|
+
return null;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
else {
|
|
403
|
+
// No refresh token available
|
|
404
|
+
writeCache(null, true);
|
|
405
|
+
return null;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
263
408
|
// Fetch from API
|
|
264
409
|
const response = await fetchUsageFromApi(creds.accessToken);
|
|
265
410
|
if (!response) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-api.js","sourceRoot":"","sources":["../../src/hud/usage-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usage-api.js","sourceRoot":"","sources":["../../src/hud/usage-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OMC Tools Server - In-process MCP server for custom tools
|
|
3
3
|
*
|
|
4
|
-
* Exposes
|
|
4
|
+
* Exposes 18 custom tools (12 LSP, 2 AST, 1 python_repl, 3 skills) via the Claude Agent SDK's
|
|
5
5
|
* createSdkMcpServer helper for use by subagents.
|
|
6
6
|
*/
|
|
7
7
|
/**
|
|
@@ -21,5 +21,6 @@ export declare function getOmcToolNames(options?: {
|
|
|
21
21
|
includeLsp?: boolean;
|
|
22
22
|
includeAst?: boolean;
|
|
23
23
|
includePython?: boolean;
|
|
24
|
+
includeSkills?: boolean;
|
|
24
25
|
}): string[];
|
|
25
26
|
//# sourceMappingURL=omc-tools-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omc-tools-server.d.ts","sourceRoot":"","sources":["../../src/mcp/omc-tools-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"omc-tools-server.d.ts","sourceRoot":"","sources":["../../src/mcp/omc-tools-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmCH;;;;GAIG;AACH,eAAO,MAAM,cAAc,yEAIzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,UAAiD,CAAC;AAE3E;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,MAAM,EAAE,CAUX"}
|