oh-my-claude-sisyphus 3.8.10 → 3.8.11

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.
@@ -10,7 +10,7 @@
10
10
  {
11
11
  "name": "oh-my-claudecode",
12
12
  "description": "Claude Code native multi-agent orchestration with intelligent model routing, 28 agent variants, and 30 powerful skills. Zero learning curve. Maximum power.",
13
- "version": "3.8.9",
13
+ "version": "3.8.11",
14
14
  "author": {
15
15
  "name": "Yeachan Heo",
16
16
  "email": "hurrc04@gmail.com"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-claudecode",
3
- "version": "3.8.10",
3
+ "version": "3.8.11",
4
4
  "description": "Multi-agent orchestration system for Claude Code",
5
5
  "author": {
6
6
  "name": "oh-my-claudecode contributors"
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/hooks/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAuDH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,OAAO,GACP,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,eAAe,GACf,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,CAAC;AAgbzB;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,UAAU,CAAC,CAiErB;AAED;;;GAGG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B1C"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/hooks/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAuDH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,OAAO,GACP,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,eAAe,GACf,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,CAAC;AAwbzB;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,UAAU,CAAC,CAiErB;AAED;;;GAGG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B1C"}
@@ -12,7 +12,7 @@
12
12
  * echo "$INPUT" | node ~/.claude/omc/hook-bridge.mjs --hook=keyword-detector
13
13
  * ```
14
14
  */
15
- import { detectKeywordsWithType, removeCodeBlocks } from './keyword-detector/index.js';
15
+ import { removeCodeBlocks, getAllKeywords } from './keyword-detector/index.js';
16
16
  import { readRalphState, incrementRalphIteration, clearRalphState, detectCompletionPromise, createRalphLoopHook } from './ralph/index.js';
17
17
  import { processOrchestratorPreTool } from './omc-orchestrator/index.js';
18
18
  import { addBackgroundTask } from '../hud/background-tasks.js';
@@ -48,8 +48,8 @@ function getPromptText(input) {
48
48
  }
49
49
  /**
50
50
  * Process keyword detection hook
51
- * Detects ultrawork/ultrathink/search/analyze keywords and returns injection message
52
- * Also activates persistent ultrawork state when ultrawork keyword is detected
51
+ * Detects magic keywords and returns injection message
52
+ * Also activates persistent state for modes that require it (ralph, ultrawork)
53
53
  */
54
54
  function processKeywordDetector(input) {
55
55
  const promptText = getPromptText(input);
@@ -58,57 +58,64 @@ function processKeywordDetector(input) {
58
58
  }
59
59
  // Remove code blocks to prevent false positives
60
60
  const cleanedText = removeCodeBlocks(promptText);
61
- // Detect keywords
62
- const keywords = detectKeywordsWithType(cleanedText);
61
+ // Get all keywords (supports multiple keywords in one prompt)
62
+ const keywords = getAllKeywords(cleanedText);
63
63
  if (keywords.length === 0) {
64
64
  return { continue: true };
65
65
  }
66
- // Priority: ralph > ultrawork > ultrathink > deepsearch > analyze
67
- const hasRalph = keywords.some(k => k.type === 'ralph');
68
- const hasUltrawork = keywords.some(k => k.type === 'ultrawork');
69
- const hasUltrathink = keywords.some(k => k.type === 'ultrathink');
70
- const hasDeepsearch = keywords.some(k => k.type === 'deepsearch');
71
- const hasAnalyze = keywords.some(k => k.type === 'analyze');
72
- if (hasRalph) {
73
- // Activate ralph state which also auto-activates ultrawork
74
- const sessionId = input.sessionId;
75
- const directory = input.directory || process.cwd();
76
- const hook = createRalphLoopHook(directory);
77
- hook.startLoop(sessionId || 'cli-session', promptText);
78
- return {
79
- continue: true,
80
- message: RALPH_MESSAGE
81
- };
82
- }
83
- if (hasUltrawork) {
84
- // Activate persistent ultrawork state
85
- const sessionId = input.sessionId;
86
- const directory = input.directory || process.cwd();
87
- activateUltrawork(promptText, sessionId, directory);
88
- return {
89
- continue: true,
90
- message: ULTRAWORK_MESSAGE
91
- };
92
- }
93
- if (hasUltrathink) {
94
- return {
95
- continue: true,
96
- message: ULTRATHINK_MESSAGE
97
- };
98
- }
99
- if (hasDeepsearch) {
100
- return {
101
- continue: true,
102
- message: SEARCH_MESSAGE
103
- };
66
+ const sessionId = input.sessionId;
67
+ const directory = input.directory || process.cwd();
68
+ const messages = [];
69
+ // Process each keyword and collect messages
70
+ for (const keywordType of keywords) {
71
+ switch (keywordType) {
72
+ case 'ralph':
73
+ // Activate ralph state which also auto-activates ultrawork
74
+ const hook = createRalphLoopHook(directory);
75
+ hook.startLoop(sessionId || 'cli-session', promptText);
76
+ messages.push(RALPH_MESSAGE);
77
+ break;
78
+ case 'ultrawork':
79
+ // Activate persistent ultrawork state
80
+ activateUltrawork(promptText, sessionId, directory);
81
+ messages.push(ULTRAWORK_MESSAGE);
82
+ break;
83
+ case 'ultrathink':
84
+ messages.push(ULTRATHINK_MESSAGE);
85
+ break;
86
+ case 'deepsearch':
87
+ messages.push(SEARCH_MESSAGE);
88
+ break;
89
+ case 'analyze':
90
+ messages.push(ANALYZE_MESSAGE);
91
+ break;
92
+ // For modes without dedicated message constants, return generic activation message
93
+ // These are handled by UserPromptSubmit hook for skill invocation
94
+ case 'cancel':
95
+ case 'autopilot':
96
+ case 'ultrapilot':
97
+ case 'ecomode':
98
+ case 'swarm':
99
+ case 'pipeline':
100
+ case 'ralplan':
101
+ case 'plan':
102
+ case 'tdd':
103
+ case 'research':
104
+ messages.push(`[MODE: ${keywordType.toUpperCase()}] Skill invocation handled by UserPromptSubmit hook.`);
105
+ break;
106
+ default:
107
+ // Skip unknown keywords
108
+ break;
109
+ }
104
110
  }
105
- if (hasAnalyze) {
106
- return {
107
- continue: true,
108
- message: ANALYZE_MESSAGE
109
- };
111
+ // Return combined message with delimiter
112
+ if (messages.length === 0) {
113
+ return { continue: true };
110
114
  }
111
- return { continue: true };
115
+ return {
116
+ continue: true,
117
+ message: messages.join('\n\n---\n\n')
118
+ };
112
119
  }
113
120
  /**
114
121
  * Process stop continuation hook
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/hooks/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1I,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAA0B,MAAM,4BAA4B,CAAC;AACvF,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAe,kBAAkB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAClH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,kBAAkB,EAElB,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,yBAAyB;AACzB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EAGpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EAExB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,gBAAgB,EAEjB,MAAM,wBAAwB,CAAC;AA+DhC;;GAEG;AACH,SAAS,aAAa,CAAC,KAAgB;IACrC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC,KAAK;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAChB,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,KAAgB;IAC9C,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,gDAAgD;IAChD,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEjD,kBAAkB;IAClB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,kEAAkE;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAE5D,IAAI,QAAQ,EAAE,CAAC;QACb,2DAA2D;QAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,aAAa,EAAE,UAAU,CAAC,CAAC;QAEvD,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,aAAa;SACvB,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,sCAAsC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEpD,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,iBAAiB;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,kBAAkB;SAC5B,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,eAAe;SACzB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB,CAAC,KAAgB;IACrD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnD,oFAAoF;IACpF,MAAM,WAAW,GAAgB;QAC/B,WAAW,EAAG,KAAiC,CAAC,WAAiC;QACjF,UAAU,EAAG,KAAiC,CAAC,UAAgC;QAC/E,cAAc,EAAG,KAAiC,CAAC,cAAqC;QACxF,aAAa,EAAG,KAAiC,CAAC,aAAoC;KACvF,CAAC;IAEF,iEAAiE;IACjE,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,qBAAqB;IACrB,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,6BAA6B;IAC7B,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAEtF,IAAI,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,GAAG,wBAAwB,gBAAgB,eAAe,CAAC,KAAK,mBAAmB;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,KAAgB;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,mBAAmB;IACnB,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,6EAA6E;IAC7E,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAE3D,IAAI,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAC/B,yEAAyE;QACzE,0DAA0D;QAC1D,oEAAoE;QACpE,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,iBAAiB,CAAC,CAAC;QAC7E,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,kBAAkB;SAC5B,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,MAAM,SAAS,GAAG,uBAAuB,CAAC,SAAS,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE/E,IAAI,SAAS,EAAE,CAAC;QACd,iEAAiE;QACjE,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAE9D,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,oBAAoB,CAAC,CAAC;YAChF,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,kBAAkB;aAC5B,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,8CAA8C,KAAK,CAAC,SAAS,gBAAgB;SACvF,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QAC5C,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,wCAAwC,KAAK,CAAC,cAAc,+BAA+B;SACrG,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,kBAAkB,GAAG,2BAA2B,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,cAAc;;;;;;;0CAO3D,QAAQ,CAAC,kBAAkB;;;;EAInE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAElB,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,kBAAkB;KAC5B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAAC,KAAgB;IACnD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnD,oFAAoF;IACpF,MAAM,WAAW,GAAgB;QAC/B,WAAW,EAAG,KAAiC,CAAC,WAAiC;QACjF,UAAU,EAAG,KAAiC,CAAC,UAAgC;QAC/E,cAAc,EAAG,KAAiC,CAAC,cAAqC;QACxF,aAAa,EAAG,KAAiC,CAAC,aAAoC;KACvF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC7E,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAAC,KAAgB;IACjD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,mCAAmC;IACnC,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC;;;;4CAI0B,cAAc,CAAC,UAAU;iBACpD,cAAc,CAAC,YAAY;iBAC3B,cAAc,CAAC,KAAK;;;;;;;;CAQpC,CAAC,CAAC;IACD,CAAC;IAED,mCAAmC;IACnC,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC;;;;4CAI0B,cAAc,CAAC,UAAU;iBACpD,cAAc,CAAC,eAAe;;;;;;;;CAQ9C,CAAC,CAAC;IACD,CAAC;IAED,6BAA6B;IAC7B,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC;;;;WAIP,UAAU,CAAC,KAAK;;;;;;;CAO1B,CAAC,CAAC;IACD,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAAgB;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnD,qCAAqC;IACrC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;QACnD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,SAAS,EAAG,KAAK,CAAC,SAAqC,IAAI,EAAE;QAC7D,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS;KACV,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,iBAAiB,CAAC,MAAM;YAChC,OAAO,EAAE,iBAAiB,CAAC,OAAO;SACnC,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,SAIX,CAAC;QAEd,IAAI,SAAS,EAAE,WAAW,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9E,iBAAiB,CACf,MAAM,EACN,SAAS,CAAC,WAAW,EACrB,SAAS,CAAC,aAAa,EACvB,SAAS,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,OAAO,iBAAiB,CAAC,OAAO;QAC9B,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE;QACxD,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnD,qCAAqC;IACrC,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,SAEX,CAAC;QAEd,0EAA0E;QAC1E,0EAA0E;QAC1E,uDAAuD;IACzD,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAgB;IACxC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnD,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,4CAA4C;IAC5C,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,KAAK,CAAC,YAAY;QACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,IAAI,wBAAwB;QAC/D,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,8BAA8B;KACrE,CAAC;IAEF,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEzD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,uBAAuB,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,WAAW,EAAE;SAC/E,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,KAAgB;IAEhB,IAAI,CAAC;QACH,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,kBAAkB;gBACrB,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAEvC,KAAK,mBAAmB;gBACtB,OAAO,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAE9C,KAAK,OAAO;gBACV,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;YAEnC,KAAK,iBAAiB;gBACpB,OAAO,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAE5C,KAAK,eAAe;gBAClB,OAAO,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAE1C,KAAK,cAAc;gBACjB,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAElC,KAAK,eAAe;gBAClB,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAEnC,KAAK,WAAW;gBACd,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAEjC,uBAAuB;YACvB,KAAK,aAAa;gBAChB,OAAO,MAAM,gBAAgB,CAAC,KAAmC,CAAC,CAAC;YAErE,KAAK,gBAAgB;gBACnB,OAAO,oBAAoB,CAAC,KAAsC,CAAC,CAAC;YAEtE,KAAK,eAAe;gBAClB,OAAO,mBAAmB,CAAC,KAAqC,CAAC,CAAC;YAEpE,KAAK,aAAa;gBAChB,OAAO,MAAM,iBAAiB,CAAC,KAAmC,CAAC,CAAC;YAEtE,KAAK,YAAY;gBACf,OAAO,MAAM,YAAY,CAAC;oBACxB,GAAG,KAAK;oBACR,OAAO,EAAE,MAAM;oBACf,eAAe,EAAE,OAAO;iBACA,CAAC,CAAC;YAE9B,KAAK,mBAAmB;gBACtB,OAAO,MAAM,YAAY,CAAC;oBACxB,GAAG,KAAK;oBACR,OAAO,EAAE,aAAa;oBACtB,eAAe,EAAE,OAAO;iBACA,CAAC,CAAC;YAE9B,KAAK,oBAAoB;gBACvB,OAAO,MAAM,uBAAuB,CAAC,KAA0C,CAAC,CAAC;YAEnF;gBACE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,0BAA0B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAa,CAAC;IAEnD,aAAa;IACb,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEzD,IAAI,KAAgB,CAAC;IACrB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,EAAE,CAAC;IACb,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAElD,yBAAyB;IACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,yBAAyB;AACzB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/hooks/bridge.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from 'vitest';
2
- import { removeCodeBlocks, extractPromptText, detectKeywordsWithType, hasKeyword, getPrimaryKeyword, } from '../index.js';
2
+ import { removeCodeBlocks, extractPromptText, detectKeywordsWithType, hasKeyword, getPrimaryKeyword, getAllKeywords, } from '../index.js';
3
3
  describe('keyword-detector', () => {
4
4
  describe('removeCodeBlocks', () => {
5
5
  it('should remove fenced code blocks with triple backticks', () => {
@@ -287,6 +287,28 @@ World`);
287
287
  expect(analyzeMatch).toBeUndefined();
288
288
  });
