oh-my-claude-sisyphus 1.9.0 → 1.10.2
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/dist/agents/definitions.js +1 -1
- package/dist/agents/orchestrator-sisyphus.js +1 -1
- package/dist/features/auto-update.d.ts +20 -0
- package/dist/features/auto-update.d.ts.map +1 -1
- package/dist/features/auto-update.js +35 -0
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/builtin-skills/skills.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.js +146 -13
- package/dist/features/builtin-skills/skills.js.map +1 -1
- package/dist/hooks/bridge.d.ts +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +97 -1
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +12 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/persistent-mode/index.d.ts +40 -0
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/index.js +322 -0
- package/dist/hooks/persistent-mode/index.js.map +1 -0
- package/dist/hooks/plugin-patterns/index.d.ts +107 -0
- package/dist/hooks/plugin-patterns/index.d.ts.map +1 -0
- package/dist/hooks/plugin-patterns/index.js +286 -0
- package/dist/hooks/plugin-patterns/index.js.map +1 -0
- package/dist/hooks/preemptive-compaction/index.js +2 -2
- package/dist/hooks/preemptive-compaction/index.js.map +1 -1
- package/dist/hooks/ralph-verifier/index.d.ts +72 -0
- package/dist/hooks/ralph-verifier/index.d.ts.map +1 -0
- package/dist/hooks/ralph-verifier/index.js +223 -0
- package/dist/hooks/ralph-verifier/index.js.map +1 -0
- package/dist/hooks/thinking-block-validator/index.d.ts +3 -34
- package/dist/hooks/thinking-block-validator/index.d.ts.map +1 -1
- package/dist/hooks/thinking-block-validator/index.js +21 -70
- package/dist/hooks/thinking-block-validator/index.js.map +1 -1
- package/dist/hooks/ultrawork-state/index.d.ts +60 -0
- package/dist/hooks/ultrawork-state/index.d.ts.map +1 -0
- package/dist/hooks/ultrawork-state/index.js +207 -0
- package/dist/hooks/ultrawork-state/index.js.map +1 -0
- package/dist/installer/hooks.d.ts +38 -2
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +682 -8
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +126 -10
- package/dist/installer/index.js.map +1 -1
- package/dist/tools/ast-tools.d.ts +3 -3
- package/dist/tools/ast-tools.d.ts.map +1 -1
- package/dist/tools/ast-tools.js +205 -104
- package/dist/tools/ast-tools.js.map +1 -1
- package/package.json +1 -1
- package/scripts/install.sh +70 -3
- package/scripts/uninstall.sh +116 -3
package/dist/tools/ast-tools.js
CHANGED
|
@@ -6,59 +6,103 @@
|
|
|
6
6
|
* - Code replacement while preserving structure
|
|
7
7
|
* - Support for 25+ programming languages
|
|
8
8
|
*/
|
|
9
|
-
import { z } from
|
|
10
|
-
import { readFileSync, readdirSync, statSync, writeFileSync } from
|
|
11
|
-
import { join, extname, resolve } from
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { readFileSync, readdirSync, statSync, writeFileSync } from "fs";
|
|
11
|
+
import { join, extname, resolve } from "path";
|
|
12
12
|
// Dynamic import for @ast-grep/napi (ESM module)
|
|
13
13
|
let sgModule = null;
|
|
14
14
|
async function getSgModule() {
|
|
15
15
|
if (!sgModule) {
|
|
16
|
-
sgModule = await import(
|
|
16
|
+
sgModule = await import("@ast-grep/napi");
|
|
17
17
|
}
|
|
18
18
|
return sgModule;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Convert lowercase language string to ast-grep Lang enum value
|
|
22
|
+
* This provides type-safe language conversion without using 'as any'
|
|
23
|
+
*/
|
|
24
|
+
function toLangEnum(sg, language) {
|
|
25
|
+
const langMap = {
|
|
26
|
+
javascript: sg.Lang.JavaScript,
|
|
27
|
+
typescript: sg.Lang.TypeScript,
|
|
28
|
+
tsx: sg.Lang.Tsx,
|
|
29
|
+
python: sg.Lang.Python,
|
|
30
|
+
ruby: sg.Lang.Ruby,
|
|
31
|
+
go: sg.Lang.Go,
|
|
32
|
+
rust: sg.Lang.Rust,
|
|
33
|
+
java: sg.Lang.Java,
|
|
34
|
+
kotlin: sg.Lang.Kotlin,
|
|
35
|
+
swift: sg.Lang.Swift,
|
|
36
|
+
c: sg.Lang.C,
|
|
37
|
+
cpp: sg.Lang.Cpp,
|
|
38
|
+
csharp: sg.Lang.CSharp,
|
|
39
|
+
html: sg.Lang.Html,
|
|
40
|
+
css: sg.Lang.Css,
|
|
41
|
+
json: sg.Lang.Json,
|
|
42
|
+
yaml: sg.Lang.Yaml,
|
|
43
|
+
};
|
|
44
|
+
const lang = langMap[language];
|
|
45
|
+
if (!lang) {
|
|
46
|
+
throw new Error(`Unsupported language: ${language}`);
|
|
47
|
+
}
|
|
48
|
+
return lang;
|
|
49
|
+
}
|
|
20
50
|
/**
|
|
21
51
|
* Supported languages for AST analysis
|
|
22
52
|
* Maps to ast-grep language identifiers
|
|
23
53
|
*/
|
|
24
54
|
export const SUPPORTED_LANGUAGES = [
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
55
|
+
"javascript",
|
|
56
|
+
"typescript",
|
|
57
|
+
"tsx",
|
|
58
|
+
"python",
|
|
59
|
+
"ruby",
|
|
60
|
+
"go",
|
|
61
|
+
"rust",
|
|
62
|
+
"java",
|
|
63
|
+
"kotlin",
|
|
64
|
+
"swift",
|
|
65
|
+
"c",
|
|
66
|
+
"cpp",
|
|
67
|
+
"csharp",
|
|
68
|
+
"html",
|
|
69
|
+
"css",
|
|
70
|
+
"json",
|
|
71
|
+
"yaml",
|
|
28
72
|
];
|
|
29
73
|
/**
|
|
30
74
|
* Map file extensions to ast-grep language identifiers
|
|
31
75
|
*/
|
|
32
76
|
const EXT_TO_LANG = {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
77
|
+
".js": "javascript",
|
|
78
|
+
".mjs": "javascript",
|
|
79
|
+
".cjs": "javascript",
|
|
80
|
+
".jsx": "javascript",
|
|
81
|
+
".ts": "typescript",
|
|
82
|
+
".mts": "typescript",
|
|
83
|
+
".cts": "typescript",
|
|
84
|
+
".tsx": "tsx",
|
|
85
|
+
".py": "python",
|
|
86
|
+
".rb": "ruby",
|
|
87
|
+
".go": "go",
|
|
88
|
+
".rs": "rust",
|
|
89
|
+
".java": "java",
|
|
90
|
+
".kt": "kotlin",
|
|
91
|
+
".kts": "kotlin",
|
|
92
|
+
".swift": "swift",
|
|
93
|
+
".c": "c",
|
|
94
|
+
".h": "c",
|
|
95
|
+
".cpp": "cpp",
|
|
96
|
+
".cc": "cpp",
|
|
97
|
+
".cxx": "cpp",
|
|
98
|
+
".hpp": "cpp",
|
|
99
|
+
".cs": "csharp",
|
|
100
|
+
".html": "html",
|
|
101
|
+
".htm": "html",
|
|
102
|
+
".css": "css",
|
|
103
|
+
".json": "json",
|
|
104
|
+
".yaml": "yaml",
|
|
105
|
+
".yml": "yaml",
|
|
62
106
|
};
|
|
63
107
|
/**
|
|
64
108
|
* Get files matching the language in a directory
|
|
@@ -79,7 +123,15 @@ function getFilesForLanguage(dirPath, language, maxFiles = 1000) {
|
|
|
79
123
|
const fullPath = join(dir, entry.name);
|
|
80
124
|
// Skip common non-source directories
|
|
81
125
|
if (entry.isDirectory()) {
|
|
82
|
-
if (![
|
|
126
|
+
if (![
|
|
127
|
+
"node_modules",
|
|
128
|
+
".git",
|
|
129
|
+
"dist",
|
|
130
|
+
"build",
|
|
131
|
+
"__pycache__",
|
|
132
|
+
".venv",
|
|
133
|
+
"venv",
|
|
134
|
+
].includes(entry.name)) {
|
|
83
135
|
walk(fullPath);
|
|
84
136
|
}
|
|
85
137
|
}
|
|
@@ -107,23 +159,23 @@ function getFilesForLanguage(dirPath, language, maxFiles = 1000) {
|
|
|
107
159
|
* Format a match result for display
|
|
108
160
|
*/
|
|
109
161
|
function formatMatch(filePath, matchText, startLine, endLine, context, fileContent) {
|
|
110
|
-
const lines = fileContent.split(
|
|
162
|
+
const lines = fileContent.split("\n");
|
|
111
163
|
const contextStart = Math.max(0, startLine - context - 1);
|
|
112
164
|
const contextEnd = Math.min(lines.length, endLine + context);
|
|
113
165
|
const contextLines = lines.slice(contextStart, contextEnd);
|
|
114
166
|
const numberedLines = contextLines.map((line, i) => {
|
|
115
167
|
const lineNum = contextStart + i + 1;
|
|
116
168
|
const isMatch = lineNum >= startLine && lineNum <= endLine;
|
|
117
|
-
const prefix = isMatch ?
|
|
169
|
+
const prefix = isMatch ? ">" : " ";
|
|
118
170
|
return `${prefix} ${lineNum.toString().padStart(4)}: ${line}`;
|
|
119
171
|
});
|
|
120
|
-
return `${filePath}:${startLine}\n${numberedLines.join(
|
|
172
|
+
return `${filePath}:${startLine}\n${numberedLines.join("\n")}`;
|
|
121
173
|
}
|
|
122
174
|
/**
|
|
123
175
|
* AST Grep Search Tool - Find code patterns using AST matching
|
|
124
176
|
*/
|
|
125
177
|
export const astGrepSearchTool = {
|
|
126
|
-
name:
|
|
178
|
+
name: "ast_grep_search",
|
|
127
179
|
description: `Search for code patterns using AST matching. More precise than text search.
|
|
128
180
|
|
|
129
181
|
Use meta-variables in patterns:
|
|
@@ -139,23 +191,42 @@ Examples:
|
|
|
139
191
|
|
|
140
192
|
Note: Patterns must be valid AST nodes for the language.`,
|
|
141
193
|
schema: {
|
|
142
|
-
pattern: z
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
194
|
+
pattern: z
|
|
195
|
+
.string()
|
|
196
|
+
.describe("AST pattern with meta-variables ($VAR, $$$VARS)"),
|
|
197
|
+
language: z.enum(SUPPORTED_LANGUAGES).describe("Programming language"),
|
|
198
|
+
path: z
|
|
199
|
+
.string()
|
|
200
|
+
.optional()
|
|
201
|
+
.describe("Directory or file to search (default: current directory)"),
|
|
202
|
+
context: z
|
|
203
|
+
.number()
|
|
204
|
+
.int()
|
|
205
|
+
.min(0)
|
|
206
|
+
.max(10)
|
|
207
|
+
.optional()
|
|
208
|
+
.describe("Lines of context around matches (default: 2)"),
|
|
209
|
+
maxResults: z
|
|
210
|
+
.number()
|
|
211
|
+
.int()
|
|
212
|
+
.min(1)
|
|
213
|
+
.max(100)
|
|
214
|
+
.optional()
|
|
215
|
+
.describe("Maximum results to return (default: 20)"),
|
|
147
216
|
},
|
|
148
217
|
handler: async (args) => {
|
|
149
|
-
const { pattern, language, path =
|
|
218
|
+
const { pattern, language, path = ".", context = 2, maxResults = 20, } = args;
|
|
150
219
|
try {
|
|
151
220
|
const sg = await getSgModule();
|
|
152
221
|
const files = getFilesForLanguage(path, language);
|
|
153
222
|
if (files.length === 0) {
|
|
154
223
|
return {
|
|
155
|
-
content: [
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
224
|
+
content: [
|
|
225
|
+
{
|
|
226
|
+
type: "text",
|
|
227
|
+
text: `No ${language} files found in ${path}`,
|
|
228
|
+
},
|
|
229
|
+
],
|
|
159
230
|
};
|
|
160
231
|
}
|
|
161
232
|
const results = [];
|
|
@@ -164,8 +235,8 @@ Note: Patterns must be valid AST nodes for the language.`,
|
|
|
164
235
|
if (totalMatches >= maxResults)
|
|
165
236
|
break;
|
|
166
237
|
try {
|
|
167
|
-
const content = readFileSync(filePath,
|
|
168
|
-
const root = sg.parse(language, content).root();
|
|
238
|
+
const content = readFileSync(filePath, "utf-8");
|
|
239
|
+
const root = sg.parse(toLangEnum(sg, language), content).root();
|
|
169
240
|
const matches = root.findAll(pattern);
|
|
170
241
|
for (const match of matches) {
|
|
171
242
|
if (totalMatches >= maxResults)
|
|
@@ -183,35 +254,41 @@ Note: Patterns must be valid AST nodes for the language.`,
|
|
|
183
254
|
}
|
|
184
255
|
if (results.length === 0) {
|
|
185
256
|
return {
|
|
186
|
-
content: [
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
257
|
+
content: [
|
|
258
|
+
{
|
|
259
|
+
type: "text",
|
|
260
|
+
text: `No matches found for pattern: ${pattern}\n\nSearched ${files.length} ${language} file(s) in ${path}\n\nTip: Ensure the pattern is a valid AST node. For example:\n- Use "function $NAME" not just "$NAME"\n- Use "console.log($X)" not "console.log"`,
|
|
261
|
+
},
|
|
262
|
+
],
|
|
190
263
|
};
|
|
191
264
|
}
|
|
192
265
|
const header = `Found ${totalMatches} match(es) in ${files.length} file(s)\nPattern: ${pattern}\n\n`;
|
|
193
266
|
return {
|
|
194
|
-
content: [
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
267
|
+
content: [
|
|
268
|
+
{
|
|
269
|
+
type: "text",
|
|
270
|
+
text: header + results.join("\n\n---\n\n"),
|
|
271
|
+
},
|
|
272
|
+
],
|
|
198
273
|
};
|
|
199
274
|
}
|
|
200
275
|
catch (error) {
|
|
201
276
|
return {
|
|
202
|
-
content: [
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
277
|
+
content: [
|
|
278
|
+
{
|
|
279
|
+
type: "text",
|
|
280
|
+
text: `Error in AST search: ${error instanceof Error ? error.message : String(error)}\n\nCommon issues:\n- Pattern must be a complete AST node\n- Language must match file type\n- Check that @ast-grep/napi is installed`,
|
|
281
|
+
},
|
|
282
|
+
],
|
|
206
283
|
};
|
|
207
284
|
}
|
|
208
|
-
}
|
|
285
|
+
},
|
|
209
286
|
};
|
|
210
287
|
/**
|
|
211
288
|
* AST Grep Replace Tool - Replace code patterns using AST matching
|
|
212
289
|
*/
|
|
213
290
|
export const astGrepReplaceTool = {
|
|
214
|
-
name:
|
|
291
|
+
name: "ast_grep_replace",
|
|
215
292
|
description: `Replace code patterns using AST matching. Preserves matched content via meta-variables.
|
|
216
293
|
|
|
217
294
|
Use meta-variables in both pattern and replacement:
|
|
@@ -225,31 +302,41 @@ Examples:
|
|
|
225
302
|
|
|
226
303
|
IMPORTANT: dryRun=true (default) only previews changes. Set dryRun=false to apply.`,
|
|
227
304
|
schema: {
|
|
228
|
-
pattern: z.string().describe(
|
|
229
|
-
replacement: z
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
305
|
+
pattern: z.string().describe("Pattern to match"),
|
|
306
|
+
replacement: z
|
|
307
|
+
.string()
|
|
308
|
+
.describe("Replacement pattern (use same meta-variables)"),
|
|
309
|
+
language: z.enum(SUPPORTED_LANGUAGES).describe("Programming language"),
|
|
310
|
+
path: z
|
|
311
|
+
.string()
|
|
312
|
+
.optional()
|
|
313
|
+
.describe("Directory or file to search (default: current directory)"),
|
|
314
|
+
dryRun: z
|
|
315
|
+
.boolean()
|
|
316
|
+
.optional()
|
|
317
|
+
.describe("Preview only, don't apply changes (default: true)"),
|
|
233
318
|
},
|
|
234
319
|
handler: async (args) => {
|
|
235
|
-
const { pattern, replacement, language, path =
|
|
320
|
+
const { pattern, replacement, language, path = ".", dryRun = true } = args;
|
|
236
321
|
try {
|
|
237
322
|
const sg = await getSgModule();
|
|
238
323
|
const files = getFilesForLanguage(path, language);
|
|
239
324
|
if (files.length === 0) {
|
|
240
325
|
return {
|
|
241
|
-
content: [
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
326
|
+
content: [
|
|
327
|
+
{
|
|
328
|
+
type: "text",
|
|
329
|
+
text: `No ${language} files found in ${path}`,
|
|
330
|
+
},
|
|
331
|
+
],
|
|
245
332
|
};
|
|
246
333
|
}
|
|
247
334
|
const changes = [];
|
|
248
335
|
let totalReplacements = 0;
|
|
249
336
|
for (const filePath of files) {
|
|
250
337
|
try {
|
|
251
|
-
const content = readFileSync(filePath,
|
|
252
|
-
const root = sg.parse(language, content).root();
|
|
338
|
+
const content = readFileSync(filePath, "utf-8");
|
|
339
|
+
const root = sg.parse(toLangEnum(sg, language), content).root();
|
|
253
340
|
const matches = root.findAll(pattern);
|
|
254
341
|
if (matches.length === 0)
|
|
255
342
|
continue;
|
|
@@ -270,7 +357,7 @@ IMPORTANT: dryRun=true (default) only previews changes. Set dryRun=false to appl
|
|
|
270
357
|
// Replace meta-variables in the replacement string
|
|
271
358
|
const metaVars = replacement.match(/\$\$?\$?[A-Z_][A-Z0-9_]*/g) || [];
|
|
272
359
|
for (const metaVar of metaVars) {
|
|
273
|
-
const varName = metaVar.replace(/^\$+/,
|
|
360
|
+
const varName = metaVar.replace(/^\$+/, "");
|
|
274
361
|
const captured = match.getMatch(varName);
|
|
275
362
|
if (captured) {
|
|
276
363
|
finalReplacement = finalReplacement.replace(metaVar, captured.text());
|
|
@@ -285,7 +372,7 @@ IMPORTANT: dryRun=true (default) only previews changes. Set dryRun=false to appl
|
|
|
285
372
|
end: endOffset,
|
|
286
373
|
replacement: finalReplacement,
|
|
287
374
|
line: range.start.line + 1,
|
|
288
|
-
before: matchedText
|
|
375
|
+
before: matchedText,
|
|
289
376
|
});
|
|
290
377
|
}
|
|
291
378
|
// Sort edits in reverse order to apply from end to start
|
|
@@ -293,17 +380,20 @@ IMPORTANT: dryRun=true (default) only previews changes. Set dryRun=false to appl
|
|
|
293
380
|
let newContent = content;
|
|
294
381
|
for (const edit of edits) {
|
|
295
382
|
const before = newContent.slice(edit.start, edit.end);
|
|
296
|
-
newContent =
|
|
383
|
+
newContent =
|
|
384
|
+
newContent.slice(0, edit.start) +
|
|
385
|
+
edit.replacement +
|
|
386
|
+
newContent.slice(edit.end);
|
|
297
387
|
changes.push({
|
|
298
388
|
file: filePath,
|
|
299
389
|
before,
|
|
300
390
|
after: edit.replacement,
|
|
301
|
-
line: edit.line
|
|
391
|
+
line: edit.line,
|
|
302
392
|
});
|
|
303
393
|
totalReplacements++;
|
|
304
394
|
}
|
|
305
395
|
if (!dryRun && edits.length > 0) {
|
|
306
|
-
writeFileSync(filePath, newContent,
|
|
396
|
+
writeFileSync(filePath, newContent, "utf-8");
|
|
307
397
|
}
|
|
308
398
|
}
|
|
309
399
|
catch {
|
|
@@ -312,38 +402,49 @@ IMPORTANT: dryRun=true (default) only previews changes. Set dryRun=false to appl
|
|
|
312
402
|
}
|
|
313
403
|
if (changes.length === 0) {
|
|
314
404
|
return {
|
|
315
|
-
content: [
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
405
|
+
content: [
|
|
406
|
+
{
|
|
407
|
+
type: "text",
|
|
408
|
+
text: `No matches found for pattern: ${pattern}\n\nSearched ${files.length} ${language} file(s) in ${path}`,
|
|
409
|
+
},
|
|
410
|
+
],
|
|
319
411
|
};
|
|
320
412
|
}
|
|
321
|
-
const mode = dryRun ?
|
|
413
|
+
const mode = dryRun ? "DRY RUN (no changes applied)" : "CHANGES APPLIED";
|
|
322
414
|
const header = `${mode}\n\nFound ${totalReplacements} replacement(s) in ${files.length} file(s)\nPattern: ${pattern}\nReplacement: ${replacement}\n\n`;
|
|
323
|
-
const changeList = changes
|
|
324
|
-
|
|
415
|
+
const changeList = changes
|
|
416
|
+
.slice(0, 50)
|
|
417
|
+
.map((c) => `${c.file}:${c.line}\n - ${c.before}\n + ${c.after}`)
|
|
418
|
+
.join("\n\n");
|
|
419
|
+
const footer = changes.length > 50
|
|
420
|
+
? `\n\n... and ${changes.length - 50} more changes`
|
|
421
|
+
: "";
|
|
325
422
|
return {
|
|
326
|
-
content: [
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
423
|
+
content: [
|
|
424
|
+
{
|
|
425
|
+
type: "text",
|
|
426
|
+
text: header +
|
|
427
|
+
changeList +
|
|
428
|
+
footer +
|
|
429
|
+
(dryRun ? "\n\nTo apply changes, run with dryRun: false" : ""),
|
|
430
|
+
},
|
|
431
|
+
],
|
|
330
432
|
};
|
|
331
433
|
}
|
|
332
434
|
catch (error) {
|
|
333
435
|
return {
|
|
334
|
-
content: [
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
436
|
+
content: [
|
|
437
|
+
{
|
|
438
|
+
type: "text",
|
|
439
|
+
text: `Error in AST replace: ${error instanceof Error ? error.message : String(error)}`,
|
|
440
|
+
},
|
|
441
|
+
],
|
|
338
442
|
};
|
|
339
443
|
}
|
|
340
|
-
}
|
|
444
|
+
},
|
|
341
445
|
};
|
|
342
446
|
/**
|
|
343
447
|
* Get all AST tool definitions
|
|
344
448
|
*/
|
|
345
|
-
export const astTools = [
|
|
346
|
-
astGrepSearchTool,
|
|
347
|
-
astGrepReplaceTool
|
|
348
|
-
];
|
|
449
|
+
export const astTools = [astGrepSearchTool, astGrepReplaceTool];
|
|
349
450
|
//# sourceMappingURL=ast-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-tools.js","sourceRoot":"","sources":["../../src/tools/ast-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ast-tools.js","sourceRoot":"","sources":["../../src/tools/ast-tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/scripts/install.sh
CHANGED
|
@@ -1036,6 +1036,40 @@ echo -e "${GREEN}✓ Installed 3 skills${NC}"
|
|
|
1036
1036
|
echo -e "${BLUE}[6/8]${NC} Installing hook scripts..."
|
|
1037
1037
|
mkdir -p "$CLAUDE_CONFIG_DIR/hooks"
|
|
1038
1038
|
|
|
1039
|
+
# Ask user about silent auto-update preference (opt-in for security)
|
|
1040
|
+
CONFIG_FILE="$CLAUDE_CONFIG_DIR/.sisyphus-config.json"
|
|
1041
|
+
ENABLE_SILENT_UPDATE="false"
|
|
1042
|
+
|
|
1043
|
+
echo ""
|
|
1044
|
+
echo -e "${YELLOW}Silent Auto-Update Configuration${NC}"
|
|
1045
|
+
echo " Sisyphus can automatically check for and install updates in the background."
|
|
1046
|
+
echo " This runs without user interaction when you start Claude Code."
|
|
1047
|
+
echo ""
|
|
1048
|
+
echo -e "${YELLOW}Security Note:${NC} Silent updates download and execute code from GitHub."
|
|
1049
|
+
echo " You can always manually update using /update command instead."
|
|
1050
|
+
echo ""
|
|
1051
|
+
read -p "Enable silent auto-updates? (y/N) " -n 1 -r
|
|
1052
|
+
echo
|
|
1053
|
+
|
|
1054
|
+
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
1055
|
+
ENABLE_SILENT_UPDATE="true"
|
|
1056
|
+
echo -e "${GREEN}✓ Silent auto-updates enabled${NC}"
|
|
1057
|
+
else
|
|
1058
|
+
ENABLE_SILENT_UPDATE="false"
|
|
1059
|
+
echo -e "${GREEN}✓ Silent auto-updates disabled (use /update to update manually)${NC}"
|
|
1060
|
+
fi
|
|
1061
|
+
|
|
1062
|
+
# Save configuration
|
|
1063
|
+
cat > "$CONFIG_FILE" << CONFIG_EOF
|
|
1064
|
+
{
|
|
1065
|
+
"silentAutoUpdate": $ENABLE_SILENT_UPDATE,
|
|
1066
|
+
"configuredAt": "$(date -u +"%Y-%m-%dT%H:%M:%SZ")",
|
|
1067
|
+
"configVersion": 1
|
|
1068
|
+
}
|
|
1069
|
+
CONFIG_EOF
|
|
1070
|
+
echo -e "${GREEN}✓ Saved configuration to $CONFIG_FILE${NC}"
|
|
1071
|
+
echo ""
|
|
1072
|
+
|
|
1039
1073
|
# Keyword detector hook - detects ultrawork/ultrathink/search/analyze keywords
|
|
1040
1074
|
cat > "$CLAUDE_CONFIG_DIR/hooks/keyword-detector.sh" << 'HOOK_EOF'
|
|
1041
1075
|
#!/bin/bash
|
|
@@ -1150,12 +1184,14 @@ exit 0
|
|
|
1150
1184
|
HOOK_EOF
|
|
1151
1185
|
chmod +x "$CLAUDE_CONFIG_DIR/hooks/stop-continuation.sh"
|
|
1152
1186
|
|
|
1153
|
-
# Silent auto-update hook - checks and applies updates
|
|
1187
|
+
# Silent auto-update hook - checks and applies updates only if enabled
|
|
1154
1188
|
cat > "$CLAUDE_CONFIG_DIR/hooks/silent-auto-update.sh" << 'HOOK_EOF'
|
|
1155
1189
|
#!/bin/bash
|
|
1156
1190
|
# Sisyphus Silent Auto-Update Hook
|
|
1157
|
-
# Runs completely in the background to check for and apply updates
|
|
1158
|
-
#
|
|
1191
|
+
# Runs completely in the background to check for and apply updates.
|
|
1192
|
+
#
|
|
1193
|
+
# SECURITY: This hook only runs if the user has explicitly enabled
|
|
1194
|
+
# silent auto-updates in ~/.claude/.sisyphus-config.json
|
|
1159
1195
|
#
|
|
1160
1196
|
# This hook is designed to be called on UserPromptSubmit events
|
|
1161
1197
|
# but runs asynchronously so it doesn't block the user experience.
|
|
@@ -1167,6 +1203,7 @@ INPUT=$(cat)
|
|
|
1167
1203
|
# The actual update check happens in the background
|
|
1168
1204
|
(
|
|
1169
1205
|
# Configuration
|
|
1206
|
+
CONFIG_FILE="$HOME/.claude/.sisyphus-config.json"
|
|
1170
1207
|
VERSION_FILE="$HOME/.claude/.sisyphus-version.json"
|
|
1171
1208
|
STATE_FILE="$HOME/.claude/.sisyphus-silent-update.json"
|
|
1172
1209
|
LOG_FILE="$HOME/.claude/.sisyphus-update.log"
|
|
@@ -1178,6 +1215,36 @@ INPUT=$(cat)
|
|
|
1178
1215
|
echo "[$(date -Iseconds)] $1" >> "$LOG_FILE" 2>/dev/null
|
|
1179
1216
|
}
|
|
1180
1217
|
|
|
1218
|
+
# Check if silent auto-update is enabled in configuration
|
|
1219
|
+
is_enabled() {
|
|
1220
|
+
if [ ! -f "$CONFIG_FILE" ]; then
|
|
1221
|
+
# No config file = not explicitly enabled = disabled for security
|
|
1222
|
+
return 1
|
|
1223
|
+
fi
|
|
1224
|
+
|
|
1225
|
+
# Check silentAutoUpdate setting
|
|
1226
|
+
local enabled=""
|
|
1227
|
+
if command -v jq &> /dev/null; then
|
|
1228
|
+
enabled=$(jq -r '.silentAutoUpdate // false' "$CONFIG_FILE" 2>/dev/null)
|
|
1229
|
+
else
|
|
1230
|
+
# Fallback: simple grep
|
|
1231
|
+
enabled=$(grep -o '"silentAutoUpdate"[[:space:]]*:[[:space:]]*true' "$CONFIG_FILE" 2>/dev/null)
|
|
1232
|
+
if [ -n "$enabled" ]; then
|
|
1233
|
+
enabled="true"
|
|
1234
|
+
else
|
|
1235
|
+
enabled="false"
|
|
1236
|
+
fi
|
|
1237
|
+
fi
|
|
1238
|
+
|
|
1239
|
+
[ "$enabled" = "true" ]
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
# Exit early if silent auto-update is disabled
|
|
1243
|
+
if ! is_enabled; then
|
|
1244
|
+
log "Silent auto-update is disabled (run installer to enable, or use /update)"
|
|
1245
|
+
exit 0
|
|
1246
|
+
fi
|
|
1247
|
+
|
|
1181
1248
|
# Check if we should check for updates (rate limiting)
|
|
1182
1249
|
should_check() {
|
|
1183
1250
|
if [ ! -f "$VERSION_FILE" ]; then
|