mcpocket 0.1.0 → 0.1.1
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 +1 -1
- package/README.md +261 -37
- package/dist/cli.js +9 -7
- package/dist/cli.js.map +1 -1
- package/dist/clients/claude-code.js +2 -2
- package/dist/clients/claude-desktop.js +2 -2
- package/dist/clients/opencode.js +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +111 -43
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +45 -31
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +56 -32
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +38 -23
- package/dist/commands/status.js.map +1 -1
- package/dist/config.d.ts +10 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -8
- package/dist/config.js.map +1 -1
- package/dist/storage/gist.d.ts +21 -0
- package/dist/storage/gist.d.ts.map +1 -0
- package/dist/storage/gist.js +139 -0
- package/dist/storage/gist.js.map +1 -0
- package/dist/storage/github.d.ts +1 -1
- package/dist/storage/github.js +8 -8
- package/dist/sync/plugins.js +2 -2
- package/dist/utils/crypto.d.ts +1 -1
- package/dist/utils/crypto.js +2 -2
- package/dist/utils/paths.d.ts +4 -4
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +8 -8
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/sparkle.d.ts +60 -0
- package/dist/utils/sparkle.d.ts.map +1 -0
- package/dist/utils/sparkle.js +114 -0
- package/dist/utils/sparkle.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAsBA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAkHjD"}
|
package/dist/commands/pull.js
CHANGED
|
@@ -38,6 +38,7 @@ const fs = __importStar(require("fs"));
|
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const config_js_1 = require("../config.js");
|
|
40
40
|
const github_js_1 = require("../storage/github.js");
|
|
41
|
+
const gist_js_1 = require("../storage/gist.js");
|
|
41
42
|
const claude_desktop_js_1 = require("../clients/claude-desktop.js");
|
|
42
43
|
const claude_code_js_1 = require("../clients/claude-code.js");
|
|
43
44
|
const opencode_js_1 = require("../clients/opencode.js");
|
|
@@ -49,40 +50,55 @@ const plugins_js_1 = require("../sync/plugins.js");
|
|
|
49
50
|
const agents_js_1 = require("../sync/agents.js");
|
|
50
51
|
const skills_js_1 = require("../sync/skills.js");
|
|
51
52
|
const prompt_js_1 = require("../utils/prompt.js");
|
|
53
|
+
const sparkle_js_1 = require("../utils/sparkle.js");
|
|
52
54
|
async function pullCommand() {
|
|
53
55
|
const config = (0, config_js_1.readConfig)();
|
|
54
56
|
const repoDir = (0, config_js_1.getLocalRepoDir)();
|
|
55
57
|
// Pull or clone
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
(0, sparkle_js_1.section)('Pull');
|
|
59
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pulling);
|
|
60
|
+
if (config.storageType === 'gist') {
|
|
61
|
+
try {
|
|
62
|
+
const gistFiles = await (0, gist_js_1.fetchGist)(config.githubToken, config.gistId);
|
|
63
|
+
fs.mkdirSync(repoDir, { recursive: true });
|
|
64
|
+
(0, gist_js_1.writeGistFilesToDir)(repoDir, gistFiles);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
(0, sparkle_js_1.oops)(err.message);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
60
70
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
else {
|
|
72
|
+
try {
|
|
73
|
+
(0, github_js_1.pullRepo)(repoDir, config.githubToken, config.repoCloneUrl);
|
|
74
|
+
(0, github_js_1.ensureGitConfig)(repoDir);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
(0, sparkle_js_1.oops)(err.message);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
64
80
|
}
|
|
65
81
|
// Check for mcp-config.json
|
|
66
82
|
const mcpConfigPath = path.join(repoDir, 'mcp-config.json');
|
|
67
83
|
if (!fs.existsSync(mcpConfigPath)) {
|
|
68
|
-
|
|
84
|
+
(0, sparkle_js_1.heads_up)('No config found in the pocket yet. Run `mcpocket push` on your source machine first!');
|
|
69
85
|
return;
|
|
70
86
|
}
|
|
71
87
|
// Get passphrase for decrypting secrets
|
|
72
|
-
const passphrase = await (0, prompt_js_1.askSecret)('Passphrase to decrypt secrets: ');
|
|
88
|
+
const passphrase = await (0, prompt_js_1.askSecret)(' 🔓 Passphrase to decrypt secrets: ');
|
|
73
89
|
if (!passphrase) {
|
|
74
|
-
|
|
90
|
+
(0, sparkle_js_1.oops)('Passphrase cannot be empty.');
|
|
75
91
|
process.exit(1);
|
|
76
92
|
}
|
|
77
93
|
// Restore MCP servers
|
|
78
|
-
|
|
94
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.decrypting);
|
|
79
95
|
let remoteServers;
|
|
80
96
|
try {
|
|
81
97
|
const portableConfig = JSON.parse(fs.readFileSync(mcpConfigPath, 'utf8'));
|
|
82
98
|
remoteServers = (0, mcp_js_1.restoreFromPortableConfig)(portableConfig, passphrase);
|
|
83
99
|
}
|
|
84
100
|
catch (err) {
|
|
85
|
-
|
|
101
|
+
(0, sparkle_js_1.oops)(`Decryption failed: ${err.message}`);
|
|
86
102
|
process.exit(1);
|
|
87
103
|
}
|
|
88
104
|
const serverCount = Object.keys(remoteServers).length;
|
|
@@ -108,36 +124,34 @@ async function pullCommand() {
|
|
|
108
124
|
(0, opencode_js_1.writeOpenCodeMcpServers)(mergedOpenCode);
|
|
109
125
|
updatedClients.push(`OpenCode (${(0, opencode_js_1.getConfigPath)()})`);
|
|
110
126
|
}
|
|
111
|
-
|
|
127
|
+
(0, sparkle_js_1.sparkle)(`Restored ${serverCount} MCP server(s)`);
|
|
112
128
|
// Apply plugin manifests
|
|
113
|
-
|
|
129
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingPlugins);
|
|
114
130
|
const manifests = (0, plugins_js_1.readPluginManifestsFromRepo)(repoDir);
|
|
115
131
|
const updatedManifests = (0, plugins_js_1.applyPluginManifests)(manifests);
|
|
116
|
-
|
|
132
|
+
(0, sparkle_js_1.sparkle)(`Updated ${updatedManifests.length} manifest file(s)`);
|
|
117
133
|
// Apply agents
|
|
118
|
-
|
|
134
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingAgents);
|
|
119
135
|
const agentCount = (0, agents_js_1.applyAgentsFromRepo)(repoDir);
|
|
120
|
-
|
|
136
|
+
(0, sparkle_js_1.sparkle)(`Restored ${agentCount} agent file(s)`);
|
|
121
137
|
// Apply skills
|
|
122
|
-
|
|
138
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingSkills);
|
|
123
139
|
const skillCount = (0, skills_js_1.applySkillsFromRepo)(repoDir);
|
|
124
|
-
|
|
140
|
+
(0, sparkle_js_1.sparkle)(`Restored ${skillCount} skill file(s)`);
|
|
125
141
|
// Summary
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
142
|
+
(0, sparkle_js_1.celebrate)(sparkle_js_1.WITTY.pullDone);
|
|
143
|
+
(0, sparkle_js_1.section)('Summary');
|
|
144
|
+
(0, sparkle_js_1.stat)('MCPs', `${serverCount} servers → ${updatedClients.length} client(s)`);
|
|
145
|
+
(0, sparkle_js_1.stat)('Plugins', `${updatedManifests.length} manifest file(s)`);
|
|
146
|
+
(0, sparkle_js_1.stat)('Agents', agentCount.toString());
|
|
147
|
+
(0, sparkle_js_1.stat)('Skills', skillCount.toString());
|
|
132
148
|
if (updatedClients.length > 0) {
|
|
133
|
-
console.log('\
|
|
149
|
+
console.log('\n Updated clients:');
|
|
134
150
|
for (const c of updatedClients) {
|
|
135
|
-
|
|
151
|
+
(0, sparkle_js_1.sparkle)(c);
|
|
136
152
|
}
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
if (updatedManifests.length > 0) {
|
|
140
|
-
console.log('⚠ Restart Claude Code to trigger plugin installation.');
|
|
153
|
+
(0, sparkle_js_1.heads_up)('Restart Claude Desktop to apply MCP changes.');
|
|
141
154
|
}
|
|
155
|
+
console.log('');
|
|
142
156
|
}
|
|
143
157
|
//# sourceMappingURL=pull.js.map
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAeA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA8FjD"}
|
package/dist/commands/push.js
CHANGED
|
@@ -38,6 +38,7 @@ const fs = __importStar(require("fs"));
|
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const config_js_1 = require("../config.js");
|
|
40
40
|
const github_js_1 = require("../storage/github.js");
|
|
41
|
+
const gist_js_1 = require("../storage/gist.js");
|
|
41
42
|
const claude_desktop_js_1 = require("../clients/claude-desktop.js");
|
|
42
43
|
const claude_code_js_1 = require("../clients/claude-code.js");
|
|
43
44
|
const opencode_js_1 = require("../clients/opencode.js");
|
|
@@ -46,67 +47,90 @@ const plugins_js_1 = require("../sync/plugins.js");
|
|
|
46
47
|
const agents_js_1 = require("../sync/agents.js");
|
|
47
48
|
const skills_js_1 = require("../sync/skills.js");
|
|
48
49
|
const prompt_js_1 = require("../utils/prompt.js");
|
|
50
|
+
const sparkle_js_1 = require("../utils/sparkle.js");
|
|
49
51
|
async function pushCommand() {
|
|
50
52
|
const config = (0, config_js_1.readConfig)();
|
|
51
53
|
const repoDir = (0, config_js_1.getLocalRepoDir)();
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
(0,
|
|
54
|
+
(0, sparkle_js_1.section)('Push');
|
|
55
|
+
// For repo mode, pull latest first to avoid conflicts
|
|
56
|
+
if (config.storageType !== 'gist') {
|
|
57
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pulling);
|
|
58
|
+
try {
|
|
59
|
+
(0, github_js_1.pullRepo)(repoDir, config.githubToken, config.repoCloneUrl);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
(0, sparkle_js_1.heads_up)(`Could not pull latest — ${err.message}`);
|
|
63
|
+
}
|
|
56
64
|
}
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
else {
|
|
66
|
+
fs.mkdirSync(repoDir, { recursive: true });
|
|
59
67
|
}
|
|
60
68
|
// Get passphrase for encrypting secrets
|
|
61
|
-
const passphrase = await (0, prompt_js_1.askSecret)('Passphrase to encrypt secrets: ');
|
|
69
|
+
const passphrase = await (0, prompt_js_1.askSecret)(' 🔒 Passphrase to encrypt secrets: ');
|
|
62
70
|
if (!passphrase) {
|
|
63
|
-
|
|
71
|
+
(0, sparkle_js_1.oops)('Passphrase cannot be empty.');
|
|
64
72
|
process.exit(1);
|
|
65
73
|
}
|
|
66
|
-
const confirm = await (0, prompt_js_1.askSecret)('Confirm passphrase: ');
|
|
74
|
+
const confirm = await (0, prompt_js_1.askSecret)(' 🔒 Confirm passphrase: ');
|
|
67
75
|
if (passphrase !== confirm) {
|
|
68
|
-
|
|
76
|
+
(0, sparkle_js_1.oops)('Passphrases don\'t match. Give it another whirl!');
|
|
69
77
|
process.exit(1);
|
|
70
78
|
}
|
|
71
|
-
|
|
79
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingMCP);
|
|
72
80
|
const desktop = (0, claude_desktop_js_1.readClaudeDesktopMcpServers)();
|
|
73
81
|
const claudeCode = (0, claude_code_js_1.readClaudeCodeMcpServers)();
|
|
74
82
|
const opencode = (0, opencode_js_1.readOpenCodeMcpServers)();
|
|
75
83
|
const merged = (0, mcp_js_1.mergeMcpSources)(desktop, claudeCode, opencode);
|
|
76
84
|
const serverCount = Object.keys(merged).length;
|
|
77
|
-
|
|
85
|
+
(0, sparkle_js_1.sparkle)(`Found ${serverCount} MCP server(s) across all clients`);
|
|
78
86
|
// Write mcp-config.json
|
|
87
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.encrypting);
|
|
79
88
|
const portableConfig = (0, mcp_js_1.buildPortableConfig)(merged, passphrase);
|
|
80
89
|
fs.writeFileSync(path.join(repoDir, 'mcp-config.json'), JSON.stringify(portableConfig, null, 2), 'utf8');
|
|
81
90
|
// Sync plugin manifests
|
|
82
|
-
|
|
91
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingPlugins);
|
|
83
92
|
const manifests = (0, plugins_js_1.readPluginManifests)();
|
|
84
93
|
const manifestCount = Object.keys(manifests).length;
|
|
85
|
-
|
|
94
|
+
(0, sparkle_js_1.sparkle)(`Found ${manifestCount} plugin manifest file(s)`);
|
|
86
95
|
(0, plugins_js_1.writePluginManifestsToRepo)(manifests, repoDir);
|
|
87
96
|
// Sync agents
|
|
88
|
-
|
|
97
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingAgents);
|
|
89
98
|
const agentCount = (0, agents_js_1.writeAgentsToRepo)(repoDir);
|
|
90
|
-
|
|
99
|
+
(0, sparkle_js_1.sparkle)(`Synced ${agentCount} agent file(s)`);
|
|
91
100
|
// Sync skills
|
|
92
|
-
|
|
101
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.readingSkills);
|
|
93
102
|
const skillCount = (0, skills_js_1.writeSkillsToRepo)(repoDir);
|
|
94
|
-
|
|
95
|
-
//
|
|
96
|
-
|
|
97
|
-
(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
(0, sparkle_js_1.sparkle)(`Synced ${skillCount} skill file(s)`);
|
|
104
|
+
// Push to remote
|
|
105
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pushing);
|
|
106
|
+
if (config.storageType === 'gist') {
|
|
107
|
+
try {
|
|
108
|
+
const files = (0, gist_js_1.collectFilesFromDir)(repoDir);
|
|
109
|
+
await (0, gist_js_1.updateGist)(config.githubToken, config.gistId, files);
|
|
110
|
+
(0, sparkle_js_1.celebrate)(sparkle_js_1.WITTY.pushDone);
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
(0, sparkle_js_1.oops)(`Gist push failed: ${err.message}`);
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
101
116
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
117
|
+
else {
|
|
118
|
+
(0, github_js_1.ensureGitConfig)(repoDir);
|
|
119
|
+
try {
|
|
120
|
+
(0, github_js_1.commitAndPush)(repoDir, config.githubToken, config.repoCloneUrl, 'mcpocket: push');
|
|
121
|
+
(0, sparkle_js_1.celebrate)(sparkle_js_1.WITTY.pushDone);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
(0, sparkle_js_1.oops)(`Push failed: ${err.message}`);
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
105
127
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
128
|
+
(0, sparkle_js_1.section)('Summary');
|
|
129
|
+
(0, sparkle_js_1.stat)('Storage', config.storageType === 'gist' ? `gist (${config.gistUrl})` : `repo (${config.repoHtmlUrl})`);
|
|
130
|
+
(0, sparkle_js_1.stat)('MCPs', serverCount.toString());
|
|
131
|
+
(0, sparkle_js_1.stat)('Plugins', `${manifestCount} manifest file(s)`);
|
|
132
|
+
(0, sparkle_js_1.stat)('Agents', agentCount.toString());
|
|
133
|
+
(0, sparkle_js_1.stat)('Skills', skillCount.toString());
|
|
134
|
+
console.log('');
|
|
111
135
|
}
|
|
112
136
|
//# 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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAYA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA0FnD"}
|
package/dist/commands/status.js
CHANGED
|
@@ -38,23 +38,37 @@ const fs = __importStar(require("fs"));
|
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
39
|
const config_js_1 = require("../config.js");
|
|
40
40
|
const github_js_1 = require("../storage/github.js");
|
|
41
|
+
const gist_js_1 = require("../storage/gist.js");
|
|
41
42
|
const claude_desktop_js_1 = require("../clients/claude-desktop.js");
|
|
42
43
|
const claude_code_js_1 = require("../clients/claude-code.js");
|
|
43
44
|
const opencode_js_1 = require("../clients/opencode.js");
|
|
44
45
|
const mcp_js_1 = require("../sync/mcp.js");
|
|
46
|
+
const sparkle_js_1 = require("../utils/sparkle.js");
|
|
45
47
|
async function statusCommand() {
|
|
46
48
|
const config = (0, config_js_1.readConfig)();
|
|
47
49
|
const repoDir = (0, config_js_1.getLocalRepoDir)();
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
(0, sparkle_js_1.sparkle)(sparkle_js_1.WITTY.pulling);
|
|
51
|
+
if (config.storageType === 'gist') {
|
|
52
|
+
try {
|
|
53
|
+
const gistFiles = await (0, gist_js_1.fetchGist)(config.githubToken, config.gistId);
|
|
54
|
+
fs.mkdirSync(repoDir, { recursive: true });
|
|
55
|
+
(0, gist_js_1.writeGistFilesToDir)(repoDir, gistFiles);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
(0, sparkle_js_1.heads_up)(`Could not fetch gist — ${err.message}`);
|
|
59
|
+
}
|
|
51
60
|
}
|
|
52
|
-
|
|
53
|
-
|
|
61
|
+
else {
|
|
62
|
+
try {
|
|
63
|
+
(0, github_js_1.pullRepo)(repoDir, config.githubToken, config.repoCloneUrl);
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
(0, sparkle_js_1.heads_up)(`Could not pull latest — ${err.message}`);
|
|
67
|
+
}
|
|
54
68
|
}
|
|
55
69
|
const mcpConfigPath = path.join(repoDir, 'mcp-config.json');
|
|
56
70
|
if (!fs.existsSync(mcpConfigPath)) {
|
|
57
|
-
|
|
71
|
+
(0, sparkle_js_1.heads_up)('The pocket is empty! Run `mcpocket push` to stash your setup.');
|
|
58
72
|
return;
|
|
59
73
|
}
|
|
60
74
|
// Compare MCPs (without decrypting — just compare names)
|
|
@@ -65,53 +79,54 @@ async function statusCommand() {
|
|
|
65
79
|
const onlyRemote = [...remoteNames].filter(n => !localNames.has(n));
|
|
66
80
|
const onlyLocal = [...localNames].filter(n => !remoteNames.has(n));
|
|
67
81
|
const inBoth = [...remoteNames].filter(n => localNames.has(n));
|
|
68
|
-
|
|
82
|
+
(0, sparkle_js_1.section)('MCP Servers');
|
|
69
83
|
if (inBoth.length > 0) {
|
|
70
|
-
console.log('\n
|
|
84
|
+
console.log('\n \x1b[32mSynced:\x1b[0m');
|
|
71
85
|
for (const n of inBoth)
|
|
72
|
-
console.log(`
|
|
86
|
+
console.log(` ✓ ${n}`);
|
|
73
87
|
}
|
|
74
88
|
if (onlyRemote.length > 0) {
|
|
75
|
-
console.log('\n
|
|
89
|
+
console.log('\n \x1b[36mIn pocket, not here (run pull):\x1b[0m');
|
|
76
90
|
for (const n of onlyRemote)
|
|
77
|
-
console.log(`
|
|
91
|
+
console.log(` ↓ ${n}`);
|
|
78
92
|
}
|
|
79
93
|
if (onlyLocal.length > 0) {
|
|
80
|
-
console.log('\n
|
|
94
|
+
console.log('\n \x1b[33mLocal only (run push):\x1b[0m');
|
|
81
95
|
for (const n of onlyLocal)
|
|
82
|
-
console.log(`
|
|
96
|
+
console.log(` ↑ ${n}`);
|
|
83
97
|
}
|
|
84
98
|
if (remoteNames.size === 0 && localNames.size === 0) {
|
|
85
|
-
|
|
99
|
+
(0, sparkle_js_1.sparkle)('No MCP servers found. Your pocket is empty!');
|
|
86
100
|
}
|
|
87
101
|
// Plugins
|
|
88
|
-
|
|
102
|
+
(0, sparkle_js_1.section)('Plugin Manifests');
|
|
89
103
|
const pluginFiles = ['plugins/installed_plugins.json', 'plugins/blocklist.json', 'plugins/known_marketplaces.json'];
|
|
90
104
|
for (const f of pluginFiles) {
|
|
91
105
|
const inRepo = fs.existsSync(path.join(repoDir, f));
|
|
92
|
-
console.log(`
|
|
106
|
+
console.log(` ${inRepo ? '\x1b[32m✓\x1b[0m' : '\x1b[31m✗\x1b[0m'} ${f}`);
|
|
93
107
|
}
|
|
94
108
|
// Agents
|
|
95
|
-
|
|
109
|
+
(0, sparkle_js_1.section)('Agents');
|
|
96
110
|
const agentsDir = path.join(repoDir, 'agents');
|
|
97
111
|
if (fs.existsSync(agentsDir)) {
|
|
98
112
|
const count = countFiles(agentsDir, '.md');
|
|
99
|
-
|
|
113
|
+
(0, sparkle_js_1.sparkle)(`${count} agent file(s) in the pocket`);
|
|
100
114
|
}
|
|
101
115
|
else {
|
|
102
|
-
|
|
116
|
+
(0, sparkle_js_1.sparkle)('Not synced yet — they\'re waiting for their first adventure!');
|
|
103
117
|
}
|
|
104
118
|
// Skills
|
|
105
|
-
|
|
119
|
+
(0, sparkle_js_1.section)('Skills');
|
|
106
120
|
const skillsDir = path.join(repoDir, 'skills');
|
|
107
121
|
if (fs.existsSync(skillsDir)) {
|
|
108
122
|
const count = countFiles(skillsDir);
|
|
109
|
-
|
|
123
|
+
(0, sparkle_js_1.sparkle)(`${count} skill file(s) in the pocket`);
|
|
110
124
|
}
|
|
111
125
|
else {
|
|
112
|
-
|
|
126
|
+
(0, sparkle_js_1.sparkle)('Not synced yet — skill points unspent!');
|
|
113
127
|
}
|
|
114
|
-
|
|
128
|
+
const remoteUrl = config.storageType === 'gist' ? config.gistUrl : config.repoHtmlUrl;
|
|
129
|
+
console.log(`\n 🔗 Remote: ${remoteUrl}\n`);
|
|
115
130
|
}
|
|
116
131
|
function countFiles(dir, ext) {
|
|
117
132
|
let count = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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,12 +1,16 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type StorageType = 'repo' | 'gist';
|
|
2
|
+
export interface McpocketConfig {
|
|
2
3
|
githubToken: string;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
storageType: StorageType;
|
|
5
|
+
repoFullName?: string;
|
|
6
|
+
repoCloneUrl?: string;
|
|
7
|
+
repoHtmlUrl?: string;
|
|
8
|
+
gistId?: string;
|
|
9
|
+
gistUrl?: string;
|
|
6
10
|
}
|
|
7
11
|
export declare function configExists(): boolean;
|
|
8
|
-
export declare function readConfig():
|
|
9
|
-
export declare function writeConfig(config:
|
|
12
|
+
export declare function readConfig(): McpocketConfig;
|
|
13
|
+
export declare function writeConfig(config: McpocketConfig): void;
|
|
10
14
|
/** Local clone directory */
|
|
11
15
|
export declare function getLocalRepoDir(): string;
|
|
12
16
|
//# sourceMappingURL=config.d.ts.map
|
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,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,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;CAClB;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAa3C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQxD;AAED,4BAA4B;AAC5B,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
package/dist/config.js
CHANGED
|
@@ -42,26 +42,31 @@ const path = __importStar(require("path"));
|
|
|
42
42
|
const os = __importStar(require("os"));
|
|
43
43
|
const paths_js_1 = require("./utils/paths.js");
|
|
44
44
|
function configExists() {
|
|
45
|
-
return fs.existsSync((0, paths_js_1.
|
|
45
|
+
return fs.existsSync((0, paths_js_1.getMcpocketConfigPath)());
|
|
46
46
|
}
|
|
47
47
|
function readConfig() {
|
|
48
|
-
const configPath = (0, paths_js_1.
|
|
48
|
+
const configPath = (0, paths_js_1.getMcpocketConfigPath)();
|
|
49
49
|
if (!fs.existsSync(configPath)) {
|
|
50
|
-
throw new Error('
|
|
50
|
+
throw new Error('mcpocket is not initialized. Run `mcpocket init` first.');
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
const raw = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
|
53
|
+
// Backward compat: configs created before gist support default to repo
|
|
54
|
+
if (!raw.storageType) {
|
|
55
|
+
raw.storageType = 'repo';
|
|
56
|
+
}
|
|
57
|
+
return raw;
|
|
53
58
|
}
|
|
54
59
|
function writeConfig(config) {
|
|
55
|
-
const dir = (0, paths_js_1.
|
|
60
|
+
const dir = (0, paths_js_1.getMcpocketConfigDir)();
|
|
56
61
|
fs.mkdirSync(dir, { recursive: true });
|
|
57
|
-
fs.writeFileSync((0, paths_js_1.
|
|
62
|
+
fs.writeFileSync((0, paths_js_1.getMcpocketConfigPath)(), JSON.stringify(config, null, 2), 'utf8');
|
|
58
63
|
// Restrict permissions on non-Windows (contains GitHub token)
|
|
59
64
|
if (process.platform !== 'win32') {
|
|
60
|
-
fs.chmodSync((0, paths_js_1.
|
|
65
|
+
fs.chmodSync((0, paths_js_1.getMcpocketConfigPath)(), 0o600);
|
|
61
66
|
}
|
|
62
67
|
}
|
|
63
68
|
/** Local clone directory */
|
|
64
69
|
function getLocalRepoDir() {
|
|
65
|
-
return path.join(os.homedir(), '.
|
|
70
|
+
return path.join(os.homedir(), '.mcpocket', 'repo');
|
|
66
71
|
}
|
|
67
72
|
//# sourceMappingURL=config.js.map
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,oCAEC;AAED,gCAaC;AAED,kCAQC;AAGD,0CAEC;AAnDD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,+CAA+E;AAgB/E,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,4BAA4B;AAC5B,SAAgB,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface GistInfo {
|
|
2
|
+
id: string;
|
|
3
|
+
htmlUrl: string;
|
|
4
|
+
}
|
|
5
|
+
/** Create a private gist as the sync target */
|
|
6
|
+
export declare function createGist(token: string): Promise<GistInfo>;
|
|
7
|
+
/** Upload files to an existing gist (creates/updates, does not delete missing files) */
|
|
8
|
+
export declare function updateGist(token: string, gistId: string, files: Record<string, string>): Promise<void>;
|
|
9
|
+
/** Fetch all files from a gist */
|
|
10
|
+
export declare function fetchGist(token: string, gistId: string): Promise<Record<string, string>>;
|
|
11
|
+
/**
|
|
12
|
+
* Collect all files from a directory into a flat map.
|
|
13
|
+
* Directory separators are encoded as __ in keys.
|
|
14
|
+
*/
|
|
15
|
+
export declare function collectFilesFromDir(dir: string): Record<string, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Write flat gist files back to a directory.
|
|
18
|
+
* Keys with __ are expanded to subdirectories.
|
|
19
|
+
*/
|
|
20
|
+
export declare function writeGistFilesToDir(dir: string, files: Record<string, string>): void;
|
|
21
|
+
//# sourceMappingURL=gist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gist.d.ts","sourceRoot":"","sources":["../../src/storage/gist.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD,+CAA+C;AAC/C,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBjE;AAED,wFAAwF;AACxF,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAef;AAED,kCAAkC;AAClC,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkBjC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKvE;AAoBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,IAAI,CAON"}
|