coding-friend-cli 1.39.0 → 1.40.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.
Files changed (40) hide show
  1. package/README.md +5 -0
  2. package/dist/{chunk-ODW27NAC.js → chunk-B44ROTV6.js} +10 -10
  3. package/dist/{chunk-ZGIUKUL2.js → chunk-CZW36H3D.js} +39 -7
  4. package/dist/{chunk-FQUIO5BW.js → chunk-E4NBTQXR.js} +13 -7
  5. package/dist/{chunk-IV5OPG34.js → chunk-IYBIIRH4.js} +29 -1
  6. package/dist/{chunk-GTOEIGDM.js → chunk-KCBMCHSA.js} +295 -44
  7. package/dist/{chunk-463QKRBN.js → chunk-KG6HYBGD.js} +23 -7
  8. package/dist/{chunk-WJHQUCOF.js → chunk-KTUPGMIV.js} +111 -15
  9. package/dist/{chunk-7JQZRMOG.js → chunk-NIMO4VJW.js} +37 -6
  10. package/dist/{chunk-OFEC6OVI.js → chunk-OBCNHQFA.js} +42 -2
  11. package/dist/{chunk-4CPUWHIN.js → chunk-Q2QDSYQT.js} +1 -1
  12. package/dist/{chunk-JSH6BMVZ.js → chunk-RG3EMZH6.js} +11 -1
  13. package/dist/{chunk-2EY7VVFT.js → chunk-SUYE5S2W.js} +1 -1
  14. package/dist/{chunk-YPW67OGP.js → chunk-TFF47F7P.js} +1 -1
  15. package/dist/{chunk-ZZNTNIM4.js → chunk-TN3Y75WG.js} +2 -2
  16. package/dist/{chunk-VMODQCSL.js → chunk-Z5XTSF7L.js} +5 -5
  17. package/dist/{clean-LPWEBJJ5.js → clean-PKSSS662.js} +3 -3
  18. package/dist/{config-VNSC2NAY.js → config-2CH4GI2L.js} +47 -26
  19. package/dist/{dev-NRTDUQAR.js → dev-HWKNWOZY.js} +7 -7
  20. package/dist/{disable-NROSQUHR.js → disable-DCGVIHKG.js} +22 -8
  21. package/dist/{enable-26FFJGX5.js → enable-YYWJDOYB.js} +21 -8
  22. package/dist/{guide-HCLEOAGR.js → guide-45EIK76P.js} +1 -1
  23. package/dist/{host-2JOPHLN3.js → host-GZJSMJSF.js} +7 -7
  24. package/dist/index.js +67 -46
  25. package/dist/{init-MHHII5EP.js → init-TUBWQCBQ.js} +236 -53
  26. package/dist/{install-OEFJLAWA.js → install-45O5ICBA.js} +68 -11
  27. package/dist/{learn-SSNBBDY3.js → learn-AJT7Z6F7.js} +5 -5
  28. package/dist/{mcp-J5VO3OH7.js → mcp-JGBZMNWL.js} +26 -13
  29. package/dist/{mcp-serve-55DSE2J4.js → mcp-serve-SHS5MQRW.js} +5 -5
  30. package/dist/{mcp-serve-learn-EDBWNL4I.js → mcp-serve-learn-HXZZ3DUI.js} +6 -6
  31. package/dist/{memory-CDZKWOFL.js → memory-4NVLWOFS.js} +10 -10
  32. package/dist/{permission-DPKPA2HU.js → permission-L5QMNMID.js} +25 -25
  33. package/dist/{session-YWJDLNBP.js → session-GBHL5TH3.js} +3 -3
  34. package/dist/{status-4WMIQL7L.js → status-KQQJNSEZ.js} +33 -15
  35. package/dist/{statusline-R5BNYK3H.js → statusline-B7PXP3AQ.js} +3 -3
  36. package/dist/{uninstall-EV7362NK.js → uninstall-6QKNGLKK.js} +38 -13
  37. package/dist/{update-YQBBAIIF.js → update-YJ363TBU.js} +11 -11
  38. package/dist/{update-check-EJSGVGO6.js → update-check-5JZUJGUM.js} +1 -1
  39. package/package.json +1 -1
  40. package/dist/permissions-HZYUVKCY.js +0 -38
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  resolveProjectMemoryDir
3
- } from "./chunk-FQUIO5BW.js";
3
+ } from "./chunk-E4NBTQXR.js";
4
4
  import "./chunk-3WIZA5OZ.js";