289
289
  });
290
+ describe('ecomode keyword', () => {
291
+ it('should detect eco keyword', () => {
292
+ const result = detectKeywordsWithType('eco fix all errors');
293
+ const ecoMatch = result.find((r) => r.type === 'ecomode');
294
+ expect(ecoMatch).toBeDefined();
295
+ });
296
+ it('should detect ecomode keyword', () => {
297
+ const result = detectKeywordsWithType('ecomode fix build');
298
+ const ecoMatch = result.find((r) => r.type === 'ecomode');
299
+ expect(ecoMatch).toBeDefined();
300
+ });
301
+ it('should detect save-tokens keyword', () => {
302
+ const result = detectKeywordsWithType('save-tokens and fix errors');
303
+ const ecoMatch = result.find((r) => r.type === 'ecomode');
304
+ expect(ecoMatch).toBeDefined();
305
+ });
306
+ it('should detect budget keyword', () => {
307
+ const result = detectKeywordsWithType('budget fix all errors');
308
+ const ecoMatch = result.find((r) => r.type === 'ecomode');
309
+ expect(ecoMatch).toBeDefined();
310
+ });
311
+ });
290
312
  describe('case insensitivity', () => {
291
313
  it('should detect RALPH in uppercase', () => {
292
314
  const result = detectKeywordsWithType('RALPH this task');
@@ -397,6 +419,32 @@ World`);
397
419
  expect(result?.type).toBe('analyze');
398
420
  });
399
421
  });
422
+ describe('multiple keyword conflict resolution', () => {
423
+ it('should return ecomode over ultrawork when both present', () => {
424
+ // ecomode wins over ultrawork per conflict resolution rules
425
+ const result = getPrimaryKeyword('ulw eco fix errors');
426
+ expect(result?.type).toBe('ecomode');
427
+ });
428
+ it('should return ecomode over ultrawork (ecomode has higher priority)', () => {
429
+ // UPDATED: ecomode wins per conflict resolution
430
+ const result = getPrimaryKeyword('eco ultrawork fix errors');
431
+ expect(result?.type).toBe('ecomode');
432
+ });
433
+ it('should return cancel over everything', () => {
434
+ const result = getPrimaryKeyword('cancelomc ralph ultrawork eco');
435
+ expect(result?.type).toBe('cancel');
436
+ });
437
+ it('should return ralph over ultrawork and ecomode', () => {
438
+ const result = getPrimaryKeyword('ralph ulw eco fix errors');
439
+ expect(result?.type).toBe('ralph');
440
+ });
441
+ it('should detect all keywords even when multiple present', () => {
442
+ const result = detectKeywordsWithType('ulw eco fix errors');
443
+ const types = result.map(r => r.type);
444
+ expect(types).toContain('ultrawork');
445
+ expect(types).toContain('ecomode');
446
+ });
447
+ });
400
448
  it('should return null when no keyword found', () => {
401
449
  const result = getPrimaryKeyword('regular text');
402
450
  expect(result).toBeNull();
@@ -423,5 +471,45 @@ World`);
423
471
  expect(result?.type).toBe('ralph');
424
472
  });
425
473
  });
