coding-friend-cli 1.20.1 → 1.21.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/{chunk-V23HBD3E.js → chunk-3KXYEC2T.js} +6 -4
- package/dist/{chunk-JFGLNTZI.js → chunk-5UEY7HQX.js} +6 -4
- package/dist/chunk-5UVDWG5L.js +28 -0
- package/dist/{chunk-C5LYVVEI.js → chunk-BIX7AJU3.js} +6 -4
- package/dist/{chunk-RWUTFVRB.js → chunk-DO6FV6BL.js} +4 -30
- package/dist/{chunk-CYQU33FY.js → chunk-EVGXUDX4.js} +2 -1
- package/dist/{chunk-7CAIGH2Y.js → chunk-HEBLANJO.js} +37 -1
- package/dist/{chunk-PHQK2MMO.js → chunk-PDVSGGH6.js} +8 -6
- package/dist/{chunk-POC2WHU2.js → chunk-PRIH34UB.js} +4 -0
- package/dist/{chunk-NEQZP5D4.js → chunk-PYTEAC6K.js} +3 -1
- package/dist/{chunk-QMD7P67N.js → chunk-SIQJPT47.js} +5 -3
- package/dist/{chunk-ORACWEDN.js → chunk-TRIALFOQ.js} +17 -10
- package/dist/{config-RLSM3UAF.js → config-5I3XJEEL.js} +13 -11
- package/dist/{dev-7DLYIXBO.js → dev-4A5CTBGK.js} +13 -10
- package/dist/{disable-XYZRE3TD.js → disable-FNMRPUO7.js} +5 -4
- package/dist/{enable-3NZBQWLQ.js → enable-HUKTMK5U.js} +5 -4
- package/dist/{host-QDWBFJB2.js → host-V5O3PDCF.js} +5 -4
- package/dist/index.js +37 -31
- package/dist/{init-ONUC6QMM.js → init-3XMC6YJI.js} +33 -15
- package/dist/{install-35IWHBIS.js → install-5ZBHH2OM.js} +9 -8
- package/dist/{mcp-GFIOFXOL.js → mcp-U34LFD34.js} +5 -4
- package/dist/{memory-N6Q2ENBI.js → memory-PDENAODU.js} +10 -8
- package/dist/{permission-Z3LOBJ4X.js → permission-BEC6YZQA.js} +15 -8
- package/dist/postinstall.js +1 -1
- package/dist/{session-JGRF5SNX.js → session-ZDJ2APGL.js} +25 -13
- package/dist/{status-WK3TBDN7.js → status-F6WASK7N.js} +14 -12
- package/dist/{statusline-6Y2EBAFQ.js → statusline-AISH77XP.js} +10 -4
- package/dist/{uninstall-NNCEKPIE.js → uninstall-RJ6SBB76.js} +10 -8
- package/dist/update-536C3YG7.js +22 -0
- package/dist/update-check-L5TNWT2J.js +91 -0
- package/package.json +1 -1
- package/dist/update-NZ2HRWEN.js +0 -21
|
@@ -6,13 +6,15 @@ import {
|
|
|
6
6
|
askScope,
|
|
7
7
|
formatScopeLabel,
|
|
8
8
|
injectBackChoice
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BIX7AJU3.js";
|
|
10
10
|
import {
|
|
11
|
-
globalConfigPath,
|
|
12
|
-
localConfigPath,
|
|
13
11
|
mergeJson,
|
|
14
12
|
readJson
|
|
15
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5UVDWG5L.js";
|
|
14
|
+
import {
|
|
15
|
+
globalConfigPath,
|
|
16
|
+
localConfigPath
|
|
17
|
+
} from "./chunk-DO6FV6BL.js";
|
|
16
18
|
import {
|
|
17
19
|
log
|
|
18
20
|
} from "./chunk-W5CD7WTX.js";
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
readJson,
|
|
3
|
+
writeJson
|
|
4
|
+
} from "./chunk-5UVDWG5L.js";
|
|
1
5
|
import {
|
|
2
6
|
claudeLocalSettingsPath,
|
|
3
7
|
claudeProjectSettingsPath,
|
|
4
8
|
claudeSettingsPath,
|
|
5
9
|
installedPluginsPath,
|
|
6
|
-
knownMarketplacesPath
|
|
7
|
-
|
|
8
|
-
writeJson
|
|
9
|
-
} from "./chunk-RWUTFVRB.js";
|
|
10
|
+
knownMarketplacesPath
|
|
11
|
+
} from "./chunk-DO6FV6BL.js";
|
|
10
12
|
|
|
11
13
|
// src/lib/plugin-state.ts
|
|
12
14
|
var MARKETPLACE_NAME = "coding-friend-marketplace";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// src/lib/json.ts
|
|
2
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs";
|
|
3
|
+
import { dirname } from "path";
|
|
4
|
+
function readJson(filePath) {
|
|
5
|
+
try {
|
|
6
|
+
const content = readFileSync(filePath, "utf-8");
|
|
7
|
+
return JSON.parse(content);
|
|
8
|
+
} catch {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function writeJson(filePath, data) {
|
|
13
|
+
const dir = dirname(filePath);
|
|
14
|
+
if (!existsSync(dir)) {
|
|
15
|
+
mkdirSync(dir, { recursive: true });
|
|
16
|
+
}
|
|
17
|
+
writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n", "utf-8");
|
|
18
|
+
}
|
|
19
|
+
function mergeJson(filePath, data) {
|
|
20
|
+
const existing = readJson(filePath) ?? {};
|
|
21
|
+
writeJson(filePath, { ...existing, ...data });
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
readJson,
|
|
26
|
+
writeJson,
|
|
27
|
+
mergeJson
|
|
28
|
+
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
run
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EVGXUDX4.js";
|
|
4
4
|
import {
|
|
5
|
-
globalConfigPath,
|
|
6
|
-
localConfigPath,
|
|
7
5
|
readJson
|
|
8
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5UVDWG5L.js";
|
|
7
|
+
import {
|
|
8
|
+
globalConfigPath,
|
|
9
|
+
localConfigPath
|
|
10
|
+
} from "./chunk-DO6FV6BL.js";
|
|
9
11
|
import {
|
|
10
12
|
log
|
|
11
13
|
} from "./chunk-W5CD7WTX.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// src/lib/paths.ts
|
|
2
2
|
import { homedir } from "os";
|
|
3
|
-
import { resolve, join } from "path";
|
|
3
|
+
import { resolve, join, isAbsolute } from "path";
|
|
4
4
|
function resolvePath(p, base = process.cwd()) {
|
|
5
|
-
if (p
|
|
5
|
+
if (isAbsolute(p)) return p;
|
|
6
6
|
if (p.startsWith("~/")) return join(homedir(), p.slice(2));
|
|
7
7
|
return resolve(base, p);
|
|
8
8
|
}
|
|
@@ -62,7 +62,7 @@ function globalConfigDir() {
|
|
|
62
62
|
return join(homedir(), ".coding-friend");
|
|
63
63
|
}
|
|
64
64
|
function encodeProjectPath(absolutePath) {
|
|
65
|
-
return absolutePath.replace(
|
|
65
|
+
return absolutePath.replace(/[\\/:]/g, "-");
|
|
66
66
|
}
|
|
67
67
|
function claudeProjectsDir() {
|
|
68
68
|
return join(homedir(), ".claude", "projects");
|
|
@@ -71,29 +71,6 @@ function claudeSessionDir(encodedPath) {
|
|
|
71
71
|
return join(claudeProjectsDir(), encodedPath);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
// src/lib/json.ts
|
|
75
|
-
import { readFileSync, writeFileSync, mkdirSync, existsSync } from "fs";
|
|
76
|
-
import { dirname } from "path";
|
|
77
|
-
function readJson(filePath) {
|
|
78
|
-
try {
|
|
79
|
-
const content = readFileSync(filePath, "utf-8");
|
|
80
|
-
return JSON.parse(content);
|
|
81
|
-
} catch {
|
|
82
|
-
return null;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
function writeJson(filePath, data) {
|
|
86
|
-
const dir = dirname(filePath);
|
|
87
|
-
if (!existsSync(dir)) {
|
|
88
|
-
mkdirSync(dir, { recursive: true });
|
|
89
|
-
}
|
|
90
|
-
writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n", "utf-8");
|
|
91
|
-
}
|
|
92
|
-
function mergeJson(filePath, data) {
|
|
93
|
-
const existing = readJson(filePath) ?? {};
|
|
94
|
-
writeJson(filePath, { ...existing, ...data });
|
|
95
|
-
}
|
|
96
|
-
|
|
97
74
|
export {
|
|
98
75
|
resolvePath,
|
|
99
76
|
localConfigPath,
|
|
@@ -109,8 +86,5 @@ export {
|
|
|
109
86
|
marketplaceClonePath,
|
|
110
87
|
globalConfigDir,
|
|
111
88
|
encodeProjectPath,
|
|
112
|
-
claudeSessionDir
|
|
113
|
-
readJson,
|
|
114
|
-
writeJson,
|
|
115
|
-
mergeJson
|
|
89
|
+
claudeSessionDir
|
|
116
90
|
};
|
|
@@ -43,7 +43,8 @@ function sleepSync(ms) {
|
|
|
43
43
|
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
44
44
|
}
|
|
45
45
|
function commandExists(cmd) {
|
|
46
|
-
|
|
46
|
+
const checker = process.platform === "win32" ? "where" : "which";
|
|
47
|
+
return run(checker, [cmd]) !== null;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readJson,
|
|
3
3
|
writeJson
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5UVDWG5L.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/permissions.ts
|
|
7
7
|
import { homedir } from "os";
|
|
@@ -152,6 +152,37 @@ var STATIC_RULES = [
|
|
|
152
152
|
category: "Git",
|
|
153
153
|
recommended: true
|
|
154
154
|
},
|
|
155
|
+
// Git Compound Commands (cd + read-only git, used by subagents like /cf-review)
|
|
156
|
+
{
|
|
157
|
+
rule: "Bash(cd * && git status *)",
|
|
158
|
+
description: "[read-only] Check working tree status in another dir \xB7 Used by: /cf-review subagent",
|
|
159
|
+
category: "Git",
|
|
160
|
+
recommended: true
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
rule: "Bash(cd * && git diff *)",
|
|
164
|
+
description: "[read-only] View file changes in another dir \xB7 Used by: /cf-review subagent",
|
|
165
|
+
category: "Git",
|
|
166
|
+
recommended: true
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
rule: "Bash(cd * && git log *)",
|
|
170
|
+
description: "[read-only] View commit history in another dir \xB7 Used by: /cf-review subagent",
|
|
171
|
+
category: "Git",
|
|
172
|
+
recommended: true
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
rule: "Bash(cd * && git branch *)",
|
|
176
|
+
description: "[read-only] List branches in another dir \xB7 Used by: /cf-review subagent",
|
|
177
|
+
category: "Git",
|
|
178
|
+
recommended: true
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
rule: "Bash(cd * && git rev-parse *)",
|
|
182
|
+
description: "[read-only] Check git repo state in another dir \xB7 Used by: /cf-review subagent",
|
|
183
|
+
category: "Git",
|
|
184
|
+
recommended: true
|
|
185
|
+
},
|
|
155
186
|
// GitHub CLI
|
|
156
187
|
{
|
|
157
188
|
rule: "Bash(gh pr *)",
|
|
@@ -332,6 +363,10 @@ function groupByCategory(rules) {
|
|
|
332
363
|
}
|
|
333
364
|
return groups;
|
|
334
365
|
}
|
|
366
|
+
function extractTag(description) {
|
|
367
|
+
const match = description.match(/^(\[[^\]]+\])/);
|
|
368
|
+
return match ? match[1] : null;
|
|
369
|
+
}
|
|
335
370
|
var OLD_PLUGIN_PATH_PATTERN = "/.claude/plugins/cache/coding-friend-marketplace/coding-friend/";
|
|
336
371
|
function cleanupStalePluginRules(settingsPath) {
|
|
337
372
|
const existing = getExistingRules(settingsPath);
|
|
@@ -360,6 +395,7 @@ export {
|
|
|
360
395
|
buildLearnDirRules,
|
|
361
396
|
applyPermissions,
|
|
362
397
|
groupByCategory,
|
|
398
|
+
extractTag,
|
|
363
399
|
cleanupStalePluginRules,
|
|
364
400
|
logPluginScriptWarning
|
|
365
401
|
};
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ensureStatusline,
|
|
3
3
|
getInstalledVersion
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TRIALFOQ.js";
|
|
5
5
|
import {
|
|
6
6
|
ensureShellCompletion
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PYTEAC6K.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveScope
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-BIX7AJU3.js";
|
|
11
11
|
import {
|
|
12
12
|
commandExists,
|
|
13
13
|
run,
|
|
14
14
|
runWithStderr,
|
|
15
15
|
sleepSync
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-EVGXUDX4.js";
|
|
17
17
|
import {
|
|
18
|
-
claudeSettingsPath,
|
|
19
18
|
readJson
|
|
20
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-5UVDWG5L.js";
|
|
20
|
+
import {
|
|
21
|
+
claudeSettingsPath
|
|
22
|
+
} from "./chunk-DO6FV6BL.js";
|
|
21
23
|
import {
|
|
22
24
|
log
|
|
23
25
|
} from "./chunk-W5CD7WTX.js";
|
|
@@ -4,6 +4,10 @@ var STATUSLINE_COMPONENTS = [
|
|
|
4
4
|
{ id: "folder", label: "Project name (MyProject)" },
|
|
5
5
|
{ id: "model", label: "Active model (Opus 4.6)" },
|
|
6
6
|
{ id: "branch", label: "Git branch (\u2387 main)" },
|
|
7
|
+
{
|
|
8
|
+
id: "account",
|
|
9
|
+
label: "Account info \u2014 name, email & org (from ~/.claude.json)"
|
|
10
|
+
},
|
|
7
11
|
{ id: "context", label: "Context window usage (ctx 42%)" },
|
|
8
12
|
{
|
|
9
13
|
id: "rate_limit",
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
writeFileSync
|
|
13
13
|
} from "fs";
|
|
14
14
|
import { homedir } from "os";
|
|
15
|
-
import { basename, join } from "path";
|
|
15
|
+
import { basename, dirname, join } from "path";
|
|
16
16
|
var MARKER_START = "# >>> coding-friend CLI completion >>>";
|
|
17
17
|
var MARKER_END = "# <<< coding-friend CLI completion <<<";
|
|
18
18
|
var BASH_BLOCK = `
|
|
@@ -387,6 +387,8 @@ function ensureShellCompletion(opts) {
|
|
|
387
387
|
return true;
|
|
388
388
|
}
|
|
389
389
|
}
|
|
390
|
+
const rcDir = dirname(rcPath);
|
|
391
|
+
if (!existsSync(rcDir)) mkdirSync(rcDir, { recursive: true });
|
|
390
392
|
appendFileSync(rcPath, newBlock);
|
|
391
393
|
if (!opts?.silent) {
|
|
392
394
|
log.success(`Tab completion added to ~/${rcName}`);
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_CONFIG
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PRIH34UB.js";
|
|
4
|
+
import {
|
|
5
|
+
readJson
|
|
6
|
+
} from "./chunk-5UVDWG5L.js";
|
|
4
7
|
import {
|
|
5
8
|
globalConfigPath,
|
|
6
9
|
localConfigPath,
|
|
7
|
-
readJson,
|
|
8
10
|
resolvePath
|
|
9
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DO6FV6BL.js";
|
|
10
12
|
|
|
11
13
|
// src/lib/config.ts
|
|
12
14
|
function deepMerge(base, override) {
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ALL_COMPONENT_IDS,
|
|
3
3
|
STATUSLINE_COMPONENTS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PRIH34UB.js";
|
|
5
5
|
import {
|
|
6
|
-
claudeSettingsPath,
|
|
7
|
-
globalConfigPath,
|
|
8
|
-
installedPluginsPath,
|
|
9
6
|
mergeJson,
|
|
10
|
-
pluginCachePath,
|
|
11
7
|
readJson,
|
|
12
8
|
writeJson
|
|
13
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5UVDWG5L.js";
|
|
10
|
+
import {
|
|
11
|
+
claudeSettingsPath,
|
|
12
|
+
globalConfigPath,
|
|
13
|
+
installedPluginsPath,
|
|
14
|
+
pluginCachePath
|
|
15
|
+
} from "./chunk-DO6FV6BL.js";
|
|
14
16
|
|
|
15
17
|
// src/lib/statusline.ts
|
|
16
18
|
import { existsSync, readdirSync } from "fs";
|
|
19
|
+
import { join } from "path";
|
|
17
20
|
import { checkbox } from "@inquirer/prompts";
|
|
18
21
|
function getInstalledVersion() {
|
|
19
22
|
const data = readJson(installedPluginsPath());
|
|
@@ -41,12 +44,12 @@ function findStatuslineHookPath() {
|
|
|
41
44
|
const cachePath = pluginCachePath();
|
|
42
45
|
const installed = getInstalledVersion();
|
|
43
46
|
if (installed) {
|
|
44
|
-
const hookPath2 =
|
|
47
|
+
const hookPath2 = join(cachePath, installed, "hooks", "statusline.sh");
|
|
45
48
|
if (existsSync(hookPath2)) return { hookPath: hookPath2, version: installed };
|
|
46
49
|
}
|
|
47
50
|
const latest = findLatestVersion();
|
|
48
51
|
if (!latest) return null;
|
|
49
|
-
const hookPath =
|
|
52
|
+
const hookPath = join(cachePath, latest, "hooks", "statusline.sh");
|
|
50
53
|
if (!existsSync(hookPath)) return null;
|
|
51
54
|
return { hookPath, version: latest };
|
|
52
55
|
}
|
|
@@ -73,12 +76,16 @@ async function selectStatuslineComponents(current) {
|
|
|
73
76
|
function saveStatuslineConfig(components) {
|
|
74
77
|
mergeJson(globalConfigPath(), { statusline: { components } });
|
|
75
78
|
}
|
|
79
|
+
function buildStatuslineCommand(hookPath) {
|
|
80
|
+
const normalized = hookPath.replace(/\\/g, "/");
|
|
81
|
+
return `bash "${normalized}"`;
|
|
82
|
+
}
|
|
76
83
|
function writeStatuslineSettings(hookPath) {
|
|
77
84
|
const settingsPath = claudeSettingsPath();
|
|
78
85
|
const settings = readJson(settingsPath) ?? {};
|
|
79
86
|
settings.statusLine = {
|
|
80
87
|
type: "command",
|
|
81
|
-
command:
|
|
88
|
+
command: buildStatuslineCommand(hookPath)
|
|
82
89
|
};
|
|
83
90
|
writeJson(settingsPath, settings);
|
|
84
91
|
}
|
|
@@ -88,7 +95,7 @@ function ensureStatusline() {
|
|
|
88
95
|
const settingsPath = claudeSettingsPath();
|
|
89
96
|
const settings = readJson(settingsPath) ?? {};
|
|
90
97
|
const current = settings.statusLine?.command;
|
|
91
|
-
const expected =
|
|
98
|
+
const expected = buildStatuslineCommand(info.hookPath);
|
|
92
99
|
if (current === expected) return null;
|
|
93
100
|
settings.statusLine = { type: "command", command: expected };
|
|
94
101
|
writeJson(settingsPath, settings);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
memoryConfigMenu
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3KXYEC2T.js";
|
|
4
4
|
import {
|
|
5
5
|
getAllRules,
|
|
6
6
|
getExistingRules
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HEBLANJO.js";
|
|
8
8
|
import "./chunk-RZRT7NGT.js";
|
|
9
9
|
import {
|
|
10
10
|
findStatuslineHookPath,
|
|
@@ -12,16 +12,16 @@ import {
|
|
|
12
12
|
saveStatuslineConfig,
|
|
13
13
|
selectStatuslineComponents,
|
|
14
14
|
writeStatuslineSettings
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-TRIALFOQ.js";
|
|
16
16
|
import {
|
|
17
17
|
ALL_COMPONENT_IDS,
|
|
18
18
|
DEFAULT_CONFIG
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-PRIH34UB.js";
|
|
20
20
|
import {
|
|
21
21
|
ensureShellCompletion,
|
|
22
22
|
hasShellCompletion,
|
|
23
23
|
removeShellCompletion
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-PYTEAC6K.js";
|
|
25
25
|
import {
|
|
26
26
|
BACK,
|
|
27
27
|
applyDocsDirChange,
|
|
@@ -31,19 +31,21 @@ import {
|
|
|
31
31
|
getScopeLabel,
|
|
32
32
|
injectBackChoice,
|
|
33
33
|
showConfigHint
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-BIX7AJU3.js";
|
|
35
35
|
import {
|
|
36
36
|
run
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-EVGXUDX4.js";
|
|
38
|
+
import {
|
|
39
|
+
mergeJson,
|
|
40
|
+
readJson
|
|
41
|
+
} from "./chunk-5UVDWG5L.js";
|
|
38
42
|
import {
|
|
39
43
|
claudeLocalSettingsPath,
|
|
40
44
|
claudeSettingsPath,
|
|
41
45
|
globalConfigPath,
|
|
42
46
|
localConfigPath,
|
|
43
|
-
mergeJson,
|
|
44
|
-
readJson,
|
|
45
47
|
resolvePath
|
|
46
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-DO6FV6BL.js";
|
|
47
49
|
import {
|
|
48
50
|
log
|
|
49
51
|
} from "./chunk-W5CD7WTX.js";
|
|
@@ -540,7 +542,7 @@ async function editPermissions() {
|
|
|
540
542
|
)
|
|
541
543
|
});
|
|
542
544
|
if (choice === BACK) return;
|
|
543
|
-
const { permissionCommand } = await import("./permission-
|
|
545
|
+
const { permissionCommand } = await import("./permission-BEC6YZQA.js");
|
|
544
546
|
switch (choice) {
|
|
545
547
|
case "interactive":
|
|
546
548
|
await permissionCommand({});
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isMarketplaceRegistered,
|
|
3
3
|
isPluginInstalled
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5UEY7HQX.js";
|
|
5
5
|
import {
|
|
6
6
|
ensureStatusline
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-TRIALFOQ.js";
|
|
8
|
+
import "./chunk-PRIH34UB.js";
|
|
9
9
|
import {
|
|
10
10
|
ensureShellCompletion
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PYTEAC6K.js";
|
|
12
12
|
import {
|
|
13
13
|
commandExists,
|
|
14
14
|
run
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-EVGXUDX4.js";
|
|
16
16
|
import {
|
|
17
|
-
devStatePath,
|
|
18
|
-
knownMarketplacesPath,
|
|
19
|
-
pluginCachePath,
|
|
20
17
|
readJson,
|
|
21
18
|
writeJson
|
|
22
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-5UVDWG5L.js";
|
|
20
|
+
import {
|
|
21
|
+
devStatePath,
|
|
22
|
+
knownMarketplacesPath,
|
|
23
|
+
pluginCachePath
|
|
24
|
+
} from "./chunk-DO6FV6BL.js";
|
|
23
25
|
import {
|
|
24
26
|
log
|
|
25
27
|
} from "./chunk-W5CD7WTX.js";
|
|
@@ -34,6 +36,7 @@ import {
|
|
|
34
36
|
copyFileSync
|
|
35
37
|
} from "fs";
|
|
36
38
|
import { resolve, join } from "path";
|
|
39
|
+
import { homedir } from "os";
|
|
37
40
|
import chalk from "chalk";
|
|
38
41
|
var REMOTE_URL = "https://github.com/dinhanhthi/coding-friend.git";
|
|
39
42
|
var MARKETPLACE_NAME = "coding-friend-marketplace";
|
|
@@ -249,7 +252,7 @@ async function devSyncCommand() {
|
|
|
249
252
|
);
|
|
250
253
|
return;
|
|
251
254
|
}
|
|
252
|
-
const shortDest = cacheVersionDir.replace(
|
|
255
|
+
const shortDest = cacheVersionDir.replace(homedir(), "~");
|
|
253
256
|
log.step(`Syncing ${chalk.cyan(pluginSrcDir)} \u2192 ${chalk.dim(shortDest)}`);
|
|
254
257
|
const fileCount = { n: 0 };
|
|
255
258
|
copyDirRecursive(pluginSrcDir, cacheVersionDir, fileCount);
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isPluginDisabled,
|
|
3
3
|
setPluginEnabled
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5UEY7HQX.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveScope
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-BIX7AJU3.js";
|
|
8
|
+
import "./chunk-EVGXUDX4.js";
|
|
9
|
+
import "./chunk-5UVDWG5L.js";
|
|
10
|
+
import "./chunk-DO6FV6BL.js";
|
|
10
11
|
import {
|
|
11
12
|
log
|
|
12
13
|
} from "./chunk-W5CD7WTX.js";
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isPluginDisabled,
|
|
3
3
|
setPluginEnabled
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5UEY7HQX.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveScope
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-BIX7AJU3.js";
|
|
8
|
+
import "./chunk-EVGXUDX4.js";
|
|
9
|
+
import "./chunk-5UVDWG5L.js";
|
|
10
|
+
import "./chunk-DO6FV6BL.js";
|
|
10
11
|
import {
|
|
11
12
|
log
|
|
12
13
|
} from "./chunk-W5CD7WTX.js";
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveDocsDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SIQJPT47.js";
|
|
4
4
|
import {
|
|
5
5
|
getLibPath
|
|
6
6
|
} from "./chunk-RZRT7NGT.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-PRIH34UB.js";
|
|
8
8
|
import {
|
|
9
9
|
run,
|
|
10
10
|
streamExec
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-EVGXUDX4.js";
|
|
12
|
+
import "./chunk-5UVDWG5L.js";
|
|
13
|
+
import "./chunk-DO6FV6BL.js";
|
|
13
14
|
import {
|
|
14
15
|
log
|
|
15
16
|
} from "./chunk-W5CD7WTX.js";
|