5
5
  import {
6
6
  getLibPath
7
- } from "./chunk-ZZNTNIM4.js";
8
- import "./chunk-OFEC6OVI.js";
9
- import "./chunk-EVGXUDX4.js";
7
+ } from "./chunk-TN3Y75WG.js";
8
+ import "./chunk-OBCNHQFA.js";
10
9
  import "./chunk-5UVDWG5L.js";
11
- import "./chunk-IV5OPG34.js";
10
+ import "./chunk-EVGXUDX4.js";
11
+ import "./chunk-IYBIIRH4.js";
12
12
  import {
13
13
  log
14
14
  } from "./chunk-NREZK463.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  getLibPath
3
- } from "./chunk-ZZNTNIM4.js";
4
- import "./chunk-OFEC6OVI.js";
5
- import {
6
- runWithStderr
7
- } from "./chunk-EVGXUDX4.js";
3
+ } from "./chunk-TN3Y75WG.js";
4
+ import "./chunk-OBCNHQFA.js";
8
5
  import {
9
6
  readJson
10
7
  } from "./chunk-5UVDWG5L.js";
8
+ import {
9
+ runWithStderr
10
+ } from "./chunk-EVGXUDX4.js";
11
11
  import {
12
12
  globalConfigPath
13
- } from "./chunk-IV5OPG34.js";
13
+ } from "./chunk-IYBIIRH4.js";
14
14
  import {
15
15
  log
16
16
  } from "./chunk-NREZK463.js";
@@ -14,18 +14,18 @@ import {
14
14
  memoryStopDaemonCommand,
15
15
  printMemoryMcpConfig,
16
16
  refreshMemoryAfterUpdate
17
- } from "./chunk-ODW27NAC.js";
18
- import "./chunk-YPW67OGP.js";
19
- import "./chunk-FQUIO5BW.js";
17
+ } from "./chunk-B44ROTV6.js";
18
+ import "./chunk-TFF47F7P.js";
19
+ import "./chunk-E4NBTQXR.js";
20
20
  import "./chunk-3WIZA5OZ.js";
21
- import "./chunk-ZGIUKUL2.js";
22
- import "./chunk-GTOEIGDM.js";
23
- import "./chunk-VMODQCSL.js";
24
- import "./chunk-ZZNTNIM4.js";
25
- import "./chunk-OFEC6OVI.js";
26
- import "./chunk-EVGXUDX4.js";
21
+ import "./chunk-CZW36H3D.js";
22
+ import "./chunk-KCBMCHSA.js";
23
+ import "./chunk-Z5XTSF7L.js";
24
+ import "./chunk-TN3Y75WG.js";
25
+ import "./chunk-OBCNHQFA.js";
27
26
  import "./chunk-5UVDWG5L.js";
28
- import "./chunk-IV5OPG34.js";
27
+ import "./chunk-EVGXUDX4.js";
28
+ import "./chunk-IYBIIRH4.js";
29
29
  import "./chunk-NREZK463.js";
30
30
  export {
31
31
  ensureMemoryBuilt,
@@ -1,34 +1,34 @@
1
1
  import {
2
+ AUTO_APPROVE_CROSS_HOST_NOTE,
2
3
  STATIC_RULES,
4
+ afterAutoApproveEnabled,
3
5
  applyPermissions,
4
6
  cleanupStalePluginRules,
5
7
  extractTag,
6
8
  getAllRules,
7
9
  getExistingRules,
8
10
  groupByCategory,
9
- logPluginScriptWarning,
10
- runDangerousRulesAudit
11
- } from "./chunk-463QKRBN.js";
11
+ logPluginScriptWarning
12
+ } from "./chunk-KG6HYBGD.js";
12
13
  import {
13
14
  askScope,
14
15
  formatScopeLabel,
15
16
  getMergedValue,
16
17
  getScopeLabel,
17
18
  resolveHostFlags
18
- } from "./chunk-VMODQCSL.js";
19
- import "./chunk-OFEC6OVI.js";
20
- import "./chunk-EVGXUDX4.js";
19
+ } from "./chunk-Z5XTSF7L.js";
20
+ import "./chunk-OBCNHQFA.js";
21
21
  import {
22
22
  mergeJson,
23
23
  readJson
24
24
  } from "./chunk-5UVDWG5L.js";
