mcpocket 0.3.2 → 0.4.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/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +38 -12
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/provider-options.d.ts +1 -1
- package/dist/commands/provider-options.d.ts.map +1 -1
- package/dist/commands/provider-options.js +9 -2
- package/dist/commands/provider-options.js.map +1 -1
- package/dist/commands/pull.d.ts +3 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +133 -47
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts +3 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +127 -41
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/set.js +2 -2
- package/dist/commands/set.js.map +1 -1
- package/dist/commands/status.js +5 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/sync/agents.d.ts +6 -2
- package/dist/sync/agents.d.ts.map +1 -1
- package/dist/sync/agents.js +52 -12
- package/dist/sync/agents.js.map +1 -1
- package/dist/sync/skills.d.ts +6 -2
- package/dist/sync/skills.d.ts.map +1 -1
- package/dist/sync/skills.js +36 -6
- package/dist/sync/skills.js.map +1 -1
- package/dist/utils/prompt.d.ts +10 -0
- package/dist/utils/prompt.d.ts.map +1 -1
- package/dist/utils/prompt.js +31 -0
- package/dist/utils/prompt.js.map +1 -1
- package/dist/utils/sparkle.d.ts +11 -0
- package/dist/utils/sparkle.d.ts.map +1 -1
- package/dist/utils/sparkle.js +15 -3
- package/dist/utils/sparkle.js.map +1 -1
- package/package.json +54 -54
package/dist/commands/push.js
CHANGED
|
@@ -50,7 +50,10 @@ const sparkle_js_1 = require("../utils/sparkle.js");
|
|
|
50
50
|
async function pushCommand(options = {}) {
|
|
51
51
|
const config = (0, config_js_1.readConfig)();
|
|
52
52
|
const repoDir = (0, config_js_1.getLocalRepoDir)();
|
|
53
|
-
const selection = (0, provider_options_js_1.resolveProviderSelection)(options);
|
|
53
|
+
const selection = (0, provider_options_js_1.resolveProviderSelection)(options, config.syncProviders);
|
|
54
|
+
const activeCategories = config.syncCategories
|
|
55
|
+
? new Set(config.syncCategories)
|
|
56
|
+
: new Set(['mcps', 'agents', 'skills', 'plugins']);
|
|
54
57
|
(0, sparkle_js_1.section)('Push');
|
|
55
58
|
if (selection.isFiltered) {
|
|
56
59
|
(0, sparkle_js_1.sparkle)(`Sync scope: ${(0, provider_options_js_1.formatProviderList)(selection.selected)}`);
|
|
@@ -61,15 +64,32 @@ async function pushCommand(options = {}) {
|
|
|
61
64
|
(0, sparkle_js_1.sparkle)(`Removed ${prunedEntries} stale pocket entr${prunedEntries === 1 ? 'y' : 'ies'}`);
|
|
62
65
|
}
|
|
63
66
|
const passphrase = await promptForPushPassphrase();
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
// Discover available items for interactive selection
|
|
68
|
+
let filters = {};
|
|
69
|
+
let merged = {};
|
|
70
|
+
if (activeCategories.has('mcps')) {
|
|
71
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingMCP);
|
|
72
|
+
merged = (0, mcp_js_1.mergeMcpSources)(...selection.selected.map((provider) => provider.readMcpServers()));
|
|
73
|
+
}
|
|
74
|
+
if (options.interactive) {
|
|
75
|
+
filters = await promptForPushItemSelection(activeCategories, merged);
|
|
76
|
+
}
|
|
77
|
+
let serverCount = 0;
|
|
78
|
+
if (activeCategories.has('mcps')) {
|
|
79
|
+
const serversToSync = filters.mcpNames
|
|
80
|
+
? filterMap(merged, filters.mcpNames)
|
|
81
|
+
: merged;
|
|
82
|
+
serverCount = Object.keys(serversToSync).length;
|
|
83
|
+
(0, sparkle_js_1.sparkle)(`Found ${serverCount} MCP server(s) across ${selection.selected.length} provider(s)`);
|
|
84
|
+
// Write mcp-config.json
|
|
85
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.encrypting);
|
|
86
|
+
const portableConfig = (0, mcp_js_1.buildPortableConfig)(serversToSync, passphrase);
|
|
87
|
+
fs.writeFileSync(path.join(repoDir, 'mcp-config.json'), JSON.stringify(portableConfig, null, 2), 'utf8');
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
(0, sparkle_js_1.sparkle)('Skipping MCPs (not in sync scope)');
|
|
91
|
+
}
|
|
92
|
+
const assetSummary = syncClaudeHomeAssetsToPocket(repoDir, activeCategories, !!config.syncCategories, selection.syncsClaudeHomeAssets, selection.isFiltered, filters);
|
|
73
93
|
// Push to remote
|
|
74
94
|
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pushing);
|
|
75
95
|
if (config.storageType === 'gist') {
|
|
@@ -77,7 +97,7 @@ async function pushCommand(options = {}) {
|
|
|
77
97
|
const files = (0, gist_js_1.collectFilesFromDir)(repoDir);
|
|
78
98
|
await (0, gist_js_1.updateGist)(config.githubToken, config.gistId, files);
|
|
79
99
|
(0, sparkle_js_1.celebrate)(sparkle_js_1.WITTY.pushDone);
|
|
80
|
-
(0, sparkle_js_1.heads_up)(`Pocket URL: ${config.gistUrl} ← save this to connect from another machine!`);
|
|
100
|
+
(0, sparkle_js_1.heads_up)(`Pocket URL: ${sparkle_js_1.c.cyan(config.gistUrl)} ← save this to connect from another machine!`);
|
|
81
101
|
}
|
|
82
102
|
catch (err) {
|
|
83
103
|
(0, sparkle_js_1.oops)(`Gist push failed: ${err.message}`);
|
|
@@ -130,40 +150,106 @@ async function promptForPushPassphrase() {
|
|
|
130
150
|
}
|
|
131
151
|
return passphrase;
|
|
132
152
|
}
|
|
133
|
-
function syncClaudeHomeAssetsToPocket(repoDir,
|
|
134
|
-
|
|
153
|
+
function syncClaudeHomeAssetsToPocket(repoDir, activeCategories, hasExplicitCategories, syncsClaudeHomeAssets, showSkipMessage, filters = {}) {
|
|
154
|
+
// When the user has explicitly configured sync categories, honor them directly.
|
|
155
|
+
// When no categories are configured (old config / no init scope selection),
|
|
156
|
+
// fall back to the provider-driven syncsClaudeHomeAssets flag.
|
|
157
|
+
const shouldSyncPlugins = hasExplicitCategories
|
|
158
|
+
? activeCategories.has('plugins')
|
|
159
|
+
: (activeCategories.has('plugins') && syncsClaudeHomeAssets);
|
|
160
|
+
const shouldSyncAgents = hasExplicitCategories
|
|
161
|
+
? activeCategories.has('agents')
|
|
162
|
+
: (activeCategories.has('agents') && syncsClaudeHomeAssets);
|
|
163
|
+
const shouldSyncSkills = hasExplicitCategories
|
|
164
|
+
? activeCategories.has('skills')
|
|
165
|
+
: (activeCategories.has('skills') && syncsClaudeHomeAssets);
|
|
166
|
+
let manifestCount = 0;
|
|
167
|
+
let pluginResult = { synced: 0, removed: 0 };
|
|
168
|
+
let agentResult = { synced: 0, removed: 0 };
|
|
169
|
+
let skillResult = { synced: 0, removed: 0 };
|
|
170
|
+
if (!shouldSyncPlugins && !shouldSyncAgents && !shouldSyncSkills) {
|
|
135
171
|
if (showSkipMessage) {
|
|
136
|
-
(0, sparkle_js_1.sparkle)('Skipping Claude home plugin manifests for this
|
|
137
|
-
(0, sparkle_js_1.sparkle)('Skipping Claude home agents for this
|
|
138
|
-
(0, sparkle_js_1.sparkle)('Skipping Claude home skills for this
|
|
172
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home plugin manifests for this sync scope');
|
|
173
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home agents for this sync scope');
|
|
174
|
+
(0, sparkle_js_1.sparkle)('Skipping Claude home skills for this sync scope');
|
|
139
175
|
}
|
|
140
|
-
return {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
176
|
+
return { manifestCount, pluginResult, agentResult, skillResult };
|
|
177
|
+
}
|
|
178
|
+
if (shouldSyncPlugins) {
|
|
179
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingPlugins);
|
|
180
|
+
const manifests = (0, plugins_js_1.readPluginManifests)();
|
|
181
|
+
manifestCount = Object.keys(manifests).length;
|
|
182
|
+
(0, sparkle_js_1.sparkle)(`Found ${manifestCount} plugin manifest file(s)`);
|
|
183
|
+
pluginResult = (0, plugins_js_1.writePluginManifestsToRepo)(manifests, repoDir);
|
|
184
|
+
if (pluginResult.removed > 0) {
|
|
185
|
+
(0, sparkle_js_1.sparkle)(`Removed ${pluginResult.removed} stale plugin manifest file(s) from the pocket`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else if (showSkipMessage) {
|
|
189
|
+
(0, sparkle_js_1.sparkle)('Skipping plugins (not in sync scope)');
|
|
190
|
+
}
|
|
191
|
+
if (shouldSyncAgents) {
|
|
192
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingAgents);
|
|
193
|
+
agentResult = (0, agents_js_1.writeAgentsToRepo)(repoDir, filters.agentNames);
|
|
194
|
+
(0, sparkle_js_1.sparkle)(`Synced ${agentResult.synced} agent file(s)`);
|
|
195
|
+
if (agentResult.removed > 0) {
|
|
196
|
+
(0, sparkle_js_1.sparkle)(`Removed ${agentResult.removed} stale agent file(s) from the pocket`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else if (showSkipMessage) {
|
|
200
|
+
(0, sparkle_js_1.sparkle)('Skipping agents (not in sync scope)');
|
|
146
201
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
(0, sparkle_js_1.sparkle)(`Synced ${agentResult.synced} agent file(s)`);
|
|
158
|
-
if (agentResult.removed > 0) {
|
|
159
|
-
(0, sparkle_js_1.sparkle)(`Removed ${agentResult.removed} stale agent file(s) from the pocket`);
|
|
160
|
-
}
|
|
161
|
-
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingSkills);
|
|
162
|
-
const skillResult = (0, skills_js_1.writeSkillsToRepo)(repoDir);
|
|
163
|
-
(0, sparkle_js_1.sparkle)(`Synced ${skillResult.synced} skill file(s)`);
|
|
164
|
-
if (skillResult.removed > 0) {
|
|
165
|
-
(0, sparkle_js_1.sparkle)(`Removed ${skillResult.removed} stale skill file(s) from the pocket`);
|
|
202
|
+
if (shouldSyncSkills) {
|
|
203
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingSkills);
|
|
204
|
+
skillResult = (0, skills_js_1.writeSkillsToRepo)(repoDir, filters.skillNames);
|
|
205
|
+
(0, sparkle_js_1.sparkle)(`Synced ${skillResult.synced} skill file(s)`);
|
|
206
|
+
if (skillResult.removed > 0) {
|
|
207
|
+
(0, sparkle_js_1.sparkle)(`Removed ${skillResult.removed} stale skill file(s) from the pocket`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
else if (showSkipMessage) {
|
|
211
|
+
(0, sparkle_js_1.sparkle)('Skipping skills (not in sync scope)');
|
|
166
212
|
}
|
|
167
213
|
return { manifestCount, pluginResult, agentResult, skillResult };
|
|
168
214
|
}
|
|
215
|
+
async function promptForPushItemSelection(activeCategories, merged) {
|
|
216
|
+
const filters = {};
|
|
217
|
+
if (activeCategories.has('mcps')) {
|
|
218
|
+
const mcpNames = Object.keys(merged);
|
|
219
|
+
if (mcpNames.length > 0) {
|
|
220
|
+
const selected = await (0, prompt_js_1.askMultiSelect)('Which MCP servers should be pushed?', mcpNames.map((name) => ({ label: name, value: name })));
|
|
221
|
+
if (selected.length < mcpNames.length) {
|
|
222
|
+
filters.mcpNames = new Set(selected);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (activeCategories.has('agents')) {
|
|
227
|
+
const agentNames = (0, agents_js_1.listLocalAgentNames)();
|
|
228
|
+
if (agentNames.length > 0) {
|
|
229
|
+
const selected = await (0, prompt_js_1.askMultiSelect)('Which agents should be pushed?', agentNames.map((name) => ({ label: name, value: name })));
|
|
230
|
+
if (selected.length < agentNames.length) {
|
|
231
|
+
filters.agentNames = new Set(selected);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
if (activeCategories.has('skills')) {
|
|
236
|
+
const skillNames = (0, skills_js_1.listLocalSkillNames)();
|
|
237
|
+
if (skillNames.length > 0) {
|
|
238
|
+
const selected = await (0, prompt_js_1.askMultiSelect)('Which skills should be pushed?', skillNames.map((name) => ({ label: name, value: name })));
|
|
239
|
+
if (selected.length < skillNames.length) {
|
|
240
|
+
filters.skillNames = new Set(selected);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return filters;
|
|
245
|
+
}
|
|
246
|
+
function filterMap(map, allowedKeys) {
|
|
247
|
+
const result = {};
|
|
248
|
+
for (const [key, val] of Object.entries(map)) {
|
|
249
|
+
if (allowedKeys.has(key)) {
|
|
250
|
+
result[key] = val;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return result;
|
|
254
|
+
}
|
|
169
255
|
//# sourceMappingURL=push.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,kCA0FC;AAxHD,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA2D;AAE3D,oDAAgF;AAChF,gDAAqE;AACrE,2CAAsE;AAEtE,mDAAqF;AACrF,iDAA2E;AAC3E,iDAA2E;AAC3E,iDAAmD;AACnD,+DAAqF;AAErF,kDAA+D;AAC/D,oDAAkG;AAe3F,KAAK,UAAU,WAAW,CAAC,UAA2D,EAAE;IAC7F,MAAM,MAAM,GAAG,IAAA,sBAAU,GAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,2BAAe,GAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAA,8CAAwB,EAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,gBAAgB,GAAsB,MAAM,CAAC,cAAc;QAC/D,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC;QAChC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAErD,IAAA,oBAAO,EAAC,MAAM,CAAC,CAAC;IAEhB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,IAAA,oBAAO,EAAC,eAAe,IAAA,wCAAkB,EAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,sBAAsB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAE7F,MAAM,aAAa,GAAG,IAAA,0BAAc,EAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,IAAA,oBAAO,EAAC,WAAW,aAAa,qBAAqB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,uBAAuB,EAAE,CAAC;IAEnD,qDAAqD;IACrD,IAAI,OAAO,GAAgB,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAkB,EAAE,CAAC;IAE/B,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,IAAA,oBAAO,EAAC,kBAAK,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,GAAG,IAAA,wBAAe,EAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,GAAG,MAAM,0BAA0B,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ;YACpC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC;QACX,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;QAChD,IAAA,oBAAO,EAAC,SAAS,WAAW,yBAAyB,SAAS,CAAC,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;QAE9F,wBAAwB;QACxB,IAAA,oBAAO,EAAC,kBAAK,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAA,4BAAmB,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACtE,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EACvC,MAAM,CACP,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAA,oBAAO,EAAC,mCAAmC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,qBAAqB,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEtK,iBAAiB;IACjB,IAAA,oBAAO,EAAC,kBAAK,CAAC,OAAO,CAAC,CAAC;IAEvB,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAA,6BAAmB,EAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,IAAA,oBAAU,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAO,EAAE,KAAK,CAAC,CAAC;YAC5D,IAAA,sBAAS,EAAC,kBAAK,CAAC,QAAQ,CAAC,CAAC;YAC1B,IAAA,qBAAQ,EAAC,eAAe,cAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAQ,CAAC,gDAAgD,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,iBAAI,EAAC,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAA,2BAAe,EAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC;YACH,IAAA,yBAAa,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,YAAa,EAAE,gBAAgB,CAAC,CAAC;YACnF,IAAA,sBAAS,EAAC,kBAAK,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,iBAAI,EAAC,gBAAiB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAA,oBAAO,EAAC,SAAS,CAAC,CAAC;IACnB,IAAA,iBAAI,EAAC,SAAS,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;IAC7G,IAAA,iBAAI,EAAC,WAAW,EAAE,IAAA,wCAAkB,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,IAAA,iBAAI,EAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,IAAA,iBAAI,EAAC,SAAS,EAAE,GAAG,YAAY,CAAC,aAAa,mBAAmB,CAAC,CAAC;IAClE,IAAA,iBAAI,EAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,IAAA,iBAAI,EAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC7B,WAA4B,EAC5B,OAAe,EACf,WAAmB,EACnB,YAAqB;IAErB,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAA,oBAAO,EAAC,kBAAK,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,CAAC;QACH,IAAA,oBAAQ,EAAC,OAAO,EAAE,WAAW,EAAE,YAAa,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,qBAAQ,EAAC,2BAA4B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAS,EAAC,sCAAsC,CAAC,CAAC;IAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,iBAAI,EAAC,6BAA6B,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAS,EAAC,2BAA2B,CAAC,CAAC;IAC7D,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,IAAA,iBAAI,EAAC,kDAAkD,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAe,EACf,gBAAmC,EACnC,qBAA8B,EAC9B,qBAA8B,EAC9B,eAAwB,EACxB,UAAuB,EAAE;IAEzB,gFAAgF;IAChF,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,iBAAiB,GAAG,qBAAqB;QAC7C,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC;QACjC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,qBAAqB;QAC5C,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,qBAAqB;QAC5C,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAE9D,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC7C,IAAI,WAAW,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5C,IAAI,WAAW,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAE5C,IAAI,CAAC,iBAAiB,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjE,IAAI,eAAe,EAAE,CAAC;YACpB,IAAA,oBAAO,EAAC,2DAA2D,CAAC,CAAC;YACrE,IAAA,oBAAO,EAAC,iDAAiD,CAAC,CAAC;YAC3D,IAAA,oBAAO,EAAC,iDAAiD,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAA,oBAAO,EAAC,kBAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAA,gCAAmB,GAAE,CAAC;QACxC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAC9C,IAAA,oBAAO,EAAC,SAAS,aAAa,0BAA0B,CAAC,CAAC;QAC1D,YAAY,GAAG,IAAA,uCAA0B,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAA,oBAAO,EAAC,WAAW,YAAY,CAAC,OAAO,gDAAgD,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,EAAE,CAAC;QAC3B,IAAA,oBAAO,EAAC,sCAAsC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAA,oBAAO,EAAC,kBAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,WAAW,GAAG,IAAA,6BAAiB,EAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAA,oBAAO,EAAC,UAAU,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;QACtD,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAA,oBAAO,EAAC,WAAW,WAAW,CAAC,OAAO,sCAAsC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,EAAE,CAAC;QAC3B,IAAA,oBAAO,EAAC,qCAAqC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAA,oBAAO,EAAC,kBAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,WAAW,GAAG,IAAA,6BAAiB,EAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAA,oBAAO,EAAC,UAAU,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;QACtD,IAAI,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAA,oBAAO,EAAC,WAAW,WAAW,CAAC,OAAO,sCAAsC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;SAAM,IAAI,eAAe,EAAE,CAAC;QAC3B,IAAA,oBAAO,EAAC,qCAAqC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,gBAAmC,EACnC,MAAqB;IAErB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAc,EACnC,qCAAqC,EACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACvD,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtC,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAA,+BAAmB,GAAE,CAAC;QACzC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAc,EACnC,gCAAgC,EAChC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACzD,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,IAAA,+BAAmB,GAAE,CAAC;QACzC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAc,EACnC,gCAAgC,EAChC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACzD,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAI,GAAsB,EAAE,WAAgC;IAC5E,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/commands/set.js
CHANGED
|
@@ -56,7 +56,7 @@ async function setCommand(pocketUrl) {
|
|
|
56
56
|
let gistInfo;
|
|
57
57
|
try {
|
|
58
58
|
gistInfo = await (0, gist_js_1.resolveGistInfo)(config.githubToken, trimmed);
|
|
59
|
-
(0, sparkle_js_1.sparkle)(`Connected to gist pocket: ${gistInfo.htmlUrl}`);
|
|
59
|
+
(0, sparkle_js_1.sparkle)(`Connected to gist pocket: ${sparkle_js_1.c.cyan(gistInfo.htmlUrl)}`);
|
|
60
60
|
}
|
|
61
61
|
catch (err) {
|
|
62
62
|
(0, sparkle_js_1.oops)(err.message);
|
|
@@ -77,7 +77,7 @@ async function setCommand(pocketUrl) {
|
|
|
77
77
|
let repoInfo;
|
|
78
78
|
try {
|
|
79
79
|
repoInfo = await (0, github_js_1.resolveRepoInfo)(config.githubToken, trimmed);
|
|
80
|
-
(0, sparkle_js_1.sparkle)(`Connected to repo pocket: ${repoInfo.htmlUrl}`);
|
|
80
|
+
(0, sparkle_js_1.sparkle)(`Connected to repo pocket: ${sparkle_js_1.c.cyan(repoInfo.htmlUrl)}`);
|
|
81
81
|
}
|
|
82
82
|
catch (err) {
|
|
83
83
|
(0, sparkle_js_1.oops)(err.message);
|
package/dist/commands/set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,gCA6DC;AA1ED,4CAA8B;AAC9B,4CAAwE;AACxE,gDAAqD;AACrD,oDAAmF;AACnF,
|
|
1
|
+
{"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -83,17 +83,17 @@ async function statusCommand() {
|
|
|
83
83
|
if (inBoth.length > 0) {
|
|
84
84
|
console.log('\n \x1b[32mSynced:\x1b[0m');
|
|
85
85
|
for (const n of inBoth)
|
|
86
|
-
console.log(` ✓ ${n}`);
|
|
86
|
+
console.log(` ${sparkle_js_1.c.green('✓')} ${sparkle_js_1.c.bold(n)}`);
|
|
87
87
|
}
|
|
88
88
|
if (onlyRemote.length > 0) {
|
|
89
89
|
console.log('\n \x1b[36mIn pocket, not here (run pull):\x1b[0m');
|
|
90
90
|
for (const n of onlyRemote)
|
|
91
|
-
console.log(` ↓ ${n}`);
|
|
91
|
+
console.log(` ${sparkle_js_1.c.cyan('↓')} ${sparkle_js_1.c.bold(n)}`);
|
|
92
92
|
}
|
|
93
93
|
if (onlyLocal.length > 0) {
|
|
94
94
|
console.log('\n \x1b[33mLocal only (run push):\x1b[0m');
|
|
95
95
|
for (const n of onlyLocal)
|
|
96
|
-
console.log(` ↑ ${n}`);
|
|
96
|
+
console.log(` ${sparkle_js_1.c.yellow('↑')} ${sparkle_js_1.c.bold(n)}`);
|
|
97
97
|
}
|
|
98
98
|
if (remoteNames.size === 0 && localNames.size === 0) {
|
|
99
99
|
(0, sparkle_js_1.sparkle)('No MCP servers found. Your pocket is empty!');
|
|
@@ -103,7 +103,7 @@ async function statusCommand() {
|
|
|
103
103
|
const pluginFiles = ['plugins/installed_plugins.json', 'plugins/blocklist.json', 'plugins/known_marketplaces.json'];
|
|
104
104
|
for (const f of pluginFiles) {
|
|
105
105
|
const inRepo = fs.existsSync(path.join(repoDir, f));
|
|
106
|
-
console.log(` ${inRepo ? '
|
|
106
|
+
console.log(` ${inRepo ? sparkle_js_1.c.green('✓') : sparkle_js_1.c.red('✗')} ${sparkle_js_1.c.dim(f)}`);
|
|
107
107
|
}
|
|
108
108
|
// Agents
|
|
109
109
|
(0, sparkle_js_1.section)('Agents');
|
|
@@ -126,7 +126,7 @@ async function statusCommand() {
|
|
|
126
126
|
(0, sparkle_js_1.sparkle)('Not synced yet — skill points unspent!');
|
|
127
127
|
}
|
|
128
128
|
const remoteUrl = config.storageType === 'gist' ? config.gistUrl : config.repoHtmlUrl;
|
|
129
|
-
console.log(`\n 🔗 Remote: ${remoteUrl}\n`);
|
|
129
|
+
console.log(`\n 🔗 Remote: ${sparkle_js_1.c.cyan(String(remoteUrl))}\n`);
|
|
130
130
|
}
|
|
131
131
|
function countFiles(dir, ext) {
|
|
132
132
|
let count = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,sCA0FC;AAtGD,uCAAyB;AACzB,2CAA6B;AAC7B,4CAA2D;AAC3D,oDAAgD;AAChD,gDAAoE;AACpE,oEAA2E;AAC3E,8DAAqE;AACrE,wDAAgE;AAChE,2CAAiD;AAEjD,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export type StorageType = 'repo' | 'gist';
|
|
2
|
+
export type SyncCategory = 'mcps' | 'agents' | 'skills' | 'plugins';
|
|
3
|
+
export declare const ALL_SYNC_CATEGORIES: SyncCategory[];
|
|
2
4
|
export interface McpocketConfig {
|
|
3
5
|
githubToken: string;
|
|
4
6
|
storageType: StorageType;
|
|
@@ -7,6 +9,8 @@ export interface McpocketConfig {
|
|
|
7
9
|
repoHtmlUrl?: string;
|
|
8
10
|
gistId?: string;
|
|
9
11
|
gistUrl?: string;
|
|
12
|
+
syncCategories?: SyncCategory[];
|
|
13
|
+
syncProviders?: string[];
|
|
10
14
|
}
|
|
11
15
|
export declare function configExists(): boolean;
|
|
12
16
|
export declare function readConfig(): McpocketConfig;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAC1C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AACpE,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAA4C,CAAC;AAE3F,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAa3C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQxD;AAED,yDAAyD;AACzD,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
package/dist/config.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ALL_SYNC_CATEGORIES = void 0;
|
|
36
37
|
exports.configExists = configExists;
|
|
37
38
|
exports.readConfig = readConfig;
|
|
38
39
|
exports.writeConfig = writeConfig;
|
|
@@ -41,6 +42,7 @@ const fs = __importStar(require("fs"));
|
|
|
41
42
|
const path = __importStar(require("path"));
|
|
42
43
|
const os = __importStar(require("os"));
|
|
43
44
|
const paths_js_1 = require("./utils/paths.js");
|
|
45
|
+
exports.ALL_SYNC_CATEGORIES = ['mcps', 'agents', 'skills', 'plugins'];
|
|
44
46
|
function configExists() {
|
|
45
47
|
return fs.existsSync((0, paths_js_1.getMcpocketConfigPath)());
|
|
46
48
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,oCAEC;AAED,gCAaC;AAED,kCAQC;AAGD,0CAEC;AAxDD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,+CAA+E;AAIlE,QAAA,mBAAmB,GAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAiB3F,SAAgB,YAAY;IAC1B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAA,gCAAqB,GAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,IAAA,gCAAqB,GAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,uEAAuE;IACvE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,MAAsB;IAChD,MAAM,GAAG,GAAG,IAAA,+BAAoB,GAAE,CAAC;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,IAAA,gCAAqB,GAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,8DAA8D;IAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,IAAA,gCAAqB,GAAE,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,SAAgB,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/sync/agents.d.ts
CHANGED
|
@@ -2,8 +2,12 @@ export interface SyncResult {
|
|
|
2
2
|
synced: number;
|
|
3
3
|
removed: number;
|
|
4
4
|
}
|
|
5
|
+
/** List agent names available in ~/.claude/agents/ */
|
|
6
|
+
export declare function listLocalAgentNames(): string[];
|
|
7
|
+
/** List agent names available in repo/agents/ */
|
|
8
|
+
export declare function listRepoAgentNames(repoDir: string): string[];
|
|
5
9
|
/** Copy agents/ from ~/.claude/agents/ to repo/agents/ */
|
|
6
|
-
export declare function writeAgentsToRepo(repoDir: string): SyncResult;
|
|
10
|
+
export declare function writeAgentsToRepo(repoDir: string, allowedNames?: ReadonlySet<string>): SyncResult;
|
|
7
11
|
/** Copy agents/ from repo/agents/ to ~/.claude/agents/ (overwrite) */
|
|
8
|
-
export declare function applyAgentsFromRepo(repoDir: string): SyncResult;
|
|
12
|
+
export declare function applyAgentsFromRepo(repoDir: string, allowedNames?: ReadonlySet<string>): SyncResult;
|
|
9
13
|
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/sync/agents.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/sync/agents.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD,sDAAsD;AACtD,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAG9C;AAED,iDAAiD;AACjD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5D;AAsBD,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,CAajG;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,CAanG"}
|
package/dist/sync/agents.js
CHANGED
|
@@ -33,6 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.listLocalAgentNames = listLocalAgentNames;
|
|
37
|
+
exports.listRepoAgentNames = listRepoAgentNames;
|
|
36
38
|
exports.writeAgentsToRepo = writeAgentsToRepo;
|
|
37
39
|
exports.applyAgentsFromRepo = applyAgentsFromRepo;
|
|
38
40
|
const fs = __importStar(require("fs"));
|
|
@@ -40,8 +42,52 @@ const path = __importStar(require("path"));
|
|
|
40
42
|
const paths_js_1 = require("../utils/paths.js");
|
|
41
43
|
const files_js_1 = require("../utils/files.js");
|
|
42
44
|
const AGENTS_DIR = 'agents';
|
|
45
|
+
function isIncludedDir(relPath) {
|
|
46
|
+
const base = path.basename(relPath);
|
|
47
|
+
return !base.startsWith('.') && base !== 'node_modules';
|
|
48
|
+
}
|
|
49
|
+
function isIncludedFile(relPath, allowedNames) {
|
|
50
|
+
if (!relPath.endsWith('.md'))
|
|
51
|
+
return false;
|
|
52
|
+
if (!allowedNames)
|
|
53
|
+
return true;
|
|
54
|
+
const name = path.basename(relPath, '.md');
|
|
55
|
+
return allowedNames.has(name);
|
|
56
|
+
}
|
|
57
|
+
/** List agent names available in ~/.claude/agents/ */
|
|
58
|
+
function listLocalAgentNames() {
|
|
59
|
+
const dir = path.join((0, paths_js_1.getClaudeHomeDir)(), AGENTS_DIR);
|
|
60
|
+
return listAgentNamesInDir(dir);
|
|
61
|
+
}
|
|
62
|
+
/** List agent names available in repo/agents/ */
|
|
63
|
+
function listRepoAgentNames(repoDir) {
|
|
64
|
+
const dir = path.join(repoDir, AGENTS_DIR);
|
|
65
|
+
return listAgentNamesInDir(dir);
|
|
66
|
+
}
|
|
67
|
+
function listAgentNamesInDir(dir) {
|
|
68
|
+
if (!fs.existsSync(dir))
|
|
69
|
+
return [];
|
|
70
|
+
const names = [];
|
|
71
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
72
|
+
if (entry.name.startsWith('.') || entry.name === 'node_modules')
|
|
73
|
+
continue;
|
|
74
|
+
if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
75
|
+
names.push(path.basename(entry.name, '.md'));
|
|
76
|
+
}
|
|
77
|
+
else if (entry.isDirectory()) {
|
|
78
|
+
// Include subdirectory agent files
|
|
79
|
+
const subDir = path.join(dir, entry.name);
|
|
80
|
+
for (const sub of fs.readdirSync(subDir, { withFileTypes: true })) {
|
|
81
|
+
if (sub.isFile() && sub.name.endsWith('.md')) {
|
|
82
|
+
names.push(path.basename(sub.name, '.md'));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return names;
|
|
88
|
+
}
|
|
43
89
|
/** Copy agents/ from ~/.claude/agents/ to repo/agents/ */
|
|
44
|
-
function writeAgentsToRepo(repoDir) {
|
|
90
|
+
function writeAgentsToRepo(repoDir, allowedNames) {
|
|
45
91
|
const source = path.join((0, paths_js_1.getClaudeHomeDir)(), AGENTS_DIR);
|
|
46
92
|
const dest = path.join(repoDir, AGENTS_DIR);
|
|
47
93
|
if (!fs.existsSync(source)) {
|
|
@@ -49,15 +95,12 @@ function writeAgentsToRepo(repoDir) {
|
|
|
49
95
|
return { synced: 0, removed };
|
|
50
96
|
}
|
|
51
97
|
return (0, files_js_1.mirrorDirectory)(source, dest, {
|
|
52
|
-
includeFile: (relPath) => relPath
|
|
53
|
-
includeDirectory: (relPath) =>
|
|
54
|
-
const base = path.basename(relPath);
|
|
55
|
-
return !base.startsWith('.') && base !== 'node_modules';
|
|
56
|
-
},
|
|
98
|
+
includeFile: (relPath) => isIncludedFile(relPath, allowedNames),
|
|
99
|
+
includeDirectory: (relPath) => isIncludedDir(relPath),
|
|
57
100
|
});
|
|
58
101
|
}
|
|
59
102
|
/** Copy agents/ from repo/agents/ to ~/.claude/agents/ (overwrite) */
|
|
60
|
-
function applyAgentsFromRepo(repoDir) {
|
|
103
|
+
function applyAgentsFromRepo(repoDir, allowedNames) {
|
|
61
104
|
const source = path.join(repoDir, AGENTS_DIR);
|
|
62
105
|
const dest = path.join((0, paths_js_1.getClaudeHomeDir)(), AGENTS_DIR);
|
|
63
106
|
if (!fs.existsSync(source)) {
|
|
@@ -65,11 +108,8 @@ function applyAgentsFromRepo(repoDir) {
|
|
|
65
108
|
return { synced: 0, removed };
|
|
66
109
|
}
|
|
67
110
|
return (0, files_js_1.mirrorDirectory)(source, dest, {
|
|
68
|
-
includeFile: (relPath) => relPath
|
|
69
|
-
includeDirectory: (relPath) =>
|
|
70
|
-
const base = path.basename(relPath);
|
|
71
|
-
return !base.startsWith('.') && base !== 'node_modules';
|
|
72
|
-
},
|
|
111
|
+
includeFile: (relPath) => isIncludedFile(relPath, allowedNames),
|
|
112
|
+
includeDirectory: (relPath) => isIncludedDir(relPath),
|
|
73
113
|
});
|
|
74
114
|
}
|
|
75
115
|
function removeManagedDir(dir) {
|
package/dist/sync/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/sync/agents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/sync/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/skills.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { SyncResult } from './agents.js';
|
|
2
|
+
/** List skill names (top-level entries) available in ~/.claude/skills/ */
|
|
3
|
+
export declare function listLocalSkillNames(): string[];
|
|
4
|
+
/** List skill names (top-level entries) available in repo/skills/ */
|
|
5
|
+
export declare function listRepoSkillNames(repoDir: string): string[];
|
|
2
6
|
/** Copy skills/ from ~/.claude/skills/ to repo/skills/ (excluding node_modules) */
|
|
3
|
-
export declare function writeSkillsToRepo(repoDir: string): SyncResult;
|
|
7
|
+
export declare function writeSkillsToRepo(repoDir: string, allowedNames?: ReadonlySet<string>): SyncResult;
|
|
4
8
|
/** Copy skills/ from repo/skills/ to ~/.claude/skills/ (overwrite, excluding node_modules) */
|
|
5
|
-
export declare function applySkillsFromRepo(repoDir: string): SyncResult;
|
|
9
|
+
export declare function applySkillsFromRepo(repoDir: string, allowedNames?: ReadonlySet<string>): SyncResult;
|
|
6
10
|
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/sync/skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/sync/skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsB9C,0EAA0E;AAC1E,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAG9C;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5D;AAYD,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,CAajG;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,CAanG"}
|
package/dist/sync/skills.js
CHANGED
|
@@ -33,6 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.listLocalSkillNames = listLocalSkillNames;
|
|
37
|
+
exports.listRepoSkillNames = listRepoSkillNames;
|
|
36
38
|
exports.writeSkillsToRepo = writeSkillsToRepo;
|
|
37
39
|
exports.applySkillsFromRepo = applySkillsFromRepo;
|
|
38
40
|
const fs = __importStar(require("fs"));
|
|
@@ -51,8 +53,36 @@ function shouldSkip(name) {
|
|
|
51
53
|
}
|
|
52
54
|
return false;
|
|
53
55
|
}
|
|
56
|
+
function isAllowedTopLevel(relPath, allowedNames) {
|
|
57
|
+
if (!allowedNames)
|
|
58
|
+
return true;
|
|
59
|
+
// The top-level directory or file name is the skill name
|
|
60
|
+
const topLevel = relPath.split(path.sep)[0];
|
|
61
|
+
return allowedNames.has(topLevel);
|
|
62
|
+
}
|
|
63
|
+
/** List skill names (top-level entries) available in ~/.claude/skills/ */
|
|
64
|
+
function listLocalSkillNames() {
|
|
65
|
+
const dir = path.join((0, paths_js_1.getClaudeHomeDir)(), SKILLS_DIR);
|
|
66
|
+
return listSkillNamesInDir(dir);
|
|
67
|
+
}
|
|
68
|
+
/** List skill names (top-level entries) available in repo/skills/ */
|
|
69
|
+
function listRepoSkillNames(repoDir) {
|
|
70
|
+
const dir = path.join(repoDir, SKILLS_DIR);
|
|
71
|
+
return listSkillNamesInDir(dir);
|
|
72
|
+
}
|
|
73
|
+
function listSkillNamesInDir(dir) {
|
|
74
|
+
if (!fs.existsSync(dir))
|
|
75
|
+
return [];
|
|
76
|
+
const names = [];
|
|
77
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
78
|
+
if (shouldSkip(entry.name))
|
|
79
|
+
continue;
|
|
80
|
+
names.push(entry.name);
|
|
81
|
+
}
|
|
82
|
+
return names;
|
|
83
|
+
}
|
|
54
84
|
/** Copy skills/ from ~/.claude/skills/ to repo/skills/ (excluding node_modules) */
|
|
55
|
-
function writeSkillsToRepo(repoDir) {
|
|
85
|
+
function writeSkillsToRepo(repoDir, allowedNames) {
|
|
56
86
|
const source = path.join((0, paths_js_1.getClaudeHomeDir)(), SKILLS_DIR);
|
|
57
87
|
const dest = path.join(repoDir, SKILLS_DIR);
|
|
58
88
|
if (!fs.existsSync(source)) {
|
|
@@ -60,12 +90,12 @@ function writeSkillsToRepo(repoDir) {
|
|
|
60
90
|
return { synced: 0, removed };
|
|
61
91
|
}
|
|
62
92
|
return (0, files_js_1.mirrorDirectory)(source, dest, {
|
|
63
|
-
includeDirectory: (relPath) => !shouldSkip(path.basename(relPath)),
|
|
64
|
-
includeFile: (relPath) => !shouldSkip(path.basename(relPath)),
|
|
93
|
+
includeDirectory: (relPath) => !shouldSkip(path.basename(relPath)) && isAllowedTopLevel(relPath, allowedNames),
|
|
94
|
+
includeFile: (relPath) => !shouldSkip(path.basename(relPath)) && isAllowedTopLevel(relPath, allowedNames),
|
|
65
95
|
});
|
|
66
96
|
}
|
|
67
97
|
/** Copy skills/ from repo/skills/ to ~/.claude/skills/ (overwrite, excluding node_modules) */
|
|
68
|
-
function applySkillsFromRepo(repoDir) {
|
|
98
|
+
function applySkillsFromRepo(repoDir, allowedNames) {
|
|
69
99
|
const source = path.join(repoDir, SKILLS_DIR);
|
|
70
100
|
const dest = path.join((0, paths_js_1.getClaudeHomeDir)(), SKILLS_DIR);
|
|
71
101
|
if (!fs.existsSync(source)) {
|
|
@@ -73,8 +103,8 @@ function applySkillsFromRepo(repoDir) {
|
|
|
73
103
|
return { synced: 0, removed };
|
|
74
104
|
}
|
|
75
105
|
return (0, files_js_1.mirrorDirectory)(source, dest, {
|
|
76
|
-
includeDirectory: (relPath) => !shouldSkip(path.basename(relPath)),
|
|
77
|
-
includeFile: (relPath) => !shouldSkip(path.basename(relPath)),
|
|
106
|
+
includeDirectory: (relPath) => !shouldSkip(path.basename(relPath)) && isAllowedTopLevel(relPath, allowedNames),
|
|
107
|
+
includeFile: (relPath) => !shouldSkip(path.basename(relPath)) && isAllowedTopLevel(relPath, allowedNames),
|
|
78
108
|
});
|
|
79
109
|
}
|
|
80
110
|
function removeManagedDir(dir) {
|