coding-friend-cli 1.38.3 → 1.39.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/dist/{chunk-32UAW3NX.js → chunk-2EY7VVFT.js} +1 -1
  2. package/dist/{chunk-RCE4OWNX.js → chunk-463QKRBN.js} +1 -1
  3. package/dist/{chunk-ETTZRJ55.js → chunk-4CPUWHIN.js} +1 -1
  4. package/dist/{chunk-6NXZKAOV.js → chunk-7JQZRMOG.js} +37 -4
  5. package/dist/{chunk-5KHZQCZB.js → chunk-FQUIO5BW.js} +1 -1
  6. package/dist/chunk-GTOEIGDM.js +510 -0
  7. package/dist/{chunk-PLSJW7QJ.js → chunk-IV5OPG34.js} +47 -1
  8. package/dist/{chunk-5QCGEPQO.js → chunk-JSH6BMVZ.js} +1 -1
  9. package/dist/{chunk-S4ENKXXC.js → chunk-ODW27NAC.js} +8 -8
  10. package/dist/chunk-OFEC6OVI.js +99 -0
  11. package/dist/{chunk-GIH6E7GJ.js → chunk-VMODQCSL.js} +4 -53
  12. package/dist/{chunk-I2DQYPKT.js → chunk-WJHQUCOF.js} +162 -17
  13. package/dist/{chunk-VHUU3QDC.js → chunk-YPW67OGP.js} +1 -1
  14. package/dist/{chunk-BXSCYGWE.js → chunk-ZGIUKUL2.js} +51 -6
  15. package/dist/chunk-ZZNTNIM4.js +63 -0
  16. package/dist/{clean-BJSNDUPN.js → clean-LPWEBJJ5.js} +45 -7
  17. package/dist/{config-EX3B3HWO.js → config-VNSC2NAY.js} +15 -13
  18. package/dist/{dev-PTBNMKZT.js → dev-NRTDUQAR.js} +3 -3
  19. package/dist/{disable-MO7AXYYF.js → disable-NROSQUHR.js} +19 -4
  20. package/dist/{enable-4GXLQEHD.js → enable-26FFJGX5.js} +24 -4
  21. package/dist/{guide-HCR43LJN.js → guide-HCLEOAGR.js} +1 -1
  22. package/dist/{host-VIQ5YI3V.js → host-2JOPHLN3.js} +4 -3
  23. package/dist/index.js +46 -46
  24. package/dist/{init-S2K4CQO2.js → init-MHHII5EP.js} +54 -18
  25. package/dist/{install-LUPE3VTC.js → install-OEFJLAWA.js} +52 -9
  26. package/dist/{learn-A3TP6PLL.js → learn-SSNBBDY3.js} +2 -2
  27. package/dist/{mcp-QNJTCZMS.js → mcp-J5VO3OH7.js} +13 -11
  28. package/dist/{mcp-serve-4VP4KDYG.js → mcp-serve-55DSE2J4.js} +4 -3
  29. package/dist/{mcp-serve-learn-UVXIDOEZ.js → mcp-serve-learn-EDBWNL4I.js} +3 -2
  30. package/dist/{memory-7GKTQSIW.js → memory-CDZKWOFL.js} +9 -7
  31. package/dist/{permission-VISPGMUK.js → permission-DPKPA2HU.js} +11 -3
  32. package/dist/{permissions-2SBACQHV.js → permissions-HZYUVKCY.js} +2 -2
  33. package/dist/{session-VDGNTICO.js → session-YWJDLNBP.js} +2 -2
  34. package/dist/{status-RHSL5MBU.js → status-4WMIQL7L.js} +18 -16
  35. package/dist/{statusline-AOZHEQSV.js → statusline-R5BNYK3H.js} +2 -2
  36. package/dist/{uninstall-QN6527IR.js → uninstall-EV7362NK.js} +52 -8
  37. package/dist/{update-ZQG25VOJ.js → update-YQBBAIIF.js} +10 -7
  38. package/dist/{update-check-7LKJLJPM.js → update-check-EJSGVGO6.js} +1 -1
  39. package/package.json +1 -1
  40. package/dist/chunk-RZRT7NGT.js +0 -18