25
+ import "./chunk-EVGXUDX4.js";
25
26
  import {
26
27
  claudeLocalSettingsPath,
27
- claudeProjectSettingsPath,
28
28
  claudeSettingsPath,
29
29
  globalConfigPath,
30
30
  localConfigPath
31
- } from "./chunk-IV5OPG34.js";
31
+ } from "./chunk-IYBIIRH4.js";
32
32
  import {
33
33
  log,
34
34
  printBanner
@@ -184,9 +184,7 @@ async function autoApproveFlow() {
184
184
  console.log(
185
185
  chalk.bold("Auto-approve") + ` ${scopeLabel}${currentValue !== void 0 ? ` (${currentValue})` : ""}`
186
186
  );
187
- log.dim(
188
- "Auto-approves read-only tools + working-dir file edits, LLM classifier for unknowns"
189
- );
187
+ log.dim("Claude: LLM classifier; Antigravity/Codex: deterministic rules.");
190
188
  console.log();
191
189
  const value = await confirm({
192
190
  message: "Enable auto-approve?",
@@ -198,19 +196,10 @@ async function autoApproveFlow() {
198
196
  mergeJson(targetPath, { autoApprove: value });
199
197
  log.success(`Saved to ${targetPath}`);
200
198
  if (value) {
201
- await runDangerousRulesAudit(
202
- [
203
- claudeProjectSettingsPath(),
204
- claudeLocalSettingsPath(),
205
- claudeSettingsPath()
206
- ],
199
+ await afterAutoApproveEnabled(
207
200
  log,
208
201
  (message) => confirm({ message, default: true })
209
202
  );
210
- log.dim(
211
- "Tip: Fine-tune with autoApproveAllowExtra / autoApproveIgnore in config.json"
212
- );
213
- log.dim("Docs: https://cf.dinhanhthi.com/docs/reference/auto-approve/");
214
203
  }
215
204
  }
216
205
  async function permissionCommand(opts) {
@@ -226,6 +215,13 @@ async function permissionCommand(opts) {
226
215
  log.dim("See docs/omp-dev.md.");
227
216
  return;
228
217
  }
218
+ if (host === "agy") {
219
+ log.info(
220
+ "Antigravity permissions are managed natively (`/permissions` in agy); Coding Friend auto-approve is `autoApprove` in config (same key as Claude Code)"
221
+ );
222
+ log.dim(`Note: ${AUTO_APPROVE_CROSS_HOST_NOTE}`);
223
+ return;
224
+ }
229
225
  printBanner("\u2728 Coding Friend Permissions \u2728");
230
226
  console.log();
231
227
  const {
@@ -329,21 +325,25 @@ function codexPermissionCommand(opts) {
329
325
  }
330
326
  const nextValue = opts.enableAutoApprove ? true : opts.disableAutoApprove ? false : void 0;
331
327
  if (nextValue === void 0) {
332
- const cfg = readJson(localConfigPath());
333
- const current = cfg?.autoApproveCodex === true;
328
+ const globalCfg = readJson(globalConfigPath());
329
+ const localCfg = readJson(localConfigPath());
330
+ const current = getMergedValue("autoApprove", globalCfg, localCfg) === true;
334
331
  log.info(`Codex auto-approve is ${current ? "enabled" : "disabled"}.`);
335
332
  log.dim(
336
- "Use --enable-auto-approve or --disable-auto-approve to change it."
333
+ "Use --enable-auto-approve or --disable-auto-approve to change it (writes `autoApprove`)."
337
334
  );
338
335
  return;
339
336
  }
340
- mergeJson(localConfigPath(), { autoApproveCodex: nextValue });
337
+ mergeJson(localConfigPath(), { autoApprove: nextValue });
341
338
  log.success(
342
339
  `Codex auto-approve ${nextValue ? "enabled" : "disabled"} in .coding-friend/config.json.`
343
340
  );
344
341
  log.dim(
345
342
  "Codex v1 auto-approve is deterministic-only; unknown actions defer to Codex native approval."
346
343
  );
344
+ if (nextValue) {
345
+ log.dim(`Note: ${AUTO_APPROVE_CROSS_HOST_NOTE}`);
346
+ }
347
347
  }
348
348
  export {
349
349
  permissionCommand
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-FQUIO5BW.js";
3
+ } from "./chunk-E4NBTQXR.js";
4
4
  import "./chunk-3WIZA5OZ.js";
5
- import "./chunk-EVGXUDX4.js";
6
5
  import {
7
6
  readJson,
8
7
  writeJson
9
8
  } from "./chunk-5UVDWG5L.js";
9
+ import "./chunk-EVGXUDX4.js";
10
10
  import {
11
11
  claudeSessionDir,
12
12
  encodeProjectPath,
13
13
  resolvePath
14
- } from "./chunk-IV5OPG34.js";
14
+ } from "./chunk-IYBIIRH4.js";
15
15
  import {
16
16
  log
17
17
  } from "./chunk-NREZK463.js";
@@ -1,56 +1,61 @@
1
1
  import {
2
2
  getExistingRules
3
- } from "./chunk-463QKRBN.js";
3
+ } from "./chunk-KG6HYBGD.js";
4
4
  import {
5
5
  listMdFilesRecursive
6
6
  } from "./chunk-2DTXVMPQ.js";
7
7
  import {
8
8
  checkLearnMcpHealth,
9
9
  checkMemoryMcpHealth
10
- } from "./chunk-YPW67OGP.js";
10
+ } from "./chunk-TFF47F7P.js";
11
11
  import {
12
12
  resolveLearnDir,
13
13
  resolveMemoryDir,
14
14
  sanitizeRawConfig
15
- } from "./chunk-FQUIO5BW.js";
15
+ } from "./chunk-E4NBTQXR.js";
16
16
  import {
17
17
  getCliVersion,
18
18
  getLatestCliVersion,
19
19
  getLatestVersion,
20
20
  semverCompare
21
- } from "./chunk-WJHQUCOF.js";
21
+ } from "./chunk-KTUPGMIV.js";
22
22
  import {
23
23
  getInstalledVersion
24
- } from "./chunk-4CPUWHIN.js";
24
+ } from "./chunk-Q2QDSYQT.js";
25
25
  import "./chunk-3WIZA5OZ.js";
