opencode-lazy-loader 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -3
- package/dist/__tests__/normalize-command.test.d.ts +2 -0
- package/dist/__tests__/normalize-command.test.d.ts.map +1 -0
- package/dist/__tests__/normalize-command.test.js +187 -0
- package/dist/__tests__/normalize-command.test.js.map +1 -0
- package/dist/index.d.ts +0 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -12
- package/dist/index.js.map +1 -1
- package/dist/skill-mcp-manager.d.ts.map +1 -1
- package/dist/skill-mcp-manager.js +7 -12
- package/dist/skill-mcp-manager.js.map +1 -1
- package/dist/tools/skill-mcp.d.ts +1 -1
- package/dist/tools/skill-mcp.d.ts.map +1 -1
- package/dist/tools/skill-mcp.js +1 -1
- package/dist/tools/skill-mcp.js.map +1 -1
- package/dist/tools/skill.d.ts +1 -1
- package/dist/tools/skill.d.ts.map +1 -1
- package/dist/tools/skill.js +1 -1
- package/dist/tools/skill.js.map +1 -1
- package/dist/types.d.ts +18 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/env-vars.d.ts +3 -0
- package/dist/utils/env-vars.d.ts.map +1 -1
- package/dist/utils/env-vars.js +41 -0
- package/dist/utils/env-vars.js.map +1 -1
- package/package.json +14 -2
package/README.md
CHANGED
|
@@ -48,6 +48,22 @@ Or install it locally:
|
|
|
48
48
|
}
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
## Quick Start
|
|
52
|
+
|
|
53
|
+
This repo includes a working example skill. After installing the plugin, try:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
skill(name="playwright-example")
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Then use the embedded MCP:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
skill_mcp(mcp_name="playwright", tool_name="browser_navigate", arguments='{"url": "https://example.com"}')
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
See [`.opencode/skill/playwright-example/SKILL.md`](.opencode/skill/playwright-example/SKILL.md) for the full example.
|
|
66
|
+
|
|
51
67
|
## Usage
|
|
52
68
|
|
|
53
69
|
### 1. Create a Skill with Embedded MCP
|
|
@@ -127,15 +143,77 @@ Invokes an operation on a skill-embedded MCP server.
|
|
|
127
143
|
|
|
128
144
|
## Configuration Format
|
|
129
145
|
|
|
130
|
-
The MCP configuration supports
|
|
146
|
+
The MCP configuration supports multiple formats for compatibility with both OpenCode and oh-my-opencode:
|
|
131
147
|
|
|
132
148
|
```typescript
|
|
133
149
|
interface McpServerConfig {
|
|
134
|
-
|
|
135
|
-
|
|
150
|
+
// Command formats (both supported):
|
|
151
|
+
command: string | string[] // Array: ["npx", "-y", "@some/mcp"] or String: "npx"
|
|
152
|
+
args?: string[] // Used with string command: ["-y", "@some/mcp"]
|
|
153
|
+
|
|
154
|
+
// Environment variable formats (both supported):
|
|
155
|
+
env?: Record<string, string> | string[] // Object: { "KEY": "val" } or Array: ["KEY=val"]
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Examples
|
|
160
|
+
|
|
161
|
+
**Object format for env (recommended):**
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"my-server": {
|
|
165
|
+
"command": "npx",
|
|
166
|
+
"args": ["-y", "@some/mcp-server"],
|
|
167
|
+
"env": {
|
|
168
|
+
"API_KEY": "${MY_API_KEY}",
|
|
169
|
+
"DEBUG": "true"
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Array format for env (OpenCode style):**
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"my-server": {
|
|
179
|
+
"command": ["npx", "-y", "@some/mcp-server"],
|
|
180
|
+
"env": ["API_KEY=${MY_API_KEY}", "DEBUG=true"]
|
|
181
|
+
}
|
|
136
182
|
}
|
|
137
183
|
```
|
|
138
184
|
|
|
185
|
+
## Example Skill
|
|
186
|
+
|
|
187
|
+
Here's a complete example of a skill with an embedded MCP server (from [`.opencode/skill/playwright-example/SKILL.md`](.opencode/skill/playwright-example/SKILL.md)):
|
|
188
|
+
|
|
189
|
+
```markdown
|
|
190
|
+
---
|
|
191
|
+
name: playwright-example
|
|
192
|
+
description: Browser automation skill for web testing, scraping, and interaction. Use for end-to-end testing, screenshots, and browser automation tasks.
|
|
193
|
+
argument-hint: describe what you want to do (e.g., "take a screenshot of homepage", "test login flow", "fill out a form")
|
|
194
|
+
mcp:
|
|
195
|
+
playwright:
|
|
196
|
+
command: ["npx", "-y", "@playwright/mcp@latest"]
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
# Playwright Browser Automation
|
|
200
|
+
|
|
201
|
+
This skill provides browser automation capabilities via the Playwright MCP server.
|
|
202
|
+
|
|
203
|
+
## Available Operations
|
|
204
|
+
|
|
205
|
+
- **Navigation**: Navigate to URLs, go back/forward, reload pages
|
|
206
|
+
- **Screenshots**: Capture full page or element screenshots
|
|
207
|
+
- **Interactions**: Click, type, select, hover, and other user interactions
|
|
208
|
+
- **Forms**: Fill out forms, submit data, handle file uploads
|
|
209
|
+
|
|
210
|
+
## Example Tasks
|
|
211
|
+
|
|
212
|
+
- "Navigate to the login page and take a screenshot"
|
|
213
|
+
- "Fill out the registration form with test data"
|
|
214
|
+
- "Extract all product names from the catalog page"
|
|
215
|
+
```
|
|
216
|
+
|
|
139
217
|
## License
|
|
140
218
|
|
|
141
219
|
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-command.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/normalize-command.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { normalizeCommand, normalizeEnv } from '../utils/env-vars.js';
|
|
3
|
+
describe('normalizeCommand', () => {
|
|
4
|
+
describe('OpenCode format (command as array)', () => {
|
|
5
|
+
it('parses command array with executable and args', () => {
|
|
6
|
+
const config = {
|
|
7
|
+
command: ['npx', '-y', '@playwright/mcp@latest']
|
|
8
|
+
};
|
|
9
|
+
const result = normalizeCommand(config);
|
|
10
|
+
expect(result.command).toBe('npx');
|
|
11
|
+
expect(result.args).toEqual(['-y', '@playwright/mcp@latest']);
|
|
12
|
+
});
|
|
13
|
+
it('handles command array with only executable', () => {
|
|
14
|
+
const config = {
|
|
15
|
+
command: ['node']
|
|
16
|
+
};
|
|
17
|
+
const result = normalizeCommand(config);
|
|
18
|
+
expect(result.command).toBe('node');
|
|
19
|
+
expect(result.args).toEqual([]);
|
|
20
|
+
});
|
|
21
|
+
it('converts non-string array elements to strings', () => {
|
|
22
|
+
const config = {
|
|
23
|
+
command: ['node', '--port', 3000]
|
|
24
|
+
};
|
|
25
|
+
const result = normalizeCommand(config);
|
|
26
|
+
expect(result.command).toBe('node');
|
|
27
|
+
expect(result.args).toEqual(['--port', '3000']);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe('oh-my-opencode format (command string + args array)', () => {
|
|
31
|
+
it('parses command string with args array', () => {
|
|
32
|
+
const config = {
|
|
33
|
+
command: 'npx',
|
|
34
|
+
args: ['-y', '@anthropic-ai/mcp-playwright']
|
|
35
|
+
};
|
|
36
|
+
const result = normalizeCommand(config);
|
|
37
|
+
expect(result.command).toBe('npx');
|
|
38
|
+
expect(result.args).toEqual(['-y', '@anthropic-ai/mcp-playwright']);
|
|
39
|
+
});
|
|
40
|
+
it('handles command string without args', () => {
|
|
41
|
+
const config = {
|
|
42
|
+
command: 'node'
|
|
43
|
+
};
|
|
44
|
+
const result = normalizeCommand(config);
|
|
45
|
+
expect(result.command).toBe('node');
|
|
46
|
+
expect(result.args).toEqual([]);
|
|
47
|
+
});
|
|
48
|
+
it('handles command string with empty args array', () => {
|
|
49
|
+
const config = {
|
|
50
|
+
command: 'python',
|
|
51
|
+
args: []
|
|
52
|
+
};
|
|
53
|
+
const result = normalizeCommand(config);
|
|
54
|
+
expect(result.command).toBe('python');
|
|
55
|
+
expect(result.args).toEqual([]);
|
|
56
|
+
});
|
|
57
|
+
it('converts non-string args to strings', () => {
|
|
58
|
+
const config = {
|
|
59
|
+
command: 'node',
|
|
60
|
+
args: ['--port', 8080]
|
|
61
|
+
};
|
|
62
|
+
const result = normalizeCommand(config);
|
|
63
|
+
expect(result.command).toBe('node');
|
|
64
|
+
expect(result.args).toEqual(['--port', '8080']);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('edge cases', () => {
|
|
68
|
+
it('throws error when command is undefined', () => {
|
|
69
|
+
const config = {};
|
|
70
|
+
expect(() => normalizeCommand(config)).toThrow('Invalid MCP command configuration: command must be a string or array');
|
|
71
|
+
});
|
|
72
|
+
it('throws error when command is empty array', () => {
|
|
73
|
+
const config = {
|
|
74
|
+
command: []
|
|
75
|
+
};
|
|
76
|
+
expect(() => normalizeCommand(config)).toThrow('Invalid MCP command configuration: command array must not be empty');
|
|
77
|
+
});
|
|
78
|
+
it('ignores args field when command is array (OpenCode format takes precedence)', () => {
|
|
79
|
+
const config = {
|
|
80
|
+
command: ['npx', '-y', '@some/package'],
|
|
81
|
+
args: ['should', 'be', 'ignored']
|
|
82
|
+
};
|
|
83
|
+
const result = normalizeCommand(config);
|
|
84
|
+
expect(result.command).toBe('npx');
|
|
85
|
+
expect(result.args).toEqual(['-y', '@some/package']);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('normalizeEnv', () => {
|
|
90
|
+
describe('object format (oh-my-opencode style)', () => {
|
|
91
|
+
it('passes through object format unchanged', () => {
|
|
92
|
+
const config = {
|
|
93
|
+
command: 'node',
|
|
94
|
+
env: { API_KEY: 'secret', DEBUG: 'true' }
|
|
95
|
+
};
|
|
96
|
+
const result = normalizeEnv(config);
|
|
97
|
+
expect(result.env).toEqual({ API_KEY: 'secret', DEBUG: 'true' });
|
|
98
|
+
});
|
|
99
|
+
it('handles empty object', () => {
|
|
100
|
+
const config = {
|
|
101
|
+
command: 'node',
|
|
102
|
+
env: {}
|
|
103
|
+
};
|
|
104
|
+
const result = normalizeEnv(config);
|
|
105
|
+
expect(result.env).toEqual({});
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
describe('array format (OpenCode style)', () => {
|
|
109
|
+
it('converts array of KEY=value strings to object', () => {
|
|
110
|
+
const config = {
|
|
111
|
+
command: 'node',
|
|
112
|
+
env: ['API_KEY=secret', 'DEBUG=true']
|
|
113
|
+
};
|
|
114
|
+
const result = normalizeEnv(config);
|
|
115
|
+
expect(result.env).toEqual({ API_KEY: 'secret', DEBUG: 'true' });
|
|
116
|
+
});
|
|
117
|
+
it('handles values containing equals sign', () => {
|
|
118
|
+
const config = {
|
|
119
|
+
command: 'node',
|
|
120
|
+
env: ['CONNECTION_STRING=host=localhost;port=5432']
|
|
121
|
+
};
|
|
122
|
+
const result = normalizeEnv(config);
|
|
123
|
+
expect(result.env).toEqual({ CONNECTION_STRING: 'host=localhost;port=5432' });
|
|
124
|
+
});
|
|
125
|
+
it('handles empty array', () => {
|
|
126
|
+
const config = {
|
|
127
|
+
command: 'node',
|
|
128
|
+
env: []
|
|
129
|
+
};
|
|
130
|
+
const result = normalizeEnv(config);
|
|
131
|
+
expect(result.env).toEqual({});
|
|
132
|
+
});
|
|
133
|
+
it('skips malformed entries without equals sign', () => {
|
|
134
|
+
const config = {
|
|
135
|
+
command: 'node',
|
|
136
|
+
env: ['VALID=value', 'INVALID_NO_EQUALS', 'ALSO_VALID=123']
|
|
137
|
+
};
|
|
138
|
+
const result = normalizeEnv(config);
|
|
139
|
+
expect(result.env).toEqual({ VALID: 'value', ALSO_VALID: '123' });
|
|
140
|
+
});
|
|
141
|
+
it('skips entries with empty key (equals at start)', () => {
|
|
142
|
+
const config = {
|
|
143
|
+
command: 'node',
|
|
144
|
+
env: ['=value_with_empty_key', 'VALID=value']
|
|
145
|
+
};
|
|
146
|
+
const result = normalizeEnv(config);
|
|
147
|
+
expect(result.env).toEqual({ VALID: 'value' });
|
|
148
|
+
});
|
|
149
|
+
it('handles empty value after equals sign', () => {
|
|
150
|
+
const config = {
|
|
151
|
+
command: 'node',
|
|
152
|
+
env: ['EMPTY_VALUE=']
|
|
153
|
+
};
|
|
154
|
+
const result = normalizeEnv(config);
|
|
155
|
+
expect(result.env).toEqual({ EMPTY_VALUE: '' });
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
describe('edge cases', () => {
|
|
159
|
+
it('returns empty object when env is undefined', () => {
|
|
160
|
+
const config = {
|
|
161
|
+
command: 'node'
|
|
162
|
+
};
|
|
163
|
+
const result = normalizeEnv(config);
|
|
164
|
+
expect(result.env).toEqual({});
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
describe('backward compatibility', () => {
|
|
168
|
+
it('supports deprecated environment field', () => {
|
|
169
|
+
const config = {
|
|
170
|
+
command: 'node',
|
|
171
|
+
environment: { LEGACY_KEY: 'legacy_value' }
|
|
172
|
+
};
|
|
173
|
+
const result = normalizeEnv(config);
|
|
174
|
+
expect(result.env).toEqual({ LEGACY_KEY: 'legacy_value' });
|
|
175
|
+
});
|
|
176
|
+
it('prefers env over deprecated environment when both present', () => {
|
|
177
|
+
const config = {
|
|
178
|
+
command: 'node',
|
|
179
|
+
env: { NEW_KEY: 'new_value' },
|
|
180
|
+
environment: { OLD_KEY: 'old_value' }
|
|
181
|
+
};
|
|
182
|
+
const result = normalizeEnv(config);
|
|
183
|
+
expect(result.env).toEqual({ NEW_KEY: 'new_value' });
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
//# sourceMappingURL=normalize-command.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-command.test.js","sourceRoot":"","sources":["../../src/__tests__/normalize-command.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
import type { Plugin } from '@opencode-ai/plugin';
|
|
2
|
-
/**
|
|
3
|
-
* OpenCode Embedded Skill MCP Plugin
|
|
4
|
-
*
|
|
5
|
-
* Provides skill-embedded MCP support for OpenCode without requiring oh-my-opencode.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Discovers skills from .opencode/skill/ (project) and ~/.config/opencode/skill/ (user)
|
|
9
|
-
* - Parses MCP configurations from YAML frontmatter or mcp.json files
|
|
10
|
-
* - Provides 'skill' tool to load skill instructions and discover MCP capabilities
|
|
11
|
-
* - Provides 'skill_mcp' tool to invoke MCP operations (tools, resources, prompts)
|
|
12
|
-
* - Manages MCP client connections with pooling, lazy initialization, and cleanup
|
|
13
|
-
*/
|
|
14
2
|
export declare const OpenCodeEmbeddedSkillMcp: Plugin;
|
|
15
3
|
export default OpenCodeEmbeddedSkillMcp;
|
|
16
4
|
export type { LoadedSkill, McpServerConfig, SkillScope } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAejD,eAAO,MAAM,wBAAwB,EAAE,MAkDtC,CAAA;AAGD,eAAe,wBAAwB,CAAA;AAGvC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,19 +2,23 @@ import { createSkillMcpManager } from './skill-mcp-manager.js';
|
|
|
2
2
|
import { discoverSkills } from './skill-loader.js';
|
|
3
3
|
import { createSkillTool } from './tools/skill.js';
|
|
4
4
|
import { createSkillMcpTool } from './tools/skill-mcp.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* Features:
|
|
11
|
-
* - Discovers skills from .opencode/skill/ (project) and ~/.config/opencode/skill/ (user)
|
|
12
|
-
* - Parses MCP configurations from YAML frontmatter or mcp.json files
|
|
13
|
-
* - Provides 'skill' tool to load skill instructions and discover MCP capabilities
|
|
14
|
-
* - Provides 'skill_mcp' tool to invoke MCP operations (tools, resources, prompts)
|
|
15
|
-
* - Manages MCP client connections with pooling, lazy initialization, and cleanup
|
|
16
|
-
*/
|
|
5
|
+
function hasOhMyOpencode(plugins) {
|
|
6
|
+
return plugins.some(p => p === 'oh-my-opencode' ||
|
|
7
|
+
p === '@code-yeongyu/oh-my-opencode' ||
|
|
8
|
+
p.endsWith('/oh-my-opencode'));
|
|
9
|
+
}
|
|
17
10
|
export const OpenCodeEmbeddedSkillMcp = async ({ client }) => {
|
|
11
|
+
if (process.env.OPENCODE_LAZY_LOADER_FORCE !== '1') {
|
|
12
|
+
try {
|
|
13
|
+
const { data: config } = await client.config.get();
|
|
14
|
+
if (config?.plugin && hasOhMyOpencode(config.plugin)) {
|
|
15
|
+
console.log('[opencode-lazy-loader] oh-my-opencode detected in config, auto-disabling to avoid conflicts');
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
}
|
|
21
|
+
}
|
|
18
22
|
const manager = createSkillMcpManager();
|
|
19
23
|
let loadedSkills = [];
|
|
20
24
|
let currentSessionID = null;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAGzD
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAGzD,SAAS,eAAe,CAAC,OAAiB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACtB,CAAC,KAAK,gBAAgB;QACtB,CAAC,KAAK,8BAA8B;QACpC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAC9B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAW,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IACnE,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;YAClD,IAAI,MAAM,EAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAA;gBAC1G,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;QACT,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAA;IACvC,IAAI,YAAY,GAAkB,EAAE,CAAA;IACpC,IAAI,gBAAgB,GAAkB,IAAI,CAAA;IAE1C,oCAAoC;IACpC,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,cAAc,EAAE,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,OAAO;QACL,kCAAkC;QAClC,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACrC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAA;YAC7C,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,gBAAgB,EAAE,CAAC;gBACzD,kDAAkD;gBAClD,MAAM,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;gBACjD,gBAAgB,GAAG,IAAI,CAAA;YACzB,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,IAAI,EAAE;YACJ,KAAK,EAAE,eAAe,CAAC;gBACrB,MAAM,EAAE,YAAY;gBACpB,UAAU,EAAE,OAAO;gBACnB,YAAY,EAAE,GAAG,EAAE,CAAC,gBAAgB,IAAI,SAAS;aAClD,CAAC;YACF,SAAS,EAAE,kBAAkB,CAAC;gBAC5B,OAAO;gBACP,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;gBACnC,YAAY,EAAE,GAAG,EAAE,CAAC,gBAAgB,IAAI,SAAS;aAClD,CAAC;SACH;KACF,CAAA;AACH,CAAC,CAAA;AAED,oCAAoC;AACpC,eAAe,wBAAwB,CAAA;AAIvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-mcp-manager.d.ts","sourceRoot":"","sources":["../src/skill-mcp-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAU5E,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAChF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACvE,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3E,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACzE,QAAQ,CACN,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAAA;IACnB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACrF,SAAS,CACP,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAAA;IACnB,mBAAmB,IAAI,MAAM,EAAE,CAAA;IAC/B,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAA;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"skill-mcp-manager.d.ts","sourceRoot":"","sources":["../src/skill-mcp-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAU5E,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAChF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACvE,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3E,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACzE,QAAQ,CACN,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAAA;IACnB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACrF,SAAS,CACP,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAAA;IACnB,mBAAmB,IAAI,MAAM,EAAE,CAAA;IAC/B,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAA;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAoUvD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
2
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
3
|
-
import { expandEnvVarsInObject, createCleanMcpEnvironment } from './utils/env-vars.js';
|
|
3
|
+
import { expandEnvVarsInObject, createCleanMcpEnvironment, normalizeCommand, normalizeEnv } from './utils/env-vars.js';
|
|
4
4
|
/**
|
|
5
5
|
* Create a SkillMcpManager instance
|
|
6
6
|
*
|
|
@@ -62,18 +62,13 @@ export function createSkillMcpManager() {
|
|
|
62
62
|
if (!config.command) {
|
|
63
63
|
throw new Error(`MCP server "${info.serverName}" is missing required 'command' field.\n\n` +
|
|
64
64
|
`The MCP configuration in skill "${info.skillName}" must specify a command to execute.\n\n` +
|
|
65
|
-
`
|
|
66
|
-
` mcp
|
|
67
|
-
`
|
|
68
|
-
` command: ["npx", "-y", "@some/mcp-server"]`);
|
|
65
|
+
`Supported formats:\n` +
|
|
66
|
+
` Format A (array): command: ["npx", "-y", "@some/mcp-server"]\n` +
|
|
67
|
+
` Format B (string): command: "npx", args: ["-y", "@some/mcp-server"]`);
|
|
69
68
|
}
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
: [String(commandValue)];
|
|
74
|
-
const command = commandParts[0];
|
|
75
|
-
const args = commandParts.slice(1);
|
|
76
|
-
const mergedEnv = createCleanMcpEnvironment(config.environment);
|
|
69
|
+
const { command, args } = normalizeCommand(config);
|
|
70
|
+
const { env } = normalizeEnv(config);
|
|
71
|
+
const mergedEnv = createCleanMcpEnvironment(env);
|
|
77
72
|
registerProcessCleanup();
|
|
78
73
|
const transport = new StdioClientTransport({
|
|
79
74
|
command,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-mcp-manager.js","sourceRoot":"","sources":["../src/skill-mcp-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAEhF,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"skill-mcp-manager.js","sourceRoot":"","sources":["../src/skill-mcp-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ToolDefinition } from '@opencode-ai/plugin';
|
|
1
|
+
import { type ToolDefinition } from '@opencode-ai/plugin/tool';
|
|
2
2
|
import type { LoadedSkill } from '../types.js';
|
|
3
3
|
import type { SkillMcpManager } from '../skill-mcp-manager.js';
|
|
4
4
|
export interface CreateSkillMcpToolOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-mcp.d.ts","sourceRoot":"","sources":["../../src/tools/skill-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"skill-mcp.d.ts","sourceRoot":"","sources":["../../src/tools/skill-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAqI9D,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,eAAe,CAAA;IACxB,eAAe,EAAE,MAAM,WAAW,EAAE,CAAA;IACpC,YAAY,EAAE,MAAM,MAAM,CAAA;CAC3B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,cAAc,CAoErF"}
|
package/dist/tools/skill-mcp.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { tool } from '@opencode-ai/plugin';
|
|
1
|
+
import { tool } from '@opencode-ai/plugin/tool';
|
|
2
2
|
const SKILL_MCP_DESCRIPTION = `Invoke MCP server operations from skill-embedded MCPs. Requires mcp_name plus exactly one of: tool_name, resource_name, or prompt_name.`;
|
|
3
3
|
/**
|
|
4
4
|
* Validate that exactly one operation parameter is provided
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-mcp.js","sourceRoot":"","sources":["../../src/tools/skill-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,
|
|
1
|
+
{"version":3,"file":"skill-mcp.js","sourceRoot":"","sources":["../../src/tools/skill-mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/skill.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ToolDefinition } from '@opencode-ai/plugin';
|
|
1
|
+
import { type ToolDefinition } from '@opencode-ai/plugin/tool';
|
|
2
2
|
import type { LoadedSkill } from '../types.js';
|
|
3
3
|
import type { SkillMcpManager } from '../skill-mcp-manager.js';
|
|
4
4
|
export interface CreateSkillToolOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/tools/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/tools/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAqK9D,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,cAAc,CAgD/E"}
|
package/dist/tools/skill.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { tool } from '@opencode-ai/plugin';
|
|
1
|
+
import { tool } from '@opencode-ai/plugin/tool';
|
|
2
2
|
import { dirname } from 'path';
|
|
3
3
|
import { parseFrontmatter } from '../utils/frontmatter.js';
|
|
4
4
|
const TOOL_DESCRIPTION_NO_SKILLS = 'Load a skill to get detailed instructions for a specific task. No skills are currently available.';
|
package/dist/tools/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/tools/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/tools/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,MAAM,0BAA0B,GAC9B,mGAAmG,CAAA;AAErG,MAAM,uBAAuB,GAC3B;;;+DAG6D,CAAA;AAQ/D;;GAEG;AACH,SAAS,iBAAiB,CAAC,KAAkB;IAC3C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE;QAC/C,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,MAAmB;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAElC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,OAAO;YACL,WAAW;YACX,aAAa,KAAK,CAAC,IAAI,SAAS;YAChC,oBAAoB,KAAK,CAAC,WAAW,gBAAgB;YACrD,YAAY;SACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO;;;EAGP,SAAS;oBACS,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,KAAkB;IAChD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QACnD,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;QAC9F,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;IACpB,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CACpD,oDAAoD,CACrD,CAAA;IACD,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAA;AAClF,CAAC;AAgBD;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,KAAkB,EAClB,OAAwB,EACxB,SAAiB;IAEjB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,GAAa,CAAC,EAAE,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAA;IAE/D,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG;YACX,UAAU;YACV,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,SAAS;SACV,CAAA;QAED,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,MAAyB;YACjC,SAAS,EAAE,KAAK,CAAC,IAAI;SACtB,CAAA;QAED,QAAQ,CAAC,IAAI,CAAC,OAAO,UAAU,EAAE,CAAC,CAAA;QAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEjB,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpD,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAuB;gBACtE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAA2B;gBAC9E,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAyB;aAC3E,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACjB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;oBACnC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;wBAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;oBAC9B,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBACjB,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBACjC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;oBACrD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,kBAAkB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC3E,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACxE,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzE,QAAQ,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC3E,QAAQ,CAAC,IAAI,CAAC,uBAAuB,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACtE,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjB,QAAQ,CAAC,IAAI,CAAC,2CAA2C,UAAU,gBAAgB,CAAC,CAAA;QACpF,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAQD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;IAEpD,0CAA0C;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC;QACzC,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,uBAAuB,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;IAEzD,OAAO,IAAI,CAAC;QACV,WAAW;QACX,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CACjC,gFAAgF,CACjF;SACF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAA;YAEtD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtD,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,CAAC,IAAI,kCAAkC,SAAS,IAAI,MAAM,EAAE,CAC3E,CAAA;YACH,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;YAElF,MAAM,MAAM,GAAG;gBACb,aAAa,KAAK,CAAC,IAAI,EAAE;gBACzB,EAAE;gBACF,uBAAuB,GAAG,EAAE;gBAC5B,EAAE;gBACF,IAAI;aACL,CAAA;YAED,4CAA4C;YAC5C,IAAI,UAAU,IAAI,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;gBAC9E,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACtB,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Configuration for an MCP server
|
|
3
|
+
*
|
|
4
|
+
* Command formats:
|
|
5
|
+
* 1. Array format: command: ["npx", "-y", "@some/mcp-server"]
|
|
6
|
+
* 2. String + args: command: "npx", args: ["-y", "@some/mcp-server"]
|
|
7
|
+
*
|
|
8
|
+
* Environment variable formats:
|
|
9
|
+
* 1. Object format (oh-my-opencode): env: { "KEY": "value" }
|
|
10
|
+
* 2. Array format (OpenCode): env: ["KEY=value"]
|
|
3
11
|
*/
|
|
4
12
|
export interface McpServerConfig {
|
|
5
13
|
command?: string | string[];
|
|
14
|
+
args?: string[];
|
|
15
|
+
env?: Record<string, string> | string[];
|
|
16
|
+
/** @deprecated Use `env` instead */
|
|
6
17
|
environment?: Record<string, string>;
|
|
7
18
|
}
|
|
19
|
+
export interface NormalizedCommand {
|
|
20
|
+
command: string;
|
|
21
|
+
args: string[];
|
|
22
|
+
}
|
|
23
|
+
export interface NormalizedEnv {
|
|
24
|
+
env: Record<string, string>;
|
|
25
|
+
}
|
|
8
26
|
/**
|
|
9
27
|
* Skill scope - where the skill was loaded from
|
|
10
28
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;IACvC,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,kBAAkB,CAAA;AAExD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,eAAe,CAAA;IAC3B,KAAK,EAAE,UAAU,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;CACb"}
|
package/dist/utils/env-vars.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { McpServerConfig, NormalizedCommand, NormalizedEnv } from '../types.js';
|
|
1
2
|
/**
|
|
2
3
|
* Expand environment variables in a string
|
|
3
4
|
* Supports ${VAR} and ${VAR:-default} syntax
|
|
@@ -12,4 +13,6 @@ export declare function expandEnvVarsInObject<T>(obj: T): T;
|
|
|
12
13
|
* Merges process.env with custom env vars, expanding variables
|
|
13
14
|
*/
|
|
14
15
|
export declare function createCleanMcpEnvironment(customEnv?: Record<string, string>): Record<string, string>;
|
|
16
|
+
export declare function normalizeCommand(config: McpServerConfig): NormalizedCommand;
|
|
17
|
+
export declare function normalizeEnv(config: McpServerConfig): NormalizedEnv;
|
|
15
18
|
//# sourceMappingURL=env-vars.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-vars.d.ts","sourceRoot":"","sources":["../../src/utils/env-vars.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env-vars.d.ts","sourceRoot":"","sources":["../../src/utils/env-vars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEpF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAkBlD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgCxB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAiB3E;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,CAyBnE"}
|
package/dist/utils/env-vars.js
CHANGED
|
@@ -40,6 +40,9 @@ export function createCleanMcpEnvironment(customEnv) {
|
|
|
40
40
|
'SHELL',
|
|
41
41
|
'TERM',
|
|
42
42
|
'NODE_ENV',
|
|
43
|
+
'TMPDIR',
|
|
44
|
+
'LANG',
|
|
45
|
+
'LC_ALL',
|
|
43
46
|
'npm_config_registry',
|
|
44
47
|
'npm_config_cache'
|
|
45
48
|
];
|
|
@@ -56,4 +59,42 @@ export function createCleanMcpEnvironment(customEnv) {
|
|
|
56
59
|
}
|
|
57
60
|
return baseEnv;
|
|
58
61
|
}
|
|
62
|
+
export function normalizeCommand(config) {
|
|
63
|
+
if (Array.isArray(config.command)) {
|
|
64
|
+
if (config.command.length === 0) {
|
|
65
|
+
throw new Error('Invalid MCP command configuration: command array must not be empty');
|
|
66
|
+
}
|
|
67
|
+
const [cmd, ...cmdArgs] = config.command.map(String);
|
|
68
|
+
return { command: cmd, args: cmdArgs };
|
|
69
|
+
}
|
|
70
|
+
if (typeof config.command === 'string') {
|
|
71
|
+
return {
|
|
72
|
+
command: config.command,
|
|
73
|
+
args: config.args?.map(String) ?? []
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
throw new Error('Invalid MCP command configuration: command must be a string or array');
|
|
77
|
+
}
|
|
78
|
+
export function normalizeEnv(config) {
|
|
79
|
+
const envValue = config.env ?? config.environment;
|
|
80
|
+
if (!envValue) {
|
|
81
|
+
return { env: {} };
|
|
82
|
+
}
|
|
83
|
+
if (Array.isArray(envValue)) {
|
|
84
|
+
const env = {};
|
|
85
|
+
for (const entry of envValue) {
|
|
86
|
+
const eqIndex = entry.indexOf('=');
|
|
87
|
+
if (eqIndex > 0) {
|
|
88
|
+
const key = entry.slice(0, eqIndex);
|
|
89
|
+
const value = entry.slice(eqIndex + 1);
|
|
90
|
+
env[key] = value;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return { env };
|
|
94
|
+
}
|
|
95
|
+
if (typeof envValue === 'object') {
|
|
96
|
+
return { env: envValue };
|
|
97
|
+
}
|
|
98
|
+
return { env: {} };
|
|
99
|
+
}
|
|
59
100
|
//# sourceMappingURL=env-vars.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../../src/utils/env-vars.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,OAAO,CAClB,+BAA+B,EAC/B,CAAC,CAAC,EAAE,OAAe,EAAE,YAAqB,EAAE,EAAE;QAC5C,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,YAAY,IAAI,EAAE,CAAA;IACnD,CAAC,CACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAI,GAAM;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC,GAAG,CAAM,CAAA;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAM,CAAA;IAC5C,CAAC;IAED,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,MAAW,CAAA;IACpB,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAkC;IAElC,MAAM,OAAO,GAA2B,EAAE,CAAA;IAE1C,uCAAuC;IACvC,MAAM,aAAa,GAAG;QACpB,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,UAAU;QACV,qBAAqB;QACrB,kBAAkB;KACnB,CAAA;IAED,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../../src/utils/env-vars.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-lazy-loader",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "OpenCode plugin for lazy-loading skill-embedded MCP servers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"engines": {
|
|
15
|
+
"node": ">=18"
|
|
16
|
+
},
|
|
8
17
|
"scripts": {
|
|
9
18
|
"build": "npx tsc",
|
|
10
19
|
"watch": "npx tsc --watch",
|
|
11
20
|
"clean": "rm -rf dist",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"test:watch": "vitest",
|
|
12
23
|
"prepack": "npm run clean && npm run build"
|
|
13
24
|
},
|
|
14
25
|
"keywords": [
|
|
@@ -36,6 +47,7 @@
|
|
|
36
47
|
"devDependencies": {
|
|
37
48
|
"@types/js-yaml": "^4.0.9",
|
|
38
49
|
"@types/node": "^22.0.0",
|
|
39
|
-
"typescript": "^5.7.0"
|
|
50
|
+
"typescript": "^5.7.0",
|
|
51
|
+
"vitest": "^4.0.17"
|
|
40
52
|
}
|
|
41
53
|
}
|