@@ -6,18 +6,14 @@ import {
6
6
  getExistingRules,
7
7
  getMissingRules,
8
8
  logPluginScriptWarning
9
- } from "./chunk-RCE4OWNX.js";
10
- import {
11
- isLearnMcpRegistered,
12
- registerLearnMcp
13
- } from "./chunk-6NXZKAOV.js";
9
+ } from "./chunk-463QKRBN.js";
14
10
  import {
15
11
  ensureMemoryBuilt,
16
12
  isMemoryInitialized,
17
13
  memoryInitWizard
18
- } from "./chunk-S4ENKXXC.js";
19
- import "./chunk-VHUU3QDC.js";
20
- import "./chunk-5KHZQCZB.js";
14
+ } from "./chunk-ODW27NAC.js";
15
+ import "./chunk-YPW67OGP.js";
16
+ import "./chunk-FQUIO5BW.js";
21
17
  import {
22
18
  findStatuslineHookPath,
23
19
  getCurrentAccountEmail,
@@ -28,10 +24,14 @@ import {
28
24
  saveStatuslineConfig,
29
25
  selectStatuslineComponents,
30
26
  writeStatuslineSettings
31
- } from "./chunk-ETTZRJ55.js";
27
+ } from "./chunk-4CPUWHIN.js";
32
28
  import {
33
29
  DEFAULT_CONFIG
34
30
  } from "./chunk-3WIZA5OZ.js";
