oh-my-copilot 4.11.2 → 4.11.4

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 (85) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -1
  4. package/bridge/cli.cjs +143 -52
  5. package/bridge/runtime-cli.cjs +9 -3
  6. package/bridge/team-bridge.cjs +9 -3
  7. package/bridge/team.js +70 -64
  8. package/dist/__tests__/config-dir.test.js +3 -3
  9. package/dist/__tests__/config-dir.test.js.map +1 -1
  10. package/dist/__tests__/hud/cwd.test.js +2 -2
  11. package/dist/__tests__/hud/cwd.test.js.map +1 -1
  12. package/dist/__tests__/purge-stale-cache.test.js +10 -10
  13. package/dist/__tests__/release-generation.test.js +13 -13
  14. package/dist/__tests__/release-generation.test.js.map +1 -1
  15. package/dist/__tests__/setup-claude-md-script.test.js +3 -2
  16. package/dist/__tests__/setup-claude-md-script.test.js.map +1 -1
  17. package/dist/__tests__/setup-progress-script.test.js +1 -1
  18. package/dist/__tests__/setup-progress-script.test.js.map +1 -1
  19. package/dist/autoresearch/contracts.d.ts.map +1 -1
  20. package/dist/autoresearch/contracts.js +7 -2
  21. package/dist/autoresearch/contracts.js.map +1 -1
  22. package/dist/cli/autoresearch-guided.d.ts.map +1 -1
  23. package/dist/cli/autoresearch-guided.js +14 -6
  24. package/dist/cli/autoresearch-guided.js.map +1 -1
  25. package/dist/hooks/bridge.d.ts.map +1 -1
  26. package/dist/hooks/bridge.js +32 -1
  27. package/dist/hooks/bridge.js.map +1 -1
  28. package/dist/hooks/learner/finder.js +1 -1
  29. package/dist/hooks/learner/finder.js.map +1 -1
  30. package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js +1 -1
  31. package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js.map +1 -1
  32. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  33. package/dist/hooks/persistent-mode/index.js +9 -2
  34. package/dist/hooks/persistent-mode/index.js.map +1 -1
  35. package/dist/hud/elements/agents.d.ts.map +1 -1
  36. package/dist/hud/elements/agents.js +7 -3
  37. package/dist/hud/elements/agents.js.map +1 -1
  38. package/dist/installer/index.d.ts +1 -0
  39. package/dist/installer/index.d.ts.map +1 -1
  40. package/dist/installer/index.js +63 -39
  41. package/dist/installer/index.js.map +1 -1
  42. package/dist/lib/plugin-dir.d.ts +12 -0
  43. package/dist/lib/plugin-dir.d.ts.map +1 -0
  44. package/dist/lib/plugin-dir.js +18 -0
  45. package/dist/lib/plugin-dir.js.map +1 -0
  46. package/dist/lib/version.d.ts.map +1 -1
  47. package/dist/lib/version.js +13 -0
  48. package/dist/lib/version.js.map +1 -1
  49. package/dist/lib/worktree-paths.d.ts.map +1 -1
  50. package/dist/lib/worktree-paths.js +12 -1
  51. package/dist/lib/worktree-paths.js.map +1 -1
  52. package/dist/team/__tests__/runtime-v2.dispatch.test.js +7 -7
  53. package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
  54. package/dist/team/fs-utils.d.ts.map +1 -1
  55. package/dist/team/fs-utils.js +14 -7
  56. package/dist/team/fs-utils.js.map +1 -1
  57. package/dist/tools/python-repl/__tests__/python-sandbox.test.js +29 -2
  58. package/dist/tools/python-repl/__tests__/python-sandbox.test.js.map +1 -1
  59. package/dist/utils/resolve-node.d.ts +5 -3
  60. package/dist/utils/resolve-node.d.ts.map +1 -1
  61. package/dist/utils/resolve-node.js +17 -9
  62. package/dist/utils/resolve-node.js.map +1 -1
  63. package/docs/copilot-instructions.md +1 -1
  64. package/package.json +1 -1
  65. package/scripts/build-bridge-entry.mjs +12 -3
  66. package/scripts/build-cli.mjs +17 -7
  67. package/scripts/build-mcp-server.mjs +12 -3
  68. package/scripts/build-runtime-cli.mjs +13 -3
  69. package/scripts/build-skill-bridge.mjs +12 -3
  70. package/scripts/persistent-mode.cjs +8 -0
  71. package/scripts/post-tool-verifier.mjs +74 -1
  72. package/scripts/setup-copilot-instructions.sh +1 -1
  73. package/skills/hud/SKILL.md +53 -10
  74. package/skills/mcp-setup/SKILL.md +30 -14
  75. package/skills/omc-setup/SKILL.md +19 -1
  76. package/skills/omc-setup/phases/01-install-copilot-instructions.md +29 -3
  77. package/skills/omc-setup/phases/03-integrations.md +16 -99
  78. package/skills/omc-setup/phases/04-welcome.md +33 -91
  79. package/skills/project-session-manager/SKILL.md +2 -2
  80. package/skills/project-session-manager/lib/config.sh +1 -1
  81. package/skills/project-session-manager/psm.sh +1 -1
  82. package/skills/project-session-manager/templates/projects.json +1 -1
  83. package/skills/release/SKILL.md +1 -1
  84. package/templates/hooks/post-tool-use.mjs +70 -0
  85. package/templates/hooks/pre-tool-use.mjs +1 -1
