mcpocket 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +412 -358
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/cleanup.d.ts +56 -0
- package/dist/commands/cleanup.d.ts.map +1 -0
- package/dist/commands/cleanup.js +484 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/cleanup.test.d.ts +8 -0
- package/dist/commands/cleanup.test.d.ts.map +1 -0
- package/dist/commands/cleanup.test.js +170 -0
- package/dist/commands/cleanup.test.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- 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/utils/prompt.d.ts +12 -3
- package/dist/utils/prompt.d.ts.map +1 -1
- package/dist/utils/prompt.js +114 -3
- package/dist/utils/prompt.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Unit tests for cleanup command core logic.
|
|
4
|
+
* Run with: npm test
|
|
5
|
+
*
|
|
6
|
+
* Uses Node.js built-in test runner (requires Node >= 18).
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
const node_test_1 = require("node:test");
|
|
46
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
47
|
+
const cleanup_js_1 = require("./cleanup.js");
|
|
48
|
+
const fs = __importStar(require("node:fs"));
|
|
49
|
+
const os = __importStar(require("node:os"));
|
|
50
|
+
const path = __importStar(require("node:path"));
|
|
51
|
+
// ── matchesGlob ───────────────────────────────────────────────────────────────
|
|
52
|
+
(0, node_test_1.describe)('matchesGlob', () => {
|
|
53
|
+
(0, node_test_1.it)('matches exact relative path', () => {
|
|
54
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('agents/my-agent.md', 'agents/my-agent.md'));
|
|
55
|
+
});
|
|
56
|
+
(0, node_test_1.it)('does not match a different file in same directory', () => {
|
|
57
|
+
strict_1.default.ok(!(0, cleanup_js_1.matchesGlob)('agents/other.md', 'agents/my-agent.md'));
|
|
58
|
+
});
|
|
59
|
+
(0, node_test_1.it)('matches wildcard * within a segment', () => {
|
|
60
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('agents/my-agent.md', 'agents/*.md'));
|
|
61
|
+
strict_1.default.ok(!(0, cleanup_js_1.matchesGlob)('skills/my-skill.md', 'agents/*.md'));
|
|
62
|
+
});
|
|
63
|
+
(0, node_test_1.it)('matches ** across segments', () => {
|
|
64
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('agents/sub/deep.md', 'agents/**'));
|
|
65
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('skills/nested/file.js', '**/*.js'));
|
|
66
|
+
});
|
|
67
|
+
(0, node_test_1.it)('matches trailing slash as directory prefix', () => {
|
|
68
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('agents/foo.md', 'agents/'));
|
|
69
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('agents/sub/bar.md', 'agents/'));
|
|
70
|
+
strict_1.default.ok(!(0, cleanup_js_1.matchesGlob)('skills/foo.md', 'agents/'));
|
|
71
|
+
});
|
|
72
|
+
(0, node_test_1.it)('matches basename-only pattern against basename and full path', () => {
|
|
73
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('agents/foo.md', '*.md'));
|
|
74
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('foo.md', '*.md'));
|
|
75
|
+
strict_1.default.ok(!(0, cleanup_js_1.matchesGlob)('agents/foo.ts', '*.md'));
|
|
76
|
+
});
|
|
77
|
+
(0, node_test_1.it)('matches exact top-level file', () => {
|
|
78
|
+
strict_1.default.ok((0, cleanup_js_1.matchesGlob)('mcp-config.json', 'mcp-config.json'));
|
|
79
|
+
strict_1.default.ok(!(0, cleanup_js_1.matchesGlob)('other.json', 'mcp-config.json'));
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
// ── computeFilesToKeep ────────────────────────────────────────────────────────
|
|
83
|
+
const SAMPLE_FILES = [
|
|
84
|
+
'mcp-config.json',
|
|
85
|
+
'agents/agent1.md',
|
|
86
|
+
'agents/agent2.md',
|
|
87
|
+
'skills/skill1.js',
|
|
88
|
+
'skills/nested/util.js',
|
|
89
|
+
'plugins/installed_plugins.json',
|
|
90
|
+
];
|
|
91
|
+
(0, node_test_1.describe)('computeFilesToKeep', () => {
|
|
92
|
+
(0, node_test_1.it)('returns all files when no patterns are given', () => {
|
|
93
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES);
|
|
94
|
+
strict_1.default.deepEqual(kept, SAMPLE_FILES);
|
|
95
|
+
});
|
|
96
|
+
(0, node_test_1.it)('applies include whitelist — only matching files are kept', () => {
|
|
97
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES, ['agents/']);
|
|
98
|
+
strict_1.default.deepEqual(kept, ['agents/agent1.md', 'agents/agent2.md']);
|
|
99
|
+
});
|
|
100
|
+
(0, node_test_1.it)('applies exclude blacklist — matching files are removed', () => {
|
|
101
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES, undefined, ['agents/']);
|
|
102
|
+
strict_1.default.ok(!kept.includes('agents/agent1.md'));
|
|
103
|
+
strict_1.default.ok(!kept.includes('agents/agent2.md'));
|
|
104
|
+
strict_1.default.ok(kept.includes('mcp-config.json'));
|
|
105
|
+
});
|
|
106
|
+
(0, node_test_1.it)('combines include and exclude: include narrows, exclude removes from result', () => {
|
|
107
|
+
// Include skills/, then exclude the nested sub-directory
|
|
108
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES, ['skills/'], ['skills/nested/**']);
|
|
109
|
+
strict_1.default.deepEqual(kept, ['skills/skill1.js']);
|
|
110
|
+
});
|
|
111
|
+
(0, node_test_1.it)('exclude is applied after include — file matching both is removed', () => {
|
|
112
|
+
// Include agents/*.md, exclude a specific agent
|
|
113
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES, ['agents/'], ['agents/agent2.md']);
|
|
114
|
+
strict_1.default.deepEqual(kept, ['agents/agent1.md']);
|
|
115
|
+
});
|
|
116
|
+
(0, node_test_1.it)('handles empty include array as "no filter"', () => {
|
|
117
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES, []);
|
|
118
|
+
strict_1.default.deepEqual(kept, SAMPLE_FILES);
|
|
119
|
+
});
|
|
120
|
+
(0, node_test_1.it)('handles empty exclude array as "remove nothing"', () => {
|
|
121
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES, undefined, []);
|
|
122
|
+
strict_1.default.deepEqual(kept, SAMPLE_FILES);
|
|
123
|
+
});
|
|
124
|
+
(0, node_test_1.it)('include with no matches keeps nothing', () => {
|
|
125
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES, ['nonexistent/']);
|
|
126
|
+
strict_1.default.deepEqual(kept, []);
|
|
127
|
+
});
|
|
128
|
+
(0, node_test_1.it)('exclude matching all files keeps nothing', () => {
|
|
129
|
+
const kept = (0, cleanup_js_1.computeFilesToKeep)(SAMPLE_FILES, undefined, ['**']);
|
|
130
|
+
strict_1.default.deepEqual(kept, []);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
// ── listPocketFiles ───────────────────────────────────────────────────────────
|
|
134
|
+
(0, node_test_1.describe)('listPocketFiles', () => {
|
|
135
|
+
(0, node_test_1.it)('returns empty array for a non-existent directory', () => {
|
|
136
|
+
const nonExistent = path.join(os.tmpdir(), '__nonexistent_mcpocket_test__');
|
|
137
|
+
const result = (0, cleanup_js_1.listPocketFiles)(nonExistent);
|
|
138
|
+
strict_1.default.deepEqual(result, []);
|
|
139
|
+
});
|
|
140
|
+
(0, node_test_1.it)('lists files recursively, excluding .git', () => {
|
|
141
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'mcpocket-cleanup-test-'));
|
|
142
|
+
try {
|
|
143
|
+
fs.mkdirSync(path.join(tmpDir, '.git'));
|
|
144
|
+
fs.writeFileSync(path.join(tmpDir, '.git', 'config'), '');
|
|
145
|
+
fs.mkdirSync(path.join(tmpDir, 'agents'));
|
|
146
|
+
fs.writeFileSync(path.join(tmpDir, 'agents', 'foo.md'), '');
|
|
147
|
+
fs.writeFileSync(path.join(tmpDir, 'mcp-config.json'), '{}');
|
|
148
|
+
const files = (0, cleanup_js_1.listPocketFiles)(tmpDir);
|
|
149
|
+
strict_1.default.ok(files.includes('agents/foo.md'), 'should include agents/foo.md');
|
|
150
|
+
strict_1.default.ok(files.includes('mcp-config.json'), 'should include mcp-config.json');
|
|
151
|
+
strict_1.default.ok(!files.some((f) => f.startsWith('.git')), 'should exclude .git');
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
(0, node_test_1.it)('returns sorted results', () => {
|
|
158
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'mcpocket-cleanup-test-'));
|
|
159
|
+
try {
|
|
160
|
+
fs.writeFileSync(path.join(tmpDir, 'b.md'), '');
|
|
161
|
+
fs.writeFileSync(path.join(tmpDir, 'a.md'), '');
|
|
162
|
+
const files = (0, cleanup_js_1.listPocketFiles)(tmpDir);
|
|
163
|
+
strict_1.default.deepEqual(files, ['a.md', 'b.md']);
|
|
164
|
+
}
|
|
165
|
+
finally {
|
|
166
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
//# sourceMappingURL=cleanup.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.test.js","sourceRoot":"","sources":["../../src/commands/cleanup.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export interface McpocketConfig {
|
|
|
11
11
|
gistUrl?: string;
|
|
12
12
|
syncCategories?: SyncCategory[];
|
|
13
13
|
syncProviders?: string[];
|
|
14
|
+
cleanupInclude?: string[];
|
|
15
|
+
cleanupExclude?: string[];
|
|
14
16
|
}
|
|
15
17
|
export declare function configExists(): boolean;
|
|
16
18
|
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;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;
|
|
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;IAEzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;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.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,oCAEC;AAED,gCAaC;AAED,kCAQC;AAGD,0CAEC;AA3DD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,+CAA+E;AAIlE,QAAA,mBAAmB,GAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAoB3F,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/storage/github.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD,yCAAyC;AACzC,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOzE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBzF;AAED,uFAAuF;AACvF,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0ChF;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/storage/github.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD,yCAAyC;AACzC,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOzE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBzF;AAED,uFAAuF;AACvF,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0ChF;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBjF;AAED,0BAA0B;AAC1B,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CASjF;AAED,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,SAAmB,GAAG,IAAI,CAiBlH;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAStD"}
|
package/dist/storage/github.js
CHANGED
|
@@ -131,6 +131,10 @@ function cloneRepo(cloneUrl, token, localDir) {
|
|
|
131
131
|
if (fs.existsSync(path.join(localDir, '.git'))) {
|
|
132
132
|
return; // already cloned
|
|
133
133
|
}
|
|
134
|
+
// If the directory exists but has no .git, remove it so git clone can proceed
|
|
135
|
+
if (fs.existsSync(localDir)) {
|
|
136
|
+
fs.rmSync(localDir, { recursive: true, force: true });
|
|
137
|
+
}
|
|
134
138
|
// Inject token into clone URL: https://token@github.com/...
|
|
135
139
|
const authUrl = cloneUrl.replace('https://', `https://${token}@`);
|
|
136
140
|
const parentDir = path.dirname(localDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/storage/github.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,oDAOC;AAMD,0CAsBC;AAGD,gCA0CC;AAGD,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/storage/github.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/prompt.d.ts
CHANGED
|
@@ -5,9 +5,18 @@ export interface MultiSelectOption<T> {
|
|
|
5
5
|
value: T;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Interactive multi-select with keyboard navigation.
|
|
9
|
+
*
|
|
10
|
+
* Controls:
|
|
11
|
+
* ↑ / k — move cursor up
|
|
12
|
+
* ↓ / j — move cursor down
|
|
13
|
+
* space — toggle item
|
|
14
|
+
* a — toggle all on / all off
|
|
15
|
+
* enter — confirm selection
|
|
16
|
+
* ctrl+c — exit
|
|
17
|
+
*
|
|
18
|
+
* Falls back to numbered comma-separated input when stdin is not a TTY
|
|
19
|
+
* (e.g. piped input, CI environments).
|
|
11
20
|
*/
|
|
12
21
|
export declare function askMultiSelect<T>(question: string, options: MultiSelectOption<T>[]): Promise<T[]>;
|
|
13
22
|
/** Prompt for a hidden password (no echo) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAGA,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQrD;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAGA,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQrD;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAC9B,OAAO,CAAC,CAAC,EAAE,CAAC,CAgHd;AAsCD,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmC3D"}
|
package/dist/utils/prompt.js
CHANGED
|
@@ -49,11 +49,122 @@ function ask(question) {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
52
|
+
* Interactive multi-select with keyboard navigation.
|
|
53
|
+
*
|
|
54
|
+
* Controls:
|
|
55
|
+
* ↑ / k — move cursor up
|
|
56
|
+
* ↓ / j — move cursor down
|
|
57
|
+
* space — toggle item
|
|
58
|
+
* a — toggle all on / all off
|
|
59
|
+
* enter — confirm selection
|
|
60
|
+
* ctrl+c — exit
|
|
61
|
+
*
|
|
62
|
+
* Falls back to numbered comma-separated input when stdin is not a TTY
|
|
63
|
+
* (e.g. piped input, CI environments).
|
|
55
64
|
*/
|
|
56
65
|
async function askMultiSelect(question, options) {
|
|
66
|
+
if (options.length === 0)
|
|
67
|
+
return [];
|
|
68
|
+
if (!process.stdin.isTTY) {
|
|
69
|
+
return askMultiSelectLegacy(question, options);
|
|
70
|
+
}
|
|
71
|
+
// Start with everything selected — user deselects what they don't want.
|
|
72
|
+
const selected = new Set(options.map((_, i) => i));
|
|
73
|
+
let cursor = 0;
|
|
74
|
+
let initialRender = true;
|
|
75
|
+
// question line + one line per option + hint line
|
|
76
|
+
const BLOCK_LINES = options.length + 2;
|
|
77
|
+
function render() {
|
|
78
|
+
if (!initialRender) {
|
|
79
|
+
// Jump back to the first line of our block
|
|
80
|
+
process.stdout.write(`\x1b[${BLOCK_LINES}F`);
|
|
81
|
+
}
|
|
82
|
+
initialRender = false;
|
|
83
|
+
// Question
|
|
84
|
+
process.stdout.write(`\x1b[2K ${question}\n`);
|
|
85
|
+
// Options
|
|
86
|
+
for (let i = 0; i < options.length; i++) {
|
|
87
|
+
const isActive = i === cursor;
|
|
88
|
+
const isSelected = selected.has(i);
|
|
89
|
+
const pointer = isActive ? sparkle_js_1.c.cyan('❯') : ' ';
|
|
90
|
+
const checkbox = isSelected ? sparkle_js_1.c.green('◉') : sparkle_js_1.c.dim('○');
|
|
91
|
+
const label = isActive ? sparkle_js_1.c.bold(options[i].label) : options[i].label;
|
|
92
|
+
process.stdout.write(`\x1b[2K ${pointer} ${checkbox} ${label}\n`);
|
|
93
|
+
}
|
|
94
|
+
// Hint
|
|
95
|
+
process.stdout.write(`\x1b[2K${sparkle_js_1.c.dim(' ↑↓ navigate space toggle a toggle all enter confirm')}\n`);
|
|
96
|
+
}
|
|
97
|
+
// Hide cursor while navigating
|
|
98
|
+
process.stdout.write('\x1b[?25l');
|
|
99
|
+
render();
|
|
100
|
+
return new Promise((resolve) => {
|
|
101
|
+
process.stdin.setRawMode(true);
|
|
102
|
+
process.stdin.resume();
|
|
103
|
+
process.stdin.setEncoding('utf8');
|
|
104
|
+
function cleanup() {
|
|
105
|
+
process.stdin.removeListener('data', onData);
|
|
106
|
+
process.stdin.setRawMode(false);
|
|
107
|
+
process.stdin.pause();
|
|
108
|
+
process.stdout.write('\x1b[?25h'); // restore cursor
|
|
109
|
+
}
|
|
110
|
+
function onData(key) {
|
|
111
|
+
// Ctrl+C — abort
|
|
112
|
+
if (key === '\u0003') {
|
|
113
|
+
cleanup();
|
|
114
|
+
process.stdout.write('\n');
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
// Enter — confirm
|
|
118
|
+
if (key === '\r' || key === '\n') {
|
|
119
|
+
cleanup();
|
|
120
|
+
process.stdout.write('\n');
|
|
121
|
+
resolve(options.filter((_, i) => selected.has(i)).map((o) => o.value));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Space — toggle current item
|
|
125
|
+
if (key === ' ') {
|
|
126
|
+
if (selected.has(cursor)) {
|
|
127
|
+
selected.delete(cursor);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
selected.add(cursor);
|
|
131
|
+
}
|
|
132
|
+
render();
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// a / A — toggle all on or all off
|
|
136
|
+
if (key === 'a' || key === 'A') {
|
|
137
|
+
if (selected.size === options.length) {
|
|
138
|
+
selected.clear();
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
for (let i = 0; i < options.length; i++)
|
|
142
|
+
selected.add(i);
|
|
143
|
+
}
|
|
144
|
+
render();
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
// Arrow up or k — move cursor up (wraps)
|
|
148
|
+
if (key === '\x1b[A' || key === 'k') {
|
|
149
|
+
cursor = (cursor - 1 + options.length) % options.length;
|
|
150
|
+
render();
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
// Arrow down or j — move cursor down (wraps)
|
|
154
|
+
if (key === '\x1b[B' || key === 'j') {
|
|
155
|
+
cursor = (cursor + 1) % options.length;
|
|
156
|
+
render();
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
process.stdin.on('data', onData);
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Fallback for non-TTY environments: numbered list with comma-separated input.
|
|
165
|
+
* Enter with no input selects all.
|
|
166
|
+
*/
|
|
167
|
+
async function askMultiSelectLegacy(question, options) {
|
|
57
168
|
console.log(`\n ${question}`);
|
|
58
169
|
options.forEach((opt, i) => {
|
|
59
170
|
console.log(` ${sparkle_js_1.c.cyan(`[${i + 1}]`)} ${opt.label}`);
|
package/dist/utils/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kBAQC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcpocket",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Your AI setup. Every pocket. Syncs agents, skills, plugins, and MCPs across all your machines like magic.",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"build": "tsc",
|
|
11
11
|
"dev": "tsc --watch",
|
|
12
|
+
"test": "npm run build && node --test dist/commands/cleanup.test.js",
|
|
12
13
|
"prepublishOnly": "pnpm build"
|
|
13
14
|
},
|
|
14
15
|
"files": [
|