mcpocket 0.4.1 → 0.5.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/cleanup.d.ts +17 -0
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +162 -33
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/item-select.d.ts +28 -0
- package/dist/commands/item-select.d.ts.map +1 -0
- package/dist/commands/item-select.js +55 -0
- package/dist/commands/item-select.js.map +1 -0
- package/dist/commands/pull.d.ts +1 -0
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +46 -65
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts +1 -0
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +39 -56
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/ui-server.d.ts +13 -0
- package/dist/commands/ui-server.d.ts.map +1 -0
- package/dist/commands/ui-server.js +287 -0
- package/dist/commands/ui-server.js.map +1 -0
- package/dist/storage/github.d.ts.map +1 -1
- package/dist/storage/github.js +4 -0
- package/dist/storage/github.js.map +1 -1
- package/dist/sync/mcp.d.ts +5 -0
- package/dist/sync/mcp.d.ts.map +1 -1
- package/dist/sync/mcp.js +19 -0
- package/dist/sync/mcp.js.map +1 -1
- package/dist/utils/prompt.d.ts +12 -3
- package/dist/utils/prompt.d.ts.map +1 -1
- package/dist/utils/prompt.js +116 -3
- package/dist/utils/prompt.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/pull.js
CHANGED
|
@@ -44,6 +44,8 @@ const plugins_js_1 = require("../sync/plugins.js");
|
|
|
44
44
|
const agents_js_1 = require("../sync/agents.js");
|
|
45
45
|
const skills_js_1 = require("../sync/skills.js");
|
|
46
46
|
const provider_options_js_1 = require("./provider-options.js");
|
|
47
|
+
const item_select_js_1 = require("./item-select.js");
|
|
48
|
+
const ui_server_js_1 = require("./ui-server.js");
|
|
47
49
|
const prompt_js_1 = require("../utils/prompt.js");
|
|
48
50
|
const sparkle_js_1 = require("../utils/sparkle.js");
|
|
49
51
|
async function pullCommand(options = {}) {
|
|
@@ -53,54 +55,66 @@ async function pullCommand(options = {}) {
|
|
|
53
55
|
const activeCategories = config.syncCategories
|
|
54
56
|
? new Set(config.syncCategories)
|
|
55
57
|
: new Set(['mcps', 'agents', 'skills', 'plugins']);
|
|
56
|
-
// Pull or clone
|
|
57
58
|
(0, sparkle_js_1.section)('Pull');
|
|
58
59
|
if (selection.isFiltered) {
|
|
59
60
|
(0, sparkle_js_1.sparkle)(`Sync scope: ${(0, provider_options_js_1.formatProviderList)(selection.selected)}`);
|
|
60
61
|
}
|
|
61
62
|
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pulling);
|
|
62
63
|
await syncPocketToLocal(repoDir, config);
|
|
63
|
-
//
|
|
64
|
+
// ── Discover available items from pocket (no passphrase yet) ─────────────
|
|
64
65
|
const mcpConfigPath = path.join(repoDir, 'mcp-config.json');
|
|
66
|
+
const hasMcpConfig = activeCategories.has('mcps') && fs.existsSync(mcpConfigPath);
|
|
67
|
+
const allMcpNames = hasMcpConfig ? (0, mcp_js_1.listPocketMcpServerNames)(repoDir) : [];
|
|
68
|
+
const allAgentNames = activeCategories.has('agents') ? (0, agents_js_1.listRepoAgentNames)(repoDir) : [];
|
|
69
|
+
const allSkillNames = activeCategories.has('skills') ? (0, skills_js_1.listRepoSkillNames)(repoDir) : [];
|
|
70
|
+
// ── Item selection ────────────────────────────────────────────────────────
|
|
71
|
+
let filters = {};
|
|
72
|
+
if (options.ui) {
|
|
73
|
+
filters = await (0, ui_server_js_1.openSelectionUi)({ agents: allAgentNames, skills: allSkillNames, mcps: allMcpNames }, 'pull');
|
|
74
|
+
}
|
|
75
|
+
else if (options.interactive) {
|
|
76
|
+
filters = await (0, item_select_js_1.promptForItemSelection)('What would you like to pull?', allAgentNames, allSkillNames, allMcpNames);
|
|
77
|
+
}
|
|
78
|
+
// ── MCPs ──────────────────────────────────────────────────────────────────
|
|
65
79
|
let serverCount = 0;
|
|
66
80
|
let updatedClients = [];
|
|
67
|
-
let filters = {};
|
|
68
81
|
if (activeCategories.has('mcps')) {
|
|
69
|
-
if (!
|
|
82
|
+
if (!hasMcpConfig) {
|
|
70
83
|
(0, sparkle_js_1.heads_up)('No MCP config found in the pocket yet. Run `mcpocket push` on your source machine first!');
|
|
71
84
|
}
|
|
72
85
|
else {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
86
|
+
// Only decrypt if at least one MCP is selected
|
|
87
|
+
const mcpsSelected = !filters.mcpNames || filters.mcpNames.size > 0;
|
|
88
|
+
if (mcpsSelected) {
|
|
89
|
+
const passphrase = await promptForPullPassphrase();
|
|
90
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.decrypting);
|
|
91
|
+
let remoteServers;
|
|
92
|
+
try {
|
|
93
|
+
const portableConfig = JSON.parse(fs.readFileSync(mcpConfigPath, 'utf8'));
|
|
94
|
+
remoteServers = (0, mcp_js_1.restoreFromPortableConfig)(portableConfig, passphrase);
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
(0, sparkle_js_1.oops)(`Decryption failed: ${err.message}`);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
const serversToApply = filters.mcpNames
|
|
101
|
+
? filterMap(remoteServers, filters.mcpNames)
|
|
102
|
+
: remoteServers;
|
|
103
|
+
serverCount = Object.keys(serversToApply).length;
|
|
104
|
+
updatedClients = applyServersToProviders(selection.selected, serversToApply);
|
|
105
|
+
(0, sparkle_js_1.sparkle)(`Restored ${serverCount} MCP server(s)`);
|
|
84
106
|
}
|
|
85
|
-
|
|
86
|
-
|
|
107
|
+
else {
|
|
108
|
+
(0, sparkle_js_1.sparkle)('No MCP servers selected — skipping');
|
|
87
109
|
}
|
|
88
|
-
const serversToApply = filters.mcpNames
|
|
89
|
-
? filterMap(remoteServers, filters.mcpNames)
|
|
90
|
-
: remoteServers;
|
|
91
|
-
serverCount = Object.keys(serversToApply).length;
|
|
92
|
-
updatedClients = applyServersToProviders(selection.selected, serversToApply);
|
|
93
|
-
(0, sparkle_js_1.sparkle)(`Restored ${serverCount} MCP server(s)`);
|
|
94
110
|
}
|
|
95
111
|
}
|
|
96
112
|
else {
|
|
97
113
|
(0, sparkle_js_1.sparkle)('Skipping MCPs (not in sync scope)');
|
|
98
|
-
if (options.interactive) {
|
|
99
|
-
filters = await promptForPullItemSelection(activeCategories, {}, repoDir);
|
|
100
|
-
}
|
|
101
114
|
}
|
|
115
|
+
// ── Agents, skills, plugins ───────────────────────────────────────────────
|
|
102
116
|
const restoredAssets = restoreClaudeHomeAssetsFromPocket(repoDir, activeCategories, !!config.syncCategories, selection.syncsClaudeHomeAssets, selection.isFiltered, filters);
|
|
103
|
-
// Summary
|
|
117
|
+
// ── Summary ───────────────────────────────────────────────────────────────
|
|
104
118
|
(0, sparkle_js_1.celebrate)(sparkle_js_1.WITTY.pullDone);
|
|
105
119
|
(0, sparkle_js_1.section)('Summary');
|
|
106
120
|
(0, sparkle_js_1.stat)('Providers', (0, provider_options_js_1.formatProviderList)(selection.selected));
|
|
@@ -117,6 +131,7 @@ async function pullCommand(options = {}) {
|
|
|
117
131
|
}
|
|
118
132
|
console.log('');
|
|
119
133
|
}
|
|
134
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
120
135
|
async function syncPocketToLocal(repoDir, config) {
|
|
121
136
|
if (config.storageType === 'gist') {
|
|
122
137
|
try {
|
|
@@ -164,17 +179,15 @@ function applyServersToProviders(providers, remoteServers) {
|
|
|
164
179
|
return updatedClients;
|
|
165
180
|
}
|
|
166
181
|
function restoreClaudeHomeAssetsFromPocket(repoDir, activeCategories, hasExplicitCategories, syncsClaudeHomeAssets, showSkipMessage, filters = {}) {
|
|
167
|
-
// When the user has explicitly configured sync categories, honor them directly.
|
|
168
|
-
// When no categories are configured (old config), fall back to syncsClaudeHomeAssets.
|
|
169
182
|
const shouldRestorePlugins = hasExplicitCategories
|
|
170
183
|
? activeCategories.has('plugins')
|
|
171
|
-
:
|
|
184
|
+
: activeCategories.has('plugins') && syncsClaudeHomeAssets;
|
|
172
185
|
const shouldRestoreAgents = hasExplicitCategories
|
|
173
186
|
? activeCategories.has('agents')
|
|
174
|
-
:
|
|
187
|
+
: activeCategories.has('agents') && syncsClaudeHomeAssets;
|
|
175
188
|
const shouldRestoreSkills = hasExplicitCategories
|
|
176
189
|
? activeCategories.has('skills')
|
|
177
|
-
:
|
|
190
|
+
: activeCategories.has('skills') && syncsClaudeHomeAssets;
|
|
178
191
|
let updatedManifests = [];
|
|
179
192
|
let agentResult = { synced: 0, removed: 0 };
|
|
180
193
|
let skillResult = { synced: 0, removed: 0 };
|
|
@@ -219,43 +232,11 @@ function restoreClaudeHomeAssetsFromPocket(repoDir, activeCategories, hasExplici
|
|
|
219
232
|
}
|
|
220
233
|
return { updatedManifests, agentResult, skillResult };
|
|
221
234
|
}
|
|
222
|
-
async function promptForPullItemSelection(activeCategories, remoteServers, repoDir) {
|
|
223
|
-
const filters = {};
|
|
224
|
-
if (activeCategories.has('mcps')) {
|
|
225
|
-
const mcpNames = Object.keys(remoteServers);
|
|
226
|
-
if (mcpNames.length > 0) {
|
|
227
|
-
const selected = await (0, prompt_js_1.askMultiSelect)('Which MCP servers should be pulled?', mcpNames.map((name) => ({ label: name, value: name })));
|
|
228
|
-
if (selected.length < mcpNames.length) {
|
|
229
|
-
filters.mcpNames = new Set(selected);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
if (activeCategories.has('agents')) {
|
|
234
|
-
const agentNames = (0, agents_js_1.listRepoAgentNames)(repoDir);
|
|
235
|
-
if (agentNames.length > 0) {
|
|
236
|
-
const selected = await (0, prompt_js_1.askMultiSelect)('Which agents should be pulled?', agentNames.map((name) => ({ label: name, value: name })));
|
|
237
|
-
if (selected.length < agentNames.length) {
|
|
238
|
-
filters.agentNames = new Set(selected);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
if (activeCategories.has('skills')) {
|
|
243
|
-
const skillNames = (0, skills_js_1.listRepoSkillNames)(repoDir);
|
|
244
|
-
if (skillNames.length > 0) {
|
|
245
|
-
const selected = await (0, prompt_js_1.askMultiSelect)('Which skills should be pulled?', skillNames.map((name) => ({ label: name, value: name })));
|
|
246
|
-
if (selected.length < skillNames.length) {
|
|
247
|
-
filters.skillNames = new Set(selected);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return filters;
|
|
252
|
-
}
|
|
253
235
|
function filterMap(map, allowedKeys) {
|
|
254
236
|
const result = {};
|
|
255
237
|
for (const [key, val] of Object.entries(map)) {
|
|
256
|
-
if (allowedKeys.has(key))
|
|
238
|
+
if (allowedKeys.has(key))
|
|
257
239
|
result[key] = val;
|
|
258
|
-
}
|
|
259
240
|
}
|
|
260
241
|
return result;
|
|
261
242
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/push.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAajE,wBAAsB,WAAW,CAC/B,OAAO,GAAE,mBAAmB,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1E,OAAO,CAAC,IAAI,CAAC,CA2Hf"}
|
package/dist/commands/push.js
CHANGED
|
@@ -45,6 +45,8 @@ const agents_js_1 = require("../sync/agents.js");
|
|
|
45
45
|
const skills_js_1 = require("../sync/skills.js");
|
|
46
46
|
const pocket_js_1 = require("../sync/pocket.js");
|
|
47
47
|
const provider_options_js_1 = require("./provider-options.js");
|
|
48
|
+
const item_select_js_1 = require("./item-select.js");
|
|
49
|
+
const ui_server_js_1 = require("./ui-server.js");
|
|
48
50
|
const prompt_js_1 = require("../utils/prompt.js");
|
|
49
51
|
const sparkle_js_1 = require("../utils/sparkle.js");
|
|
50
52
|
async function pushCommand(options = {}) {
|
|
@@ -63,34 +65,49 @@ async function pushCommand(options = {}) {
|
|
|
63
65
|
if (prunedEntries > 0) {
|
|
64
66
|
(0, sparkle_js_1.sparkle)(`Removed ${prunedEntries} stale pocket entr${prunedEntries === 1 ? 'y' : 'ies'}`);
|
|
65
67
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
let filters = {};
|
|
69
|
-
let merged = {};
|
|
68
|
+
// ── Discover available items (no passphrase yet) ──────────────────────────
|
|
69
|
+
let allMcps = {};
|
|
70
70
|
if (activeCategories.has('mcps')) {
|
|
71
71
|
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingMCP);
|
|
72
|
-
|
|
72
|
+
allMcps = (0, mcp_js_1.mergeMcpSources)(...selection.selected.map((p) => p.readMcpServers()));
|
|
73
|
+
}
|
|
74
|
+
const allAgentNames = activeCategories.has('agents') && selection.syncsClaudeHomeAssets
|
|
75
|
+
? (0, agents_js_1.listLocalAgentNames)()
|
|
76
|
+
: [];
|
|
77
|
+
const allSkillNames = activeCategories.has('skills') && selection.syncsClaudeHomeAssets
|
|
78
|
+
? (0, skills_js_1.listLocalSkillNames)()
|
|
79
|
+
: [];
|
|
80
|
+
const allMcpNames = Object.keys(allMcps);
|
|
81
|
+
// ── Item selection ────────────────────────────────────────────────────────
|
|
82
|
+
let filters = {};
|
|
83
|
+
if (options.ui) {
|
|
84
|
+
filters = await (0, ui_server_js_1.openSelectionUi)({ agents: allAgentNames, skills: allSkillNames, mcps: allMcpNames }, 'push');
|
|
73
85
|
}
|
|
74
|
-
if (options.interactive) {
|
|
75
|
-
filters = await
|
|
86
|
+
else if (options.interactive) {
|
|
87
|
+
filters = await (0, item_select_js_1.promptForItemSelection)('What would you like to push?', allAgentNames, allSkillNames, allMcpNames);
|
|
76
88
|
}
|
|
89
|
+
// ── MCPs ──────────────────────────────────────────────────────────────────
|
|
77
90
|
let serverCount = 0;
|
|
78
91
|
if (activeCategories.has('mcps')) {
|
|
79
|
-
const serversToSync = filters.mcpNames
|
|
80
|
-
? filterMap(merged, filters.mcpNames)
|
|
81
|
-
: merged;
|
|
92
|
+
const serversToSync = filters.mcpNames ? filterMap(allMcps, filters.mcpNames) : allMcps;
|
|
82
93
|
serverCount = Object.keys(serversToSync).length;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
94
|
+
if (serverCount > 0) {
|
|
95
|
+
(0, sparkle_js_1.sparkle)(`Pushing ${serverCount} MCP server(s) across ${selection.selected.length} provider(s)`);
|
|
96
|
+
const passphrase = await promptForPushPassphrase();
|
|
97
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.encrypting);
|
|
98
|
+
const portableConfig = (0, mcp_js_1.buildPortableConfig)(serversToSync, passphrase);
|
|
99
|
+
fs.writeFileSync(path.join(repoDir, 'mcp-config.json'), JSON.stringify(portableConfig, null, 2), 'utf8');
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
(0, sparkle_js_1.sparkle)('No MCP servers to push — skipping');
|
|
103
|
+
}
|
|
88
104
|
}
|
|
89
105
|
else {
|
|
90
106
|
(0, sparkle_js_1.sparkle)('Skipping MCPs (not in sync scope)');
|
|
91
107
|
}
|
|
108
|
+
// ── Agents, skills, plugins ───────────────────────────────────────────────
|
|
92
109
|
const assetSummary = syncClaudeHomeAssetsToPocket(repoDir, activeCategories, !!config.syncCategories, selection.syncsClaudeHomeAssets, selection.isFiltered, filters);
|
|
93
|
-
// Push to remote
|
|
110
|
+
// ── Push to remote ────────────────────────────────────────────────────────
|
|
94
111
|
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pushing);
|
|
95
112
|
if (config.storageType === 'gist') {
|
|
96
113
|
try {
|
|
@@ -124,6 +141,7 @@ async function pushCommand(options = {}) {
|
|
|
124
141
|
(0, sparkle_js_1.stat)('Skills', assetSummary.skillResult.synced.toString());
|
|
125
142
|
console.log('');
|
|
126
143
|
}
|
|
144
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
127
145
|
function preparePocketDirectory(storageType, repoDir, githubToken, repoCloneUrl) {
|
|
128
146
|
if (storageType === 'gist') {
|
|
129
147
|
fs.mkdirSync(repoDir, { recursive: true });
|
|
@@ -145,24 +163,21 @@ async function promptForPushPassphrase() {
|
|
|
145
163
|
}
|
|
146
164
|
const confirm = await (0, prompt_js_1.askSecret)(' 🔒 Confirm passphrase: ');
|
|
147
165
|
if (passphrase !== confirm) {
|
|
148
|
-
(0, sparkle_js_1.oops)(
|
|
166
|
+
(0, sparkle_js_1.oops)("Passphrases don't match. Give it another whirl!");
|
|
149
167
|
process.exit(1);
|
|
150
168
|
}
|
|
151
169
|
return passphrase;
|
|
152
170
|
}
|
|
153
171
|
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
172
|
const shouldSyncPlugins = hasExplicitCategories
|
|
158
173
|
? activeCategories.has('plugins')
|
|
159
|
-
:
|
|
174
|
+
: activeCategories.has('plugins') && syncsClaudeHomeAssets;
|
|
160
175
|
const shouldSyncAgents = hasExplicitCategories
|
|
161
176
|
? activeCategories.has('agents')
|
|
162
|
-
:
|
|
177
|
+
: activeCategories.has('agents') && syncsClaudeHomeAssets;
|
|
163
178
|
const shouldSyncSkills = hasExplicitCategories
|
|
164
179
|
? activeCategories.has('skills')
|
|
165
|
-
:
|
|
180
|
+
: activeCategories.has('skills') && syncsClaudeHomeAssets;
|
|
166
181
|
let manifestCount = 0;
|
|
167
182
|
let pluginResult = { synced: 0, removed: 0 };
|
|
168
183
|
let agentResult = { synced: 0, removed: 0 };
|
|
@@ -212,43 +227,11 @@ function syncClaudeHomeAssetsToPocket(repoDir, activeCategories, hasExplicitCate
|
|
|
212
227
|
}
|
|
213
228
|
return { manifestCount, pluginResult, agentResult, skillResult };
|
|
214
229
|
}
|
|
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
230
|
function filterMap(map, allowedKeys) {
|
|
247
231
|
const result = {};
|
|
248
232
|
for (const [key, val] of Object.entries(map)) {
|
|
249
|
-
if (allowedKeys.has(key))
|
|
233
|
+
if (allowedKeys.has(key))
|
|
250
234
|
result[key] = val;
|
|
251
|
-
}
|
|
252
235
|
}
|
|
253
236
|
return result;
|
|
254
237
|
}
|
|
@@ -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":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ItemFilters } from './item-select.js';
|
|
2
|
+
export interface UiItems {
|
|
3
|
+
agents: string[];
|
|
4
|
+
skills: string[];
|
|
5
|
+
mcps: string[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Start a local HTTP server on port 3000, open the browser, and wait for
|
|
9
|
+
* the user to submit their selection. Resolves with ItemFilters once the
|
|
10
|
+
* user clicks the sync button.
|
|
11
|
+
*/
|
|
12
|
+
export declare function openSelectionUi(items: UiItems, action: 'push' | 'pull'): Promise<ItemFilters>;
|
|
13
|
+
//# sourceMappingURL=ui-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-server.d.ts","sourceRoot":"","sources":["../../src/commands/ui-server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAI,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GAAG,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC,CAqDtB"}
|