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.
- package/.claude-plugin/marketplace.json +4 -4
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/bridge/cli.cjs +143 -52
- package/bridge/runtime-cli.cjs +9 -3
- package/bridge/team-bridge.cjs +9 -3
- package/bridge/team.js +70 -64
- package/dist/__tests__/config-dir.test.js +3 -3
- package/dist/__tests__/config-dir.test.js.map +1 -1
- package/dist/__tests__/hud/cwd.test.js +2 -2
- package/dist/__tests__/hud/cwd.test.js.map +1 -1
- package/dist/__tests__/purge-stale-cache.test.js +10 -10
- package/dist/__tests__/release-generation.test.js +13 -13
- package/dist/__tests__/release-generation.test.js.map +1 -1
- package/dist/__tests__/setup-claude-md-script.test.js +3 -2
- package/dist/__tests__/setup-claude-md-script.test.js.map +1 -1
- package/dist/__tests__/setup-progress-script.test.js +1 -1
- package/dist/__tests__/setup-progress-script.test.js.map +1 -1
- package/dist/autoresearch/contracts.d.ts.map +1 -1
- package/dist/autoresearch/contracts.js +7 -2
- package/dist/autoresearch/contracts.js.map +1 -1
- package/dist/cli/autoresearch-guided.d.ts.map +1 -1
- package/dist/cli/autoresearch-guided.js +14 -6
- package/dist/cli/autoresearch-guided.js.map +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +32 -1
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/learner/finder.js +1 -1
- package/dist/hooks/learner/finder.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js +1 -1
- package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js.map +1 -1
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +9 -2
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hud/elements/agents.d.ts.map +1 -1
- package/dist/hud/elements/agents.js +7 -3
- package/dist/hud/elements/agents.js.map +1 -1
- package/dist/installer/index.d.ts +1 -0
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +63 -39
- package/dist/installer/index.js.map +1 -1
- package/dist/lib/plugin-dir.d.ts +12 -0
- package/dist/lib/plugin-dir.d.ts.map +1 -0
- package/dist/lib/plugin-dir.js +18 -0
- package/dist/lib/plugin-dir.js.map +1 -0
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +13 -0
- package/dist/lib/version.js.map +1 -1
- package/dist/lib/worktree-paths.d.ts.map +1 -1
- package/dist/lib/worktree-paths.js +12 -1
- package/dist/lib/worktree-paths.js.map +1 -1
- package/dist/team/__tests__/runtime-v2.dispatch.test.js +7 -7
- package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
- package/dist/team/fs-utils.d.ts.map +1 -1
- package/dist/team/fs-utils.js +14 -7
- package/dist/team/fs-utils.js.map +1 -1
- package/dist/tools/python-repl/__tests__/python-sandbox.test.js +29 -2
- package/dist/tools/python-repl/__tests__/python-sandbox.test.js.map +1 -1
- package/dist/utils/resolve-node.d.ts +5 -3
- package/dist/utils/resolve-node.d.ts.map +1 -1
- package/dist/utils/resolve-node.js +17 -9
- package/dist/utils/resolve-node.js.map +1 -1
- package/docs/copilot-instructions.md +1 -1
- package/package.json +1 -1
- package/scripts/build-bridge-entry.mjs +12 -3
- package/scripts/build-cli.mjs +17 -7
- package/scripts/build-mcp-server.mjs +12 -3
- package/scripts/build-runtime-cli.mjs +13 -3
- package/scripts/build-skill-bridge.mjs +12 -3
- package/scripts/persistent-mode.cjs +8 -0
- package/scripts/post-tool-verifier.mjs +74 -1
- package/scripts/setup-copilot-instructions.sh +1 -1
- package/skills/hud/SKILL.md +53 -10
- package/skills/mcp-setup/SKILL.md +30 -14
- package/skills/omc-setup/SKILL.md +19 -1
- package/skills/omc-setup/phases/01-install-copilot-instructions.md +29 -3
- package/skills/omc-setup/phases/03-integrations.md +16 -99
- package/skills/omc-setup/phases/04-welcome.md +33 -91
- package/skills/project-session-manager/SKILL.md +2 -2
- package/skills/project-session-manager/lib/config.sh +1 -1
- package/skills/project-session-manager/psm.sh +1 -1
- package/skills/project-session-manager/templates/projects.json +1 -1
- package/skills/release/SKILL.md +1 -1
- package/templates/hooks/post-tool-use.mjs +70 -0
- 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
|
|
141
|
-
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1523
|
+
return join10(__dirname, "..");
|
|
1518
1524
|
}
|
|
1519
1525
|
if (currentDirName === "agents" && (parentDirName === "src" || parentDirName === "dist")) {
|
|
1520
|
-
return
|
|
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
|
|
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 =
|
|
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
|
|
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 ||
|
|
1680
|
+
return process.env.APPDATA || join11(homedir2(), "AppData", "Roaming");
|
|
1675
1681
|
}
|
|
1676
|
-
return process.env.XDG_CONFIG_HOME ||
|
|
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
|
|
1695
|
+
import { join as join12 } from "path";
|
|
1690
1696
|
function loadSecurityFromConfigFiles() {
|
|
1691
1697
|
const paths = [
|
|
1692
|
-
|
|
1693
|
-
|
|
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
|
|
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 =
|
|
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 =
|
|
2173
|
+
const workerDir = join13(cwd, `.omg/state/team/${teamName}/workers/${workerName}`);
|
|
2168
2174
|
await mkdir3(workerDir, { recursive: true });
|
|
2169
|
-
const mailboxDir =
|
|
2175
|
+
const mailboxDir = join13(cwd, `.omg/state/team/${teamName}/mailbox`);
|
|
2170
2176
|
await mkdir3(mailboxDir, { recursive: true });
|
|
2171
|
-
const tasksDir =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
4650
|
-
return existsSync14(
|
|
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 =
|
|
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(
|
|
4720
|
+
const workerRoot = readTeamStateRootFromFile(join17(teamRoot, "workers", workerContext.workerName, "identity.json"));
|
|
4715
4721
|
if (workerRoot) return stateRootToWorkingDirectory(workerRoot);
|
|
4716
4722
|
}
|
|
4717
|
-
const fromConfig = readTeamStateRootFromFile(
|
|
4723
|
+
const fromConfig = readTeamStateRootFromFile(join17(teamRoot, "config.json"));
|
|
4718
4724
|
if (fromConfig) return stateRootToWorkingDirectory(fromConfig);
|
|
4719
|
-
const fromManifest = readTeamStateRootFromFile(
|
|
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
|
|
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
|
|
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
|
|
5306
|
+
return join19(cwd, `.omg/state/team/${teamName}`);
|
|
5301
5307
|
}
|
|
5302
5308
|
async function writeJson(filePath, data) {
|
|
5303
|
-
await mkdir7(
|
|
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
|
|
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(
|
|
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(
|
|
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 =
|
|
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(
|
|
5414
|
+
await writeJson(join19(root, "shutdown.json"), {
|
|
5409
5415
|
requestedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
5410
5416
|
teamName
|
|
5411
5417
|
});
|
|
5412
|
-
const configData = await readJsonSafe3(
|
|
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 =
|
|
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(
|
|
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 ||
|
|
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
|
|
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
|
|
5558
|
+
return join20(jobsDir, `${jobId}.json`);
|
|
5553
5559
|
}
|
|
5554
5560
|
function resultArtifactPath(jobsDir, jobId) {
|
|
5555
|
-
return
|
|
5561
|
+
return join20(jobsDir, `${jobId}-result.json`);
|
|
5556
5562
|
}
|
|
5557
5563
|
function panesArtifactPath(jobsDir, jobId) {
|
|
5558
|
-
return
|
|
5564
|
+
return join20(jobsDir, `${jobId}-panes.json`);
|
|
5559
5565
|
}
|
|
5560
5566
|
function teamStateRoot2(cwd, teamName) {
|
|
5561
|
-
return
|
|
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
|
-
|
|
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')}";
|
|
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
|
-
|
|
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":"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
|
|
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
|
|
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).
|
|
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":"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,
|
|
1
|
+
{"version":3,"file":"cwd.test.js","sourceRoot":"","sources":["../../../src/__tests__/hud/cwd.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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('
|
|
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('
|
|
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('
|
|
159
|
-
if (ps.endsWith('
|
|
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('
|
|
195
|
-
if (ps.endsWith('
|
|
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('
|
|
224
|
-
if (ps.endsWith('
|
|
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('
|
|
247
|
-
if (ps.endsWith('
|
|
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')];
|