@sylix/coworker 1.2.6 → 1.3.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/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +181 -106
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/slash/advanced.d.ts +3 -0
- package/dist/commands/slash/advanced.d.ts.map +1 -0
- package/dist/commands/slash/advanced.js +225 -0
- package/dist/commands/slash/advanced.js.map +1 -0
- package/dist/commands/slash/config.d.ts +3 -0
- package/dist/commands/slash/config.d.ts.map +1 -0
- package/dist/commands/slash/config.js +161 -0
- package/dist/commands/slash/config.js.map +1 -0
- package/dist/commands/slash/context.d.ts +3 -0
- package/dist/commands/slash/context.d.ts.map +1 -0
- package/dist/commands/slash/context.js +127 -0
- package/dist/commands/slash/context.js.map +1 -0
- package/dist/commands/slash/core.d.ts +3 -0
- package/dist/commands/slash/core.d.ts.map +1 -0
- package/dist/commands/slash/core.js +112 -0
- package/dist/commands/slash/core.js.map +1 -0
- package/dist/commands/slash/developer.d.ts +3 -0
- package/dist/commands/slash/developer.d.ts.map +1 -0
- package/dist/commands/slash/developer.js +174 -0
- package/dist/commands/slash/developer.js.map +1 -0
- package/dist/commands/slash/files.d.ts +3 -0
- package/dist/commands/slash/files.d.ts.map +1 -0
- package/dist/commands/slash/files.js +216 -0
- package/dist/commands/slash/files.js.map +1 -0
- package/dist/commands/slash/registry.d.ts +36 -0
- package/dist/commands/slash/registry.d.ts.map +1 -0
- package/dist/commands/slash/registry.js +69 -0
- package/dist/commands/slash/registry.js.map +1 -0
- package/dist/commands/slash/session.d.ts +3 -0
- package/dist/commands/slash/session.d.ts.map +1 -0
- package/dist/commands/slash/session.js +144 -0
- package/dist/commands/slash/session.js.map +1 -0
- package/dist/core/CoWorkerAgent.d.ts +8 -2
- package/dist/core/CoWorkerAgent.d.ts.map +1 -1
- package/dist/core/CoWorkerAgent.js +179 -36
- package/dist/core/CoWorkerAgent.js.map +1 -1
- package/dist/review/CodeReviewEngine.d.ts +78 -0
- package/dist/review/CodeReviewEngine.d.ts.map +1 -0
- package/dist/review/CodeReviewEngine.js +449 -0
- package/dist/review/CodeReviewEngine.js.map +1 -0
- package/dist/session/SessionManager.js +10 -5
- package/dist/session/SessionManager.js.map +1 -1
- package/dist/skills/HookAndSkillManager.d.ts +29 -5
- package/dist/skills/HookAndSkillManager.d.ts.map +1 -1
- package/dist/skills/HookAndSkillManager.js +167 -12
- package/dist/skills/HookAndSkillManager.js.map +1 -1
- package/dist/todos/TodoManager.d.ts +19 -0
- package/dist/todos/TodoManager.d.ts.map +1 -0
- package/dist/todos/TodoManager.js +102 -0
- package/dist/todos/TodoManager.js.map +1 -0
- package/dist/tools/NativeTools.d.ts +98 -0
- package/dist/tools/NativeTools.d.ts.map +1 -1
- package/dist/tools/NativeTools.js +571 -0
- package/dist/tools/NativeTools.js.map +1 -1
- package/dist/tools/Schemas.d.ts +1199 -102
- package/dist/tools/Schemas.d.ts.map +1 -1
- package/dist/tools/Schemas.js +358 -40
- package/dist/tools/Schemas.js.map +1 -1
- package/dist/utils/conversations.d.ts +14 -0
- package/dist/utils/conversations.d.ts.map +1 -0
- package/dist/utils/conversations.js +100 -0
- package/dist/utils/conversations.js.map +1 -0
- package/dist/utils/inputbar.d.ts +87 -0
- package/dist/utils/inputbar.d.ts.map +1 -0
- package/dist/utils/inputbar.js +263 -0
- package/dist/utils/inputbar.js.map +1 -0
- package/dist/utils/output.d.ts +73 -48
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +349 -158
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/palette.d.ts +25 -0
- package/dist/utils/palette.d.ts.map +1 -0
- package/dist/utils/palette.js +92 -0
- package/dist/utils/palette.js.map +1 -0
- package/dist/utils/welcome.d.ts +2 -0
- package/dist/utils/welcome.d.ts.map +1 -0
- package/dist/utils/welcome.js +130 -0
- package/dist/utils/welcome.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../src/session/SessionManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAc7B;;;GAGG;AACH,MAAa,cAAc;IAKzB,YAAY,SAAiB;QAJZ,YAAO,GAAG,oBAAoB,CAAC;QAK9C,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG;YACX,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,OAAO,CAAC,CAAC;IACjF,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../src/session/SessionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,26 +7,50 @@ export interface HookRegexCommand {
|
|
|
7
7
|
matcher: RegExp;
|
|
8
8
|
command: string;
|
|
9
9
|
}
|
|
10
|
+
export interface DiagnosticResult {
|
|
11
|
+
tool: string;
|
|
12
|
+
filePath: string;
|
|
13
|
+
errors: string;
|
|
14
|
+
hasErrors: boolean;
|
|
15
|
+
}
|
|
10
16
|
/**
|
|
11
|
-
* Phase 3
|
|
12
|
-
*
|
|
13
|
-
*
|
|
17
|
+
* Phase 3+: Hooks, Skills, and Inline Error Detection.
|
|
18
|
+
*
|
|
19
|
+
* INLINE ERROR DETECTION (Claude Code Parity):
|
|
20
|
+
* After every file-mutation tool (Write, Edit, MultiEdit), CoWorker automatically
|
|
21
|
+
* runs the appropriate linter/type-checker and feeds the errors back into the LLM
|
|
22
|
+
* context so it can self-correct without the user having to manually run validation.
|
|
23
|
+
*
|
|
24
|
+
* This mirrors Claude Code's PostToolUse hook system.
|
|
14
25
|
*/
|
|
15
26
|
export declare class HookAndSkillManager {
|
|
16
27
|
private events;
|
|
17
28
|
loadedSkills: Map<string, Skill>;
|
|
18
29
|
preToolHooks: HookRegexCommand[];
|
|
19
30
|
postToolHooks: HookRegexCommand[];
|
|
31
|
+
/** Stores the last diagnostic result so the agent loop can inject it. */
|
|
32
|
+
lastDiagnostic: DiagnosticResult | null;
|
|
20
33
|
constructor();
|
|
21
34
|
private registerInternalHooks;
|
|
35
|
+
/**
|
|
36
|
+
* Runs the appropriate diagnostic/linter based on file extension.
|
|
37
|
+
* Returns errors if any are found; these get injected into the LLM context.
|
|
38
|
+
*/
|
|
39
|
+
private runDiagnostics;
|
|
40
|
+
/**
|
|
41
|
+
* Public API: manually run diagnostics on a specific file.
|
|
42
|
+
* Called by the `diagnostics` tool in the schemas.
|
|
43
|
+
*/
|
|
44
|
+
runManualDiagnostics(filePath: string): Promise<string>;
|
|
22
45
|
/**
|
|
23
46
|
* Fired before the main CoWorker agent loop executes an LLM-requested tool.
|
|
24
47
|
*/
|
|
25
48
|
firePreToolHook(toolName: string, args: Record<string, any>): Promise<void>;
|
|
26
49
|
/**
|
|
27
|
-
* Fired after the tool completes execution.
|
|
50
|
+
* Fired after the tool completes execution.
|
|
51
|
+
* NOW: also runs inline error detection for file-mutation tools.
|
|
28
52
|
*/
|
|
29
|
-
firePostToolHook(toolName: string, result: string): Promise<void>;
|
|
53
|
+
firePostToolHook(toolName: string, result: string, args?: Record<string, any>): Promise<void>;
|
|
30
54
|
/**
|
|
31
55
|
* Reads .coworker/skills/*.md mapping frontmatter to /commands.
|
|
32
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HookAndSkillManager.d.ts","sourceRoot":"","sources":["../../src/skills/HookAndSkillManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HookAndSkillManager.d.ts","sourceRoot":"","sources":["../../src/skills/HookAndSkillManager.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAsB;IAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAa;IAC7C,YAAY,EAAE,gBAAgB,EAAE,CAAM;IACtC,aAAa,EAAE,gBAAgB,EAAE,CAAM;IAE9C,yEAAyE;IAClE,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAQ;;IAMtD,OAAO,CAAC,qBAAqB;IAsD7B;;;OAGG;YACW,cAAc;IA+G5B;;;OAGG;IACU,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE;;OAEG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxF;;;OAGG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9G;;OAEG;IACU,uBAAuB,CAAC,OAAO,GAAE,MAAqD,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC5G,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD,gBAAgB,IAAI,MAAM,EAAE;CAGpC"}
|
|
@@ -37,10 +37,16 @@ exports.HookAndSkillManager = void 0;
|
|
|
37
37
|
const events_1 = require("events");
|
|
38
38
|
const fs = __importStar(require("fs/promises"));
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
|
+
const child_process_1 = require("child_process");
|
|
40
41
|
/**
|
|
41
|
-
* Phase 3
|
|
42
|
-
*
|
|
43
|
-
*
|
|
42
|
+
* Phase 3+: Hooks, Skills, and Inline Error Detection.
|
|
43
|
+
*
|
|
44
|
+
* INLINE ERROR DETECTION (Claude Code Parity):
|
|
45
|
+
* After every file-mutation tool (Write, Edit, MultiEdit), CoWorker automatically
|
|
46
|
+
* runs the appropriate linter/type-checker and feeds the errors back into the LLM
|
|
47
|
+
* context so it can self-correct without the user having to manually run validation.
|
|
48
|
+
*
|
|
49
|
+
* This mirrors Claude Code's PostToolUse hook system.
|
|
44
50
|
*/
|
|
45
51
|
class HookAndSkillManager {
|
|
46
52
|
constructor() {
|
|
@@ -48,6 +54,8 @@ class HookAndSkillManager {
|
|
|
48
54
|
this.loadedSkills = new Map();
|
|
49
55
|
this.preToolHooks = [];
|
|
50
56
|
this.postToolHooks = [];
|
|
57
|
+
/** Stores the last diagnostic result so the agent loop can inject it. */
|
|
58
|
+
this.lastDiagnostic = null;
|
|
51
59
|
this.registerInternalHooks();
|
|
52
60
|
}
|
|
53
61
|
registerInternalHooks() {
|
|
@@ -57,8 +65,8 @@ class HookAndSkillManager {
|
|
|
57
65
|
if (hook.matcher.test(toolSignature)) {
|
|
58
66
|
console.log(`[Hooks] Triggered PreTool hook for ${toolName}. Executing automation: ${hook.command}`);
|
|
59
67
|
try {
|
|
60
|
-
|
|
61
|
-
|
|
68
|
+
const output = (0, child_process_1.execSync)(hook.command, { encoding: 'utf8', timeout: 15000 }).trim();
|
|
69
|
+
console.log(`[Hooks] PreTool output: ${output.substring(0, 200)}`);
|
|
62
70
|
}
|
|
63
71
|
catch (err) {
|
|
64
72
|
return reject(`Hook automation failed blocking tool execution: ${err.message}`);
|
|
@@ -67,16 +75,162 @@ class HookAndSkillManager {
|
|
|
67
75
|
}
|
|
68
76
|
resolve();
|
|
69
77
|
});
|
|
70
|
-
this.events.on('PostToolUse', async (toolName, result, resolve) => {
|
|
71
|
-
|
|
78
|
+
this.events.on('PostToolUse', async (toolName, result, args, resolve) => {
|
|
79
|
+
// ═══════════════════════════════════════════════════════════════
|
|
80
|
+
// INLINE ERROR DETECTION — Auto-validation after file mutations
|
|
81
|
+
// ═══════════════════════════════════════════════════════════════
|
|
82
|
+
const fileMutationTools = ['executeWrite', 'executeEdit', 'executeMultiEdit'];
|
|
83
|
+
if (fileMutationTools.includes(toolName)) {
|
|
84
|
+
const filePath = args.filePath || '';
|
|
85
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
86
|
+
const diagnostic = await this.runDiagnostics(filePath, ext);
|
|
87
|
+
this.lastDiagnostic = diagnostic;
|
|
88
|
+
if (diagnostic.hasErrors) {
|
|
89
|
+
console.log(`\x1b[33m[Diagnostics] ⚠ Found errors after ${toolName} on ${path.basename(filePath)}:\x1b[0m`);
|
|
90
|
+
console.log(`\x1b[31m${diagnostic.errors.substring(0, 500)}\x1b[0m`);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
console.log(`\x1b[32m[Diagnostics] ✓ No errors detected after ${toolName} on ${path.basename(filePath)}\x1b[0m`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this.lastDiagnostic = null;
|
|
98
|
+
}
|
|
99
|
+
// Fire user-defined PostTool hooks
|
|
72
100
|
for (const hook of this.postToolHooks) {
|
|
73
101
|
if (hook.matcher.test(toolName)) {
|
|
74
102
|
console.log(`[Hooks] Triggered PostTool hook for ${toolName}. Running: ${hook.command}`);
|
|
103
|
+
try {
|
|
104
|
+
(0, child_process_1.execSync)(hook.command, { encoding: 'utf8', timeout: 15000 });
|
|
105
|
+
}
|
|
106
|
+
catch { /* non-fatal */ }
|
|
75
107
|
}
|
|
76
108
|
}
|
|
77
109
|
resolve();
|
|
78
110
|
});
|
|
79
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Runs the appropriate diagnostic/linter based on file extension.
|
|
114
|
+
* Returns errors if any are found; these get injected into the LLM context.
|
|
115
|
+
*/
|
|
116
|
+
async runDiagnostics(filePath, ext) {
|
|
117
|
+
const absPath = path.resolve(process.cwd(), filePath);
|
|
118
|
+
const result = {
|
|
119
|
+
tool: 'none',
|
|
120
|
+
filePath: absPath,
|
|
121
|
+
errors: '',
|
|
122
|
+
hasErrors: false
|
|
123
|
+
};
|
|
124
|
+
try {
|
|
125
|
+
// Detect which validator to run based on file extension
|
|
126
|
+
switch (ext) {
|
|
127
|
+
case '.ts':
|
|
128
|
+
case '.tsx': {
|
|
129
|
+
// TypeScript: try tsc --noEmit on just this file
|
|
130
|
+
result.tool = 'tsc';
|
|
131
|
+
try {
|
|
132
|
+
// First check if tsconfig.json exists
|
|
133
|
+
await fs.access(path.join(process.cwd(), 'tsconfig.json'));
|
|
134
|
+
const output = (0, child_process_1.execSync)(`npx tsc --noEmit --pretty false 2>&1 | findstr /i "${path.basename(filePath)}"`, { encoding: 'utf8', timeout: 30000, cwd: process.cwd() }).trim();
|
|
135
|
+
if (output) {
|
|
136
|
+
result.errors = output.substring(0, 2000);
|
|
137
|
+
result.hasErrors = true;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
// tsc exits with code 1 when there are errors
|
|
142
|
+
const stderr = e.stdout?.toString() || e.stderr?.toString() || '';
|
|
143
|
+
const filtered = stderr.split('\n')
|
|
144
|
+
.filter((line) => line.includes(path.basename(filePath)))
|
|
145
|
+
.join('\n')
|
|
146
|
+
.trim();
|
|
147
|
+
if (filtered) {
|
|
148
|
+
result.errors = filtered.substring(0, 2000);
|
|
149
|
+
result.hasErrors = true;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case '.js':
|
|
155
|
+
case '.jsx':
|
|
156
|
+
case '.mjs': {
|
|
157
|
+
// JavaScript: try node --check for syntax validation
|
|
158
|
+
result.tool = 'node --check';
|
|
159
|
+
try {
|
|
160
|
+
(0, child_process_1.execSync)(`node --check "${absPath}"`, { encoding: 'utf8', timeout: 10000 });
|
|
161
|
+
}
|
|
162
|
+
catch (e) {
|
|
163
|
+
const stderr = e.stderr?.toString() || e.message;
|
|
164
|
+
result.errors = stderr.substring(0, 2000);
|
|
165
|
+
result.hasErrors = true;
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
case '.py': {
|
|
170
|
+
// Python: syntax check
|
|
171
|
+
result.tool = 'py_compile';
|
|
172
|
+
try {
|
|
173
|
+
(0, child_process_1.execSync)(`python -m py_compile "${absPath}"`, { encoding: 'utf8', timeout: 10000 });
|
|
174
|
+
}
|
|
175
|
+
catch (e) {
|
|
176
|
+
const stderr = e.stderr?.toString() || e.message;
|
|
177
|
+
result.errors = stderr.substring(0, 2000);
|
|
178
|
+
result.hasErrors = true;
|
|
179
|
+
}
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case '.json': {
|
|
183
|
+
// JSON: parse validation
|
|
184
|
+
result.tool = 'JSON.parse';
|
|
185
|
+
try {
|
|
186
|
+
const content = await fs.readFile(absPath, 'utf8');
|
|
187
|
+
JSON.parse(content);
|
|
188
|
+
}
|
|
189
|
+
catch (e) {
|
|
190
|
+
result.errors = `JSON parse error: ${e.message}`;
|
|
191
|
+
result.hasErrors = true;
|
|
192
|
+
}
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
case '.css':
|
|
196
|
+
case '.scss': {
|
|
197
|
+
// CSS: basic syntax check via stylelint if available
|
|
198
|
+
result.tool = 'stylelint';
|
|
199
|
+
try {
|
|
200
|
+
const output = (0, child_process_1.execSync)(`npx stylelint "${absPath}" 2>&1`, { encoding: 'utf8', timeout: 15000 });
|
|
201
|
+
if (output.trim()) {
|
|
202
|
+
result.errors = output.substring(0, 2000);
|
|
203
|
+
result.hasErrors = true;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
catch (e) {
|
|
207
|
+
// stylelint not installed — skip silently
|
|
208
|
+
}
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
default:
|
|
212
|
+
// No validator available for this extension
|
|
213
|
+
result.tool = 'none';
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
// All validation is best-effort; never crash the main loop
|
|
219
|
+
}
|
|
220
|
+
return result;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Public API: manually run diagnostics on a specific file.
|
|
224
|
+
* Called by the `diagnostics` tool in the schemas.
|
|
225
|
+
*/
|
|
226
|
+
async runManualDiagnostics(filePath) {
|
|
227
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
228
|
+
const result = await this.runDiagnostics(filePath, ext);
|
|
229
|
+
if (result.hasErrors) {
|
|
230
|
+
return `[${result.tool}] Errors in ${path.basename(filePath)}:\n${result.errors}`;
|
|
231
|
+
}
|
|
232
|
+
return `[${result.tool}] No errors found in ${path.basename(filePath)}.`;
|
|
233
|
+
}
|
|
80
234
|
/**
|
|
81
235
|
* Fired before the main CoWorker agent loop executes an LLM-requested tool.
|
|
82
236
|
*/
|
|
@@ -86,11 +240,12 @@ class HookAndSkillManager {
|
|
|
86
240
|
});
|
|
87
241
|
}
|
|
88
242
|
/**
|
|
89
|
-
* Fired after the tool completes execution.
|
|
243
|
+
* Fired after the tool completes execution.
|
|
244
|
+
* NOW: also runs inline error detection for file-mutation tools.
|
|
90
245
|
*/
|
|
91
|
-
async firePostToolHook(toolName, result) {
|
|
246
|
+
async firePostToolHook(toolName, result, args = {}) {
|
|
92
247
|
return new Promise((resolve) => {
|
|
93
|
-
this.events.emit('PostToolUse', toolName, result, resolve);
|
|
248
|
+
this.events.emit('PostToolUse', toolName, result, args, resolve);
|
|
94
249
|
});
|
|
95
250
|
}
|
|
96
251
|
/**
|
|
@@ -103,7 +258,6 @@ class HookAndSkillManager {
|
|
|
103
258
|
if (!file.endsWith('.md'))
|
|
104
259
|
continue;
|
|
105
260
|
const content = await fs.readFile(path.join(dirPath, file), 'utf8');
|
|
106
|
-
// Very basic YAML frontmatter regex extraction without an external library
|
|
107
261
|
const yamlMatch = content.match(/^---\\n([\\s\\S]*?)\\n---/);
|
|
108
262
|
let name = file.replace('.md', '');
|
|
109
263
|
let description = 'Custom loaded user skill';
|
|
@@ -124,7 +278,8 @@ class HookAndSkillManager {
|
|
|
124
278
|
systemPromptInjection: body
|
|
125
279
|
});
|
|
126
280
|
}
|
|
127
|
-
|
|
281
|
+
if (process.env.CW_VERBOSE)
|
|
282
|
+
console.log(`[Skills] Loaded ${this.loadedSkills.size} slash commands.`);
|
|
128
283
|
}
|
|
129
284
|
catch {
|
|
130
285
|
// Directory doesn't exist, which is fine
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HookAndSkillManager.js","sourceRoot":"","sources":["../../src/skills/HookAndSkillManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAsC;AACtC,gDAAkC;AAClC,2CAA6B;
|
|
1
|
+
{"version":3,"file":"HookAndSkillManager.js","sourceRoot":"","sources":["../../src/skills/HookAndSkillManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface TodoItem {
|
|
2
|
+
id: string;
|
|
3
|
+
content: string;
|
|
4
|
+
status: 'pending' | 'in_progress' | 'completed';
|
|
5
|
+
priority: 'high' | 'medium' | 'low';
|
|
6
|
+
}
|
|
7
|
+
export declare class TodoManager {
|
|
8
|
+
private todos;
|
|
9
|
+
private filePath;
|
|
10
|
+
constructor();
|
|
11
|
+
private loadTodos;
|
|
12
|
+
private saveTodos;
|
|
13
|
+
getTodos(): Promise<TodoItem[]>;
|
|
14
|
+
addTodo(content: string, priority?: 'high' | 'medium' | 'low'): Promise<string>;
|
|
15
|
+
updateTodo(id: string, updates: Partial<Pick<TodoItem, 'content' | 'status' | 'priority'>>): Promise<boolean>;
|
|
16
|
+
deleteTodo(id: string): Promise<boolean>;
|
|
17
|
+
clearCompleted(): Promise<number>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=TodoManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodoManager.d.ts","sourceRoot":"","sources":["../../src/todos/TodoManager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACrC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAS;;YAQX,SAAS;YAWT,SAAS;IAMV,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI/B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,QAAQ,GAAG,KAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAYzF,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7G,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQxC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAO/C"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.TodoManager = void 0;
|
|
37
|
+
const fs = __importStar(require("fs/promises"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const crypto_1 = require("crypto");
|
|
40
|
+
class TodoManager {
|
|
41
|
+
constructor() {
|
|
42
|
+
this.todos = [];
|
|
43
|
+
// Store todos in .coworker directory
|
|
44
|
+
this.filePath = path.join(process.cwd(), '.coworker', 'todos.json');
|
|
45
|
+
this.loadTodos();
|
|
46
|
+
}
|
|
47
|
+
async loadTodos() {
|
|
48
|
+
try {
|
|
49
|
+
const data = await fs.readFile(this.filePath, 'utf8');
|
|
50
|
+
this.todos = JSON.parse(data);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
// File doesn't exist or invalid JSON, start with empty array
|
|
54
|
+
this.todos = [];
|
|
55
|
+
await this.saveTodos();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async saveTodos() {
|
|
59
|
+
const dir = path.dirname(this.filePath);
|
|
60
|
+
await fs.mkdir(dir, { recursive: true });
|
|
61
|
+
await fs.writeFile(this.filePath, JSON.stringify(this.todos, null, 2), 'utf8');
|
|
62
|
+
}
|
|
63
|
+
async getTodos() {
|
|
64
|
+
return [...this.todos]; // Return copy
|
|
65
|
+
}
|
|
66
|
+
async addTodo(content, priority = 'medium') {
|
|
67
|
+
const todo = {
|
|
68
|
+
id: (0, crypto_1.randomUUID)(),
|
|
69
|
+
content,
|
|
70
|
+
status: 'pending',
|
|
71
|
+
priority
|
|
72
|
+
};
|
|
73
|
+
this.todos.push(todo);
|
|
74
|
+
await this.saveTodos();
|
|
75
|
+
return todo.id;
|
|
76
|
+
}
|
|
77
|
+
async updateTodo(id, updates) {
|
|
78
|
+
const index = this.todos.findIndex(todo => todo.id === id);
|
|
79
|
+
if (index === -1)
|
|
80
|
+
return false;
|
|
81
|
+
this.todos[index] = { ...this.todos[index], ...updates };
|
|
82
|
+
await this.saveTodos();
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
async deleteTodo(id) {
|
|
86
|
+
const initialLength = this.todos.length;
|
|
87
|
+
this.todos = this.todos.filter(todo => todo.id !== id);
|
|
88
|
+
const deleted = this.todos.length < initialLength;
|
|
89
|
+
if (deleted)
|
|
90
|
+
await this.saveTodos();
|
|
91
|
+
return deleted;
|
|
92
|
+
}
|
|
93
|
+
async clearCompleted() {
|
|
94
|
+
const initialLength = this.todos.length;
|
|
95
|
+
this.todos = this.todos.filter(todo => todo.status !== 'completed');
|
|
96
|
+
const removed = initialLength - this.todos.length;
|
|
97
|
+
await this.saveTodos();
|
|
98
|
+
return removed;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.TodoManager = TodoManager;
|
|
102
|
+
//# sourceMappingURL=TodoManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodoManager.js","sourceRoot":"","sources":["../../src/todos/TodoManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,5 +46,103 @@ export declare class NativeTools {
|
|
|
46
46
|
* AskUserQuestion tool - pauses execution and prompts the developer for input natively.
|
|
47
47
|
*/
|
|
48
48
|
static executeAskUserQuestion(question: string): Promise<string>;
|
|
49
|
+
/**
|
|
50
|
+
* Edits an existing file by replacing specific strings.
|
|
51
|
+
* Similar to the Edit tool in Claude Code.
|
|
52
|
+
*/
|
|
53
|
+
static executeEdit(filePath: string, oldString: string, newString: string, replaceAll?: boolean): Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Performs multiple edits on a single file.
|
|
56
|
+
* Similar to the MultiEdit tool in Claude Code.
|
|
57
|
+
*/
|
|
58
|
+
static executeMultiEdit(filePath: string, edits: Array<{
|
|
59
|
+
oldString: string;
|
|
60
|
+
newString: string;
|
|
61
|
+
replaceAll?: boolean;
|
|
62
|
+
}>): Promise<string>;
|
|
63
|
+
/**
|
|
64
|
+
* Lists files and directories in the specified path.
|
|
65
|
+
* Similar to the LS tool in Claude Code.
|
|
66
|
+
*/
|
|
67
|
+
static executeLS(dirPath?: string, recursive?: boolean): Promise<string>;
|
|
68
|
+
/**
|
|
69
|
+
* Reads the current todo list for the session.
|
|
70
|
+
* Similar to the TodoRead tool in Claude Code.
|
|
71
|
+
*/
|
|
72
|
+
static executeTodoRead(): Promise<string>;
|
|
73
|
+
/**
|
|
74
|
+
* Creates and manages a structured todo list for tracking progress.
|
|
75
|
+
* Similar to the TodoWrite tool in Claude Code.
|
|
76
|
+
*/
|
|
77
|
+
static executeTodoWrite(todos: Array<{
|
|
78
|
+
id?: string;
|
|
79
|
+
content: string;
|
|
80
|
+
status: 'pending' | 'in_progress' | 'completed';
|
|
81
|
+
priority: 'high' | 'medium' | 'low';
|
|
82
|
+
}>): Promise<string>;
|
|
83
|
+
/**
|
|
84
|
+
* Reads a Jupyter notebook (.ipynb file) and returns all cells with their outputs.
|
|
85
|
+
* Similar to the NotebookRead tool in Claude Code.
|
|
86
|
+
*/
|
|
87
|
+
static executeNotebookRead(notebookPath: string): Promise<string>;
|
|
88
|
+
/**
|
|
89
|
+
* Replaces, inserts, or deletes cells in a Jupyter notebook.
|
|
90
|
+
* Similar to the NotebookEdit tool in Claude Code.
|
|
91
|
+
*/
|
|
92
|
+
static executeNotebookEdit(notebookPath: string, newSource: string, cellId?: string, cellType?: 'code' | 'markdown'): Promise<string>;
|
|
93
|
+
/**
|
|
94
|
+
* Launches a sub-agent to handle complex, multi-step operations autonomously.
|
|
95
|
+
* Similar to the Agent tool in Claude Code.
|
|
96
|
+
*/
|
|
97
|
+
static executeAgent(description: string, subagentType?: string): Promise<string>;
|
|
98
|
+
/**
|
|
99
|
+
* Reads the COWORKER.md memory file from the project root.
|
|
100
|
+
* Equivalent to Claude Code's MemoryRead (CLAUDE.md).
|
|
101
|
+
*/
|
|
102
|
+
static executeMemoryRead(): Promise<string>;
|
|
103
|
+
/**
|
|
104
|
+
* Writes or appends to the COWORKER.md memory file.
|
|
105
|
+
* Equivalent to Claude Code's MemoryWrite (CLAUDE.md).
|
|
106
|
+
*/
|
|
107
|
+
static executeMemoryWrite(content: string, mode?: 'append' | 'overwrite'): Promise<string>;
|
|
108
|
+
/**
|
|
109
|
+
* Returns structured git status output.
|
|
110
|
+
* Equivalent to Claude Code's GitStatus tool.
|
|
111
|
+
*/
|
|
112
|
+
static executeGitStatus(cwd?: string): Promise<string>;
|
|
113
|
+
/**
|
|
114
|
+
* Returns git diff output for working directory or specific file.
|
|
115
|
+
* Equivalent to Claude Code's GitDiff tool.
|
|
116
|
+
*/
|
|
117
|
+
static executeGitDiff(filePath?: string, staged?: boolean, cwd?: string): Promise<string>;
|
|
118
|
+
/**
|
|
119
|
+
* Stages files and creates a git commit.
|
|
120
|
+
* Equivalent to Claude Code's GitCommit tool.
|
|
121
|
+
*/
|
|
122
|
+
static executeGitCommit(message: string, files?: string[], cwd?: string): Promise<string>;
|
|
123
|
+
/**
|
|
124
|
+
* Reads output from a background process.
|
|
125
|
+
* Equivalent to Claude Code's BashOutput tool.
|
|
126
|
+
*/
|
|
127
|
+
static executeBashOutput(pid: number): Promise<string>;
|
|
128
|
+
/**
|
|
129
|
+
* Kills a running process by PID.
|
|
130
|
+
* Equivalent to Claude Code's KillShell tool.
|
|
131
|
+
*/
|
|
132
|
+
static executeKillShell(pid: number): Promise<string>;
|
|
133
|
+
/**
|
|
134
|
+
* Returns a sub-agent's result back to the parent agent.
|
|
135
|
+
* Equivalent to Claude Code's ReturnSubagentResult tool.
|
|
136
|
+
*/
|
|
137
|
+
static executeReturnSubagentResult(result: string): Promise<string>;
|
|
138
|
+
/**
|
|
139
|
+
* Runs diagnostics/linting on a file to detect errors.
|
|
140
|
+
* Supports: TypeScript (tsc), JavaScript (node --check), Python (py_compile), JSON, CSS
|
|
141
|
+
*/
|
|
142
|
+
static executeDiagnostics(filePath: string): Promise<string>;
|
|
143
|
+
/**
|
|
144
|
+
* Runs a full code review on the current git branch changes.
|
|
145
|
+
*/
|
|
146
|
+
static executeCodeReview(baseBranch?: string): Promise<string>;
|
|
49
147
|
}
|
|
50
148
|
//# sourceMappingURL=NativeTools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeTools.d.ts","sourceRoot":"","sources":["../../src/tools/NativeTools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NativeTools.d.ts","sourceRoot":"","sources":["../../src/tools/NativeTools.ts"],"names":[],"mappings":"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"}
|