474
+ describe('getAllKeywords', () => {
475
+ it('should return single keyword in array', () => {
476
+ expect(getAllKeywords('autopilot this')).toEqual(['autopilot']);
477
+ });
478
+ it('should return multiple non-conflicting keywords in priority order', () => {
479
+ expect(getAllKeywords('ulw ralph fix errors')).toEqual(['ralph', 'ultrawork']);
480
+ });
481
+ it('should return cancel exclusively when present', () => {
482
+ expect(getAllKeywords('cancelomc ralph ultrawork')).toEqual(['cancel']);
483
+ });
484
+ it('should return ecomode over ultrawork when both present', () => {
485
+ expect(getAllKeywords('ulw eco fix errors')).toEqual(['ecomode']);
486
+ });
487
+ it('should return ultrapilot over autopilot when both present', () => {
488
+ expect(getAllKeywords('autopilot ultrapilot build')).toEqual(['ultrapilot']);
489
+ });
490
+ it('should return ralph with ultrawork (not mutually exclusive)', () => {
491
+ const result = getAllKeywords('ralph ultrawork fix');
492
+ expect(result).toContain('ralph');
493
+ expect(result).toContain('ultrawork');
494
+ });
495
+ it('should return ralph with ecomode but not ultrawork', () => {
496
+ const result = getAllKeywords('ralph eco ulw fix');
497
+ expect(result).toContain('ralph');
498
+ expect(result).toContain('ecomode');
499
+ expect(result).not.toContain('ultrawork');
500
+ });
501
+ it('should return empty array for no keywords', () => {
502
+ expect(getAllKeywords('regular text')).toEqual([]);
503
+ });
504
+ it('should handle code block exclusion', () => {
505
+ expect(getAllKeywords('```autopilot```')).toEqual([]);
506
+ });
507
+ it('should handle multiple combinable keywords', () => {
508
+ const result = getAllKeywords('ralph tdd research fix');
509
+ expect(result).toContain('ralph');
510
+ expect(result).toContain('tdd');
511
+ expect(result).toContain('research');
512
+ });
513
+ });
426
514
  });