31
+ import {
32
+ isLearnMcpRegistered,
33
+ registerLearnMcp
34
+ } from "./chunk-7JQZRMOG.js";
35
35
  import {
36
36
  ensureShellCompletion,
37
37
  hasShellCompletion
@@ -40,17 +40,17 @@ import {
40
40
  isMemoryMcpRegistered,
41
41
  memoryConfigMenu,
42
42
  registerMemoryMcp
43
- } from "./chunk-BXSCYGWE.js";
44
- import {
45
- getLibPath
46
- } from "./chunk-RZRT7NGT.js";
43
+ } from "./chunk-ZGIUKUL2.js";
47
44
  import {
48
45
  deployCodexAgents,
49
46
  findCodexAgentSourceDir,
50
47
  trustCodexProject,
51
48
  writeCodexAgentLimits,
52
49
  writeCodexMemoryMcpConfig
53
- } from "./chunk-5QCGEPQO.js";
50
+ } from "./chunk-JSH6BMVZ.js";
51
+ import {
52
+ isOmpAgentInstalled
53
+ } from "./chunk-GTOEIGDM.js";
54
54
  import {
55
55
  BACK,
56
56
  applyDocsDirChange,
@@ -62,7 +62,11 @@ import {
62
62
  injectBackChoice,
63
63
  resolveHostFlags,
64
64
  showConfigHint
65
- } from "./chunk-GIH6E7GJ.js";
65
+ } from "./chunk-VMODQCSL.js";
66
+ import {
67
+ getLibPath
68
+ } from "./chunk-ZZNTNIM4.js";
69
+ import "./chunk-OFEC6OVI.js";
66
70
  import {
67
71
  commandExists,
68
72
  run
@@ -79,8 +83,10 @@ import {
79
83
  codexConfigTomlPath,
80
84
  globalConfigPath,
81
85
  localConfigPath,
86
+ ompProjectDir,
87
+ ompProjectMcpJsonPath,
82
88
  resolvePath
83
- } from "./chunk-PLSJW7QJ.js";
89
+ } from "./chunk-IV5OPG34.js";
84
90
  import {
85
91
  log,
86
92
  printBanner
@@ -708,7 +714,7 @@ async function stepAutoApprove(globalCfg, localCfg) {
708
714
  mergeJson(targetPath, { autoApprove: autoApproveChoice });
709
715
  log.success(`Saved to ${targetPath}`);
710
716
  if (autoApproveChoice) {
711
- const { runDangerousRulesAudit } = await import("./permissions-2SBACQHV.js");
717
+ const { runDangerousRulesAudit } = await import("./permissions-HZYUVKCY.js");
712
718
  await runDangerousRulesAudit(
713
719
  [
714
720
  claudeProjectSettingsPath(),
@@ -992,7 +998,7 @@ async function initMenu(gitAvailable) {
992
998
  log.success(`Saved to ${targetPath}`);
993
999
  }
994
1000
  if (autoApproveChoice) {
995
- const { runDangerousRulesAudit } = await import("./permissions-2SBACQHV.js");
1001
+ const { runDangerousRulesAudit } = await import("./permissions-HZYUVKCY.js");
996
1002
  await runDangerousRulesAudit(
997
1003
  [
998
1004
  claudeProjectSettingsPath(),
@@ -1064,6 +1070,10 @@ async function initCommand(opts = {}) {
1064
1070
  initCodexCommand(opts);
1065
1071
  return;
1066
1072
  }
1073
+ if (host === "omp") {
1074
+ initOmpCommand(opts);
1075
+ return;
1076
+ }
1067
1077
  _stepIndex = 0;
1068
1078
  console.log();
1069
1079
  printBanner("\u2728 Coding Friend Setup Wizard \u2728");
@@ -1278,6 +1288,32 @@ function initCodexCommand(opts) {
1278
1288
  log.congrats("Codex setup complete!");
1279
1289
  log.dim("Restart Codex CLI or start a new session to use Coding Friend.");
1280
1290
  }
1291
+ function initOmpCommand(_opts) {
1292
+ _stepIndex = 0;
1293
+ console.log();
1294
+ printBanner("\u2728 Coding Friend OMP Setup \u2728");
1295
+ console.log();
1296
+ mkdirSync(ompProjectDir(), { recursive: true });
1297
+ const mcpPath = ompProjectMcpJsonPath();
1298
+ if (!existsSync(mcpPath)) {
1299
+ writeJson(mcpPath, { mcpServers: {} });
1300
+ log.success("Created project .omp/mcp.json.");
1301
+ } else {
1302
+ log.dim(".omp/mcp.json already exists; left unchanged.");
1303
+ }
1304
+ if (!existsSync(localConfigPath())) {
1305
+ writeJson(localConfigPath(), {});
1306
+ log.success("Created .coding-friend/config.json.");
1307
+ } else {
1308
+ log.dim(".coding-friend/config.json already exists; left unchanged.");
1309
+ }
1310
+ console.log();
1311
+ log.congrats("OMP setup complete!");
1312
+ if (!isOmpAgentInstalled("user") && !isOmpAgentInstalled("project")) {
1313
+ log.dim("Next: cf install --agent omp");
1314
+ }
1315
+ log.dim("Restart omp or start a new session to use Coding Friend.");
1316
+ }
1281
1317
  function renderCodexAgentsMd() {
1282
1318
  return `# Coding Friend
1283
1319
 
@@ -1,32 +1,41 @@
1
1
  import {
2
2
  getLatestVersion,
3
3
  semverCompare
4
- } from "./chunk-I2DQYPKT.js";
4
+ } from "./chunk-WJHQUCOF.js";
5
5
  import {
6
6
  getInstalledVersion
7
- } from "./chunk-ETTZRJ55.js";
7
+ } from "./chunk-4CPUWHIN.js";
8
8
  import "./chunk-3WIZA5OZ.js";
9
9
  import {
10
10
  ensureShellCompletion
11
11
  } from "./chunk-667NMPN4.js";
12
- import "./chunk-BXSCYGWE.js";
13
- import "./chunk-RZRT7NGT.js";
12
+ import {
13
+ registerMemoryMcp
14
+ } from "./chunk-ZGIUKUL2.js";
14
15
  import {
15
16
  enableMarketplaceAutoUpdate,
16
17
  isMarketplaceRegistered,
17
18
  isPluginDisabled
18
- } from "./chunk-32UAW3NX.js";
19
+ } from "./chunk-2EY7VVFT.js";
19
20
  import {
20
21
  deployCodexAgents,
21
22
  findCodexAgentSourceDir,
22
23
  isCodexMarketplaceRegistered,
23
24
  setCodexPluginEnabled
24
- } from "./chunk-5QCGEPQO.js";
25
+ } from "./chunk-JSH6BMVZ.js";
26
+ import {
27
+ deployOmpAgents,
28
+ writeOmpExtensionEntry
29
+ } from "./chunk-GTOEIGDM.js";
25
30
  import {
26
- checkCodexVersion,
27
31
  resolveHostFlags,
28
32
  resolveScope
29
- } from "./chunk-GIH6E7GJ.js";
33
+ } from "./chunk-VMODQCSL.js";
34
+ import "./chunk-ZZNTNIM4.js";
35
+ import {
36
+ checkCodexVersion,
37
+ checkOmpVersion
38
+ } from "./chunk-OFEC6OVI.js";
30
39
  import {
31
40
  commandExists,
32
41
  run
@@ -34,7 +43,7 @@ import {
34
43
  import "./chunk-5UVDWG5L.js";
35
44
  import {
36
45
  devStatePath
37
- } from "./chunk-PLSJW7QJ.js";
46
+ } from "./chunk-IV5OPG34.js";
38
47
  import {
39
48
  log,
40
49
  printBanner
@@ -48,6 +57,9 @@ async function installCommand(opts = {}) {
48
57
  if (host === "codex") {
49
58
  await installCodexCommand();
50
59
  return;
60
+ } else if (host === "omp") {
61
+ await installOmpCommand(opts);
62
+ return;
51
63
  }
52
64
  printBanner("\u2728 Coding Friend Install \u2728");
53
65
  console.log();
@@ -205,6 +217,37 @@ async function installCodexCommand() {
205
217
  );
206
218
  log.dim("Run cf update --agent codex for on-demand plugin updates.");
207
219
  }
220
+ var OMP_INSTALL_URL = "https://omp.sh/";
221
+ var OMP_INSTALL_HINT = `curl -fsSL ${OMP_INSTALL_URL}install | sh`;
222
+ async function installOmpCommand(opts = {}) {
223
+ printBanner("\u2728 Coding Friend omp Install (beta) \u2728");
224
+ console.log();
225
+ if (!commandExists("omp")) {
226
+ log.error(
227
+ `omp CLI not found. Install it first: ${OMP_INSTALL_URL} (${OMP_INSTALL_HINT})`
228
+ );
229
+ process.exit(1);
230
+ return;
231
+ }
232
+ const version = checkOmpVersion();
233
+ if (!version.ok) {
234
+ log.error(
235
+ `omp CLI ${version.actual ? `v${version.actual}` : "version"} is unsupported. Coding Friend requires omp CLI >= ${version.min}. Install or upgrade: ${OMP_INSTALL_URL} (${OMP_INSTALL_HINT})`
236
+ );
237
+ process.exit(1);
238
+ return;
239
+ }
240
+ const ompScope = opts.project || opts.local ? "project" : "user";
241
+ const { deployed } = deployOmpAgents(ompScope);
242
+ log.success(`Deployed ${deployed.length} omp agent definition(s).`);
243
+ writeOmpExtensionEntry(ompScope);
244
+ log.success("Wrote omp extension entry.");
245
+ registerMemoryMcp("omp");
246
+ console.log();
247
+ log.success("Installed for omp (beta).");
248
+ log.dim("Skills inherit from ~/.claude \u2014 no extra skill install needed.");
249
+ log.dim("Restart omp (or start a new session) to pick up agents and MCP.");
250
+ }
208
251
  export {
209
252
  installCommand
210
253
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveLearnDir
3
- } from "./chunk-5KHZQCZB.js";
3
+ } from "./chunk-FQUIO5BW.js";
4
4
  import "./chunk-3WIZA5OZ.js";
5
5
  import {
6
6
  commandExists,
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-5UVDWG5L.js";
14
14
  import {
15
15
  globalConfigPath
16
- } from "./chunk-PLSJW7QJ.js";
16
+ } from "./chunk-IV5OPG34.js";
17
17
  import {
18
18
  log,
19
19
  printBanner
@@ -1,34 +1,36 @@
1
1
  import {
2
2
  listMdFilesRecursive
3
3
  } from "./chunk-2DTXVMPQ.js";
4
- import {
5
- isLearnMcpRegistered,
6
- registerLearnMcp
7
- } from "./chunk-6NXZKAOV.js";
8
4
  import {
9
5
  ensureMemoryBuilt,
10
6
  printMemoryMcpConfig
11
- } from "./chunk-S4ENKXXC.js";
7
+ } from "./chunk-ODW27NAC.js";
12
8
  import {
13
9
  checkLearnMcpHealth,
14
10
  checkMemoryMcpHealth,
15
11
  detectMemoryMcpState,
16
12
  printHealthSection,
17
13
  warnStaleMcpJson
18
- } from "./chunk-VHUU3QDC.js";
14
+ } from "./chunk-YPW67OGP.js";
19
15
  import {
20
16
  resolveLearnDir,
21
17
  resolveMemoryDir
22
- } from "./chunk-5KHZQCZB.js";
18
+ } from "./chunk-FQUIO5BW.js";
23
19
  import "./chunk-3WIZA5OZ.js";
20
+ import {
21
+ isLearnMcpRegistered,
22
+ registerLearnMcp
23
+ } from "./chunk-7JQZRMOG.js";
24
24
  import {
25
25
  isMemoryMcpRegistered,
26
26
  registerMemoryMcp
27
- } from "./chunk-BXSCYGWE.js";
27
+ } from "./chunk-ZGIUKUL2.js";
28
+ import "./chunk-GTOEIGDM.js";
29
+ import "./chunk-VMODQCSL.js";
28
30
  import {
29
31
  getLibPath
30
- } from "./chunk-RZRT7NGT.js";
31
- import "./chunk-GIH6E7GJ.js";
32
+ } from "./chunk-ZZNTNIM4.js";
33
+ import "./chunk-OFEC6OVI.js";
32
34
  import {
33
35
  run
34
36
  } from "./chunk-EVGXUDX4.js";
@@ -37,7 +39,7 @@ import {
37
39
  } from "./chunk-5UVDWG5L.js";
38
40
  import {
39
41
  globalConfigPath
40
- } from "./chunk-PLSJW7QJ.js";
42
+ } from "./chunk-IV5OPG34.js";
41
43
  import {
42
44
  log,
43
45
  printBanner
@@ -1,13 +1,14 @@
1
1
  import {
2
2
  resolveProjectMemoryDir
3
- } from "./chunk-5KHZQCZB.js";
3
+ } from "./chunk-FQUIO5BW.js";
4
4
  import "./chunk-3WIZA5OZ.js";
5
5
  import {
6
6
  getLibPath
7
- } from "./chunk-RZRT7NGT.js";
7
+ } from "./chunk-ZZNTNIM4.js";
8
+ import "./chunk-OFEC6OVI.js";
8
9
  import "./chunk-EVGXUDX4.js";
9
10
  import "./chunk-5UVDWG5L.js";
10
- import "./chunk-PLSJW7QJ.js";
11
+ import "./chunk-IV5OPG34.js";
11
12
  import {
12
13
  log
13
14
  } from "./chunk-NREZK463.js";
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  getLibPath
3
- } from "./chunk-RZRT7NGT.js";
3
+ } from "./chunk-ZZNTNIM4.js";
4
+ import "./chunk-OFEC6OVI.js";
4
5
  import {
5
6
  runWithStderr
6
7
  } from "./chunk-EVGXUDX4.js";
@@ -9,7 +10,7 @@ import {
9
10
  } from "./chunk-5UVDWG5L.js";
10
11
  import {
11
12
  globalConfigPath
12
- } from "./chunk-PLSJW7QJ.js";
13
+ } from "./chunk-IV5OPG34.js";
13
14
  import {
14
15
  log
15
16
  } from "./chunk-NREZK463.js";
@@ -14,16 +14,18 @@ import {
14
14
  memoryStopDaemonCommand,
15
15
  printMemoryMcpConfig,
16
16
  refreshMemoryAfterUpdate
17
- } from "./chunk-S4ENKXXC.js";
18
- import "./chunk-VHUU3QDC.js";
19
- import "./chunk-5KHZQCZB.js";
17
+ } from "./chunk-ODW27NAC.js";
18
+ import "./chunk-YPW67OGP.js";
19
+ import "./chunk-FQUIO5BW.js";
20
20
  import "./chunk-3WIZA5OZ.js";
21
- import "./chunk-BXSCYGWE.js";
22
- import "./chunk-RZRT7NGT.js";
23
- import "./chunk-GIH6E7GJ.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";
24
26
  import "./chunk-EVGXUDX4.js";
25
27
  import "./chunk-5UVDWG5L.js";
26
- import "./chunk-PLSJW7QJ.js";
28
+ import "./chunk-IV5OPG34.js";
27
29
  import "./chunk-NREZK463.js";
28
30
  export {
29
31
  ensureMemoryBuilt,
@@ -8,14 +8,15 @@ import {
8
8
  groupByCategory,
9
9
  logPluginScriptWarning,
10
10
  runDangerousRulesAudit
11
- } from "./chunk-RCE4OWNX.js";
11
+ } from "./chunk-463QKRBN.js";
12
12
  import {
13
13
  askScope,
14
14
  formatScopeLabel,
15
15
  getMergedValue,
16
16
  getScopeLabel,
17
17
  resolveHostFlags
18
- } from "./chunk-GIH6E7GJ.js";
18
+ } from "./chunk-VMODQCSL.js";
19
+ import "./chunk-OFEC6OVI.js";
19
20
  import "./chunk-EVGXUDX4.js";
20
21
  import {
21
22
  mergeJson,
@@ -27,7 +28,7 @@ import {
27
28
  claudeSettingsPath,
28
29
  globalConfigPath,
29
30
  localConfigPath
30
- } from "./chunk-PLSJW7QJ.js";
31
+ } from "./chunk-IV5OPG34.js";
31
32
  import {
32
33
  log,
33
34
  printBanner
@@ -218,6 +219,13 @@ async function permissionCommand(opts) {
218
219
  codexPermissionCommand(opts);
219
220
  return;
220
221
  }
222
+ if (host === "omp") {
223
+ log.info(
224
+ "omp uses its own approval-mode; run `omp config` / omp approval settings \u2014 coding-friend does not manage omp permissions."
225
+ );
226
+ log.dim("See docs/omp-dev.md.");
227
+ return;
228
+ }
221
229
  printBanner("\u2728 Coding Friend Permissions \u2728");
222
230
  console.log();
223
231
  const {
@@ -15,9 +15,9 @@ import {
15
15
  logPluginScriptWarning,
16
16
  runDangerousRulesAudit,
17
17
  stripDangerousRules
18
- } from "./chunk-RCE4OWNX.js";
18
+ } from "./chunk-463QKRBN.js";
19
19
  import "./chunk-5UVDWG5L.js";
20
- import "./chunk-PLSJW7QJ.js";
20
+ import "./chunk-IV5OPG34.js";
21
21
  export {
22
22
  DANGEROUS_RULE_PATTERNS,
23
23
  PERMISSION_RULES,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-5KHZQCZB.js";
3
+ } from "./chunk-FQUIO5BW.js";
4
4
  import "./chunk-3WIZA5OZ.js";
5
5
  import "./chunk-EVGXUDX4.js";
6
6
  import {
@@ -11,7 +11,7 @@ import {
11
11
  claudeSessionDir,
12
12
  encodeProjectPath,
13
13
  resolvePath
14
- } from "./chunk-PLSJW7QJ.js";
14
+ } from "./chunk-IV5OPG34.js";
15
15
  import {
16
16
  log
17
17
  } from "./chunk-NREZK463.js";
@@ -1,44 +1,46 @@
1
1
  import {
2
2
  getExistingRules
3
- } from "./chunk-RCE4OWNX.js";
3
+ } from "./chunk-463QKRBN.js";
4
4
  import {
5
5
  listMdFilesRecursive
6
6
  } from "./chunk-2DTXVMPQ.js";
7
- import {
8
- isLearnMcpRegistered
9
- } from "./chunk-6NXZKAOV.js";
10
7
  import {
11
8
  checkLearnMcpHealth,
12
9
  checkMemoryMcpHealth
13
- } from "./chunk-VHUU3QDC.js";
10
+ } from "./chunk-YPW67OGP.js";
14
11
  import {
15
12
  resolveLearnDir,
16
13
  resolveMemoryDir,
17
14
  sanitizeRawConfig
18
- } from "./chunk-5KHZQCZB.js";
15
+ } from "./chunk-FQUIO5BW.js";
19
16
  import {
20
17
  getCliVersion,
21
18
  getLatestCliVersion,
22
19
  getLatestVersion,
23
20
  semverCompare
24
- } from "./chunk-I2DQYPKT.js";
21
+ } from "./chunk-WJHQUCOF.js";
25
22
  import {
26
23
  getInstalledVersion
27
- } from "./chunk-ETTZRJ55.js";
24
+ } from "./chunk-4CPUWHIN.js";
28
25
  import "./chunk-3WIZA5OZ.js";
26
+ import {
27
+ isLearnMcpRegistered
28
+ } from "./chunk-7JQZRMOG.js";
29
29
  import "./chunk-667NMPN4.js";
30
30
  import {
31
31
  isMemoryMcpRegistered
32
- } from "./chunk-BXSCYGWE.js";
33
- import {
34
- getLibPath
35
- } from "./chunk-RZRT7NGT.js";
32
+ } from "./chunk-ZGIUKUL2.js";
36
33
  import {
37
34
  detectPluginScope,
38
35
  isPluginDisabled
39
- } from "./chunk-32UAW3NX.js";
40
- import "./chunk-5QCGEPQO.js";
41
- import "./chunk-GIH6E7GJ.js";
36
+ } from "./chunk-2EY7VVFT.js";
37
+ import "./chunk-JSH6BMVZ.js";
38
+ import "./chunk-GTOEIGDM.js";
39
+ import "./chunk-VMODQCSL.js";
40
+ import {
41
+ getLibPath
42
+ } from "./chunk-ZZNTNIM4.js";
43
+ import "./chunk-OFEC6OVI.js";
42
44
  import "./chunk-EVGXUDX4.js";
43
45
  import {
44
46
  readJson
@@ -48,7 +50,7 @@ import {
48
50
  devStatePath,
49
51
  globalConfigPath,
50
52
  localConfigPath
51
- } from "./chunk-PLSJW7QJ.js";
53
+ } from "./chunk-IV5OPG34.js";
52
54
  import "./chunk-NREZK463.js";
53
55
 
54
56
  // src/commands/status.ts
@@ -8,7 +8,7 @@ import {
8
8
  saveStatuslineConfig,
9
9
  selectStatuslineComponents,
10
10
  writeStatuslineSettings
11
- } from "./chunk-ETTZRJ55.js";
11
+ } from "./chunk-4CPUWHIN.js";
12
12
  import {
13
13
  ALL_COMPONENT_IDS
14
14
  } from "./chunk-3WIZA5OZ.js";
@@ -16,7 +16,7 @@ import {
16
16
  commandExists
17
17
  } from "./chunk-EVGXUDX4.js";
18
18
  import "./chunk-5UVDWG5L.js";
19
- import "./chunk-PLSJW7QJ.js";
19
+ import "./chunk-IV5OPG34.js";
20
20
  import {
21
21
  log,
22
22
  printBanner
@@ -1,25 +1,35 @@
1
+ import {
2
+ unregisterLearnMcp
3
+ } from "./chunk-7JQZRMOG.js";
1
4
  import {
2
5
  hasShellCompletion,
3
6
  removeShellCompletion
4
7
  } from "./chunk-667NMPN4.js";
5
8
  import {
6
- removeMemoryMcpEntry
7
- } from "./chunk-BXSCYGWE.js";
8
- import "./chunk-RZRT7NGT.js";
9
+ removeMemoryMcpEntry,
10
+ unregisterMemoryMcp
11
+ } from "./chunk-ZGIUKUL2.js";
9
12
  import {
10
13
  isMarketplaceRegistered,
11
14
  isPluginInstalled
12
- } from "./chunk-32UAW3NX.js";
15
+ } from "./chunk-2EY7VVFT.js";
13
16
  import {
14
17
  CODEX_MARKETPLACE_NAME,
15
18
  removeCodexMemoryMcpConfig,
16
19
  removeDeployedCodexAgents,
17
20
  setCodexPluginEnabled
18
- } from "./chunk-5QCGEPQO.js";
21
+ } from "./chunk-JSH6BMVZ.js";
22
+ import {
23
+ isOmpAgentInstalled,
24
+ removeOmpAgents,
25
+ removeOmpExtensionEntry
26
+ } from "./chunk-GTOEIGDM.js";
19
27
  import {
20
28
  resolveHostFlags,
21
29
  resolveScope
22
- } from "./chunk-GIH6E7GJ.js";
30
+ } from "./chunk-VMODQCSL.js";
31
+ import "./chunk-ZZNTNIM4.js";
32
+ import "./chunk-OFEC6OVI.js";
23
33
  import {
24
34
  commandExists,
25
35
  run
@@ -34,8 +44,10 @@ import {
34
44
  globalConfigDir,
35
45
  marketplaceCachePath,
36
46
  marketplaceClonePath,
37
- memoryDepsDir
38
- } from "./chunk-PLSJW7QJ.js";
47
+ memoryDepsDir,
48
+ ompExtensionsDir,
49
+ ompProjectExtensionsDir
50
+ } from "./chunk-IV5OPG34.js";
39
51
  import {
40
52
  log,
41
53
  printBanner
@@ -43,6 +55,7 @@ import {
43
55
 
44
56
  // src/commands/uninstall.ts
45
57
  import { existsSync, rmSync } from "fs";
58
+ import { join } from "path";
46
59
  import { confirm } from "@inquirer/prompts";
47
60
  import chalk from "chalk";
48
61
  var MARKETPLACE_NAME = "coding-friend-marketplace";
@@ -140,6 +153,10 @@ async function uninstallCommand(opts = {}) {
140
153
  uninstallCodexCommand(opts);
141
154
  return;
142
155
  }
156
+ if (host === "omp") {
157
+ uninstallOmpCommand(opts);
158
+ return;
159
+ }
143
160
  console.log();
144
161
  printBanner("\u{1F44B} Coding Friend Uninstall \u{1F44B}", { color: chalk.red });
145
162
  if (!commandExists("claude")) {
@@ -311,6 +328,33 @@ async function uninstallCommand(opts = {}) {
311
328
  log.dim("To also remove the CLI tool globally, run:");
312
329
  console.log(` ${chalk.bold("npm uninstall -g coding-friend-cli")}`);
313
330
  }
331
+ var OMP_EXTENSION_SHIM = "coding-friend.ts";
332
+ function toOmpScope(opts) {
333
+ if (opts.project || opts.local) return "project";
334
+ return "user";
335
+ }
336
+ function isOmpExtensionPresent(scope) {
337
+ const dir = scope === "project" ? ompProjectExtensionsDir() : ompExtensionsDir();
338
+ return existsSync(join(dir, OMP_EXTENSION_SHIM));
339
+ }
340
+ function uninstallOmpCommand(opts) {
341
+ console.log();
342
+ printBanner("\u{1F44B} Coding Friend omp Uninstall \u{1F44B}", { color: chalk.red });
343
+ const scope = toOmpScope(opts);
344
+ if (!isOmpAgentInstalled(scope) && !isOmpExtensionPresent(scope)) {
345
+ log.info("Nothing to uninstall");
346
+ return;
347
+ }
348
+ log.step(`Uninstalling Coding Friend from omp (${scope} scope)...`);
349
+ removeOmpAgents(scope);
350
+ removeOmpExtensionEntry(scope);
351
+ if (scope === "user") {
352
+ unregisterMemoryMcp("omp");
353
+ unregisterLearnMcp("omp");
354
+ }
355
+ log.success(`Coding Friend uninstalled from omp (${scope} scope).`);
356
+ log.dim("Restart omp for the change to take effect.");
357
+ }
314
358
  function uninstallCodexCommand(opts) {
315
359
  console.log();
316
360
  printBanner("\u{1F44B} Coding Friend Codex Uninstall \u{1F44B}", { color: chalk.red });
@@ -4,17 +4,20 @@ import {
4
4
  getLatestVersion,
5
5
  semverCompare,
6
6
  updateCommand
7
- } from "./chunk-I2DQYPKT.js";
8
- import "./chunk-ETTZRJ55.js";
7
+ } from "./chunk-WJHQUCOF.js";
8
+ import "./chunk-4CPUWHIN.js";
9
9
  import "./chunk-3WIZA5OZ.js";
10
10
  import "./chunk-667NMPN4.js";
11
- import "./chunk-BXSCYGWE.js";
12
- import "./chunk-RZRT7NGT.js";
13
- import "./chunk-5QCGEPQO.js";
14
- import "./chunk-GIH6E7GJ.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";
15
18
  import "./chunk-EVGXUDX4.js";
16
19
  import "./chunk-5UVDWG5L.js";
17
- import "./chunk-PLSJW7QJ.js";
20
+ import "./chunk-IV5OPG34.js";
18
21
  import "./chunk-NREZK463.js";
19
22
  export {
20
23
  getCliVersion,