26
26
  import {
27
27
  isLearnMcpRegistered
28
- } from "./chunk-7JQZRMOG.js";
28
+ } from "./chunk-NIMO4VJW.js";
29
29
  import "./chunk-667NMPN4.js";
30
30
  import {
31
31
  isMemoryMcpRegistered
32
- } from "./chunk-ZGIUKUL2.js";
32
+ } from "./chunk-CZW36H3D.js";
33
33
  import {
34
34
  detectPluginScope,
35
35
  isPluginDisabled
36
- } from "./chunk-2EY7VVFT.js";
37
- import "./chunk-JSH6BMVZ.js";
38
- import "./chunk-GTOEIGDM.js";
39
- import "./chunk-VMODQCSL.js";
36
+ } from "./chunk-SUYE5S2W.js";
37
+ import "./chunk-RG3EMZH6.js";
38
+ import {
39
+ isAgyPluginEnabled,
40
+ isAgyPluginInstalled,
41
+ readAgyPluginVersion
42
+ } from "./chunk-KCBMCHSA.js";
43
+ import "./chunk-Z5XTSF7L.js";
40
44
  import {
41
45
  getLibPath
42
- } from "./chunk-ZZNTNIM4.js";
43
- import "./chunk-OFEC6OVI.js";
44
- import "./chunk-EVGXUDX4.js";
46
+ } from "./chunk-TN3Y75WG.js";
47
+ import "./chunk-OBCNHQFA.js";
45
48
  import {
46
49
  readJson
47
50
  } from "./chunk-5UVDWG5L.js";
51
+ import "./chunk-EVGXUDX4.js";
48
52
  import {
53
+ agyPluginDir,
49
54
  claudeSettingsPath,
50
55
  devStatePath,
51
56
  globalConfigPath,
52
57
  localConfigPath
53
- } from "./chunk-IV5OPG34.js";
58
+ } from "./chunk-IYBIIRH4.js";
54
59
  import "./chunk-NREZK463.js";
55
60
 
56
61
  // src/commands/status.ts
@@ -192,6 +197,19 @@ async function statusCommand() {
192
197
  console.log(
193
198
  `${pad("Permissions", VERSION_COL)}${rules.length} rules ${chalk.dim('\u2192 Run "cf permission" for details')}`
194
199
  );
200
+ if (!isAgyPluginInstalled()) {
201
+ console.log(
202
+ `${pad("Antigravity", VERSION_COL)}${chalk.dim("not installed")}`
203
+ );
204
+ } else {
205
+ const agyVersion = readAgyPluginVersion();
206
+ const agyEnabled = isAgyPluginEnabled();
207
+ const versionPart = agyVersion ? `v${agyVersion} ` : "";
208
+ const enabledPart = agyEnabled ? chalk.green("enabled") : chalk.yellow("disabled");
209
+ console.log(
210
+ `${pad("Antigravity", VERSION_COL)}${versionPart}${enabledPart} ${chalk.dim(agyPluginDir())}`
211
+ );
212
+ }
195
213
  console.log();
196
214
  console.log(chalk.bold("\u{1F9E0} Memory"));
197
215
  const memoryDir = resolveMemoryDir();
@@ -8,15 +8,15 @@ import {
8
8
  saveStatuslineConfig,
9
9
  selectStatuslineComponents,
10
10
  writeStatuslineSettings
11
- } from "./chunk-4CPUWHIN.js";
11
+ } from "./chunk-Q2QDSYQT.js";
12
12
  import {
13
13
  ALL_COMPONENT_IDS
14
14
  } from "./chunk-3WIZA5OZ.js";