427
515
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/hooks/keyword-detector/__tests__/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/hooks/keyword-detector/__tests__/index.test.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,11 @@ export declare function detectKeywordsWithType(text: string, _agentName?: string
34
34
  */
35
35
  export declare function hasKeyword(text: string): boolean;
36
36
  /**
37
- * Get the highest priority keyword detected
37
+ * Get all detected keywords with conflict resolution applied
38
+ */
39
+ export declare function getAllKeywords(text: string): KeywordType[];
40
+ /**
41
+ * Get the highest priority keyword detected with conflict resolution
38
42
  */
39
43
  export declare function getPrimaryKeyword(text: string): DetectedKeyword | null;
40
44
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/keyword-detector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,OAAO,GACP,WAAW,GACX,YAAY,GACZ,WAAW,GACX,SAAS,GACT,OAAO,GACP,UAAU,GACV,SAAS,GACT,MAAM,GACN,KAAK,GACL,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwDD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,GACpE,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,EAAE,CAuCnB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAiBtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/keyword-detector/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,OAAO,GACP,WAAW,GACX,YAAY,GACZ,WAAW,GACX,SAAS,GACT,OAAO,GACP,UAAU,GACV,SAAS,GACT,MAAM,GACN,KAAK,GACL,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwDD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,GACpE,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,EAAE,CAuCnB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAuB1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAgBtE"}
@@ -118,21 +118,42 @@ export function hasKeyword(text) {
118
118
  return detectKeywordsWithType(cleanText).length > 0;
119
119
  }
120
120
  /**
121
- * Get the highest priority keyword detected
121
+ * Get all detected keywords with conflict resolution applied
122
122
  */
123
- export function getPrimaryKeyword(text) {
123
+ export function getAllKeywords(text) {
124
124
  const cleanText = removeCodeBlocks(text);
125
125
  const detected = detectKeywordsWithType(cleanText);
126
- if (detected.length === 0) {
127
- return null;
126
+ if (detected.length === 0)
127
+ return [];
128
+ let types = [...new Set(detected.map(d => d.type))];
129
+ // Exclusive: cancel suppresses everything
130
+ if (types.includes('cancel'))
131
+ return ['cancel'];
132
+ // Mutual exclusion: ecomode beats ultrawork
133
+ if (types.includes('ecomode') && types.includes('ultrawork')) {
134
+ types = types.filter(t => t !== 'ultrawork');
128
135
  }
129
- // Return highest priority (first in KEYWORD_PRIORITY order)
130
- for (const type of KEYWORD_PRIORITY) {
131
- const match = detected.find(d => d.type === type);
132
- if (match) {
133
- return match;
134
- }
136
+ // Mutual exclusion: ultrapilot beats autopilot
137
+ if (types.includes('ultrapilot') && types.includes('autopilot')) {
138
+ types = types.filter(t => t !== 'autopilot');
139
+ }
140
+ // Sort by priority order
141
+ return KEYWORD_PRIORITY.filter(k => types.includes(k));
142
+ }
143
+ /**
144
+ * Get the highest priority keyword detected with conflict resolution
145
+ */
146
+ export function getPrimaryKeyword(text) {
147
+ const allKeywords = getAllKeywords(text);
148
+ if (allKeywords.length === 0) {
149
+ return null;
135
150
  }
136
- return detected[0];
151
+ // Get the highest priority keyword type
152
+ const primaryType = allKeywords[0];
153
+ // Find the original detected keyword for this type
154
+ const cleanText = removeCodeBlocks(text);
155
+ const detected = detectKeywordsWithType(cleanText);
156
+ const match = detected.find(d => d.type === primaryType);
157
+ return match || null;
137
158
  }
138
159
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/keyword-detector/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/keyword-detector/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-claude-sisyphus",
3
- "version": "3.8.10",
3
+ "version": "3.8.11",
4
4
  "description": "Multi-agent orchestration system for Claude Code - Inspired by oh-my-opencode",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -134,6 +134,64 @@ ${originalPrompt}
134
134
  IMPORTANT: Invoke the skill IMMEDIATELY. Do not proceed without loading the skill instructions.`;
135
135
  }
136
136
 
137
+ /**
138
+ * Create multi-skill invocation message for combined keywords
139
+ */
140
+ function createMultiSkillInvocation(skills, originalPrompt) {
141
+ if (skills.length === 0) return '';
142
+ if (skills.length === 1) {
143
+ return createSkillInvocation(skills[0].name, originalPrompt, skills[0].args);
144
+ }
145
+
146
+ const skillBlocks = skills.map((s, i) => {
147
+ const argsSection = s.args ? `\nArguments: ${s.args}` : '';
148
+ return `### Skill ${i + 1}: ${s.name.toUpperCase()}
149
+ Skill: oh-my-claudecode:${s.name}${argsSection}`;
150
+ }).join('\n\n');
151
+
152
+ return `[MAGIC KEYWORDS DETECTED: ${skills.map(s => s.name.toUpperCase()).join(', ')}]
153
+
154
+ You MUST invoke ALL of the following skills using the Skill tool, in order:
155
+
156
+ ${skillBlocks}
157
+
158
+ User request:
159
+ ${originalPrompt}
160
+
161
+ IMPORTANT: Invoke ALL skills listed above. Start with the first skill IMMEDIATELY. After it completes, invoke the next skill in order. Do not skip any skill.`;
162
+ }
163
+
164
+ /**
165
+ * Resolve conflicts between detected keywords
166
+ */
167
+ function resolveConflicts(matches) {
168
+ const names = matches.map(m => m.name);
169
+
170
+ // Cancel is exclusive
171
+ if (names.includes('cancel')) {
172
+ return [matches.find(m => m.name === 'cancel')];
173
+ }
174
+
175
+ let resolved = [...matches];
176
+
177
+ // Ecomode beats ultrawork
178
+ if (names.includes('ecomode') && names.includes('ultrawork')) {
179
+ resolved = resolved.filter(m => m.name !== 'ultrawork');
180
+ }
181
+
182
+ // Ultrapilot beats autopilot
183
+ if (names.includes('ultrapilot') && names.includes('autopilot')) {
184
+ resolved = resolved.filter(m => m.name !== 'autopilot');
185
+ }
186
+
187
+ // Sort by priority order
188
+ const priorityOrder = ['cancel','ralph','autopilot','ultrapilot','ultrawork','ecomode',
189
+ 'swarm','pipeline','ralplan','plan','tdd','research','ultrathink','deepsearch','analyze'];
190
+ resolved.sort((a, b) => priorityOrder.indexOf(a.name) - priorityOrder.indexOf(b.name));
191
+
192
+ return resolved;
193
+ }
194
+
137
195
  /**
138
196
  * Create proper hook output with additionalContext (Claude Code hooks API)
139
197
  * The 'message' field is NOT a valid hook output - use hookSpecificOutput.additionalContext
@@ -169,27 +227,20 @@ async function main() {
169
227
 
170
228
  const cleanPrompt = removeCodeBlocks(prompt).toLowerCase();
171
229
 
172
- // Priority order: cancel > ralph > autopilot > ultrapilot > ultrawork > ecomode > swarm > pipeline > ralplan > plan > tdd > research > ultrathink > deepsearch > analyze
230
+ // Collect all matching keywords
231
+ const matches = [];
173
232
 
174
- // Priority 1: Cancel (BEFORE other modes - clears states)
175
- // Use specific keywords to avoid false positives from natural language
176
- // (e.g., "don't let it stop the context" or URLs containing "cancel")
233
+ // Cancel keywords
177
234
  if (/\b(cancelomc|stopomc)\b/i.test(cleanPrompt)) {
178
- // Special: clear state files instead of creating them
179
- clearStateFiles(directory, ['ralph', 'autopilot', 'ultrapilot', 'ultrawork', 'ecomode', 'swarm', 'pipeline']);
180
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('cancel', prompt))));
181
- return;
235
+ matches.push({ name: 'cancel', args: '' });
182
236
  }
183
237
 
184
- // Priority 2: Ralph keywords
238
+ // Ralph keywords
185
239
  if (/\b(ralph|don't stop|must complete|until done)\b/i.test(cleanPrompt)) {
186
- activateState(directory, prompt, 'ralph');
187
- activateState(directory, prompt, 'ultrawork');
188
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('ralph', prompt))));
189
- return;
240
+ matches.push({ name: 'ralph', args: '' });
190
241
  }
191
242
 
192
- // Priority 3: Autopilot keywords
243
+ // Autopilot keywords
193
244
  if (/\b(autopilot|auto pilot|auto-pilot|autonomous|full auto|fullsend)\b/i.test(cleanPrompt) ||
194
245
  /\bbuild\s+me\s+/i.test(cleanPrompt) ||
195
246
  /\bcreate\s+me\s+/i.test(cleanPrompt) ||
@@ -199,101 +250,131 @@ async function main() {
199
250
  /\bhandle\s+it\s+all\b/i.test(cleanPrompt) ||
200
251
  /\bend\s+to\s+end\b/i.test(cleanPrompt) ||
201
252
  /\be2e\s+this\b/i.test(cleanPrompt)) {
202
- activateState(directory, prompt, 'autopilot');
203
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('autopilot', prompt))));
204
- return;
253
+ matches.push({ name: 'autopilot', args: '' });
205
254
  }
206
255
 
207
- // Priority 4: Ultrapilot
256
+ // Ultrapilot keywords
208
257
  if (/\b(ultrapilot|ultra-pilot)\b/i.test(cleanPrompt) ||
209
258
  /\bparallel\s+build\b/i.test(cleanPrompt) ||
210
259
  /\bswarm\s+build\b/i.test(cleanPrompt)) {
211
- activateState(directory, prompt, 'ultrapilot');
212
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('ultrapilot', prompt))));
213
- return;
260
+ matches.push({ name: 'ultrapilot', args: '' });
214
261
  }
215
262
 
216
- // Priority 5: Ultrawork keywords
263
+ // Ultrawork keywords
217
264
  if (/\b(ultrawork|ulw|uw)\b/i.test(cleanPrompt)) {
218
- activateState(directory, prompt, 'ultrawork');
219
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('ultrawork', prompt))));
220
- return;
265
+ matches.push({ name: 'ultrawork', args: '' });
221
266
  }
222
267
 
223
- // Priority 6: Ecomode keywords (includes "efficient")
268
+ // Ecomode keywords
224
269
  if (/\b(eco|ecomode|eco-mode|efficient|save-tokens|budget)\b/i.test(cleanPrompt)) {
225
- activateState(directory, prompt, 'ecomode');
226
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('ecomode', prompt))));
227
- return;
270
+ matches.push({ name: 'ecomode', args: '' });
228
271
  }
229
272
 
230
- // Priority 7: Swarm - parse N from "swarm N agents"
273
+ // Swarm - parse N from "swarm N agents"
231
274
  const swarmMatch = cleanPrompt.match(/\bswarm\s+(\d+)\s+agents?\b/i);
232
275
  if (swarmMatch || /\bcoordinated\s+agents\b/i.test(cleanPrompt)) {
233
- const agentCount = swarmMatch ? swarmMatch[1] : '3'; // default 3
234
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('swarm', prompt, agentCount))));
235
- return;
276
+ const agentCount = swarmMatch ? swarmMatch[1] : '3';
277
+ matches.push({ name: 'swarm', args: agentCount });
236
278
  }
237
279
 
238
- // Priority 8: Pipeline
280
+ // Pipeline keywords
239
281
  if (/\b(pipeline)\b/i.test(cleanPrompt) || /\bchain\s+agents\b/i.test(cleanPrompt)) {
240
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('pipeline', prompt))));
241
- return;
282
+ matches.push({ name: 'pipeline', args: '' });
242
283
  }
243
284
 
244
- // Priority 9: Ralplan keyword (before plan to avoid false match)
285
+ // Ralplan keyword
245
286
  if (/\b(ralplan)\b/i.test(cleanPrompt)) {
246
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('ralplan', prompt))));
247
- return;
287
+ matches.push({ name: 'ralplan', args: '' });
248
288
  }
249
289
 
250
- // Priority 10: Plan keywords
290
+ // Plan keywords
251
291
  if (/\b(plan this|plan the)\b/i.test(cleanPrompt)) {
252
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('plan', prompt))));
253
- return;
292
+ matches.push({ name: 'plan', args: '' });
254
293
  }
255
294
 
256
- // Priority 11: TDD
295
+ // TDD keywords
257
296
  if (/\b(tdd)\b/i.test(cleanPrompt) ||
258
297
  /\btest\s+first\b/i.test(cleanPrompt) ||
259
298
  /\bred\s+green\b/i.test(cleanPrompt)) {
260
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('tdd', prompt))));
261
- return;
299
+ matches.push({ name: 'tdd', args: '' });
262
300
  }
263
301
 
264
- // Priority 12: Research
265
- // "research" alone OR "analyze data" OR "statistics" trigger research skill
302
+ // Research keywords
266
303
  if (/\b(research)\b/i.test(cleanPrompt) ||
267
304
  /\banalyze\s+data\b/i.test(cleanPrompt) ||
268
305
  /\bstatistics\b/i.test(cleanPrompt)) {
269
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('research', prompt))));
270
- return;
306
+ matches.push({ name: 'research', args: '' });
271
307
  }
272
308
 
273
- // Priority 13: Ultrathink/think keywords (keep inline message)
309
+ // Ultrathink keywords
274
310
  if (/\b(ultrathink|think hard|think deeply)\b/i.test(cleanPrompt)) {
275
- console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE)));
276
- return;
311
+ matches.push({ name: 'ultrathink', args: '' });
277
312
  }
278
313
 
279
- // Priority 14: Deepsearch (RESTRICTED patterns)
314
+ // Deepsearch keywords
280
315
  if (/\b(deepsearch)\b/i.test(cleanPrompt) ||
281
316
  /\bsearch\s+(the\s+)?(codebase|code|files?|project)\b/i.test(cleanPrompt) ||
282
317
  /\bfind\s+(in\s+)?(codebase|code|all\s+files?)\b/i.test(cleanPrompt)) {
283
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('deepsearch', prompt))));
284
- return;
318
+ matches.push({ name: 'deepsearch', args: '' });
285
319
  }
286
320
 
287
- // Priority 15: Analyze (RESTRICTED patterns)
321
+ // Analyze keywords
288
322
  if (/\b(deep\s*analyze)\b/i.test(cleanPrompt) ||
289
323
  /\binvestigate\s+(the|this|why)\b/i.test(cleanPrompt) ||
290
324
  /\bdebug\s+(the|this|why)\b/i.test(cleanPrompt)) {
291
- console.log(JSON.stringify(createHookOutput(createSkillInvocation('analyze', prompt))));
325
+ matches.push({ name: 'analyze', args: '' });
326
+ }
327
+
328
+ // No matches - pass through
329
+ if (matches.length === 0) {
330
+ console.log(JSON.stringify({ continue: true }));
292
331
  return;
293
332
  }
294
333
 
295
- // No keywords detected
296
- console.log(JSON.stringify({ continue: true }));
334
+ // Resolve conflicts
335
+ const resolved = resolveConflicts(matches);
336
+
337
+ // Handle cancel specially - clear states and emit
338
+ if (resolved.length > 0 && resolved[0].name === 'cancel') {
339
+ clearStateFiles(directory, ['ralph', 'autopilot', 'ultrapilot', 'ultrawork', 'ecomode', 'swarm', 'pipeline']);
340
+ console.log(JSON.stringify(createHookOutput(createSkillInvocation('cancel', prompt))));
341
+ return;
342
+ }
343
+
344
+ // Activate states for modes that need them
345
+ const stateModes = resolved.filter(m => ['ralph', 'autopilot', 'ultrapilot', 'ultrawork', 'ecomode'].includes(m.name));
346
+ for (const mode of stateModes) {
347
+ activateState(directory, prompt, mode.name);
348
+ }
349
+
350
+ // Special: Ralph with ultrawork (only if ecomode NOT present)
351
+ const hasRalph = resolved.some(m => m.name === 'ralph');
352
+ const hasEcomode = resolved.some(m => m.name === 'ecomode');
353
+ const hasUltrawork = resolved.some(m => m.name === 'ultrawork');
354
+ if (hasRalph && !hasEcomode && !hasUltrawork) {
355
+ activateState(directory, prompt, 'ultrawork');
356
+ }
357
+
358
+ // Handle ultrathink specially - prepend message instead of skill invocation
359
+ const ultrathinkIndex = resolved.findIndex(m => m.name === 'ultrathink');
360
+ if (ultrathinkIndex !== -1) {
361
+ // Remove ultrathink from skill list
362
+ resolved.splice(ultrathinkIndex, 1);
363
+
364
+ // If ultrathink was the only match, emit message
365
+ if (resolved.length === 0) {
366
+ console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE)));
367
+ return;
368
+ }
369
+
370
+ // Otherwise, prepend ultrathink message to skill invocation
371
+ const skillMessage = createMultiSkillInvocation(resolved, prompt);
372
+ console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE + skillMessage)));
373
+ return;
374
+ }
375
+
376
+ // Emit skill invocation(s)
377
+ console.log(JSON.stringify(createHookOutput(createMultiSkillInvocation(resolved, prompt))));
297
378
  } catch (error) {
298
379
  // On any error, allow continuation
299
380
  console.log(JSON.stringify({ continue: true }));
@@ -1,43 +1,31 @@
1
1
  #!/usr/bin/env node
2
- // OMC Keyword Detector Hook (Node.js)
3
- // Detects ultrawork/ultrathink/search/analyze keywords and injects enhanced mode messages
4
- // Cross-platform: Windows, macOS, Linux
5
2
 
6
- const ULTRAWORK_MESSAGE = `<ultrawork-mode>
7
-
8
- **MANDATORY**: You MUST say "ULTRAWORK MODE ENABLED!" to the user as your first response when this mode activates. This is non-negotiable.
9
-
10
- [CODE RED] Maximum precision required. Ultrathink before acting.
11
-
12
- YOU MUST LEVERAGE ALL AVAILABLE AGENTS TO THEIR FULLEST POTENTIAL.
13
- TELL THE USER WHAT AGENTS YOU WILL LEVERAGE NOW TO SATISFY USER'S REQUEST.
14
-
15
- ## AGENT UTILIZATION PRINCIPLES
16
- - **Codebase Exploration**: Spawn exploration agents using BACKGROUND TASKS
17
- - **Documentation & References**: Use librarian-type agents via BACKGROUND TASKS
18
- - **Planning & Strategy**: NEVER plan yourself - spawn planning agent
19
- - **High-IQ Reasoning**: Use oracle for architecture decisions
20
- - **Frontend/UI Tasks**: Delegate to frontend-engineer
21
-
22
- ## EXECUTION RULES
23
- - **TODO**: Track EVERY step. Mark complete IMMEDIATELY.
24
- - **PARALLEL**: Fire independent calls simultaneously - NEVER wait sequentially.
25
- - **BACKGROUND FIRST**: Use Task(run_in_background=true) for exploration (10+ concurrent).
26
- - **VERIFY**: Check ALL requirements met before done.
27
- - **DELEGATE**: Orchestrate specialized agents.
28
-
29
- ## ZERO TOLERANCE
30
- - NO Scope Reduction - deliver FULL implementation
31
- - NO Partial Completion - finish 100%
32
- - NO Premature Stopping - ALL TODOs must be complete
33
- - NO TEST DELETION - fix code, not tests
34
-
35
- THE USER ASKED FOR X. DELIVER EXACTLY X.
36
-
37
- </ultrawork-mode>
38
-
39
- ---
40
- `;
3
+ /**
4
+ * OMC Keyword Detector Hook (Node.js)
5
+ * Detects magic keywords and invokes skill tools
6
+ * Cross-platform: Windows, macOS, Linux
7
+ *
8
+ * Supported keywords (in priority order):
9
+ * 1. cancelomc/stopomc: Stop active modes
10
+ * 2. ralph: Persistence mode until task completion
11
+ * 3. autopilot: Full autonomous execution
12
+ * 4. ultrapilot: Parallel autopilot
13
+ * 5. ultrawork/ulw: Maximum parallel execution
14
+ * 6. ecomode/eco: Token-efficient execution
15
+ * 7. swarm: N coordinated agents
16
+ * 8. pipeline: Sequential agent chaining
17
+ * 9. ralplan: Iterative planning with consensus
18
+ * 10. plan: Planning interview mode
19
+ * 11. tdd: Test-driven development
20
+ * 12. research: Research orchestration
21
+ * 13. ultrathink/think: Extended reasoning
22
+ * 14. deepsearch: Codebase search (restricted patterns)
23
+ * 15. analyze: Analysis mode (restricted patterns)
24
+ */
25
+
26
+ import { writeFileSync, mkdirSync, existsSync, unlinkSync } from 'fs';
27
+ import { join } from 'path';
28
+ import { homedir } from 'os';
41
29
 
42
30
  const ULTRATHINK_MESSAGE = `<think-mode>
43
31
 
@@ -56,34 +44,6 @@ Use your extended thinking capabilities to provide the most thorough and well-re
56
44
  ---
57
45
  `;
58
46
 
59
- const SEARCH_MESSAGE = `<search-mode>
60
- MAXIMIZE SEARCH EFFORT. Launch multiple background agents IN PARALLEL:
61
- - explore agents (codebase patterns, file structures)
62
- - librarian agents (remote repos, official docs, GitHub examples)
63
- Plus direct tools: Grep, Glob
64
- NEVER stop at first result - be exhaustive.
65
- </search-mode>
66
-
67
- ---
68
- `;
69
-
70
- const ANALYZE_MESSAGE = `<analyze-mode>
71
- ANALYSIS MODE. Gather context before diving deep:
72
-
73
- CONTEXT GATHERING (parallel):
74
- - 1-2 explore agents (codebase patterns, implementations)
75
- - 1-2 librarian agents (if external library involved)
76
- - Direct tools: Grep, Glob, LSP for targeted searches
77
-
78
- IF COMPLEX (architecture, multi-system, debugging after 2+ failures):
79
- - Consult oracle agent for strategic guidance
80
-
81
- SYNTHESIZE findings before proceeding.
82
- </analyze-mode>
83
-
84
- ---
85
- `;
86
-
87
47
  // Read all stdin
88
48
  async function readStdin() {
89
49
  const chunks = [];
@@ -120,12 +80,8 @@ function removeCodeBlocks(text) {
120
80
  .replace(/`[^`]+`/g, '');
121
81
  }
122
82
 
123
- import { writeFileSync, mkdirSync, existsSync } from 'fs';
124
- import { join } from 'path';
125
- import { homedir } from 'os';
126
-
127
- // Create ultrawork state file
128
- function activateUltraworkState(directory, prompt) {
83
+ // Create state file for a mode
84
+ function activateState(directory, prompt, stateName) {
129
85
  const state = {
130
86
  active: true,
131
87
  started_at: new Date().toISOString(),
@@ -133,12 +89,121 @@ function activateUltraworkState(directory, prompt) {
133
89
  reinforcement_count: 0,
134
90
  last_checked_at: new Date().toISOString()
135
91
  };
136
- const localDir = join(directory, '.omc');
137
- if (!existsSync(localDir)) { try { mkdirSync(localDir, { recursive: true }); } catch {} }
138
- try { writeFileSync(join(localDir, 'ultrawork-state.json'), JSON.stringify(state, null, 2)); } catch {}
139
- const globalDir = join(homedir(), '.claude');
140
- if (!existsSync(globalDir)) { try { mkdirSync(globalDir, { recursive: true }); } catch {} }
141
- try { writeFileSync(join(globalDir, 'ultrawork-state.json'), JSON.stringify(state, null, 2)); } catch {}
92
+
93
+ // Write to local .omc/state directory
94
+ const localDir = join(directory, '.omc', 'state');
95
+ if (!existsSync(localDir)) {
96
+ try { mkdirSync(localDir, { recursive: true }); } catch {}
97
+ }
98
+ try { writeFileSync(join(localDir, `${stateName}-state.json`), JSON.stringify(state, null, 2)); } catch {}
99
+
100
+ // Write to global .omc/state directory
101
+ const globalDir = join(homedir(), '.omc', 'state');
102
+ if (!existsSync(globalDir)) {
103
+ try { mkdirSync(globalDir, { recursive: true }); } catch {}
104
+ }
105
+ try { writeFileSync(join(globalDir, `${stateName}-state.json`), JSON.stringify(state, null, 2)); } catch {}
106
+ }
107
+
108
+ /**
109
+ * Clear state files for cancel operation
110
+ */
111
+ function clearStateFiles(directory, modeNames) {
112
+ for (const name of modeNames) {
113
+ const localPath = join(directory, '.omc', 'state', `${name}-state.json`);
114
+ const globalPath = join(homedir(), '.omc', 'state', `${name}-state.json`);
115
+ try { if (existsSync(localPath)) unlinkSync(localPath); } catch {}
116
+ try { if (existsSync(globalPath)) unlinkSync(globalPath); } catch {}
117
+ }
118
+ }
119
+
120
+ /**
121
+ * Create a skill invocation message that tells Claude to use the Skill tool
122
+ */
123
+ function createSkillInvocation(skillName, originalPrompt, args = '') {
124
+ const argsSection = args ? `\nArguments: ${args}` : '';
125
+ return `[MAGIC KEYWORD: ${skillName.toUpperCase()}]
126
+
127
+ You MUST invoke the skill using the Skill tool:
128
+
129
+ Skill: oh-my-claudecode:${skillName}${argsSection}
130
+
131
+ User request:
132
+ ${originalPrompt}
133
+
134
+ IMPORTANT: Invoke the skill IMMEDIATELY. Do not proceed without loading the skill instructions.`;
135
+ }
136
+
137
+ /**
138
+ * Create multi-skill invocation message for combined keywords
139
+ */
140
+ function createMultiSkillInvocation(skills, originalPrompt) {
141
+ if (skills.length === 0) return '';
142
+ if (skills.length === 1) {
143
+ return createSkillInvocation(skills[0].name, originalPrompt, skills[0].args);
144
+ }
145
+
146
+ const skillBlocks = skills.map((s, i) => {
147
+ const argsSection = s.args ? `\nArguments: ${s.args}` : '';
148
+ return `### Skill ${i + 1}: ${s.name.toUpperCase()}
149
+ Skill: oh-my-claudecode:${s.name}${argsSection}`;
150
+ }).join('\n\n');
151
+
152
+ return `[MAGIC KEYWORDS DETECTED: ${skills.map(s => s.name.toUpperCase()).join(', ')}]
153
+
154
+ You MUST invoke ALL of the following skills using the Skill tool, in order:
155
+
156
+ ${skillBlocks}
157
+
158
+ User request:
159
+ ${originalPrompt}
160
+
161
+ IMPORTANT: Invoke ALL skills listed above. Start with the first skill IMMEDIATELY. After it completes, invoke the next skill in order. Do not skip any skill.`;
162
+ }
163
+
164
+ /**
165
+ * Resolve conflicts between detected keywords
166
+ */
167
+ function resolveConflicts(matches) {
168
+ const names = matches.map(m => m.name);
169
+
170
+ // Cancel is exclusive
171
+ if (names.includes('cancel')) {
172
+ return [matches.find(m => m.name === 'cancel')];
173
+ }
174
+
175
+ let resolved = [...matches];
176
+
177
+ // Ecomode beats ultrawork
178
+ if (names.includes('ecomode') && names.includes('ultrawork')) {
179
+ resolved = resolved.filter(m => m.name !== 'ultrawork');
180
+ }
181
+
182
+ // Ultrapilot beats autopilot
183
+ if (names.includes('ultrapilot') && names.includes('autopilot')) {
184
+ resolved = resolved.filter(m => m.name !== 'autopilot');
185
+ }
186
+
187
+ // Sort by priority order
188
+ const priorityOrder = ['cancel','ralph','autopilot','ultrapilot','ultrawork','ecomode',
189
+ 'swarm','pipeline','ralplan','plan','tdd','research','ultrathink','deepsearch','analyze'];
190
+ resolved.sort((a, b) => priorityOrder.indexOf(a.name) - priorityOrder.indexOf(b.name));
191
+
192
+ return resolved;
193
+ }
194
+
195
+ /**
196
+ * Create proper hook output with additionalContext (Claude Code hooks API)
197
+ * The 'message' field is NOT a valid hook output - use hookSpecificOutput.additionalContext
198
+ */
199
+ function createHookOutput(additionalContext) {
200
+ return {
201
+ continue: true,
202
+ hookSpecificOutput: {
203
+ hookEventName: 'UserPromptSubmit',
204
+ additionalContext
205
+ }
206
+ };
142
207
  }
143
208
 
144
209
  // Main
@@ -162,57 +227,154 @@ async function main() {
162
227
 
163
228
  const cleanPrompt = removeCodeBlocks(prompt).toLowerCase();
164
229
 
165
- // Check for ultrawork keywords (highest priority)
166
- if (/\b(ultrawork|ulw|uw)\b/.test(cleanPrompt)) {
167
- activateUltraworkState(directory, prompt);
168
- console.log(JSON.stringify({
169
- continue: true,
170
- hookSpecificOutput: {
171
- hookEventName: 'UserPromptSubmit',
172
- additionalContext: ULTRAWORK_MESSAGE
173
- }
174
- }));
175
- return;
230
+ // Collect all matching keywords
231
+ const matches = [];
232
+
233
+ // Cancel keywords
234
+ if (/\b(cancelomc|stopomc)\b/i.test(cleanPrompt)) {
235
+ matches.push({ name: 'cancel', args: '' });
236
+ }
237
+
238
+ // Ralph keywords
239
+ if (/\b(ralph|don't stop|must complete|until done)\b/i.test(cleanPrompt)) {
240
+ matches.push({ name: 'ralph', args: '' });
241
+ }
242
+
243
+ // Autopilot keywords
244
+ if (/\b(autopilot|auto pilot|auto-pilot|autonomous|full auto|fullsend)\b/i.test(cleanPrompt) ||
245
+ /\bbuild\s+me\s+/i.test(cleanPrompt) ||
246
+ /\bcreate\s+me\s+/i.test(cleanPrompt) ||
247
+ /\bmake\s+me\s+/i.test(cleanPrompt) ||
248
+ /\bi\s+want\s+a\s+/i.test(cleanPrompt) ||
249
+ /\bi\s+want\s+an\s+/i.test(cleanPrompt) ||
250
+ /\bhandle\s+it\s+all\b/i.test(cleanPrompt) ||
251
+ /\bend\s+to\s+end\b/i.test(cleanPrompt) ||
252
+ /\be2e\s+this\b/i.test(cleanPrompt)) {
253
+ matches.push({ name: 'autopilot', args: '' });
254
+ }
255
+
256
+ // Ultrapilot keywords
257
+ if (/\b(ultrapilot|ultra-pilot)\b/i.test(cleanPrompt) ||
258
+ /\bparallel\s+build\b/i.test(cleanPrompt) ||
259
+ /\bswarm\s+build\b/i.test(cleanPrompt)) {
260
+ matches.push({ name: 'ultrapilot', args: '' });
261
+ }
262
+
263
+ // Ultrawork keywords
264
+ if (/\b(ultrawork|ulw|uw)\b/i.test(cleanPrompt)) {
265
+ matches.push({ name: 'ultrawork', args: '' });
266
+ }
267
+
268
+ // Ecomode keywords
269
+ if (/\b(eco|ecomode|eco-mode|efficient|save-tokens|budget)\b/i.test(cleanPrompt)) {
270
+ matches.push({ name: 'ecomode', args: '' });
176
271
  }
177
272
 
178
- // Check for ultrathink/think keywords
179
- if (/\b(ultrathink|think)\b/.test(cleanPrompt)) {
180
- console.log(JSON.stringify({
181
- continue: true,
182
- hookSpecificOutput: {
183
- hookEventName: 'UserPromptSubmit',
184
- additionalContext: ULTRATHINK_MESSAGE
185
- }
186
- }));
273
+ // Swarm - parse N from "swarm N agents"
274
+ const swarmMatch = cleanPrompt.match(/\bswarm\s+(\d+)\s+agents?\b/i);
275
+ if (swarmMatch || /\bcoordinated\s+agents\b/i.test(cleanPrompt)) {
276
+ const agentCount = swarmMatch ? swarmMatch[1] : '3';
277
+ matches.push({ name: 'swarm', args: agentCount });
278
+ }
279
+
280
+ // Pipeline keywords
281
+ if (/\b(pipeline)\b/i.test(cleanPrompt) || /\bchain\s+agents\b/i.test(cleanPrompt)) {
282
+ matches.push({ name: 'pipeline', args: '' });
283
+ }
284
+
285
+ // Ralplan keyword
286
+ if (/\b(ralplan)\b/i.test(cleanPrompt)) {
287
+ matches.push({ name: 'ralplan', args: '' });
288
+ }
289
+
290
+ // Plan keywords
291
+ if (/\b(plan this|plan the)\b/i.test(cleanPrompt)) {
292
+ matches.push({ name: 'plan', args: '' });
293
+ }
294
+
295
+ // TDD keywords
296
+ if (/\b(tdd)\b/i.test(cleanPrompt) ||
297
+ /\btest\s+first\b/i.test(cleanPrompt) ||
298
+ /\bred\s+green\b/i.test(cleanPrompt)) {
299
+ matches.push({ name: 'tdd', args: '' });
300
+ }
301
+
302
+ // Research keywords
303
+ if (/\b(research)\b/i.test(cleanPrompt) ||
304
+ /\banalyze\s+data\b/i.test(cleanPrompt) ||
305
+ /\bstatistics\b/i.test(cleanPrompt)) {
306
+ matches.push({ name: 'research', args: '' });
307
+ }
308
+
309
+ // Ultrathink keywords
310
+ if (/\b(ultrathink|think hard|think deeply)\b/i.test(cleanPrompt)) {
311
+ matches.push({ name: 'ultrathink', args: '' });
312
+ }
313
+
314
+ // Deepsearch keywords
315
+ if (/\b(deepsearch)\b/i.test(cleanPrompt) ||
316
+ /\bsearch\s+(the\s+)?(codebase|code|files?|project)\b/i.test(cleanPrompt) ||
317
+ /\bfind\s+(in\s+)?(codebase|code|all\s+files?)\b/i.test(cleanPrompt)) {
318
+ matches.push({ name: 'deepsearch', args: '' });
319
+ }
320
+
321
+ // Analyze keywords
322
+ if (/\b(deep\s*analyze)\b/i.test(cleanPrompt) ||
323
+ /\binvestigate\s+(the|this|why)\b/i.test(cleanPrompt) ||
324
+ /\bdebug\s+(the|this|why)\b/i.test(cleanPrompt)) {
325
+ matches.push({ name: 'analyze', args: '' });
326
+ }
327
+
328
+ // No matches - pass through
329
+ if (matches.length === 0) {
330
+ console.log(JSON.stringify({ continue: true }));
187
331
  return;
188
332
  }
189
333
 
190
- // Check for search keywords
191
- if (/\b(search|find|locate|lookup|explore|discover|scan|grep|query|browse|detect|trace|seek|track|pinpoint|hunt)\b|where\s+is|show\s+me|list\s+all/.test(cleanPrompt)) {
192
- console.log(JSON.stringify({
193
- continue: true,
194
- hookSpecificOutput: {
195
- hookEventName: 'UserPromptSubmit',
196
- additionalContext: SEARCH_MESSAGE
197
- }
198
- }));
334
+ // Resolve conflicts
335
+ const resolved = resolveConflicts(matches);
336
+
337
+ // Handle cancel specially - clear states and emit
338
+ if (resolved.length > 0 && resolved[0].name === 'cancel') {
339
+ clearStateFiles(directory, ['ralph', 'autopilot', 'ultrapilot', 'ultrawork', 'ecomode', 'swarm', 'pipeline']);
340
+ console.log(JSON.stringify(createHookOutput(createSkillInvocation('cancel', prompt))));
199
341
  return;
200
342
  }
201
343
 
202
- // Check for analyze keywords
203
- if (/\b(analyze|analyse|investigate|examine|research|study|deep.?dive|inspect|audit|evaluate|assess|review|diagnose|scrutinize|dissect|debug|comprehend|interpret|breakdown|understand)\b|why\s+is|how\s+does|how\s+to/.test(cleanPrompt)) {
204
- console.log(JSON.stringify({
205
- continue: true,
206
- hookSpecificOutput: {
207
- hookEventName: 'UserPromptSubmit',
208
- additionalContext: ANALYZE_MESSAGE
209
- }
210
- }));
344
+ // Activate states for modes that need them
345
+ const stateModes = resolved.filter(m => ['ralph', 'autopilot', 'ultrapilot', 'ultrawork', 'ecomode'].includes(m.name));
346
+ for (const mode of stateModes) {
347
+ activateState(directory, prompt, mode.name);
348
+ }
349
+
350
+ // Special: Ralph with ultrawork (only if ecomode NOT present)
351
+ const hasRalph = resolved.some(m => m.name === 'ralph');
352
+ const hasEcomode = resolved.some(m => m.name === 'ecomode');
353
+ const hasUltrawork = resolved.some(m => m.name === 'ultrawork');
354
+ if (hasRalph && !hasEcomode && !hasUltrawork) {
355
+ activateState(directory, prompt, 'ultrawork');
356
+ }
357
+
358
+ // Handle ultrathink specially - prepend message instead of skill invocation
359
+ const ultrathinkIndex = resolved.findIndex(m => m.name === 'ultrathink');
360
+ if (ultrathinkIndex !== -1) {
361
+ // Remove ultrathink from skill list
362
+ resolved.splice(ultrathinkIndex, 1);
363
+
364
+ // If ultrathink was the only match, emit message
365
+ if (resolved.length === 0) {
366
+ console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE)));
367
+ return;
368
+ }
369
+
370
+ // Otherwise, prepend ultrathink message to skill invocation
371
+ const skillMessage = createMultiSkillInvocation(resolved, prompt);
372
+ console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE + skillMessage)));
211
373
  return;
212
374
  }
213
375
 
214
- // No keywords detected
215
- console.log(JSON.stringify({ continue: true }));
376
+ // Emit skill invocation(s)
377
+ console.log(JSON.stringify(createHookOutput(createMultiSkillInvocation(resolved, prompt))));
216
378
  } catch (error) {
217
379
  // On any error, allow continuation
218
380
  console.log(JSON.stringify({ continue: true }));