@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.
Files changed (82) hide show
  1. package/dist/cli/index.d.ts.map +1 -1
  2. package/dist/cli/index.js +181 -106
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/slash/advanced.d.ts +3 -0
  5. package/dist/commands/slash/advanced.d.ts.map +1 -0
  6. package/dist/commands/slash/advanced.js +225 -0
  7. package/dist/commands/slash/advanced.js.map +1 -0
  8. package/dist/commands/slash/config.d.ts +3 -0
  9. package/dist/commands/slash/config.d.ts.map +1 -0
  10. package/dist/commands/slash/config.js +161 -0
  11. package/dist/commands/slash/config.js.map +1 -0
  12. package/dist/commands/slash/context.d.ts +3 -0
  13. package/dist/commands/slash/context.d.ts.map +1 -0
  14. package/dist/commands/slash/context.js +127 -0
  15. package/dist/commands/slash/context.js.map +1 -0
  16. package/dist/commands/slash/core.d.ts +3 -0
  17. package/dist/commands/slash/core.d.ts.map +1 -0
  18. package/dist/commands/slash/core.js +112 -0
  19. package/dist/commands/slash/core.js.map +1 -0
  20. package/dist/commands/slash/developer.d.ts +3 -0
  21. package/dist/commands/slash/developer.d.ts.map +1 -0
  22. package/dist/commands/slash/developer.js +174 -0
  23. package/dist/commands/slash/developer.js.map +1 -0
  24. package/dist/commands/slash/files.d.ts +3 -0
  25. package/dist/commands/slash/files.d.ts.map +1 -0
  26. package/dist/commands/slash/files.js +216 -0
  27. package/dist/commands/slash/files.js.map +1 -0
  28. package/dist/commands/slash/registry.d.ts +36 -0
  29. package/dist/commands/slash/registry.d.ts.map +1 -0
  30. package/dist/commands/slash/registry.js +69 -0
  31. package/dist/commands/slash/registry.js.map +1 -0
  32. package/dist/commands/slash/session.d.ts +3 -0
  33. package/dist/commands/slash/session.d.ts.map +1 -0
  34. package/dist/commands/slash/session.js +144 -0
  35. package/dist/commands/slash/session.js.map +1 -0
  36. package/dist/core/CoWorkerAgent.d.ts +8 -2
  37. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  38. package/dist/core/CoWorkerAgent.js +179 -36
  39. package/dist/core/CoWorkerAgent.js.map +1 -1
  40. package/dist/review/CodeReviewEngine.d.ts +78 -0
  41. package/dist/review/CodeReviewEngine.d.ts.map +1 -0
  42. package/dist/review/CodeReviewEngine.js +449 -0
  43. package/dist/review/CodeReviewEngine.js.map +1 -0
  44. package/dist/session/SessionManager.js +10 -5
  45. package/dist/session/SessionManager.js.map +1 -1
  46. package/dist/skills/HookAndSkillManager.d.ts +29 -5
  47. package/dist/skills/HookAndSkillManager.d.ts.map +1 -1
  48. package/dist/skills/HookAndSkillManager.js +167 -12
  49. package/dist/skills/HookAndSkillManager.js.map +1 -1
  50. package/dist/todos/TodoManager.d.ts +19 -0
  51. package/dist/todos/TodoManager.d.ts.map +1 -0
  52. package/dist/todos/TodoManager.js +102 -0
  53. package/dist/todos/TodoManager.js.map +1 -0
  54. package/dist/tools/NativeTools.d.ts +98 -0
  55. package/dist/tools/NativeTools.d.ts.map +1 -1
  56. package/dist/tools/NativeTools.js +571 -0
  57. package/dist/tools/NativeTools.js.map +1 -1
  58. package/dist/tools/Schemas.d.ts +1199 -102
  59. package/dist/tools/Schemas.d.ts.map +1 -1
  60. package/dist/tools/Schemas.js +358 -40
  61. package/dist/tools/Schemas.js.map +1 -1
  62. package/dist/utils/conversations.d.ts +14 -0
  63. package/dist/utils/conversations.d.ts.map +1 -0
  64. package/dist/utils/conversations.js +100 -0
  65. package/dist/utils/conversations.js.map +1 -0
  66. package/dist/utils/inputbar.d.ts +87 -0
  67. package/dist/utils/inputbar.d.ts.map +1 -0
  68. package/dist/utils/inputbar.js +263 -0
  69. package/dist/utils/inputbar.js.map +1 -0
  70. package/dist/utils/output.d.ts +73 -48
  71. package/dist/utils/output.d.ts.map +1 -1
  72. package/dist/utils/output.js +349 -158
  73. package/dist/utils/output.js.map +1 -1
  74. package/dist/utils/palette.d.ts +25 -0
  75. package/dist/utils/palette.d.ts.map +1 -0
  76. package/dist/utils/palette.js +92 -0
  77. package/dist/utils/palette.js.map +1 -0
  78. package/dist/utils/welcome.d.ts +2 -0
  79. package/dist/utils/welcome.d.ts.map +1 -0
  80. package/dist/utils/welcome.js +130 -0
  81. package/dist/utils/welcome.js.map +1 -0
  82. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../src/session/SessionManager.ts"],"names":[],"mappings":"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"}
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,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;gBAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC1G,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;gBAAE,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5G,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;gBAAE,OAAO,CAAC,KAAK,CAAC,yCAAyC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAAoB;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,cAAc,GAAG,KAAK,CAAC;QAE7B,4BAA4B;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE3F,IAAI,UAAU,GAAG,cAAc,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;gBAAE,OAAO,CAAC,GAAG,CAAC,iDAAiD,UAAU,yCAAyC,CAAC,CAAC;YAE9I,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,8CAA8C;YACzE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC;YAEjG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,0HAA0H,CAAC;YAEjJ,qEAAqE;YACrE,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC;YAEvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB,CAAC,cAAsB;QACnD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAE1D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,aAAa,MAAM,CAAC,CAAC;YAEnF,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;gBAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,cAAc,mBAAmB,CAAC,CAAC;QAC/G,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,0EAA0E;QAC5E,CAAC;IACH,CAAC;CACF;AApGD,wCAoGC"}
@@ -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: Hooks and Skills.
12
- * Allows overriding CoWorker dynamically with custom Markdown slash-commands
13
- * and executing terminal commands automagically during tool lifecycles.
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. Enables output masking/summarization by skills.
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":"AAKA,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;;;;GAIG;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;;IAM9C,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxF;;OAEG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9E;;OAEG;IACU,uBAAuB,CAAC,OAAO,GAAE,MAAqD,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC5G,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD,gBAAgB,IAAI,MAAM,EAAE;CAGpC"}
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: Hooks and Skills.
42
- * Allows overriding CoWorker dynamically with custom Markdown slash-commands
43
- * and executing terminal commands automagically during tool lifecycles.
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
- // In standard node we'd spawn to the shell. We simulate it here.
61
- // await executeBash(hook.command);
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
- console.log(`[Hooks] PostToolUse fired for ${toolName} (output length: ${result.length})`);
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. Enables output masking/summarization by skills.
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
- console.log(`[Skills] Loaded ${this.loadedSkills.size} slash commands.`);
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":"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"}
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":"AAQA;;;GAGG;AACH,qBAAa,WAAW;IAEtB;;OAEG;WACU,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa3D;;OAEG;WACU,cAAc,CAAC,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BnE;;;OAGG;WACU,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBxE;;OAEG;WACU,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7D;;OAEG;WACU,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7E;;;OAGG;WACU,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiCzF;;;OAGG;WACU,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBtF;;OAEG;WACU,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B7D;;OAEG;WACU,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa7D;;OAEG;WACU,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAcvE"}
1
+ {"version":3,"file":"NativeTools.d.ts","sourceRoot":"","sources":["../../src/tools/NativeTools.ts"],"names":[],"mappings":"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"}