15
+ import "./chunk-5UVDWG5L.js";
15
16
  import {
16
17
  commandExists
17
18
  } from "./chunk-EVGXUDX4.js";
18
- import "./chunk-5UVDWG5L.js";
19
- import "./chunk-IV5OPG34.js";
19
+ import "./chunk-IYBIIRH4.js";
20
20
  import {
21
21
  log,
22
22
  printBanner
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unregisterLearnMcp
3
- } from "./chunk-7JQZRMOG.js";
3
+ } from "./chunk-NIMO4VJW.js";
4
4
  import {
5
5
  hasShellCompletion,
6
6
  removeShellCompletion
@@ -8,36 +8,39 @@ import {
8
8
  import {
9
9
  removeMemoryMcpEntry,
10
10
  unregisterMemoryMcp
11
- } from "./chunk-ZGIUKUL2.js";
11
+ } from "./chunk-CZW36H3D.js";
12
12
  import {
13
13
  isMarketplaceRegistered,
14
14
  isPluginInstalled
15
- } from "./chunk-2EY7VVFT.js";
15
+ } from "./chunk-SUYE5S2W.js";
16
16
  import {
17
17
  CODEX_MARKETPLACE_NAME,
18
18
  removeCodexMemoryMcpConfig,
19
19
  removeDeployedCodexAgents,
20
20
  setCodexPluginEnabled
21
- } from "./chunk-JSH6BMVZ.js";
21
+ } from "./chunk-RG3EMZH6.js";
22
22
  import {
23
+ isAgyPluginInstalled,
23
24
  isOmpAgentInstalled,
25
+ removeAgyPlugin,
26
+ removeAgyPluginConfigEntry,
24
27
  removeOmpAgents,
25
28
  removeOmpExtensionEntry
26
- } from "./chunk-GTOEIGDM.js";
29
+ } from "./chunk-KCBMCHSA.js";
27
30
  import {
28
31
  resolveHostFlags,
29
32
  resolveScope
30
- } from "./chunk-VMODQCSL.js";
31
- import "./chunk-ZZNTNIM4.js";
32
- import "./chunk-OFEC6OVI.js";
33
- import {
34
- commandExists,
35
- run
36
- } from "./chunk-EVGXUDX4.js";
33
+ } from "./chunk-Z5XTSF7L.js";
34
+ import "./chunk-TN3Y75WG.js";
35
+ import "./chunk-OBCNHQFA.js";
37
36
  import {
38
37
  readJson,
39
38
  writeJson
40
39
  } from "./chunk-5UVDWG5L.js";
