@open330/oac 2026.220.1 → 2026.221.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-OTPXGXO7.js → chunk-6JEFW6B7.js} +49 -3
- package/dist/chunk-6JEFW6B7.js.map +1 -0
- package/dist/{chunk-7Y4LZUDP.js → chunk-SUN44O2W.js} +95 -15
- package/dist/chunk-SUN44O2W.js.map +1 -0
- package/dist/{chunk-QPVNC7S4.js → chunk-VX3VMPD2.js} +60 -17
- package/dist/chunk-VX3VMPD2.js.map +1 -0
- package/dist/cli/cli.js +3 -3
- package/dist/cli/index.js +3 -3
- package/dist/completion/index.d.ts +5 -0
- package/dist/completion/index.js +45 -0
- package/dist/completion/index.js.map +1 -1
- package/dist/dashboard/index.js +2 -2
- package/dist/discovery/index.js +1 -1
- package/dist/execution/index.js +1 -1
- package/package.json +13 -15
- package/dist/chunk-7Y4LZUDP.js.map +0 -1
- package/dist/chunk-OTPXGXO7.js.map +0 -1
- package/dist/chunk-QPVNC7S4.js.map +0 -1
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
persistContext,
|
|
21
21
|
rankTasks,
|
|
22
22
|
updateBacklog
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-6JEFW6B7.js";
|
|
24
24
|
import {
|
|
25
25
|
buildEpicExecutionPlan,
|
|
26
26
|
buildExecutionPlan,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
createSandbox,
|
|
33
33
|
epicAsTask,
|
|
34
34
|
executeTask
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-VX3VMPD2.js";
|
|
36
36
|
import {
|
|
37
37
|
UNLIMITED_BUDGET,
|
|
38
38
|
createEventBus,
|
|
@@ -154,6 +154,9 @@ function shouldTryLegacyDefineConfigFallback(error) {
|
|
|
154
154
|
if (!(error instanceof Error)) {
|
|
155
155
|
return false;
|
|
156
156
|
}
|
|
157
|
+
if (error.code === "ERR_UNKNOWN_FILE_EXTENSION") {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
157
160
|
return DEFINE_CONFIG_IMPORT.test(error.message);
|
|
158
161
|
}
|
|
159
162
|
function transformLegacyDefineConfigSource(source) {
|
|
@@ -571,16 +574,8 @@ async function runDoctorChecks() {
|
|
|
571
574
|
status: claudeResult.ok ? "pass" : "fail",
|
|
572
575
|
message: claudeResult.ok ? void 0 : explainCommandFailure("claude", claudeResult)
|
|
573
576
|
});
|
|
574
|
-
const
|
|
575
|
-
|
|
576
|
-
checks.push({
|
|
577
|
-
id: "codex",
|
|
578
|
-
name: "Codex CLI",
|
|
579
|
-
requirement: "installed",
|
|
580
|
-
value: codexVersion,
|
|
581
|
-
status: codexResult.ok ? "pass" : "fail",
|
|
582
|
-
message: codexResult.ok ? void 0 : explainCommandFailure("codex", codexResult)
|
|
583
|
-
});
|
|
577
|
+
const codexCheck = await checkCodexCli();
|
|
578
|
+
checks.push(codexCheck);
|
|
584
579
|
const opencodeResult = await runCommand("opencode", ["--version"]);
|
|
585
580
|
const opencodeVersion = extractVersion(opencodeResult.stdout) ?? "--";
|
|
586
581
|
checks.push({
|
|
@@ -625,6 +620,38 @@ async function checkGithubAuth() {
|
|
|
625
620
|
message: "No GitHub authentication detected. Set GITHUB_TOKEN or run `gh auth login`."
|
|
626
621
|
};
|
|
627
622
|
}
|
|
623
|
+
async function checkCodexCli() {
|
|
624
|
+
const codexResult = await runCommand("codex", ["--version"]);
|
|
625
|
+
if (codexResult.ok) {
|
|
626
|
+
const version = extractVersion(codexResult.stdout) ?? "--";
|
|
627
|
+
return {
|
|
628
|
+
id: "codex",
|
|
629
|
+
name: "Codex CLI",
|
|
630
|
+
requirement: "installed",
|
|
631
|
+
value: version,
|
|
632
|
+
status: "pass"
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
const whichResult = await runCommand("which", ["codex"]);
|
|
636
|
+
if (whichResult.ok && whichResult.stdout.trim().length > 0) {
|
|
637
|
+
return {
|
|
638
|
+
id: "codex",
|
|
639
|
+
name: "Codex CLI",
|
|
640
|
+
requirement: "installed",
|
|
641
|
+
value: "installed",
|
|
642
|
+
status: "pass",
|
|
643
|
+
message: "Version check timed out \u2014 binary found in PATH."
|
|
644
|
+
};
|
|
645
|
+
}
|
|
646
|
+
return {
|
|
647
|
+
id: "codex",
|
|
648
|
+
name: "Codex CLI",
|
|
649
|
+
requirement: "installed",
|
|
650
|
+
value: "--",
|
|
651
|
+
status: "fail",
|
|
652
|
+
message: explainCommandFailure("codex", codexResult)
|
|
653
|
+
};
|
|
654
|
+
}
|
|
628
655
|
function renderDoctorOutput(ui, checks, allPassed) {
|
|
629
656
|
console.log("Checking environment...");
|
|
630
657
|
console.log("");
|
|
@@ -697,7 +724,7 @@ async function runCommand(command, args) {
|
|
|
697
724
|
const { execa: execa3 } = await import("execa");
|
|
698
725
|
const result = await execa3(command, args, {
|
|
699
726
|
reject: false,
|
|
700
|
-
timeout:
|
|
727
|
+
timeout: 1e4,
|
|
701
728
|
stdin: "ignore"
|
|
702
729
|
});
|
|
703
730
|
return {
|
|
@@ -1599,6 +1626,8 @@ function formatDuration(seconds) {
|
|
|
1599
1626
|
}
|
|
1600
1627
|
|
|
1601
1628
|
// src/cli/commands/run/pr.ts
|
|
1629
|
+
var GITHUB_API_BASE_URL = "https://api.github.com";
|
|
1630
|
+
var OAC_PR_TITLE_PREFIX = "[OAC]";
|
|
1602
1631
|
async function createPullRequest(input2) {
|
|
1603
1632
|
if (!input2.sandbox) {
|
|
1604
1633
|
return void 0;
|
|
@@ -1610,6 +1639,19 @@ async function createPullRequest(input2) {
|
|
|
1610
1639
|
ghEnv.GH_TOKEN = input2.ghToken;
|
|
1611
1640
|
ghEnv.GITHUB_TOKEN = input2.ghToken;
|
|
1612
1641
|
}
|
|
1642
|
+
if (input2.task.linkedIssue && input2.ghToken) {
|
|
1643
|
+
const duplicate = await findExistingOacPR(
|
|
1644
|
+
input2.repoFullName,
|
|
1645
|
+
input2.task.linkedIssue.number,
|
|
1646
|
+
input2.ghToken
|
|
1647
|
+
);
|
|
1648
|
+
if (duplicate) {
|
|
1649
|
+
console.warn(
|
|
1650
|
+
`[oac] Skipping PR: existing OAC PR #${duplicate} already targets issue #${input2.task.linkedIssue.number}`
|
|
1651
|
+
);
|
|
1652
|
+
return void 0;
|
|
1653
|
+
}
|
|
1654
|
+
}
|
|
1613
1655
|
await execa("git", ["push", "--set-upstream", "origin", branchName], {
|
|
1614
1656
|
cwd: sandboxPath,
|
|
1615
1657
|
env: ghEnv,
|
|
@@ -1674,6 +1716,44 @@ async function createPullRequest(input2) {
|
|
|
1674
1716
|
return void 0;
|
|
1675
1717
|
}
|
|
1676
1718
|
}
|
|
1719
|
+
async function findExistingOacPR(repoFullName, issueNumber, token) {
|
|
1720
|
+
const url = `${GITHUB_API_BASE_URL}/repos/${repoFullName}/pulls?state=open&per_page=100&sort=updated&direction=desc`;
|
|
1721
|
+
try {
|
|
1722
|
+
const response = await fetch(url, {
|
|
1723
|
+
method: "GET",
|
|
1724
|
+
headers: {
|
|
1725
|
+
Authorization: `Bearer ${token}`,
|
|
1726
|
+
Accept: "application/vnd.github.v3+json"
|
|
1727
|
+
},
|
|
1728
|
+
signal: AbortSignal.timeout(15e3)
|
|
1729
|
+
});
|
|
1730
|
+
if (!response.ok) {
|
|
1731
|
+
return void 0;
|
|
1732
|
+
}
|
|
1733
|
+
const pulls = await response.json();
|
|
1734
|
+
if (!Array.isArray(pulls)) {
|
|
1735
|
+
return void 0;
|
|
1736
|
+
}
|
|
1737
|
+
const issueRefPattern = /(?:Fixes|Closes|Resolves)\s+#(\d+)/gi;
|
|
1738
|
+
for (const pr of pulls) {
|
|
1739
|
+
if (!pr || typeof pr !== "object") continue;
|
|
1740
|
+
const record = pr;
|
|
1741
|
+
const title = typeof record.title === "string" ? record.title : "";
|
|
1742
|
+
if (!title.startsWith(OAC_PR_TITLE_PREFIX)) continue;
|
|
1743
|
+
const prNumber = typeof record.number === "number" ? record.number : void 0;
|
|
1744
|
+
const body = typeof record.body === "string" ? record.body : "";
|
|
1745
|
+
for (const match of body.matchAll(issueRefPattern)) {
|
|
1746
|
+
const num = Number.parseInt(match[1], 10);
|
|
1747
|
+
if (num === issueNumber) {
|
|
1748
|
+
return prNumber;
|
|
1749
|
+
}
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
return void 0;
|
|
1753
|
+
} catch {
|
|
1754
|
+
return void 0;
|
|
1755
|
+
}
|
|
1756
|
+
}
|
|
1677
1757
|
|
|
1678
1758
|
// src/cli/commands/run/task.ts
|
|
1679
1759
|
import Table5 from "cli-table3";
|
|
@@ -3119,7 +3199,7 @@ function registerCommands(program) {
|
|
|
3119
3199
|
program.addCommand(createExplainCommand());
|
|
3120
3200
|
}
|
|
3121
3201
|
async function createCliProgram() {
|
|
3122
|
-
const version = true ? "2026.
|
|
3202
|
+
const version = true ? "2026.221.0" : "0.0.0";
|
|
3123
3203
|
const program = new Command13();
|
|
3124
3204
|
program.name("oac").description("Open Agent Contribution CLI").version(version).option("--config <path>", "Config file path", "oac.config.ts").option("--verbose", "Enable verbose logging", false).option("--quiet", "Suppress non-error output", false).option("--json", "Output machine-readable JSON", false).option("--no-color", "Disable ANSI colors");
|
|
3125
3205
|
registerCommands(program);
|
|
@@ -3149,4 +3229,4 @@ export {
|
|
|
3149
3229
|
createCliProgram,
|
|
3150
3230
|
runCli
|
|
3151
3231
|
};
|
|
3152
|
-
//# sourceMappingURL=chunk-
|
|
3232
|
+
//# sourceMappingURL=chunk-SUN44O2W.js.map
|