@nameczz/skill-sync 0.1.0
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/LICENSE +21 -0
- package/README.md +246 -0
- package/dist/src/autoSync.d.ts +36 -0
- package/dist/src/autoSync.js +235 -0
- package/dist/src/autoSync.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +211 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/codexArchive.d.ts +38 -0
- package/dist/src/codexArchive.js +340 -0
- package/dist/src/codexArchive.js.map +1 -0
- package/dist/src/config.d.ts +12 -0
- package/dist/src/config.js +78 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/copy.d.ts +1 -0
- package/dist/src/copy.js +42 -0
- package/dist/src/copy.js.map +1 -0
- package/dist/src/directoryPicker.d.ts +8 -0
- package/dist/src/directoryPicker.js +49 -0
- package/dist/src/directoryPicker.js.map +1 -0
- package/dist/src/format.d.ts +2 -0
- package/dist/src/format.js +27 -0
- package/dist/src/format.js.map +1 -0
- package/dist/src/frontmatter.d.ts +5 -0
- package/dist/src/frontmatter.js +36 -0
- package/dist/src/frontmatter.js.map +1 -0
- package/dist/src/git.d.ts +25 -0
- package/dist/src/git.js +227 -0
- package/dist/src/git.js.map +1 -0
- package/dist/src/hash.d.ts +1 -0
- package/dist/src/hash.js +34 -0
- package/dist/src/hash.js.map +1 -0
- package/dist/src/importSkill.d.ts +6 -0
- package/dist/src/importSkill.js +58 -0
- package/dist/src/importSkill.js.map +1 -0
- package/dist/src/init.d.ts +5 -0
- package/dist/src/init.js +13 -0
- package/dist/src/init.js.map +1 -0
- package/dist/src/installSkill.d.ts +6 -0
- package/dist/src/installSkill.js +62 -0
- package/dist/src/installSkill.js.map +1 -0
- package/dist/src/json.d.ts +2 -0
- package/dist/src/json.js +11 -0
- package/dist/src/json.js.map +1 -0
- package/dist/src/metadata.d.ts +11 -0
- package/dist/src/metadata.js +115 -0
- package/dist/src/metadata.js.map +1 -0
- package/dist/src/paths.d.ts +22 -0
- package/dist/src/paths.js +103 -0
- package/dist/src/paths.js.map +1 -0
- package/dist/src/removeLocalSkill.d.ts +5 -0
- package/dist/src/removeLocalSkill.js +79 -0
- package/dist/src/removeLocalSkill.js.map +1 -0
- package/dist/src/resolveConflict.d.ts +10 -0
- package/dist/src/resolveConflict.js +146 -0
- package/dist/src/resolveConflict.js.map +1 -0
- package/dist/src/scanner.d.ts +5 -0
- package/dist/src/scanner.js +57 -0
- package/dist/src/scanner.js.map +1 -0
- package/dist/src/server.d.ts +10 -0
- package/dist/src/server.js +494 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/sessionUsage.d.ts +14 -0
- package/dist/src/sessionUsage.js +180 -0
- package/dist/src/sessionUsage.js.map +1 -0
- package/dist/src/skillDependencies.d.ts +2 -0
- package/dist/src/skillDependencies.js +56 -0
- package/dist/src/skillDependencies.js.map +1 -0
- package/dist/src/skillMentions.d.ts +3 -0
- package/dist/src/skillMentions.js +111 -0
- package/dist/src/skillMentions.js.map +1 -0
- package/dist/src/status.d.ts +3 -0
- package/dist/src/status.js +134 -0
- package/dist/src/status.js.map +1 -0
- package/dist/src/stopSyncingSkill.d.ts +2 -0
- package/dist/src/stopSyncingSkill.js +31 -0
- package/dist/src/stopSyncingSkill.js.map +1 -0
- package/dist/src/sync.d.ts +48 -0
- package/dist/src/sync.js +741 -0
- package/dist/src/sync.js.map +1 -0
- package/dist/src/types.d.ts +84 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/updateLocalSkill.d.ts +6 -0
- package/dist/src/updateLocalSkill.js +19 -0
- package/dist/src/updateLocalSkill.js.map +1 -0
- package/dist/src/usage.d.ts +6 -0
- package/dist/src/usage.js +84 -0
- package/dist/src/usage.js.map +1 -0
- package/dist/src/usageMonitor.d.ts +17 -0
- package/dist/src/usageMonitor.js +90 -0
- package/dist/src/usageMonitor.js.map +1 -0
- package/dist/web/assets/index-CPJdd8n0.js +59 -0
- package/dist/web/assets/index-T4bm09OX.css +2 -0
- package/dist/web/index.html +13 -0
- package/dist/web/style-options/common.css +515 -0
- package/dist/web/style-options/console.html +143 -0
- package/dist/web/style-options/desktop.html +144 -0
- package/dist/web/style-options/index.html +36 -0
- package/dist/web/style-options/workbench.html +112 -0
- package/package.json +84 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Style 02, Night Console</title>
|
|
7
|
+
<link rel="stylesheet" href="./common.css" />
|
|
8
|
+
<style>
|
|
9
|
+
:root {
|
|
10
|
+
color-scheme: dark;
|
|
11
|
+
--page: oklch(0.17 0.012 248);
|
|
12
|
+
--sidebar: oklch(0.145 0.012 248);
|
|
13
|
+
--panel: oklch(0.205 0.013 248);
|
|
14
|
+
--panel-2: oklch(0.255 0.014 248);
|
|
15
|
+
--control: oklch(0.18 0.012 248);
|
|
16
|
+
--ink: oklch(0.92 0.008 248);
|
|
17
|
+
--muted: oklch(0.66 0.02 248);
|
|
18
|
+
--line: oklch(0.34 0.015 248);
|
|
19
|
+
--accent: oklch(0.69 0.13 235);
|
|
20
|
+
--accent-soft: oklch(0.28 0.055 235);
|
|
21
|
+
--success: oklch(0.76 0.14 150);
|
|
22
|
+
--success-soft: oklch(0.29 0.055 150);
|
|
23
|
+
--danger: oklch(0.72 0.15 28);
|
|
24
|
+
--danger-soft: oklch(0.29 0.06 28);
|
|
25
|
+
--table-head: oklch(0.16 0.012 248);
|
|
26
|
+
--shadow: 0 22px 50px oklch(0.02 0.006 248 / 0.44);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
body {
|
|
30
|
+
color: var(--ink);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.main {
|
|
34
|
+
padding-top: 24px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.tile,
|
|
38
|
+
.path-panel,
|
|
39
|
+
.toolbar,
|
|
40
|
+
.table-frame,
|
|
41
|
+
.preview-card {
|
|
42
|
+
background: var(--panel);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.row:hover,
|
|
46
|
+
.archive-row:hover {
|
|
47
|
+
background: oklch(0.235 0.014 248);
|
|
48
|
+
}
|
|
49
|
+
</style>
|
|
50
|
+
</head>
|
|
51
|
+
<body>
|
|
52
|
+
<div class="option-shell">
|
|
53
|
+
<aside class="option-sidebar">
|
|
54
|
+
<div class="brand">
|
|
55
|
+
<div class="brand-mark">CS</div>
|
|
56
|
+
<div>
|
|
57
|
+
<strong>Skill Sync</strong>
|
|
58
|
+
<span>Night operations view</span>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
<nav class="nav">
|
|
62
|
+
<a class="active" href="#">Skills <span>128</span></a>
|
|
63
|
+
<a href="#">Codex Archive <span>10</span></a>
|
|
64
|
+
<a href="#">Settings</a>
|
|
65
|
+
</nav>
|
|
66
|
+
</aside>
|
|
67
|
+
<main class="main">
|
|
68
|
+
<div class="header">
|
|
69
|
+
<div class="title">
|
|
70
|
+
<div class="kicker">Skill Sync</div>
|
|
71
|
+
<h1>Codex Archive</h1>
|
|
72
|
+
</div>
|
|
73
|
+
<div class="actions">
|
|
74
|
+
<a class="button" href="./index.html">Options</a>
|
|
75
|
+
<button class="button">Refresh</button>
|
|
76
|
+
<button class="button primary">Auto-sync watching</button>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
<section class="status-grid">
|
|
80
|
+
<div class="tile"><span>Archived</span><strong>10</strong></div>
|
|
81
|
+
<div class="tile"><span>Showing</span><strong style="color: var(--success)">Active</strong></div>
|
|
82
|
+
<div class="tile"><span>Preview</span><strong>On demand</strong></div>
|
|
83
|
+
<div class="path-panel">
|
|
84
|
+
<div class="path-row"><span>Archive source</span><code>~/.codex/archived_sessions</code></div>
|
|
85
|
+
<div class="path-row"><span>Trash</span><code>~/.codex/archived_sessions/.trash</code></div>
|
|
86
|
+
</div>
|
|
87
|
+
</section>
|
|
88
|
+
<section class="toolbar">
|
|
89
|
+
<div class="control">Search archived sessions</div>
|
|
90
|
+
<div class="control">State: Active</div>
|
|
91
|
+
<div class="control">Rows: 20</div>
|
|
92
|
+
</section>
|
|
93
|
+
<section class="archive-layout">
|
|
94
|
+
<div class="table-frame">
|
|
95
|
+
<div class="table-scroll">
|
|
96
|
+
<div style="min-width: 1080px">
|
|
97
|
+
<div class="archive-head">
|
|
98
|
+
<span>Title</span><span>Archived at</span><span>Updated</span><span>Workspace</span><span>Source</span><span>Size</span><span>Action</span>
|
|
99
|
+
</div>
|
|
100
|
+
<div class="archive-row">
|
|
101
|
+
<div class="cell archive-title"><strong>调整 on-demand private link 按钮</strong><small>019e688e...5e00bb</small></div>
|
|
102
|
+
<div class="cell time">2026/5/27<br />16:30:28</div>
|
|
103
|
+
<div class="cell time">2026/5/27<br />16:30:37</div>
|
|
104
|
+
<div class="cell archive-cwd">/Users/zilliz/.codex/worktrees/6d8d/zilliz-cloud</div>
|
|
105
|
+
<div class="cell">Codex Desktop</div>
|
|
106
|
+
<div class="cell">687 KB</div>
|
|
107
|
+
<div class="row-actions"><button class="icon-button danger">D</button></div>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="archive-row">
|
|
110
|
+
<div class="cell archive-title"><strong>优化公众号文章内容和画风</strong><small>019e3e71...ebf2f0</small></div>
|
|
111
|
+
<div class="cell time">2026/5/26<br />12:14:51</div>
|
|
112
|
+
<div class="cell time">2026/5/26<br />12:14:59</div>
|
|
113
|
+
<div class="cell archive-cwd">/Users/zilliz/working/czz-project</div>
|
|
114
|
+
<div class="cell">Codex Desktop</div>
|
|
115
|
+
<div class="cell">598 KB</div>
|
|
116
|
+
<div class="row-actions"><button class="icon-button danger">D</button></div>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="archive-row">
|
|
119
|
+
<div class="cell archive-title"><strong>讲解 emulate</strong><small>019e1b57...74f460</small></div>
|
|
120
|
+
<div class="cell time">2026/5/25<br />16:40:08</div>
|
|
121
|
+
<div class="cell time">2026/5/25<br />16:40:08</div>
|
|
122
|
+
<div class="cell archive-cwd">/Users/zilliz/Documents/New project 2</div>
|
|
123
|
+
<div class="cell">Codex Desktop</div>
|
|
124
|
+
<div class="cell">228 KB</div>
|
|
125
|
+
<div class="row-actions"><button class="icon-button danger">D</button></div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
<aside class="preview-card">
|
|
131
|
+
<h2>Session preview</h2>
|
|
132
|
+
<p>Metadata stays visible first. Full JSONL preview only loads when a row is opened.</p>
|
|
133
|
+
<div class="meta-grid">
|
|
134
|
+
<div class="meta-field"><span class="meta-label">Workspace</span><strong>/Users/zilliz/working/czz-project</strong></div>
|
|
135
|
+
<div class="meta-field"><span class="meta-label">Source</span><strong>Codex Desktop</strong></div>
|
|
136
|
+
<div class="meta-field"><span class="meta-label">Action</span><strong>Move to Trash</strong></div>
|
|
137
|
+
</div>
|
|
138
|
+
</aside>
|
|
139
|
+
</section>
|
|
140
|
+
</main>
|
|
141
|
+
</div>
|
|
142
|
+
</body>
|
|
143
|
+
</html>
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Style 03, Local Desktop</title>
|
|
7
|
+
<link rel="stylesheet" href="./common.css" />
|
|
8
|
+
<style>
|
|
9
|
+
:root {
|
|
10
|
+
--page: oklch(0.95 0.006 235);
|
|
11
|
+
--sidebar: oklch(0.925 0.009 235);
|
|
12
|
+
--panel: oklch(0.982 0.004 235);
|
|
13
|
+
--panel-2: oklch(0.905 0.01 235);
|
|
14
|
+
--control: oklch(0.966 0.006 235);
|
|
15
|
+
--accent: oklch(0.45 0.13 232);
|
|
16
|
+
--accent-soft: oklch(0.89 0.045 232);
|
|
17
|
+
--table-head: oklch(0.89 0.012 235);
|
|
18
|
+
--shadow: 0 10px 24px oklch(0.42 0.018 235 / 0.1);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.option-shell {
|
|
22
|
+
grid-template-columns: 1fr;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.option-sidebar {
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: space-between;
|
|
29
|
+
border-right: 0;
|
|
30
|
+
border-bottom: 1px solid var(--line);
|
|
31
|
+
padding: 14px 24px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.brand {
|
|
35
|
+
margin-bottom: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.nav {
|
|
39
|
+
grid-auto-flow: column;
|
|
40
|
+
grid-auto-columns: minmax(130px, auto);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.main {
|
|
44
|
+
max-width: 1320px;
|
|
45
|
+
width: 100%;
|
|
46
|
+
margin: 0 auto;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.table-frame,
|
|
50
|
+
.toolbar,
|
|
51
|
+
.path-panel,
|
|
52
|
+
.tile {
|
|
53
|
+
box-shadow: none;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.row:hover {
|
|
57
|
+
background: oklch(0.955 0.006 235);
|
|
58
|
+
}
|
|
59
|
+
</style>
|
|
60
|
+
</head>
|
|
61
|
+
<body>
|
|
62
|
+
<div class="option-shell">
|
|
63
|
+
<header class="option-sidebar">
|
|
64
|
+
<div class="brand">
|
|
65
|
+
<div class="brand-mark">CS</div>
|
|
66
|
+
<div>
|
|
67
|
+
<strong>Skill Sync</strong>
|
|
68
|
+
<span>Local Git utility</span>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
<nav class="nav">
|
|
72
|
+
<a class="active" href="#">Skills</a>
|
|
73
|
+
<a href="#">Codex Archive</a>
|
|
74
|
+
<a href="#">Settings</a>
|
|
75
|
+
</nav>
|
|
76
|
+
</header>
|
|
77
|
+
<main class="main">
|
|
78
|
+
<div class="header">
|
|
79
|
+
<div class="title">
|
|
80
|
+
<div class="kicker">Repository</div>
|
|
81
|
+
<h1>skills-sync</h1>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="actions">
|
|
84
|
+
<a class="button" href="./index.html">Options</a>
|
|
85
|
+
<button class="button">Pull</button>
|
|
86
|
+
<button class="button primary">Sync clean changes</button>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
<section class="path-panel" style="margin-bottom: 16px">
|
|
90
|
+
<div class="path-row"><span>Sync repo</span><code>/Users/zilliz/working/czz-project/skills-sync</code></div>
|
|
91
|
+
<div class="path-row"><span>Codex skills</span><code>/Users/zilliz/.codex/skills</code></div>
|
|
92
|
+
<div class="path-row"><span>Agents skills</span><code>/Users/zilliz/.agents/skills</code></div>
|
|
93
|
+
</section>
|
|
94
|
+
<section class="status-grid" style="grid-template-columns: repeat(4, minmax(0, 1fr))">
|
|
95
|
+
<div class="tile"><span>Tracked</span><strong>13</strong></div>
|
|
96
|
+
<div class="tile"><span>In sync</span><strong style="color: var(--success)">13</strong></div>
|
|
97
|
+
<div class="tile"><span>Local only</span><strong>115</strong></div>
|
|
98
|
+
<div class="tile"><span>Remote</span><strong style="font-size: 20px">Synced</strong></div>
|
|
99
|
+
</section>
|
|
100
|
+
<section class="toolbar">
|
|
101
|
+
<div class="control">Search skills</div>
|
|
102
|
+
<div class="control">State: All</div>
|
|
103
|
+
<div class="control">Rows: 20</div>
|
|
104
|
+
</section>
|
|
105
|
+
<section class="table-frame">
|
|
106
|
+
<div class="table-scroll">
|
|
107
|
+
<div class="table">
|
|
108
|
+
<div class="table-head">
|
|
109
|
+
<span></span><span>Name</span><span>Source</span><span>State</span><span>Local copy</span><span>Modified</span><span>Action</span>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="row">
|
|
112
|
+
<div class="check"></div>
|
|
113
|
+
<div class="cell skill-name"><strong>ai-shaped-readiness-advisor</strong><small>ai-shaped-readiness-advisor</small></div>
|
|
114
|
+
<div class="cell"><span class="badge source">Codex + Agents</span></div>
|
|
115
|
+
<div class="cell"><span class="badge ok">In sync</span></div>
|
|
116
|
+
<div class="cell"><strong>Installed</strong></div>
|
|
117
|
+
<div class="cell time">2026/5/27<br />18:07:21</div>
|
|
118
|
+
<div class="row-actions"><button class="icon-button">E</button><button class="icon-button">S</button><button class="icon-button danger">D</button></div>
|
|
119
|
+
</div>
|
|
120
|
+
<div class="row">
|
|
121
|
+
<div class="check"></div>
|
|
122
|
+
<div class="cell skill-name"><strong>baoyu-xhs-images</strong><small>baoyu-xhs-images</small></div>
|
|
123
|
+
<div class="cell"><span class="badge source">Codex local</span></div>
|
|
124
|
+
<div class="cell"><span class="badge local">Local only</span></div>
|
|
125
|
+
<div class="cell"><strong>Installed</strong></div>
|
|
126
|
+
<div class="cell time">2026/5/27<br />18:48:27</div>
|
|
127
|
+
<div class="row-actions"><button class="icon-button">E</button><button class="icon-button">+</button><button class="icon-button danger">D</button></div>
|
|
128
|
+
</div>
|
|
129
|
+
<div class="row">
|
|
130
|
+
<div class="check"></div>
|
|
131
|
+
<div class="cell skill-name"><strong>impeccable</strong><small>impeccable</small></div>
|
|
132
|
+
<div class="cell"><span class="badge source">Agents local</span></div>
|
|
133
|
+
<div class="cell"><span class="badge ok">In sync</span></div>
|
|
134
|
+
<div class="cell"><strong>Installed</strong></div>
|
|
135
|
+
<div class="cell time">2026/5/29<br />10:12:46</div>
|
|
136
|
+
<div class="row-actions"><button class="icon-button">E</button><button class="icon-button">S</button><button class="icon-button danger">D</button></div>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</section>
|
|
141
|
+
</main>
|
|
142
|
+
</div>
|
|
143
|
+
</body>
|
|
144
|
+
</html>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Skill Sync Style Options</title>
|
|
7
|
+
<link rel="stylesheet" href="./common.css" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<main class="main">
|
|
11
|
+
<div class="header">
|
|
12
|
+
<div class="title">
|
|
13
|
+
<div class="kicker">Style options</div>
|
|
14
|
+
<h1>Choose a direction</h1>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="actions">
|
|
17
|
+
<a class="button" href="/skills">Back to app</a>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
<section class="index-grid">
|
|
21
|
+
<a class="option-card" href="./workbench.html">
|
|
22
|
+
<strong>01 Quiet Workbench</strong>
|
|
23
|
+
<span>Light, precise, calm. Best when sync safety and daily scanning should feel professional and low-friction.</span>
|
|
24
|
+
</a>
|
|
25
|
+
<a class="option-card" href="./console.html">
|
|
26
|
+
<strong>02 Night Console</strong>
|
|
27
|
+
<span>Dark, denser, more operational. Best for long sessions and archive browsing.</span>
|
|
28
|
+
</a>
|
|
29
|
+
<a class="option-card" href="./desktop.html">
|
|
30
|
+
<strong>03 Local Desktop</strong>
|
|
31
|
+
<span>More native and GitHub Desktop-like. Best if the product should feel like a local utility instead of a SaaS app.</span>
|
|
32
|
+
</a>
|
|
33
|
+
</section>
|
|
34
|
+
</main>
|
|
35
|
+
</body>
|
|
36
|
+
</html>
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Style 01, Quiet Workbench</title>
|
|
7
|
+
<link rel="stylesheet" href="./common.css" />
|
|
8
|
+
<style>
|
|
9
|
+
:root {
|
|
10
|
+
--page: oklch(0.968 0.008 248);
|
|
11
|
+
--sidebar: oklch(0.985 0.005 248);
|
|
12
|
+
--panel: oklch(0.994 0.004 248);
|
|
13
|
+
--panel-2: oklch(0.944 0.011 248);
|
|
14
|
+
--control: oklch(0.98 0.006 248);
|
|
15
|
+
--accent: oklch(0.48 0.15 245);
|
|
16
|
+
--accent-soft: oklch(0.92 0.045 245);
|
|
17
|
+
--table-head: oklch(0.936 0.012 248);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.option-sidebar {
|
|
21
|
+
box-shadow: 12px 0 34px oklch(0.45 0.02 248 / 0.06);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.row:hover,
|
|
25
|
+
.archive-row:hover {
|
|
26
|
+
background: oklch(0.965 0.009 248);
|
|
27
|
+
}
|
|
28
|
+
</style>
|
|
29
|
+
</head>
|
|
30
|
+
<body>
|
|
31
|
+
<div class="option-shell">
|
|
32
|
+
<aside class="option-sidebar">
|
|
33
|
+
<div class="brand">
|
|
34
|
+
<div class="brand-mark">CS</div>
|
|
35
|
+
<div>
|
|
36
|
+
<strong>Skill Sync</strong>
|
|
37
|
+
<span>Local sync workbench</span>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<nav class="nav">
|
|
41
|
+
<a class="active" href="#">Skills <span>128</span></a>
|
|
42
|
+
<a href="#">Codex Archive <span>10</span></a>
|
|
43
|
+
<a href="#">Settings</a>
|
|
44
|
+
</nav>
|
|
45
|
+
</aside>
|
|
46
|
+
<main class="main">
|
|
47
|
+
<div class="header">
|
|
48
|
+
<div class="title">
|
|
49
|
+
<div class="kicker">Skill Sync</div>
|
|
50
|
+
<h1>Skills</h1>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="actions">
|
|
53
|
+
<a class="button" href="./index.html">Options</a>
|
|
54
|
+
<button class="button">Refresh</button>
|
|
55
|
+
<button class="button primary">Remote synced</button>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
<section class="status-grid">
|
|
59
|
+
<div class="tile"><span>Tracked</span><strong>13</strong></div>
|
|
60
|
+
<div class="tile"><span>In sync</span><strong style="color: var(--success)">13</strong></div>
|
|
61
|
+
<div class="tile"><span>Needs action</span><strong style="color: var(--danger)">115</strong></div>
|
|
62
|
+
<div class="path-panel">
|
|
63
|
+
<div class="path-row"><span>Sync repo</span><code>/Users/zilliz/working/czz-project/skills-sync</code></div>
|
|
64
|
+
<div class="path-row"><span>Codex skills</span><code>/Users/zilliz/.codex/skills</code></div>
|
|
65
|
+
<div class="path-row"><span>Agents skills</span><code>/Users/zilliz/.agents/skills</code></div>
|
|
66
|
+
</div>
|
|
67
|
+
</section>
|
|
68
|
+
<section class="toolbar">
|
|
69
|
+
<div class="control">Search skills</div>
|
|
70
|
+
<div class="control">State: All</div>
|
|
71
|
+
<div class="control">Rows: 20</div>
|
|
72
|
+
</section>
|
|
73
|
+
<section class="table-frame">
|
|
74
|
+
<div class="table-scroll">
|
|
75
|
+
<div class="table">
|
|
76
|
+
<div class="table-head">
|
|
77
|
+
<span></span><span>Name</span><span>Source</span><span>State</span><span>Local copy</span><span>Last used</span><span>Action</span>
|
|
78
|
+
</div>
|
|
79
|
+
<div class="row">
|
|
80
|
+
<div class="check"></div>
|
|
81
|
+
<div class="cell skill-name"><strong>acquisition-channel-advisor</strong><small>acquisition-channel-advisor</small></div>
|
|
82
|
+
<div class="cell"><span class="badge source">Codex + Agents</span></div>
|
|
83
|
+
<div class="cell"><span class="badge ok">In sync</span></div>
|
|
84
|
+
<div class="cell"><strong>Installed</strong></div>
|
|
85
|
+
<div class="cell time">Never</div>
|
|
86
|
+
<div class="row-actions"><button class="icon-button">E</button><button class="icon-button">S</button><button class="icon-button danger">D</button></div>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="row">
|
|
89
|
+
<div class="check"></div>
|
|
90
|
+
<div class="cell skill-name"><strong>baoyu-comic</strong><small>baoyu-comic</small></div>
|
|
91
|
+
<div class="cell"><span class="badge source">Codex local</span></div>
|
|
92
|
+
<div class="cell"><span class="badge local">Local only</span></div>
|
|
93
|
+
<div class="cell"><strong>Installed</strong></div>
|
|
94
|
+
<div class="cell time">2026/5/28 11:28:58<br />47 minutes ago</div>
|
|
95
|
+
<div class="row-actions"><button class="icon-button">E</button><button class="icon-button">+</button><button class="icon-button danger">D</button></div>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="row">
|
|
98
|
+
<div class="check"></div>
|
|
99
|
+
<div class="cell skill-name"><strong>spec-studio</strong><small>spec-studio</small></div>
|
|
100
|
+
<div class="cell"><span class="badge source">Codex local</span></div>
|
|
101
|
+
<div class="cell"><span class="badge ok">In sync</span></div>
|
|
102
|
+
<div class="cell"><strong>Installed</strong></div>
|
|
103
|
+
<div class="cell time">2026/5/29 09:42:12<br />12 minutes ago</div>
|
|
104
|
+
<div class="row-actions"><button class="icon-button">E</button><button class="icon-button">S</button><button class="icon-button danger">D</button></div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</section>
|
|
109
|
+
</main>
|
|
110
|
+
</div>
|
|
111
|
+
</body>
|
|
112
|
+
</html>
|
package/package.json
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nameczz/skill-sync",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Local-first Web and CLI workbench for syncing AI agent skills through Git.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"packageManager": "yarn@1.22.22",
|
|
7
|
+
"bin": {
|
|
8
|
+
"skill-sync": "dist/src/cli.js",
|
|
9
|
+
"skill-manager": "dist/src/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+ssh://git@github.com/nameczz/skill-sync.git"
|
|
14
|
+
},
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/nameczz/skill-sync/issues"
|
|
17
|
+
},
|
|
18
|
+
"homepage": "https://github.com/nameczz/skill-sync#readme",
|
|
19
|
+
"keywords": [
|
|
20
|
+
"codex",
|
|
21
|
+
"skills",
|
|
22
|
+
"agents",
|
|
23
|
+
"sync",
|
|
24
|
+
"git"
|
|
25
|
+
],
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"README.md",
|
|
32
|
+
"LICENSE"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"clean": "rm -rf dist",
|
|
36
|
+
"build": "npm run clean && npm run build:server && npm run build:web",
|
|
37
|
+
"build:server": "tsc -p tsconfig.json",
|
|
38
|
+
"build:web": "vite build",
|
|
39
|
+
"dev": "tsx src/cli.ts",
|
|
40
|
+
"docs:build": "vitepress build docs",
|
|
41
|
+
"docs:dev": "vitepress dev docs",
|
|
42
|
+
"dev:web": "vite --host 127.0.0.1",
|
|
43
|
+
"test": "vitest run",
|
|
44
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.web.json --noEmit"
|
|
45
|
+
},
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=20"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@fastify/static": "^9.1.3",
|
|
51
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
52
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
53
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
54
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
55
|
+
"@radix-ui/react-separator": "^1.1.8",
|
|
56
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
57
|
+
"@radix-ui/react-tabs": "^1.1.13",
|
|
58
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
59
|
+
"class-variance-authority": "^0.7.1",
|
|
60
|
+
"clsx": "^2.1.1",
|
|
61
|
+
"cmdk": "^1.1.1",
|
|
62
|
+
"commander": "^14.0.2",
|
|
63
|
+
"fastify": "^5.8.5",
|
|
64
|
+
"lucide-react": "^1.16.0",
|
|
65
|
+
"react": "^19.2.6",
|
|
66
|
+
"react-dom": "^19.2.6",
|
|
67
|
+
"tailwind-merge": "^3.6.0"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@tailwindcss/vite": "^4.3.0",
|
|
71
|
+
"@testing-library/react": "^16.3.2",
|
|
72
|
+
"@types/node": "^24.10.1",
|
|
73
|
+
"@types/react": "^19.2.15",
|
|
74
|
+
"@types/react-dom": "^19.2.3",
|
|
75
|
+
"@vitejs/plugin-react": "^6.0.2",
|
|
76
|
+
"jsdom": "^29.1.1",
|
|
77
|
+
"tailwindcss": "^4.3.0",
|
|
78
|
+
"tsx": "^4.20.6",
|
|
79
|
+
"typescript": "^5.9.3",
|
|
80
|
+
"vite": "^8.0.14",
|
|
81
|
+
"vitepress": "^1.6.4",
|
|
82
|
+
"vitest": "^4.0.14"
|
|
83
|
+
}
|
|
84
|
+
}
|