40
+ import {
41
+ commandExists,
42
+ run
43
+ } from "./chunk-EVGXUDX4.js";
41
44
  import {
42
45
  claudeSettingsPath,
43
46
  devStatePath,
@@ -47,7 +50,7 @@ import {
47
50
  memoryDepsDir,
48
51
  ompExtensionsDir,
49
52
  ompProjectExtensionsDir
50
- } from "./chunk-IV5OPG34.js";
53
+ } from "./chunk-IYBIIRH4.js";
51
54
  import {
52
55
  log,
53
56
  printBanner
@@ -157,6 +160,10 @@ async function uninstallCommand(opts = {}) {
157
160
  uninstallOmpCommand(opts);
158
161
  return;
159
162
  }
163
+ if (host === "agy") {
164
+ uninstallAgyCommand();
165
+ return;
166
+ }
160
167
  console.log();
161
168
  printBanner("\u{1F44B} Coding Friend Uninstall \u{1F44B}", { color: chalk.red });
162
169
  if (!commandExists("claude")) {
@@ -337,6 +344,24 @@ function isOmpExtensionPresent(scope) {
337
344
  const dir = scope === "project" ? ompProjectExtensionsDir() : ompExtensionsDir();
338
345
  return existsSync(join(dir, OMP_EXTENSION_SHIM));
339
346
  }
347
+ function uninstallAgyCommand() {
348
+ console.log();
349
+ printBanner("\u{1F44B} Coding Friend Antigravity Uninstall \u{1F44B}", {
350
+ color: chalk.red
351
+ });
352
+ const installed = isAgyPluginInstalled();
353
+ unregisterMemoryMcp("agy");
354
+ removeAgyPlugin();
355
+ const removedConfig = removeAgyPluginConfigEntry();
356
+ if (!installed && !removedConfig) {
357
+ log.info("Nothing to uninstall");
358
+ return;
359
+ }
360
+ log.success("Coding Friend uninstalled from Antigravity.");
361
+ log.dim(
362
+ "Restart Antigravity (or start a new `agy` session) for the change to take effect."
363
+ );
364
+ }
340
365
  function uninstallOmpCommand(opts) {
341
366
  console.log();
342
367
  printBanner("\u{1F44B} Coding Friend omp Uninstall \u{1F44B}", { color: chalk.red });
@@ -4,20 +4,20 @@ import {
4
4
  getLatestVersion,
5
5
  semverCompare,
6
6
  updateCommand
7
- } from "./chunk-WJHQUCOF.js";
8
- import "./chunk-4CPUWHIN.js";
7
+ } from "./chunk-KTUPGMIV.js";
8
+ import "./chunk-Q2QDSYQT.js";
9
9
  import "./chunk-3WIZA5OZ.js";
10
10
  import "./chunk-667NMPN4.js";
11
- import "./chunk-ZGIUKUL2.js";
12
- import "./chunk-2EY7VVFT.js";
13
- import "./chunk-JSH6BMVZ.js";
14
- import "./chunk-GTOEIGDM.js";
15
- import "./chunk-VMODQCSL.js";
16
- import "./chunk-ZZNTNIM4.js";
17
- import "./chunk-OFEC6OVI.js";
18
- import "./chunk-EVGXUDX4.js";
11
+ import "./chunk-CZW36H3D.js";
12
+ import "./chunk-SUYE5S2W.js";
13
+ import "./chunk-RG3EMZH6.js";
14
+ import "./chunk-KCBMCHSA.js";
15
+ import "./chunk-Z5XTSF7L.js";
16
+ import "./chunk-TN3Y75WG.js";
17
+ import "./chunk-OBCNHQFA.js";
19
18
  import "./chunk-5UVDWG5L.js";
20
- import "./chunk-IV5OPG34.js";
19
+ import "./chunk-EVGXUDX4.js";
20
+ import "./chunk-IYBIIRH4.js";
21
21
  import "./chunk-NREZK463.js";
22
22
  export {
23
23
  getCliVersion,
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-EVGXUDX4.js";
4
4
  import {
5
5
  globalConfigDir
6
- } from "./chunk-IV5OPG34.js";
6
+ } from "./chunk-IYBIIRH4.js";
7
7
  import {
8
8
  log
9
9
  } from "./chunk-NREZK463.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coding-friend-cli",
3
- "version": "1.39.0",
3
+ "version": "1.40.0",
4
4
  "description": "CLI for coding-friend — host learning docs, setup MCP server, initialize projects",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,38 +0,0 @@
1
- import {
2
- DANGEROUS_RULE_PATTERNS,
3
- PERMISSION_RULES,
4
- STATIC_RULES,
5
- applyPermissions,
6
- auditDangerousRules,
7
- buildLearnDirRules,
8
- buildPluginScriptRules,
9
- cleanupStalePluginRules,
10
- extractTag,
11
- getAllRules,
12
- getExistingRules,
13
- getMissingRules,
14
- groupByCategory,
15
- logPluginScriptWarning,
16
- runDangerousRulesAudit,
17
- stripDangerousRules
18
- } from "./chunk-463QKRBN.js";
19
- import "./chunk-5UVDWG5L.js";
20
- import "./chunk-IV5OPG34.js";
21
- export {
22
- DANGEROUS_RULE_PATTERNS,
23
- PERMISSION_RULES,
24
- STATIC_RULES,
25
- applyPermissions,
26
- auditDangerousRules,
27
- buildLearnDirRules,
28
- buildPluginScriptRules,
29
- cleanupStalePluginRules,
30
- extractTag,
31
- getAllRules,
32
- getExistingRules,
33
- getMissingRules,
34
- groupByCategory,
35
- logPluginScriptWarning,
36
- runDangerousRulesAudit,
37
- stripDangerousRules
38
- };