oh-my-claude-sisyphus 3.7.15 → 3.8.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 (79) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +9 -4
  4. package/agents/AGENTS.md +8 -8
  5. package/agents/architect.md +32 -0
  6. package/agents/build-fixer.md +35 -0
  7. package/agents/code-reviewer.md +51 -0
  8. package/agents/executor-high.md +49 -0
  9. package/agents/explore-high.md +39 -0
  10. package/agents/explore-medium.md +33 -0
  11. package/bridge/mcp-server.cjs +57 -1
  12. package/dist/__tests__/hooks/learner/bridge.test.js +13 -7
  13. package/dist/__tests__/hooks/learner/bridge.test.js.map +1 -1
  14. package/dist/__tests__/hooks.test.js +338 -83
  15. package/dist/__tests__/hooks.test.js.map +1 -1
  16. package/dist/__tests__/installer.test.js +32 -16
  17. package/dist/__tests__/installer.test.js.map +1 -1
  18. package/dist/__tests__/lsp-servers.test.d.ts +2 -0
  19. package/dist/__tests__/lsp-servers.test.d.ts.map +1 -0
  20. package/dist/__tests__/lsp-servers.test.js +118 -0
  21. package/dist/__tests__/lsp-servers.test.js.map +1 -0
  22. package/dist/__tests__/task-continuation.test.d.ts +2 -0
  23. package/dist/__tests__/task-continuation.test.d.ts.map +1 -0
  24. package/dist/__tests__/task-continuation.test.js +740 -0
  25. package/dist/__tests__/task-continuation.test.js.map +1 -0
  26. package/dist/hooks/bridge.js +3 -3
  27. package/dist/hooks/bridge.js.map +1 -1
  28. package/dist/hooks/clear-suggestions/constants.d.ts +54 -0
  29. package/dist/hooks/clear-suggestions/constants.d.ts.map +1 -0
  30. package/dist/hooks/clear-suggestions/constants.js +102 -0
  31. package/dist/hooks/clear-suggestions/constants.js.map +1 -0
  32. package/dist/hooks/clear-suggestions/index.d.ts +61 -0
  33. package/dist/hooks/clear-suggestions/index.d.ts.map +1 -0
  34. package/dist/hooks/clear-suggestions/index.js +276 -0
  35. package/dist/hooks/clear-suggestions/index.js.map +1 -0
  36. package/dist/hooks/clear-suggestions/triggers.d.ts +65 -0
  37. package/dist/hooks/clear-suggestions/triggers.d.ts.map +1 -0
  38. package/dist/hooks/clear-suggestions/triggers.js +222 -0
  39. package/dist/hooks/clear-suggestions/triggers.js.map +1 -0
  40. package/dist/hooks/clear-suggestions/types.d.ts +92 -0
  41. package/dist/hooks/clear-suggestions/types.d.ts.map +1 -0
  42. package/dist/hooks/clear-suggestions/types.js +9 -0
  43. package/dist/hooks/clear-suggestions/types.js.map +1 -0
  44. package/dist/hooks/index.d.ts +1 -0
  45. package/dist/hooks/index.d.ts.map +1 -1
  46. package/dist/hooks/index.js +3 -0
  47. package/dist/hooks/index.js.map +1 -1
  48. package/dist/hooks/keyword-detector/__tests__/index.test.js +51 -51
  49. package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
  50. package/dist/hooks/keyword-detector/index.d.ts +1 -1
  51. package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
  52. package/dist/hooks/keyword-detector/index.js +18 -5
  53. package/dist/hooks/keyword-detector/index.js.map +1 -1
  54. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  55. package/dist/hooks/persistent-mode/index.js +6 -3
  56. package/dist/hooks/persistent-mode/index.js.map +1 -1
  57. package/dist/hooks/todo-continuation/index.d.ts +111 -3
  58. package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
  59. package/dist/hooks/todo-continuation/index.js +204 -23
  60. package/dist/hooks/todo-continuation/index.js.map +1 -1
  61. package/dist/installer/index.d.ts +1 -1
  62. package/dist/installer/index.d.ts.map +1 -1
  63. package/dist/installer/index.js +1 -1
  64. package/dist/installer/index.js.map +1 -1
  65. package/dist/tools/lsp/client.d.ts.map +1 -1
  66. package/dist/tools/lsp/client.js +15 -1
  67. package/dist/tools/lsp/client.js.map +1 -1
  68. package/dist/tools/lsp/servers.d.ts.map +1 -1
  69. package/dist/tools/lsp/servers.js +62 -1
  70. package/dist/tools/lsp/servers.js.map +1 -1
  71. package/docs/CLAUDE.md +83 -0
  72. package/package.json +1 -1
  73. package/scripts/keyword-detector.mjs +203 -83
  74. package/scripts/post-tool-verifier.mjs +39 -1
  75. package/templates/hooks/keyword-detector.sh +197 -31
  76. package/templates/hooks/persistent-mode.mjs +57 -7
  77. package/templates/hooks/persistent-mode.sh +62 -5
  78. package/templates/hooks/stop-continuation.mjs +65 -8
  79. package/templates/hooks/stop-continuation.sh +57 -4