package/bridge/team.js CHANGED
@@ -102,7 +102,7 @@ var init_state_paths = __esm({
102
102
 
103
103
  // src/team/fs-utils.ts
104
104
  import { writeFileSync, existsSync as existsSync3, mkdirSync, renameSync, unlinkSync, openSync, writeSync, closeSync, realpathSync, constants } from "fs";
105
- import { dirname as dirname2, resolve, relative, basename } from "path";
105
+ import { dirname as dirname2, resolve, relative, basename, join as join4 } from "path";
106
106
  function atomicWriteJson(filePath, data, mode = 384) {
107
107
  const dir = dirname2(filePath);
108
108
  if (!existsSync3(dir)) mkdirSync(dir, { recursive: true, mode: 448 });
@@ -137,10 +137,16 @@ function safeRealpath(p) {
137
137
  try {
138
138
  return realpathSync(p);
139
139
  } catch {
140
- const parent = dirname2(p);
141
- const name = basename(p);
140
+ const segments = [];
141
+ let current = resolve(p);
142
+ while (!existsSync3(current)) {
143
+ segments.unshift(basename(current));
144
+ const parent = dirname2(current);
145
+ if (parent === current) break;
146
+ current = parent;
147
+ }
142
148
  try {
143
- return resolve(realpathSync(parent), name);
149
+ return join4(realpathSync(current), ...segments);
144
150
  } catch {
145
151
  return resolve(p);
146
152
  }
@@ -164,7 +170,7 @@ var init_fs_utils = __esm({
164
170
  import { randomUUID as randomUUID3 } from "crypto";
165
171
  import { existsSync as existsSync4 } from "fs";
166
172
  import { mkdir as mkdir2, readFile as readFile3, rm as rm2, stat, writeFile as writeFile2 } from "fs/promises";
167
- import { dirname as dirname3, join as join4 } from "path";
173
+ import { dirname as dirname3, join as join5 } from "path";
168
174
  function validateWorkerName(name) {
169
175
  if (!WORKER_NAME_SAFE_PATTERN.test(name)) {
170
176
  throw new Error(`Invalid worker name: "${name}"`);
@@ -187,7 +193,7 @@ async function withDispatchLock(teamName, cwd, fn) {
187
193
  const root = absPath(cwd, TeamPaths.root(teamName));
188
194
  if (!existsSync4(root)) throw new Error(`Team ${teamName} not found`);
189
195
  const lockDir = absPath(cwd, TeamPaths.dispatchLockDir(teamName));
190
- const ownerPath = join4(lockDir, "owner");
196
+ const ownerPath = join5(lockDir, "owner");
191
197
  const ownerToken = `${process.pid}.${Date.now()}.${Math.random().toString(16).slice(2)}`;
192
198
  const timeoutMs = resolveDispatchLockTimeoutMs(process.env);
193
199
  const deadline = Date.now() + timeoutMs;
@@ -722,7 +728,7 @@ __export(tmux_session_exports, {
722
728
  });
723
729
  import { exec, execFile, execSync, execFileSync } from "child_process";
724
730
  import { existsSync as existsSync5 } from "fs";
725
- import { join as join5, basename as basename2, isAbsolute as isAbsolute2, win32 } from "path";
731
+ import { join as join6, basename as basename2, isAbsolute as isAbsolute2, win32 } from "path";
726
732
  import { promisify } from "util";
727
733
  import fs from "fs/promises";
728
734
  function isUnixLikeOnWindows() {
@@ -790,7 +796,7 @@ function pathCandidateNames(candidatePath) {
790
796
  function resolveShellFromPath(candidatePath) {
791
797
  for (const dir of pathEntries(process.env.PATH)) {
792
798
  for (const name of pathCandidateNames(candidatePath)) {
793
- const full = join5(dir, name);
799
+ const full = join6(dir, name);
794
800
  if (existsSync5(full)) return full;
795
801
  }
796
802
  }
@@ -1355,7 +1361,7 @@ async function isWorkerAlive(paneId) {
1355
1361
  async function killWorkerPanes(opts) {
1356
1362
  const { paneIds, leaderPaneId, teamName, cwd, graceMs = 1e4 } = opts;
1357
1363
  if (!paneIds.length) return;
1358
- const shutdownPath = join5(cwd, ".omg", "state", "team", teamName, "shutdown.json");
1364
+ const shutdownPath = join6(cwd, ".omg", "state", "team", teamName, "shutdown.json");
1359
1365
  try {
1360
1366
  await fs.writeFile(shutdownPath, JSON.stringify({ requestedAt: Date.now() }));
1361
1367
  await sleep(graceMs);
@@ -1470,7 +1476,7 @@ var init_tmux_session = __esm({
1470
1476
 
1471
1477
  // src/agents/utils.ts
1472
1478
  import { readFileSync } from "fs";
1473
- import { join as join6, dirname as dirname4, basename as basename3, resolve as resolve2, relative as relative2, isAbsolute as isAbsolute3 } from "path";
1479
+ import { join as join7, dirname as dirname4, basename as basename3, resolve as resolve2, relative as relative2, isAbsolute as isAbsolute3 } from "path";
1474
1480
  import { fileURLToPath } from "url";
1475
1481
  var init_utils = __esm({
1476
1482
  "src/agents/utils.ts"() {
@@ -1479,7 +1485,7 @@ var init_utils = __esm({
1479
1485
  });
1480
1486
 
1481
1487
  // src/utils/config-dir.ts
1482
- import { join as join7, normalize, parse, sep } from "path";
1488
+ import { join as join8, normalize, parse, sep } from "path";
1483
1489
  import { homedir } from "os";
1484
1490
  var init_config_dir = __esm({
1485
1491
  "src/utils/config-dir.ts"() {
@@ -1489,7 +1495,7 @@ var init_config_dir = __esm({
1489
1495
 
1490
1496
  // src/utils/strict-mode.ts
1491
1497
  import { existsSync as existsSync6, readFileSync as readFileSync2 } from "fs";
1492
- import { join as join8 } from "path";
1498
+ import { join as join9 } from "path";
1493
1499
  var init_strict_mode = __esm({
1494
1500
  "src/utils/strict-mode.ts"() {
1495
1501
  "use strict";
@@ -1507,23 +1513,23 @@ var init_strict_mode_guidance = __esm({
1507
1513
 
1508
1514
  // src/agents/prompt-helpers.ts
1509
1515
  import { readdirSync } from "fs";
1510
- import { join as join9, dirname as dirname5, basename as basename4 } from "path";
1516
+ import { join as join10, dirname as dirname5, basename as basename4 } from "path";
1511
1517
  import { fileURLToPath as fileURLToPath2 } from "url";
1512
1518
  function getPackageDir() {
1513
1519
  if (typeof __dirname !== "undefined" && __dirname) {
1514
1520
  const currentDirName = basename4(__dirname);
1515
1521
  const parentDirName = basename4(dirname5(__dirname));
1516
1522
  if (currentDirName === "bridge") {
1517
- return join9(__dirname, "..");
1523
+ return join10(__dirname, "..");
1518
1524
  }
1519
1525
  if (currentDirName === "agents" && (parentDirName === "src" || parentDirName === "dist")) {
1520
- return join9(__dirname, "..", "..");
1526
+ return join10(__dirname, "..", "..");
1521
1527
  }
1522
1528
  }
1523
1529
  try {
1524
1530
  const __filename = fileURLToPath2(import.meta.url);
1525
1531
  const __dirname2 = dirname5(__filename);
1526
- return join9(__dirname2, "..", "..");
1532
+ return join10(__dirname2, "..", "..");
1527
1533
  } catch {
1528
1534
  }
1529
1535
  return process.cwd();
@@ -1538,7 +1544,7 @@ function getValidAgentRoles() {
1538
1544
  } catch {
1539
1545
  }
1540
1546
  try {
1541
- const agentsDir = join9(getPackageDir(), "agents");
1547
+ const agentsDir = join10(getPackageDir(), "agents");
1542
1548
  const files = readdirSync(agentsDir);
1543
1549
  _cachedRoles = files.filter((f) => f.endsWith(".md") && f !== "AGENTS.md").map((f) => basename4(f, ".md").replace(/\.agent$/, "")).sort();
1544
1550
  } catch (err) {
@@ -1666,14 +1672,14 @@ var init_jsonc = __esm({
1666
1672
  });
1667
1673
 
1668
1674
  // src/utils/paths.ts
1669
- import { join as join10 } from "path";
1675
+ import { join as join11 } from "path";
1670
1676
  import { existsSync as existsSync7, readFileSync as readFileSync3, readdirSync as readdirSync2, statSync, unlinkSync as unlinkSync2, rmSync } from "fs";
1671
1677
  import { homedir as homedir2 } from "os";
1672
1678
  function getConfigDir2() {
1673
1679
  if (process.platform === "win32") {
1674
- return process.env.APPDATA || join10(homedir2(), "AppData", "Roaming");
1680
+ return process.env.APPDATA || join11(homedir2(), "AppData", "Roaming");
1675
1681
  }
1676
- return process.env.XDG_CONFIG_HOME || join10(homedir2(), ".config");
1682
+ return process.env.XDG_CONFIG_HOME || join11(homedir2(), ".config");
1677
1683
  }
1678
1684
  var STALE_THRESHOLD_MS;
1679
1685
  var init_paths = __esm({
@@ -1686,11 +1692,11 @@ var init_paths = __esm({
1686
1692
 
1687
1693
  // src/lib/security-config.ts
1688
1694
  import { existsSync as existsSync8, readFileSync as readFileSync4 } from "fs";
1689
- import { join as join11 } from "path";
1695
+ import { join as join12 } from "path";
1690
1696
  function loadSecurityFromConfigFiles() {
1691
1697
  const paths = [
1692
- join11(process.cwd(), ".copilot", "omc.jsonc"),
1693
- join11(getConfigDir2(), "copilot-omc", "config.jsonc")
1698
+ join12(process.cwd(), ".copilot", "omc.jsonc"),
1699
+ join12(getConfigDir2(), "copilot-omc", "config.jsonc")
1694
1700
  ];
1695
1701
  for (const configPath of paths) {
1696
1702
  if (!existsSync8(configPath)) continue;
@@ -2017,7 +2023,7 @@ var init_model_contract = __esm({
2017
2023
 
2018
2024
  // src/team/worker-bootstrap.ts
2019
2025
  import { mkdir as mkdir3, writeFile as writeFile3, appendFile as appendFile2 } from "fs/promises";
2020
- import { join as join12, dirname as dirname6 } from "path";
2026
+ import { join as join13, dirname as dirname6 } from "path";
2021
2027
  function generateTriggerMessage(teamName, workerName) {
2022
2028
  return `Read and follow the instructions in .omg/state/team/${teamName}/workers/${workerName}/inbox.md`;
2023
2029
  }
@@ -2159,22 +2165,22 @@ ${bootstrapInstructions}
2159
2165
  ` : ""}`;
2160
2166
  }
2161
2167
  async function composeInitialInbox(teamName, workerName, content, cwd) {
2162
- const inboxPath = join12(cwd, `.omg/state/team/${teamName}/workers/${workerName}/inbox.md`);
2168
+ const inboxPath = join13(cwd, `.omg/state/team/${teamName}/workers/${workerName}/inbox.md`);
2163
2169
  await mkdir3(dirname6(inboxPath), { recursive: true });
2164
2170
  await writeFile3(inboxPath, content, "utf-8");
2165
2171
  }
2166
2172
  async function ensureWorkerStateDir(teamName, workerName, cwd) {
2167
- const workerDir = join12(cwd, `.omg/state/team/${teamName}/workers/${workerName}`);
2173
+ const workerDir = join13(cwd, `.omg/state/team/${teamName}/workers/${workerName}`);
2168
2174
  await mkdir3(workerDir, { recursive: true });
2169
- const mailboxDir = join12(cwd, `.omg/state/team/${teamName}/mailbox`);
2175
+ const mailboxDir = join13(cwd, `.omg/state/team/${teamName}/mailbox`);
2170
2176
  await mkdir3(mailboxDir, { recursive: true });
2171
- const tasksDir = join12(cwd, `.omg/state/team/${teamName}/tasks`);
2177
+ const tasksDir = join13(cwd, `.omg/state/team/${teamName}/tasks`);
2172
2178
  await mkdir3(tasksDir, { recursive: true });
2173
2179
  }
2174
2180
  async function writeWorkerOverlay(params) {
2175
2181
  const { teamName, workerName, cwd } = params;
2176
2182
  const overlay = generateWorkerOverlay(params);
2177
- const overlayPath = join12(cwd, `.omg/state/team/${teamName}/workers/${workerName}/AGENTS.md`);
2183
+ const overlayPath = join13(cwd, `.omg/state/team/${teamName}/workers/${workerName}/AGENTS.md`);
2178
2184
  await mkdir3(dirname6(overlayPath), { recursive: true });
2179
2185
  await writeFile3(overlayPath, overlay, "utf-8");
2180
2186
  return overlayPath;
@@ -2927,16 +2933,16 @@ var init_file_lock = __esm({
2927
2933
 
2928
2934
  // src/team/git-worktree.ts
2929
2935
  import { existsSync as existsSync12, readFileSync as readFileSync7 } from "node:fs";
2930
- import { join as join14 } from "node:path";
2936
+ import { join as join15 } from "node:path";
2931
2937
  import { execFileSync as execFileSync2 } from "node:child_process";
2932
2938
  function getWorktreePath(repoRoot, teamName, workerName) {
2933
- return join14(repoRoot, ".omg", "worktrees", sanitizeName(teamName), sanitizeName(workerName));
2939
+ return join15(repoRoot, ".omg", "worktrees", sanitizeName(teamName), sanitizeName(workerName));
2934
2940
  }
2935
2941
  function getBranchName(teamName, workerName) {
2936
2942
  return `omc-team/${sanitizeName(teamName)}/${sanitizeName(workerName)}`;
2937
2943
  }
2938
2944
  function getMetadataPath(repoRoot, teamName) {
2939
- return join14(repoRoot, ".omg", "state", "team-bridge", sanitizeName(teamName), "worktrees.json");
2945
+ return join15(repoRoot, ".omg", "state", "team-bridge", sanitizeName(teamName), "worktrees.json");
2940
2946
  }
2941
2947
  function readMetadata(repoRoot, teamName) {
2942
2948
  const metaPath = getMetadataPath(repoRoot, teamName);
@@ -2953,7 +2959,7 @@ function readMetadata(repoRoot, teamName) {
2953
2959
  function writeMetadata(repoRoot, teamName, entries) {
2954
2960
  const metaPath = getMetadataPath(repoRoot, teamName);
2955
2961
  validateResolvedPath(metaPath, repoRoot);
2956
- const dir = join14(repoRoot, ".omg", "state", "team-bridge", sanitizeName(teamName));
2962
+ const dir = join15(repoRoot, ".omg", "state", "team-bridge", sanitizeName(teamName));
2957
2963
  ensureDirWithMode(dir);
2958
2964
  atomicWriteJson(metaPath, entries);
2959
2965
  }
@@ -3046,7 +3052,7 @@ __export(runtime_v2_exports, {
3046
3052
  writeWatchdogFailedMarker: () => writeWatchdogFailedMarker
3047
3053
  });
3048
3054
  import { execFile as execFile3 } from "child_process";
3049
- import { join as join15, resolve as resolve3 } from "path";
3055
+ import { join as join16, resolve as resolve3 } from "path";
3050
3056
  import { existsSync as existsSync13 } from "fs";
3051
3057
  import { mkdir as mkdir6, readdir as readdir3, readFile as readFile8, writeFile as writeFile4 } from "fs/promises";
3052
3058
  import { performance } from "perf_hooks";
@@ -3338,11 +3344,11 @@ async function startTeamV2(config) {
3338
3344
  }
3339
3345
  await mkdir6(absPath(leaderCwd, TeamPaths.tasks(sanitized)), { recursive: true });
3340
3346
  await mkdir6(absPath(leaderCwd, TeamPaths.workers(sanitized)), { recursive: true });
3341
- await mkdir6(join15(leaderCwd, ".omg", "state", "team", sanitized, "mailbox"), { recursive: true });
3347
+ await mkdir6(join16(leaderCwd, ".omg", "state", "team", sanitized, "mailbox"), { recursive: true });
3342
3348
  for (let i = 0; i < config.tasks.length; i++) {
3343
3349
  const taskId = String(i + 1);
3344
3350
  const taskFilePath = absPath(leaderCwd, TeamPaths.taskFile(sanitized, taskId));
3345
- await mkdir6(join15(taskFilePath, ".."), { recursive: true });
3351
+ await mkdir6(join16(taskFilePath, ".."), { recursive: true });
3346
3352
  await writeFile4(taskFilePath, JSON.stringify({
3347
3353
  id: taskId,
3348
3354
  subject: config.tasks[i].subject,
@@ -3533,7 +3539,7 @@ async function writeWatchdogFailedMarker(teamName, cwd, reason) {
3533
3539
  writtenBy: "runtime-v2"
3534
3540
  };
3535
3541
  const root = absPath(cwd, TeamPaths.root(sanitizeTeamName(teamName)));
3536
- const markerPath = join15(root, "watchdog-failed.json");
3542
+ const markerPath = join16(root, "watchdog-failed.json");
3537
3543
  await mkdir6(root, { recursive: true });
3538
3544
  await writeFile6(markerPath, JSON.stringify(marker, null, 2), "utf-8");
3539
3545
  }
@@ -3899,7 +3905,7 @@ async function resumeTeamV2(teamName, cwd) {
3899
3905
  }
3900
3906
  }
3901
3907
  async function findActiveTeamsV2(cwd) {
3902
- const root = join15(cwd, ".omc", "state", "team");
3908
+ const root = join16(cwd, ".omc", "state", "team");
3903
3909
  if (!existsSync13(root)) return [];
3904
3910
  const entries = await readdir3(root, { withFileTypes: true });
3905
3911
  const active = [];
@@ -3966,13 +3972,13 @@ import { spawn } from "child_process";
3966
3972
  import { existsSync as existsSync17, mkdirSync as mkdirSync3, readFileSync as readFileSync10, writeFileSync as writeFileSync2 } from "fs";
3967
3973
  import { readFile as readFile10, readdir as readdir4, rm as rm4 } from "fs/promises";
3968
3974
  import { homedir as homedir3 } from "os";
3969
- import { dirname as dirname12, join as join19 } from "path";
3975
+ import { dirname as dirname12, join as join20 } from "path";
3970
3976
  import { fileURLToPath as fileURLToPath3 } from "url";
3971
3977
 
3972
3978
  // src/team/api-interop.ts
3973
3979
  init_contracts();
3974
3980
  import { existsSync as existsSync14, readFileSync as readFileSync8 } from "node:fs";
3975
- import { dirname as dirname11, join as join16, resolve as resolvePath } from "node:path";
3981
+ import { dirname as dirname11, join as join17, resolve as resolvePath } from "node:path";
3976
3982
 
3977
3983
  // src/team/team-ops.ts
3978
3984
  init_state_paths();
@@ -4646,8 +4652,8 @@ function parseValidatedTaskIdArray(value, fieldName) {
4646
4652
  }
4647
4653
  function teamStateExists(teamName, candidateCwd) {
4648
4654
  if (!TEAM_NAME_SAFE_PATTERN.test(teamName)) return false;
4649
- const teamRoot = join16(candidateCwd, ".omg", "state", "team", teamName);
4650
- return existsSync14(join16(teamRoot, "config.json")) || existsSync14(join16(teamRoot, "tasks")) || existsSync14(teamRoot);
4655
+ const teamRoot = join17(candidateCwd, ".omg", "state", "team", teamName);
4656
+ return existsSync14(join17(teamRoot, "config.json")) || existsSync14(join17(teamRoot, "tasks")) || existsSync14(teamRoot);
4651
4657
  }
4652
4658
  function parseTeamWorkerEnv(raw) {
4653
4659
  if (typeof raw !== "string" || raw.trim() === "") return null;
@@ -4708,15 +4714,15 @@ function stateRootToWorkingDirectory(stateRoot2) {
4708
4714
  return dirname11(dirname11(absolute));
4709
4715
  }
4710
4716
  function resolveTeamWorkingDirectoryFromMetadata(teamName, candidateCwd, workerContext) {
4711
- const teamRoot = join16(candidateCwd, ".omg", "state", "team", teamName);
4717
+ const teamRoot = join17(candidateCwd, ".omg", "state", "team", teamName);
4712
4718
  if (!existsSync14(teamRoot)) return null;
4713
4719
  if (workerContext?.teamName === teamName) {
4714
- const workerRoot = readTeamStateRootFromFile(join16(teamRoot, "workers", workerContext.workerName, "identity.json"));
4720
+ const workerRoot = readTeamStateRootFromFile(join17(teamRoot, "workers", workerContext.workerName, "identity.json"));
4715
4721
  if (workerRoot) return stateRootToWorkingDirectory(workerRoot);
4716
4722
  }
4717
- const fromConfig = readTeamStateRootFromFile(join16(teamRoot, "config.json"));
4723
+ const fromConfig = readTeamStateRootFromFile(join17(teamRoot, "config.json"));
4718
4724
  if (fromConfig) return stateRootToWorkingDirectory(fromConfig);
4719
- const fromManifest = readTeamStateRootFromFile(join16(teamRoot, "manifest.v2.json"));
4725
+ const fromManifest = readTeamStateRootFromFile(join17(teamRoot, "manifest.v2.json"));
4720
4726
  if (fromManifest) return stateRootToWorkingDirectory(fromManifest);
4721
4727
  return null;
4722
4728
  }
@@ -5282,7 +5288,7 @@ init_tmux_session();
5282
5288
  init_worker_bootstrap();
5283
5289
  init_git_worktree();
5284
5290
  import { mkdir as mkdir7, writeFile as writeFile5, readFile as readFile9, rm as rm3, rename as rename2 } from "fs/promises";
5285
- import { join as join18 } from "path";
5291
+ import { join as join19 } from "path";
5286
5292
  import { existsSync as existsSync16 } from "fs";
5287
5293
 
5288
5294
  // src/team/task-file-ops.ts
@@ -5292,15 +5298,15 @@ init_fs_utils();
5292
5298
  init_platform();
5293
5299
  init_state_paths();
5294
5300
  import { readFileSync as readFileSync9, readdirSync as readdirSync3, existsSync as existsSync15, openSync as openSync4, closeSync as closeSync4, unlinkSync as unlinkSync5, writeSync as writeSync4, statSync as statSync3, constants as fsConstants2 } from "fs";
5295
- import { join as join17 } from "path";
5301
+ import { join as join18 } from "path";
5296
5302
 
5297
5303
  // src/team/runtime.ts
5298
5304
  function stateRoot(cwd, teamName) {
5299
5305
  validateTeamName(teamName);
5300
- return join18(cwd, `.omg/state/team/${teamName}`);
5306
+ return join19(cwd, `.omg/state/team/${teamName}`);
5301
5307
  }
5302
5308
  async function writeJson(filePath, data) {
5303
- await mkdir7(join18(filePath, ".."), { recursive: true });
5309
+ await mkdir7(join19(filePath, ".."), { recursive: true });
5304
5310
  const tmpPath = `${filePath}.tmp`;
5305
5311
  await writeFile5(tmpPath, JSON.stringify(data, null, 2), "utf-8");
5306
5312
  await rename2(tmpPath, filePath);
@@ -5332,7 +5338,7 @@ async function readJsonSafe3(filePath) {
5332
5338
  return null;
5333
5339
  }
5334
5340
  function taskPath(root, taskId) {
5335
- return join18(root, "tasks", `${taskId}.json`);
5341
+ return join19(root, "tasks", `${taskId}.json`);
5336
5342
  }
5337
5343
  async function readTask(root, taskId) {
5338
5344
  return readJsonSafe3(taskPath(root, taskId));
@@ -5345,9 +5351,9 @@ async function monitorTeam(teamName, cwd, workerPaneIds) {
5345
5351
  const taskCounts = { pending: 0, inProgress: 0, completed: 0, failed: 0 };
5346
5352
  try {
5347
5353
  const { readdir: readdir5 } = await import("fs/promises");
5348
- const taskFiles = await readdir5(join18(root, "tasks"));
5354
+ const taskFiles = await readdir5(join19(root, "tasks"));
5349
5355
  for (const f of taskFiles.filter((f2) => f2.endsWith(".json"))) {
5350
- const task = await readJsonSafe3(join18(root, "tasks", f));
5356
+ const task = await readJsonSafe3(join19(root, "tasks", f));
5351
5357
  if (task?.status === "pending") taskCounts.pending++;
5352
5358
  else if (task?.status === "in_progress") taskCounts.inProgress++;
5353
5359
  else if (task?.status === "completed") taskCounts.completed++;
@@ -5363,7 +5369,7 @@ async function monitorTeam(teamName, cwd, workerPaneIds) {
5363
5369
  const wName = `worker-${i + 1}`;
5364
5370
  const paneId = workerPaneIds[i];
5365
5371
  const alive = await isWorkerAlive(paneId);
5366
- const heartbeatPath = join18(root, "workers", wName, "heartbeat.json");
5372
+ const heartbeatPath = join19(root, "workers", wName, "heartbeat.json");
5367
5373
  const heartbeat = await readJsonSafe3(heartbeatPath);
5368
5374
  let stalled = false;
5369
5375
  if (heartbeat?.updatedAt) {
@@ -5405,11 +5411,11 @@ async function monitorTeam(teamName, cwd, workerPaneIds) {
5405
5411
  }
5406
5412
  async function shutdownTeam(teamName, sessionName2, cwd, timeoutMs = 3e4, workerPaneIds, leaderPaneId, ownsWindow) {
5407
5413
  const root = stateRoot(cwd, teamName);
5408
- await writeJson(join18(root, "shutdown.json"), {
5414
+ await writeJson(join19(root, "shutdown.json"), {
5409
5415
  requestedAt: (/* @__PURE__ */ new Date()).toISOString(),
5410
5416
  teamName
5411
5417
  });
5412
- const configData = await readJsonSafe3(join18(root, "config.json"));
5418
+ const configData = await readJsonSafe3(join19(root, "config.json"));
5413
5419
  const CLI_AGENT_TYPES = /* @__PURE__ */ new Set(["claude", "copilot", "codex", "gemini"]);
5414
5420
  const agentTypes = configData?.agentTypes ?? [];
5415
5421
  const isCliWorkerTeam = agentTypes.length > 0 && agentTypes.every((t) => CLI_AGENT_TYPES.has(t));
@@ -5419,7 +5425,7 @@ async function shutdownTeam(teamName, sessionName2, cwd, timeoutMs = 3e4, worker
5419
5425
  const expectedAcks = Array.from({ length: workerCount }, (_, i) => `worker-${i + 1}`);
5420
5426
  while (Date.now() < deadline && expectedAcks.length > 0) {
5421
5427
  for (const wName of [...expectedAcks]) {
5422
- const ackPath = join18(root, "workers", wName, "shutdown-ack.json");
5428
+ const ackPath = join19(root, "workers", wName, "shutdown-ack.json");
5423
5429
  if (existsSync16(ackPath)) {
5424
5430
  expectedAcks.splice(expectedAcks.indexOf(wName), 1);
5425
5431
  }
@@ -5447,7 +5453,7 @@ async function shutdownTeam(teamName, sessionName2, cwd, timeoutMs = 3e4, worker
5447
5453
  }
5448
5454
  async function resumeTeam(teamName, cwd) {
5449
5455
  const root = stateRoot(cwd, teamName);
5450
- const configData = await readJsonSafe3(join18(root, "config.json"));
5456
+ const configData = await readJsonSafe3(join19(root, "config.json"));
5451
5457
  if (!configData) return null;
5452
5458
  const { execFile: execFile4 } = await import("child_process");
5453
5459
  const { promisify: promisify3 } = await import("util");
@@ -5534,14 +5540,14 @@ function assertTeamSpawnAllowed(env = process.env) {
5534
5540
  );
5535
5541
  }
5536
5542
  function resolveJobsDir(env = process.env) {
5537
- return env.OMC_JOBS_DIR || join19(homedir3(), ".omg", "team-jobs");
5543
+ return env.OMC_JOBS_DIR || join20(homedir3(), ".omg", "team-jobs");
5538
5544
  }
5539
5545
  function resolveRuntimeCliPath(env = process.env) {
5540
5546
  if (env.OMC_RUNTIME_CLI_PATH) {
5541
5547
  return env.OMC_RUNTIME_CLI_PATH;
5542
5548
  }
5543
5549
  const moduleDir = dirname12(fileURLToPath3(import.meta.url));
5544
- return join19(moduleDir, "../../bridge/runtime-cli.cjs");
5550
+ return join20(moduleDir, "../../bridge/runtime-cli.cjs");
5545
5551
  }
5546
5552
  function ensureJobsDir(jobsDir) {
5547
5553
  if (!existsSync17(jobsDir)) {
@@ -5549,16 +5555,16 @@ function ensureJobsDir(jobsDir) {
5549
5555
  }
5550
5556
  }
5551
5557
  function jobPath(jobsDir, jobId) {
5552
- return join19(jobsDir, `${jobId}.json`);
5558
+ return join20(jobsDir, `${jobId}.json`);
5553
5559
  }
5554
5560
  function resultArtifactPath(jobsDir, jobId) {
5555
- return join19(jobsDir, `${jobId}-result.json`);
5561
+ return join20(jobsDir, `${jobId}-result.json`);
5556
5562
  }
5557
5563
  function panesArtifactPath(jobsDir, jobId) {
5558
- return join19(jobsDir, `${jobId}-panes.json`);
5564
+ return join20(jobsDir, `${jobId}-panes.json`);
5559
5565
  }
5560
5566
  function teamStateRoot2(cwd, teamName) {
5561
- return join19(cwd, ".omg", "state", "team", teamName);
5567
+ return join20(cwd, ".omg", "state", "team", teamName);
5562
5568
  }
5563
5569
  function validateJobId(jobId) {
5564
5570
  if (!JOB_ID_PATTERN.test(jobId)) {
@@ -82,7 +82,7 @@ describe('getCopilotConfigDir', () => {
82
82
  ...process.env,
83
83
  HOME: homeDir,
84
84
  PATH: '/bin:/usr/bin',
85
- CLAUDE_CONFIG_DIR: '~/.copilot-alt',
85
+ COPILOT_CONFIG_DIR: '~/.copilot-alt',
86
86
  },
87
87
  encoding: 'utf-8',
88
88
  });
@@ -90,12 +90,12 @@ describe('getCopilotConfigDir', () => {
90
90
  });
91
91
  it.skipIf(process.platform === 'win32')('shared shell helper expands a ~-prefixed COPILOT_CONFIG_DIR', () => {
92
92
  const homeDir = mkdtempSync(join(tmpdir(), 'omc-uninstall-home-'));
93
- const output = execFileSync('bash', ['-lc', `. "${join(process.cwd(), 'scripts', 'lib', 'config-dir.sh')}"; resolve_claude_config_dir`], {
93
+ const output = execFileSync('bash', ['-lc', `. "${join(process.cwd(), 'scripts', 'lib', 'config-dir.sh')}"; resolve_copilot_config_dir`], {
94
94
  cwd: process.cwd(),
95
95
  env: {
96
96
  ...process.env,
97
97
  HOME: homeDir,
98
- CLAUDE_CONFIG_DIR: '~/.copilot-alt',
98
+ COPILOT_CONFIG_DIR: '~/.copilot-alt',
99
99
  },
100
100
  encoding: 'utf-8',
101
101
  });
@@ -1 +1 @@
1
- {"version":3,"file":"config-dir.test.js","sourceRoot":"","sources":["../../src/__tests__/config-dir.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAEzD,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACtC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACvC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;QACxG,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACxH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC;QACrC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;QAClD,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,GAAG,GAAG,CAAC;QAC/E,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC;QAExC,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB;SACnC,CAAC,CAAC,CAAC;QACJ,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAC5F,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvB,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzB,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;QAClD,MAAM,MAAM,GAAG,YAAY,CACzB,OAAO,CAAC,QAAQ,EAChB;YACE,qBAAqB;YACrB,IAAI;YACJ,gHAAgH;SACjH,EACD;YACE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;YAC1E,QAAQ,EAAE,OAAO;SAClB,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,uFAAuF,EAAE,GAAG,EAAE;QACpI,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAChD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAErG,MAAM,MAAM,GAAG,YAAY,CACzB,SAAS,EACT,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,4BAA4B,CAAC,EACpF;YACE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,eAAe;gBACrB,iBAAiB,EAAE,gBAAgB;aACpC;YACD,QAAQ,EAAE,OAAO;SAClB,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,6DAA6D,EAAE,GAAG,EAAE;QAC1G,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,8BAA8B,CAAC,EAAE;YACvI,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,IAAI,EAAE,OAAO;gBACb,iBAAiB,EAAE,gBAAgB;aACpC;YACD,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,YAAY,CACzB,OAAO,CAAC,QAAQ,EAChB,CAAC,IAAI,EAAE,0CAA0C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gDAAgD,CAAC,EACzH;YACE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;YAC1E,QAAQ,EAAE,OAAO;SAClB,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAI,aAAiC,CAAC;IACtC,IAAI,OAAe,CAAC;IACpB,IAAI,cAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/C,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpG,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7G,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACjD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,4BAA4B,CAAC;QAC9D,MAAM,cAAc,GAAG,4DAA4D,CAAC;QACpF,MAAM,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACjE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QACxF,MAAM,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAE7E,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,eAAe,CAAC,CAAC;QAEvE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACrD,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;QAErE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAEjE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"config-dir.test.js","sourceRoot":"","sources":["../../src/__tests__/config-dir.test.ts"],"names":[],"mappings":"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"}
@@ -42,10 +42,10 @@ describe('renderCwd', () => {
42
42
  });
43
43
  });
44
44
  describe('folder format', () => {
45
- it('returns only folder name', () => {
45
+ it('returns parent/leaf folder name', () => {
46
46
  const result = renderCwd('/Users/testuser/workspace/project', 'folder');
47
47
  expect(result).toContain('project');
48
- expect(result).not.toContain('/');
48
+ expect(result).toContain('workspace');
49
49
  });
50
50
  it('handles nested paths', () => {
51
51
  const result = renderCwd('/a/b/c/deep/folder', 'folder');
@@ -1 +1 @@
1
- {"version":3,"file":"cwd.test.js","sourceRoot":"","sources":["../../../src/__tests__/hud/cwd.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cwd.test.js","sourceRoot":"","sources":["../../../src/__tests__/hud/cwd.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,oCAAoC;AACpC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB;CACjC,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG,SAAS,CAAC,mCAAmC,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,MAAM,GAAG,SAAS,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,MAAM,GAAG,SAAS,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAG,SAAS,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,SAAS,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -119,12 +119,12 @@ describe('purgeStalePluginCacheVersions', () => {
119
119
  mockedReaddirSync.mockImplementation((p, _opts) => {
120
120
  const ps = n(String(p));
121
121
  if (ps === n(cacheDir))
122
- return [dirent('official'), dirent('omg')];
122
+ return [dirent('official'), dirent('omc')];
123
123
  if (ps.endsWith('official'))
124
124
  return [dirent('hookify')];
125
125
  if (ps.endsWith('hookify'))
126
126
  return [dirent('aa11'), dirent('bb22'), dirent('cc33')];
127
- if (ps.endsWith('omg'))
127
+ if (ps.endsWith('omc'))
128
128
  return [dirent('oh-my-copilot')];
129
129
  if (ps.endsWith('oh-my-copilot'))
130
130
  return [dirent('4.3.0')];
@@ -155,8 +155,8 @@ describe('purgeStalePluginCacheVersions', () => {
155
155
  mockedReaddirSync.mockImplementation((p, _opts) => {
156
156
  const ps = String(p);
157
157
  if (ps === cacheDir)
158
- return [dirent('omg')];
159
- if (ps.endsWith('omg'))
158
+ return [dirent('omc')];
159
+ if (ps.endsWith('omc'))
160
160
  return [dirent('oh-my-copilot')];
161
161
  if (ps.endsWith('oh-my-copilot'))
162
162
  return [dirent('4.3.0')];
@@ -191,8 +191,8 @@ describe('purgeStalePluginCacheVersions', () => {
191
191
  mockedReaddirSync.mockImplementation((p, _opts) => {
192
192
  const ps = String(p);
193
193
  if (ps === cacheDir)
194
- return [dirent('omg')];
195
- if (ps.endsWith('omg'))
194
+ return [dirent('omc')];
195
+ if (ps.endsWith('omc'))
196
196
  return [dirent('plugin')];
197
197
  if (ps.endsWith('plugin'))
198
198
  return [dirent('1.0.0')];
@@ -220,8 +220,8 @@ describe('purgeStalePluginCacheVersions', () => {
220
220
  mockedReaddirSync.mockImplementation((p, _opts) => {
221
221
  const ps = String(p);
222
222
  if (ps === cacheDir)
223
- return [dirent('omg')];
224
- if (ps.endsWith('omg'))
223
+ return [dirent('omc')];
224
+ if (ps.endsWith('omc'))
225
225
  return [dirent('plugin')];
226
226
  if (ps.endsWith('plugin'))
227
227
  return [dirent('2.0.0')];
@@ -243,8 +243,8 @@ describe('purgeStalePluginCacheVersions', () => {
243
243
  mockedReaddirSync.mockImplementation((p, _opts) => {
244
244
  const ps = String(p);
245
245
  if (ps === cacheDir)
246
- return [dirent('omg')];
247
- if (ps.endsWith('omg'))
246
+ return [dirent('omc')];
247
+ if (ps.endsWith('omc'))
248
248
  return [dirent('plugin')];
249
249
  if (ps.endsWith('plugin'))
250
250
  return [dirent('1.0.0')];