itismyskillmarket 1.3.42 → 1.3.44
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 +9 -3
- package/dist/{chunk-76RGF4GX.js → chunk-ALNUNP4E.js} +3 -0
- package/dist/electron-entry.js +1 -1
- package/dist/index.js +3 -3
- package/gui/app.js +39 -0
- package/gui/index.html +1 -0
- package/gui/style.css +21 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SkillMarket
|
|
2
2
|
|
|
3
|
-
> **v1.3.
|
|
3
|
+
> **v1.3.42** — Cross-platform skill manager for AI coding tools (Cursor, VSCode, Codex CLI, OpenCode, Claude Code, Antigravity, OpenClaw, Hermes Agent, Saitec TUI).
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -253,6 +253,10 @@ SkillMarket can install skills directly to your AI coding tool's skill directory
|
|
|
253
253
|
| OpenCode | `~/.config/opencode/skills/` | ✅ Detected |
|
|
254
254
|
| Claude Code | `~/.claude/skills/` | ✅ Available |
|
|
255
255
|
| VSCode | `~/.copilot/skills/` | ✅ Available |
|
|
256
|
+
| Codex CLI | `~/.codex/skills/` | ✅ Available |
|
|
257
|
+
| OpenClaw | `~/.openclaw/skills/` | ✅ Available |
|
|
258
|
+
| Hermes Agent | `~/.hermes/skills/` | ✅ Available |
|
|
259
|
+
| Saitec TUI | `~/.saitec_tui/skills/` | ✅ Available |
|
|
256
260
|
|
|
257
261
|
### Installation Behavior
|
|
258
262
|
|
|
@@ -270,7 +274,7 @@ Use `--platform` to target specific platforms:
|
|
|
270
274
|
skm install my-skill --platform opencode
|
|
271
275
|
|
|
272
276
|
# Multiple platforms
|
|
273
|
-
skm install my-skill --platform opencode,claude,vscode
|
|
277
|
+
skm install my-skill --platform opencode,claude,vscode,codex
|
|
274
278
|
```
|
|
275
279
|
|
|
276
280
|
Use `skm platforms` to see which platforms are available on your system:
|
|
@@ -283,6 +287,7 @@ $ skm platforms
|
|
|
283
287
|
OpenCode ✅ Available (2 skills installed)
|
|
284
288
|
Claude Code ✅ Available (1 skills installed)
|
|
285
289
|
VSCode ✅ Available (0 skills installed)
|
|
290
|
+
Codex CLI ✅ Available (0 skills installed)
|
|
286
291
|
OpenClaw ✅ Available (0 skills installed)
|
|
287
292
|
Hermes Agent ✅ Available (0 skills installed)
|
|
288
293
|
Saitec TUI ✅ Available (0 skills installed)
|
|
@@ -327,13 +332,14 @@ Skills are installed to `~/.skillmarket/` with the following structure:
|
|
|
327
332
|
~/.config/opencode/skills/<skill-name>/SKILL.md
|
|
328
333
|
~/.claude/skills/<skill-name>/SKILL.md
|
|
329
334
|
~/.copilot/skills/<skill-name>/SKILL.md
|
|
335
|
+
~/.codex/skills/<skill-name>/SKILL.md
|
|
330
336
|
```
|
|
331
337
|
|
|
332
338
|
## Supported Platforms
|
|
333
339
|
|
|
334
340
|
- Cursor
|
|
335
341
|
- VSCode
|
|
336
|
-
- Codex
|
|
342
|
+
- Codex CLI
|
|
337
343
|
- OpenCode
|
|
338
344
|
- Claude Code
|
|
339
345
|
- Antigravity
|
package/dist/electron-entry.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
uninstallAll,
|
|
39
39
|
uninstallSkill,
|
|
40
40
|
updateSkill
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-ALNUNP4E.js";
|
|
42
42
|
|
|
43
43
|
// src/cli.ts
|
|
44
44
|
import { Command } from "commander";
|
|
@@ -671,7 +671,7 @@ Commands:
|
|
|
671
671
|
info <skill> Display skill information
|
|
672
672
|
install <skill> Install a skill from npm or GitHub
|
|
673
673
|
@<version> Install specific version
|
|
674
|
-
--platform Target platforms (opencode,claude,...)
|
|
674
|
+
--platform Target platforms (opencode,claude,vscode,codex,...)
|
|
675
675
|
--force Overwrite if already installed
|
|
676
676
|
-b, --branch GitHub branch to install from
|
|
677
677
|
-c, --commit GitHub commit to install from
|
|
@@ -716,7 +716,7 @@ Examples:
|
|
|
716
716
|
skm install brainstorming Install to all detected platforms
|
|
717
717
|
skm install brainstorming@1.0.0 Install specific version
|
|
718
718
|
skm install owner/repo Install from GitHub
|
|
719
|
-
skm install brainstorming --platform opencode Install to specific
|
|
719
|
+
skm install brainstorming --platform opencode,codex Install to specific platforms
|
|
720
720
|
skm uninstall brainstorming Uninstall skill
|
|
721
721
|
skm uninstall --all Uninstall all skills
|
|
722
722
|
skm uninstall --all --yes Force uninstall all without confirmation
|
package/gui/app.js
CHANGED
|
@@ -241,6 +241,7 @@ const translations = {
|
|
|
241
241
|
'upload.installSuccess': '{skillName} installed locally!',
|
|
242
242
|
'upload.bothSuccess': '{skillName} published & installed!',
|
|
243
243
|
'upload.discarded': 'Upload discarded',
|
|
244
|
+
'upload.fileSelected': 'Selected: {name} ({size})',
|
|
244
245
|
'upload.errorInvalidZip': 'Invalid or empty zip file',
|
|
245
246
|
'upload.errorNoFile': 'Please select a zip file first',
|
|
246
247
|
'upload.uploadError': 'Upload failed: {error}',
|
|
@@ -487,6 +488,7 @@ const translations = {
|
|
|
487
488
|
'upload.installSuccess': '{skillName} 已安装到本地!',
|
|
488
489
|
'upload.bothSuccess': '{skillName} 已发布并安装!',
|
|
489
490
|
'upload.discarded': '上传已丢弃',
|
|
491
|
+
'upload.fileSelected': '已选择: {name} ({size})',
|
|
490
492
|
'upload.errorInvalidZip': '无效或空的 zip 文件',
|
|
491
493
|
'upload.errorNoFile': '请先选择一个 zip 文件',
|
|
492
494
|
'upload.uploadError': '上传失败:{error}',
|
|
@@ -2094,6 +2096,40 @@ const uploadState = {
|
|
|
2094
2096
|
/** 上传文件大小限制:50 MB */
|
|
2095
2097
|
const MAX_UPLOAD_SIZE = 50 * 1024 * 1024;
|
|
2096
2098
|
|
|
2099
|
+
/** 格式化文件大小 */
|
|
2100
|
+
function formatFileSize(bytes) {
|
|
2101
|
+
if (bytes < 1024) return bytes + ' B';
|
|
2102
|
+
if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + ' KB';
|
|
2103
|
+
return (bytes / 1024 / 1024).toFixed(1) + ' MB';
|
|
2104
|
+
}
|
|
2105
|
+
|
|
2106
|
+
/** 更新 dropzone 显示已选文件信息 */
|
|
2107
|
+
function showUploadFileInfo(file) {
|
|
2108
|
+
const info = document.getElementById('upload-file-info');
|
|
2109
|
+
const dropzone = document.getElementById('upload-dropzone');
|
|
2110
|
+
if (!info || !dropzone) return;
|
|
2111
|
+
|
|
2112
|
+
const sizeStr = formatFileSize(file.size);
|
|
2113
|
+
const fileName = file.name;
|
|
2114
|
+
|
|
2115
|
+
info.textContent = t('upload.fileSelected', { name: fileName, size: sizeStr });
|
|
2116
|
+
info.classList.remove('hidden');
|
|
2117
|
+
dropzone.classList.add('selected');
|
|
2118
|
+
}
|
|
2119
|
+
|
|
2120
|
+
/** 清除 dropzone 已选文件信息 */
|
|
2121
|
+
function clearUploadFileInfo() {
|
|
2122
|
+
const info = document.getElementById('upload-file-info');
|
|
2123
|
+
const dropzone = document.getElementById('upload-dropzone');
|
|
2124
|
+
if (info) {
|
|
2125
|
+
info.classList.add('hidden');
|
|
2126
|
+
info.textContent = '';
|
|
2127
|
+
}
|
|
2128
|
+
if (dropzone) {
|
|
2129
|
+
dropzone.classList.remove('selected');
|
|
2130
|
+
}
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2097
2133
|
/** 初始化 Upload 控件 */
|
|
2098
2134
|
function initializeUploadControls() {
|
|
2099
2135
|
const dropzone = document.getElementById('upload-dropzone');
|
|
@@ -2120,6 +2156,7 @@ function initializeUploadControls() {
|
|
|
2120
2156
|
}
|
|
2121
2157
|
uploadState.file = file;
|
|
2122
2158
|
submitBtn.disabled = false;
|
|
2159
|
+
showUploadFileInfo(file);
|
|
2123
2160
|
}
|
|
2124
2161
|
});
|
|
2125
2162
|
|
|
@@ -2151,6 +2188,7 @@ function initializeUploadControls() {
|
|
|
2151
2188
|
}
|
|
2152
2189
|
uploadState.file = file;
|
|
2153
2190
|
submitBtn.disabled = false;
|
|
2191
|
+
showUploadFileInfo(file);
|
|
2154
2192
|
}
|
|
2155
2193
|
});
|
|
2156
2194
|
|
|
@@ -2199,6 +2237,7 @@ function resetUploadView() {
|
|
|
2199
2237
|
document.getElementById('upload-progress').classList.add('hidden');
|
|
2200
2238
|
document.getElementById('upload-file-input').value = '';
|
|
2201
2239
|
document.getElementById('upload-skill-name').value = '';
|
|
2240
|
+
clearUploadFileInfo();
|
|
2202
2241
|
}
|
|
2203
2242
|
|
|
2204
2243
|
/** 上传 zip 到后端 */
|
package/gui/index.html
CHANGED
|
@@ -121,6 +121,7 @@
|
|
|
121
121
|
<div class="upload-dropzone-icon">📦</div>
|
|
122
122
|
<p class="upload-dropzone-text" id="upload-dropzone-text">Drop a skill .zip file here, or click to select</p>
|
|
123
123
|
<p class="upload-dropzone-hint" id="upload-dropzone-hint">The zip should contain SKILL.md and optionally package.json</p>
|
|
124
|
+
<div id="upload-file-info" class="upload-file-info hidden"></div>
|
|
124
125
|
<input type="file" id="upload-file-input" accept=".zip" style="display:none">
|
|
125
126
|
<button id="upload-select-btn" class="btn btn-primary" style="margin-top:12px;">Choose File</button>
|
|
126
127
|
</div>
|
package/gui/style.css
CHANGED
|
@@ -938,6 +938,27 @@ body {
|
|
|
938
938
|
background: var(--bg-secondary);
|
|
939
939
|
}
|
|
940
940
|
|
|
941
|
+
.upload-dropzone.selected {
|
|
942
|
+
border-color: var(--success);
|
|
943
|
+
background: rgba(76, 175, 80, 0.08);
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
.upload-file-info {
|
|
947
|
+
margin-top: 12px;
|
|
948
|
+
padding: 6px 14px;
|
|
949
|
+
background: rgba(76, 175, 80, 0.12);
|
|
950
|
+
border: 1px solid var(--success);
|
|
951
|
+
border-radius: 6px;
|
|
952
|
+
color: var(--success);
|
|
953
|
+
font-size: 0.85rem;
|
|
954
|
+
display: inline-block;
|
|
955
|
+
transition: all 0.2s;
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
.upload-file-info.hidden {
|
|
959
|
+
display: none;
|
|
960
|
+
}
|
|
961
|
+
|
|
941
962
|
.upload-dropzone:hover,
|
|
942
963
|
.upload-dropzone.drag-over {
|
|
943
964
|
border-color: var(--accent);
|