@@ -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.7.15",
13
+ "version": "3.8.1",
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.7.15",
3
+ "version": "3.8.1",
4
4
  "description": "Multi-agent orchestration system for Claude Code",
5
5
  "skills": "./skills/",
6
6
  "mcpServers": "./.mcp.json"
package/README.md CHANGED
@@ -1,10 +1,6 @@
1
- # Oh-My-ClaudeCode
2
1
 
3
- [![npm version](https://img.shields.io/npm/v/oh-my-claude-sisyphus.svg)](https://www.npmjs.com/package/oh-my-claude-sisyphus)
4
- [![Sponsor](https://img.shields.io/badge/Sponsor-❤️-red?style=flat&logo=github)](https://github.com/sponsors/Yeachan-Heo)
5
2
 
6
3
 
7
- ![oh-my-claudecode](https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claudecode-website/main/social-preview.png)
8
4
 
9
5
  # oh-my-claudecode
10
6
 
@@ -12,6 +8,7 @@
12
8
  [![npm downloads](https://img.shields.io/npm/dm/oh-my-claude-sisyphus?color=blue)](https://www.npmjs.com/package/oh-my-claude-sisyphus)
13
9
  [![GitHub stars](https://img.shields.io/github/stars/Yeachan-Heo/oh-my-claudecode?style=flat&color=yellow)](https://github.com/Yeachan-Heo/oh-my-claudecode/stargazers)
14
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
11
+ [![Sponsor](https://img.shields.io/badge/Sponsor-❤️-red?style=flat&logo=github)](https://github.com/sponsors/Yeachan-Heo)
15
12
 
16
13
  **Multi-agent orchestration for Claude Code. Zero learning curve.**
17
14
 
@@ -43,6 +40,14 @@ autopilot: build a REST API for managing tasks
43
40
 
44
41
  That's it. Everything else is automatic.
45
42
 
43
+
44
+ <h1 align="center">Your Claude Just Have been Steroided.</h1>
45
+
46
+ <p align="center">
47
+ <img src="assets/omc-character.jpg" alt="oh-my-claudecode" width="400" />
48
+ </p>
49
+
50
+
46
51
  ---
47
52
 
48
53
  ## Why oh-my-claudecode?
package/agents/AGENTS.md CHANGED
@@ -126,19 +126,19 @@ None - pure markdown files.
126
126
 
127
127
  | Category | Agents | Common Tools |
128
128
  |----------|--------|--------------|
129
- | Analysis | architect, architect-medium, architect-low | Read, Glob, Grep, WebSearch |
130
- | Execution | executor, executor-low, executor-high | Edit, Write, Bash, TodoWrite |
131
- | Search | explore, explore-medium, explore-high | Read, Glob, Grep |
129
+ | Analysis | architect, architect-medium, architect-low | Read, Glob, Grep, lsp_diagnostics |
130
+ | Execution | executor, executor-low, executor-high | Read, Glob, Grep, Edit, Write, Bash, lsp_diagnostics |
131
+ | Search | explore, explore-medium, explore-high | Read, Glob, Grep, ast_grep_search, lsp_document_symbols, lsp_workspace_symbols |
132
132
  | Research | researcher, researcher-low | WebSearch, WebFetch |
133
133
  | Frontend | designer, designer-low, designer-high | Edit, Write, Bash |
134
134
  | Docs | writer | Edit, Write |
135
135
  | Visual | vision | Read, Glob, Grep |
136
136
  | Planning | planner, analyst, critic | Read, Glob, Grep |
137
- | Testing | qa-tester, qa-tester-high | Bash, TodoWrite |
137
+ | Testing | qa-tester, qa-tester-high | Bash, Read, Grep, Glob, TodoWrite, lsp_diagnostics |
138
138
  | Security | security-reviewer, security-reviewer-low | Read, Grep, Bash |
139
- | Build | build-fixer, build-fixer-low | Edit, Write, Bash |
140
- | TDD | tdd-guide, tdd-guide-low | Edit, Write, Bash |
141
- | Review | code-reviewer, code-reviewer-low | Read, Grep, Bash |
142
- | Data | scientist, scientist-low, scientist-high | Bash, python_repl |
139
+ | Build | build-fixer, build-fixer-low | Read, Glob, Grep, Edit, Write, Bash, lsp_diagnostics, lsp_diagnostics_directory |
140
+ | TDD | tdd-guide, tdd-guide-low | Read, Grep, Glob, Bash, lsp_diagnostics |
141
+ | Review | code-reviewer, code-reviewer-low | Read, Grep, Glob, Bash, lsp_diagnostics |
142
+ | Data | scientist, scientist-low, scientist-high | Read, Glob, Grep, Bash, python_repl |
143
143
 
144
144
  <!-- MANUAL: -->
@@ -99,6 +99,38 @@ Before expressing confidence in ANY diagnosis or analysis:
99
99
  - Dependency chain documentation
100
100
  </Verification_Before_Completion>
101
101
 
102
+ <Tool_Strategy>
103
+ ## MCP Tools Available
104
+
105
+ You have access to semantic analysis tools beyond basic search:
106
+
107
+ | Tool | Purpose | When to Use |
108
+ |------|---------|-------------|
109
+ | `lsp_diagnostics` | Get errors/warnings for a single file | Verify specific file has no type errors |
110
+ | `lsp_diagnostics_directory` | Project-wide type checking | Verify entire project compiles cleanly |
111
+ | `ast_grep_search` | Structural code pattern matching | Find code by shape (e.g., "all functions that return Promise") |
112
+
113
+ ### Tool Selection
114
+ - **Semantic search** (types, definitions, references): Use LSP diagnostics
115
+ - **Structural patterns** (function shapes, class structures): Use `ast_grep_search`
116
+ - **Text patterns** (strings, comments, logs): Use `grep`
117
+ - **File patterns** (find by name/extension): Use `glob`
118
+
119
+ ### Example: ast_grep_search
120
+ Find all async functions that don't have try/catch:
121
+ ```
122
+ ast_grep_search(pattern="async function $NAME($$$ARGS) { $$$BODY }", language="typescript")
123
+ ```
124
+ Then filter results for missing error handling.
125
+
126
+ ### Example: lsp_diagnostics_directory
127
+ Before concluding analysis, verify project health:
128
+ ```
129
+ lsp_diagnostics_directory(directory="/path/to/project", strategy="auto")
130
+ ```
131
+ Use this to catch type errors your recommendations might introduce.
132
+ </Tool_Strategy>
133
+
102
134
  <Systematic_Debugging_Protocol>
103
135
  ## Iron Law: NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
104
136
 
@@ -28,6 +28,41 @@ FIRST: Detect project type by checking for manifest files:
28
28
  - `pom.xml` or `build.gradle` → Java (use javac, maven/gradle)
29
29
  - None found → Use generic approach, ask user
30
30
 
31
+ ## MCP Diagnostic Tools
32
+
33
+ Beyond CLI commands, you have access to LSP-based diagnostics:
34
+
35
+ | Tool | Purpose | When to Use |
36
+ |------|---------|-------------|
37
+ | `lsp_diagnostics` | Get errors/warnings for a single file | Quick check on specific file |
38
+ | `lsp_diagnostics_directory` | Project-wide type checking | **PREFERRED** for TypeScript projects |
39
+
40
+ ### lsp_diagnostics_directory (Recommended)
41
+
42
+ For TypeScript/JavaScript projects, prefer `lsp_diagnostics_directory` over running `tsc` manually:
43
+
44
+ ```
45
+ lsp_diagnostics_directory(directory="/path/to/project", strategy="auto")
46
+ ```
47
+
48
+ **Why prefer this:**
49
+ - Uses `tsc --noEmit` internally (fast, no output files)
50
+ - Returns structured error data (file, line, character, message)
51
+ - Easier to parse than CLI output
52
+ - Automatically falls back to LSP if tsc unavailable
53
+
54
+ **Strategy options:**
55
+ - `auto` (default): Prefers tsc if tsconfig.json exists, falls back to LSP
56
+ - `tsc`: Force TypeScript compiler
57
+ - `lsp`: Force Language Server Protocol iteration
58
+
59
+ ### Workflow Integration
60
+
61
+ 1. **Initial diagnosis**: `lsp_diagnostics_directory` to get all errors
62
+ 2. **Fix errors**: Edit files to resolve issues
63
+ 3. **Verify fix**: `lsp_diagnostics` on each modified file
64
+ 4. **Final check**: `lsp_diagnostics_directory` to confirm all clear
65
+
31
66
  ## Diagnostic Commands
32
67
 
33
68
  ### TypeScript/JavaScript
@@ -17,6 +17,57 @@ When invoked:
17
17
  3. Begin review immediately
18
18
  4. Provide severity-rated feedback
19
19
 
20
+ ## MCP Analysis Tools
21
+
22
+ You have access to semantic analysis tools for deeper code review:
23
+
24
+ | Tool | Purpose | When to Use |
25
+ |------|---------|-------------|
26
+ | `lsp_diagnostics` | Get type errors/warnings for a file | Verify modified files have no type issues |
27
+ | `ast_grep_search` | Structural code pattern matching | Find code smells by pattern |
28
+
29
+ ### ast_grep_search for Code Review
30
+
31
+ Use `ast_grep_search` to detect patterns programmatically:
32
+
33
+ **Security patterns:**
34
+ ```
35
+ # Find hardcoded secrets
36
+ ast_grep_search(pattern="apiKey = \"$VALUE\"", language="typescript")
37
+ ast_grep_search(pattern="password = \"$VALUE\"", language="typescript")
38
+
39
+ # Find SQL injection risks
40
+ ast_grep_search(pattern="query($SQL + $INPUT)", language="typescript")
41
+ ```
42
+
43
+ **Code quality patterns:**
44
+ ```
45
+ # Find console.log statements (should be removed)
46
+ ast_grep_search(pattern="console.log($$$ARGS)", language="typescript")
47
+
48
+ # Find empty catch blocks
49
+ ast_grep_search(pattern="catch ($E) { }", language="typescript")
50
+
51
+ # Find TODO comments (use grep for this, not ast_grep)
52
+ ```
53
+
54
+ ### lsp_diagnostics for Type Safety
55
+
56
+ Before approving any code change:
57
+ ```
58
+ lsp_diagnostics(file="/path/to/modified/file.ts")
59
+ ```
60
+
61
+ If diagnostics return errors, the code should NOT be approved until type issues are resolved.
62
+
63
+ ### Review Enhancement Workflow
64
+
65
+ 1. Run `git diff` to see changes
66
+ 2. For each modified file:
67
+ - `lsp_diagnostics` to verify type safety
68
+ - `ast_grep_search` to check for problematic patterns
69
+ 3. Proceed with manual review checklist
70
+
20
71
  ## Two-Stage Review Process (MANDATORY)
21
72
 
22
73
  **Iron Law: Spec compliance BEFORE code quality. Both are LOOPS.**
@@ -29,6 +29,55 @@ Deep reasoning for multi-file, system-wide changes. Work ALONE - no delegation.
29
29
  You are the highest execution tier. For consultation on approach, the orchestrator should use `oracle` before delegating to you.
30
30
  </Complexity_Boundary>
31
31
 
32
+ <Tool_Strategy>
33
+ ## MCP Tools Available
34
+
35
+ You have access to powerful semantic analysis and transformation tools:
36
+
37
+ | Tool | Purpose | When to Use |
38
+ |------|---------|-------------|
39
+ | `lsp_diagnostics` | Get errors/warnings for a single file | Verify file after editing |
40
+ | `lsp_diagnostics_directory` | Project-wide type checking | Verify entire project after multi-file changes |
41
+ | `ast_grep_search` | Structural code pattern matching | Find code by shape before transformation |
42
+ | `ast_grep_replace` | Structural code transformation | Refactor patterns across codebase (UNIQUE TO YOU) |
43
+
44
+ ### ast_grep_replace (Your Unique Capability)
45
+ You are the ONLY executor with `ast_grep_replace`. Use it for:
46
+ - Renaming patterns across files
47
+ - Migrating API calls (e.g., `console.log($MSG)` -> `logger.info($MSG)`)
48
+ - Bulk refactoring that follows consistent patterns
49
+ - Converting code structures (e.g., callbacks to promises)
50
+
51
+ **Critical:** Always use `dryRun=true` first to preview changes before applying.
52
+
53
+ ### Tool Selection
54
+ - **Find then transform**: `ast_grep_search` to find targets, `ast_grep_replace` to transform
55
+ - **Verify after changes**: `lsp_diagnostics_directory` on the entire project
56
+ - **Per-file verification**: `lsp_diagnostics` on each modified file
57
+
58
+ ### Example: Bulk Refactor
59
+ ```
60
+ # Step 1: Preview what will change
61
+ ast_grep_replace(
62
+ pattern="console.log($MSG)",
63
+ replacement="logger.info($MSG)",
64
+ language="typescript",
65
+ dryRun=true
66
+ )
67
+
68
+ # Step 2: Apply changes
69
+ ast_grep_replace(
70
+ pattern="console.log($MSG)",
71
+ replacement="logger.info($MSG)",
72
+ language="typescript",
73
+ dryRun=false
74
+ )
75
+
76
+ # Step 3: Verify
77
+ lsp_diagnostics_directory(directory="/path/to/project")
78
+ ```
79
+ </Tool_Strategy>
80
+
32
81
  <Critical_Constraints>
33
82
  BLOCKED ACTIONS:
34
83
  - Task tool: BLOCKED (no delegation)
@@ -50,6 +50,45 @@ FORBIDDEN:
50
50
  - Creating files to store results
51
51
  </Critical_Constraints>
52
52
 
53
+ <Tier_Specific_Tools>
54
+ ## Your Tool Set (Inherited + Unique)
55
+
56
+ You inherit the base `explore` agent's tools plus one unique capability:
57
+
58
+ | Tool | Purpose | Notes |
59
+ |------|---------|-------|
60
+ | `ast_grep_search` | Structural code pattern matching | Inherited from base |
61
+ | `lsp_document_symbols` | Get outline of all symbols in a file | Inherited from base |
62
+ | `lsp_workspace_symbols` | Search for symbols by name across workspace | Inherited from base |
63
+ | `lsp_find_references` | Find ALL usages of a symbol | **UNIQUE TO YOU** |
64
+
65
+ ### lsp_find_references (Your Unique Capability)
66
+ You are the ONLY explore agent with `lsp_find_references`. This is critical for:
67
+ - Impact analysis: "What will break if I change this?"
68
+ - Dependency tracing: "Who calls this function?"
69
+ - Refactoring preparation: "Where is this type used?"
70
+ - Dead code detection: "Is this function ever called?"
71
+
72
+ **Usage:**
73
+ ```
74
+ lsp_find_references(file="/path/to/file.ts", line=42, character=10)
75
+ ```
76
+ Returns all locations where the symbol at that position is used.
77
+
78
+ ### Tool Selection Strategy
79
+ - **Need all usages of a specific symbol?** Use `lsp_find_references`
80
+ - **Need symbol by name (don't know location)?** Use `lsp_workspace_symbols` first, then `lsp_find_references`
81
+ - **Need structural patterns?** Use `ast_grep_search`
82
+ - **Need file symbol outline?** Use `lsp_document_symbols`
83
+
84
+ ### Architectural Analysis Pattern
85
+ For comprehensive architectural understanding:
86
+ 1. `lsp_workspace_symbols` to find key abstractions
87
+ 2. `lsp_find_references` on each to map usage patterns
88
+ 3. `ast_grep_search` for structural patterns not captured by symbols
89
+ 4. Synthesize into architectural understanding
90
+ </Tier_Specific_Tools>
91
+
53
92
  <Workflow>
54
93
  ## Phase 1: Architectural Intent Analysis
55
94
  Before searching, understand:
@@ -41,6 +41,39 @@ FORBIDDEN:
41
41
  - Creating files to store results
42
42
  </Critical_Constraints>
43
43
 
44
+ <Tier_Specific_Tools>
45
+ ## Your Tool Set (Inherited + Enhanced)
46
+
47
+ You inherit the base `explore` agent's "Tool Strategy" section. Your tools:
48
+
49
+ | Tool | Purpose |
50
+ |------|---------|
51
+ | `ast_grep_search` | Structural code pattern matching |
52
+ | `lsp_document_symbols` | Get outline of all symbols in a file |
53
+ | `lsp_workspace_symbols` | Search for symbols by name across workspace |
54
+
55
+ ### Sonnet-Tier Advantage
56
+ Your deeper reasoning enables:
57
+ - More complex `ast_grep_search` patterns
58
+ - Better interpretation of symbol relationships
59
+ - Cross-module pattern synthesis
60
+
61
+ Use LSP symbol tools when you need **semantic understanding** (types, definitions, relationships).
62
+ Use `ast_grep_search` when you need **structural patterns** (code shapes, regardless of names).
63
+ Use `grep` when you need **text patterns** (strings, comments, literals).
64
+
65
+ ### When to Use LSP Symbols
66
+ ```
67
+ # Get all symbols in a file (functions, classes, variables)
68
+ lsp_document_symbols(file="/path/to/file.ts")
69
+
70
+ # Find a symbol by name across the entire workspace
71
+ lsp_workspace_symbols(query="UserService", file="/path/to/any/file.ts")
72
+ ```
73
+
74
+ Note: For finding all **usages** of a symbol, escalate to `explore-high` which has `lsp_find_references`.
75
+ </Tier_Specific_Tools>
76
+
44
77
  <Workflow>
45
78
  ## Phase 1: Intent Analysis
46
79
  Before searching, understand:
@@ -17831,6 +17831,48 @@ var LSP_SERVERS = {
17831
17831
  args: ["--stdio"],
17832
17832
  extensions: [".yaml", ".yml"],
17833
17833
  installHint: "npm install -g yaml-language-server"
17834
+ },
17835
+ php: {
17836
+ name: "PHP Language Server (Intelephense)",
17837
+ command: "intelephense",
17838
+ args: ["--stdio"],
17839
+ extensions: [".php", ".phtml"],
17840
+ installHint: "npm install -g intelephense"
17841
+ },
17842
+ ruby: {
17843
+ name: "Ruby Language Server (Solargraph)",
17844
+ command: "solargraph",
17845
+ args: ["stdio"],
17846
+ extensions: [".rb", ".rake", ".gemspec", ".erb"],
17847
+ installHint: "gem install solargraph"
17848
+ },
17849
+ lua: {
17850
+ name: "Lua Language Server",
17851
+ command: "lua-language-server",
17852
+ args: [],
17853
+ extensions: [".lua"],
17854
+ installHint: "Install from https://github.com/LuaLS/lua-language-server"
17855
+ },
17856
+ kotlin: {
17857
+ name: "Kotlin Language Server",
17858
+ command: "kotlin-language-server",
17859
+ args: [],
17860
+ extensions: [".kt", ".kts"],
17861
+ installHint: "Install from https://github.com/fwcd/kotlin-language-server"
17862
+ },
17863
+ elixir: {
17864
+ name: "ElixirLS",
17865
+ command: "elixir-ls",
17866
+ args: [],
17867
+ extensions: [".ex", ".exs", ".heex", ".eex"],
17868
+ installHint: "Install from https://github.com/elixir-lsp/elixir-ls"
17869
+ },
17870
+ csharp: {
17871
+ name: "OmniSharp",
17872
+ command: "omnisharp",
17873
+ args: ["-lsp"],
17874
+ extensions: [".cs"],
17875
+ installHint: "dotnet tool install -g omnisharp"
17834
17876
  }
17835
17877
  };
17836
17878
  function commandExists(command) {
@@ -18121,7 +18163,21 @@ ${content}`;
18121
18163
  "css": "css",
18122
18164
  "scss": "scss",
18123
18165
  "yaml": "yaml",
18124
- "yml": "yaml"
18166
+ "yml": "yaml",
18167
+ "php": "php",
18168
+ "phtml": "php",
18169
+ "rb": "ruby",
18170
+ "rake": "ruby",
18171
+ "gemspec": "ruby",
18172
+ "erb": "ruby",
18173
+ "lua": "lua",
18174
+ "kt": "kotlin",
18175
+ "kts": "kotlin",
18176
+ "ex": "elixir",
18177
+ "exs": "elixir",
18178
+ "heex": "elixir",
18179
+ "eex": "elixir",
18180
+ "cs": "csharp"
18125
18181
  };
18126
18182
  return langMap[ext] || ext;
18127
18183
  }
@@ -33,9 +33,11 @@ describe('Skill Bridge Module', () => {
33
33
  mkdirSync(skillsDir, { recursive: true });
34
34
  writeFileSync(join(skillsDir, 'test-skill.md'), '---\nname: Test Skill\ntriggers:\n - test\n---\nContent');
35
35
  const files = findSkillFiles(testProjectRoot);
36
- expect(files).toHaveLength(1);
37
- expect(files[0].scope).toBe('project');
38
- expect(files[0].path).toContain('test-skill.md');
36
+ // Filter to project scope to isolate from user's global skills
37
+ const projectFiles = files.filter((f) => f.scope === 'project');
38
+ expect(projectFiles).toHaveLength(1);
39
+ expect(projectFiles[0].scope).toBe('project');
40
+ expect(projectFiles[0].path).toContain('test-skill.md');
39
41
  });
40
42
  it('should discover skills recursively in subdirectories', () => {
41
43
  const skillsDir = join(testProjectRoot, '.omc', 'skills');
@@ -44,8 +46,10 @@ describe('Skill Bridge Module', () => {
44
46
  writeFileSync(join(skillsDir, 'root-skill.md'), '---\nname: Root\ntriggers:\n - root\n---\nRoot content');
45
47
  writeFileSync(join(subDir, 'nested-skill.md'), '---\nname: Nested\ntriggers:\n - nested\n---\nNested content');
46
48
  const files = findSkillFiles(testProjectRoot);
47
- expect(files).toHaveLength(2);
48
- const names = files.map((f) => f.path);
49
+ // Filter to project scope to isolate from user's global skills
50
+ const projectFiles = files.filter((f) => f.scope === 'project');
51
+ expect(projectFiles).toHaveLength(2);
52
+ const names = projectFiles.map((f) => f.path);
49
53
  expect(names.some((n) => n.includes('root-skill.md'))).toBe(true);
50
54
  expect(names.some((n) => n.includes('nested-skill.md'))).toBe(true);
51
55
  });
@@ -56,8 +60,10 @@ describe('Skill Bridge Module', () => {
56
60
  writeFileSync(join(skillsDir, 'invalid.txt'), 'Not a skill');
57
61
  writeFileSync(join(skillsDir, 'README'), 'Documentation');
58
62
  const files = findSkillFiles(testProjectRoot);
59
- expect(files).toHaveLength(1);
60
- expect(files[0].path).toContain('valid.md');
63
+ // Filter to project scope to isolate from user's global skills
64
+ const projectFiles = files.filter((f) => f.scope === 'project');
65
+ expect(projectFiles).toHaveLength(1);
66
+ expect(projectFiles[0].path).toContain('valid.md');
61
67
  });
62
68
  });
63
69
  describe('parseSkillFile', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.test.js","sourceRoot":"","sources":["../../../../src/__tests__/hooks/learner/bridge.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAE1C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,eAAuB,CAAC;IAC5B,IAAI,WAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5B,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClE,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAChC,0DAA0D,CAC3D,CAAC;YAEF,MAAM,KAAK,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;YAE9C,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvC,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAChC,yDAAyD,CAC1D,CAAC;YACF,aAAa,CACX,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC/B,+DAA+D,CAChE,CAAC;YAEF,MAAM,KAAK,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;YAE9C,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,gCAAgC,CAAC,CAAC;YAC7E,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;YAC7D,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;YAE1D,MAAM,KAAK,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;YAE9C,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;wBAeE,CAAC;YAEnB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAEvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,OAAO,GAAG,iDAAiD,CAAC;YAElE,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAEvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAG;;;;QAId,CAAC;YAEH,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAEvC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAClC,8FAA8F,CAC/F,CAAC;YAEF,MAAM,OAAO,GAAG,uBAAuB,CACrC,kCAAkC,EAClC,eAAe,EACf,cAAc,CACf,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACpC,6EAA6E,CAC9E,CAAC;YAEF,MAAM,OAAO,GAAG,uBAAuB,CACrC,+BAA+B,EAC/B,eAAe,EACf,cAAc,CACf,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,oCAAoC;YACpC,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EACjC,wFAAwF,CACzF,CAAC;YAEF,gEAAgE;YAChE,MAAM,OAAO,GAAG,uBAAuB,CACrC,kBAAkB,EAClB,eAAe,EACf,oBAAoB,CACrB,CAAC;YAEF,0EAA0E;YAC1E,0EAA0E;YAC1E,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,yCAAyC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,EAChC,oBAAoB,CAAC,uCAAuC,CAAC,EAAE,CAChE,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE;gBACxF,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,kBAAkB,CAAC,WAAW,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,EAAE,eAAe,CAAC,CAAC;YAE/F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAErE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,kBAAkB,CAAC,WAAW,EAAE,CAAC,oBAAoB,CAAC,EAAE,eAAe,CAAC,CAAC;YAEzE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAErE,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,kBAAkB,CAAC,cAAc,EAAE,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC,CAAC;YAE7E,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAChF,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAChC,8DAA8D,CAC/D,CAAC;YAEF,cAAc;YACd,MAAM,KAAK,GAAG,uBAAuB,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;YACrF,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE9B,mBAAmB;YACnB,kBAAkB,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;YAEtE,iCAAiC;YACjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,iBAAiB,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;YAC5F,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,uEAAuE;YACvE,uDAAuD;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,aAAa,CACX,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EACnC,yEAAyE,CAC1E,CAAC;YAEF,MAAM,KAAK,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YAEjE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"bridge.test.js","sourceRoot":"","sources":["../../../../src/__tests__/hooks/learner/bridge.test.ts"],"names":[],"mappings":"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"}