@integrity-labs/agt-cli 0.15.36 → 0.15.38
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.
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
resolveChannels,
|
|
23
23
|
resolveDmTarget,
|
|
24
24
|
wrapScheduledTaskPrompt
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-XJSQKRFV.js";
|
|
26
26
|
import {
|
|
27
27
|
findTaskByTemplate,
|
|
28
28
|
getProjectDir,
|
|
@@ -1435,7 +1435,7 @@ function clearAgentCaches(agentId, codeName) {
|
|
|
1435
1435
|
var cachedFrameworkVersion = null;
|
|
1436
1436
|
var lastVersionCheckAt = 0;
|
|
1437
1437
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
1438
|
-
var agtCliVersion = true ? "0.15.
|
|
1438
|
+
var agtCliVersion = true ? "0.15.38" : "dev";
|
|
1439
1439
|
function resolveBrewPath(execFileSync2) {
|
|
1440
1440
|
try {
|
|
1441
1441
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -1658,18 +1658,35 @@ var restartAfterUpgrade = false;
|
|
|
1658
1658
|
var pendingUpgradeVersion = null;
|
|
1659
1659
|
async function checkAndUpdateCli() {
|
|
1660
1660
|
const cliPath = process.argv[1] ?? "";
|
|
1661
|
-
const isHomebrew = cliPath.includes("/Cellar/") || cliPath.includes("/homebrew/");
|
|
1662
1661
|
const isDevMode = cliPath.includes("/src/") || cliPath.includes("tsx");
|
|
1663
1662
|
if (isDevMode) return;
|
|
1664
|
-
|
|
1665
|
-
|
|
1663
|
+
let resolvedPath = cliPath;
|
|
1664
|
+
try {
|
|
1665
|
+
const { realpathSync } = await import("fs");
|
|
1666
|
+
resolvedPath = realpathSync(cliPath);
|
|
1667
|
+
} catch {
|
|
1668
|
+
}
|
|
1669
|
+
const isBrewFormula = /\/Cellar\/[^/]+\//.test(resolvedPath);
|
|
1670
|
+
const isNpmGlobal = !isBrewFormula && resolvedPath.includes("node_modules");
|
|
1671
|
+
if (!isBrewFormula && !isNpmGlobal) return;
|
|
1666
1672
|
const { readFileSync: readF, writeFileSync: writeF } = await import("fs");
|
|
1667
|
-
const markerPath = join3(
|
|
1673
|
+
const markerPath = join3(homedir3(), ".augmented", ".last-update-check");
|
|
1668
1674
|
try {
|
|
1669
1675
|
const lastCheck = parseInt(readF(markerPath, "utf-8").trim(), 10);
|
|
1670
1676
|
if (Date.now() - lastCheck < UPDATE_CHECK_INTERVAL_MS) return;
|
|
1671
1677
|
} catch {
|
|
1672
1678
|
}
|
|
1679
|
+
if (isBrewFormula) {
|
|
1680
|
+
await checkAndUpdateCliViaBrew();
|
|
1681
|
+
} else {
|
|
1682
|
+
await checkAndUpdateCliViaNpm();
|
|
1683
|
+
}
|
|
1684
|
+
try {
|
|
1685
|
+
writeF(markerPath, String(Date.now()));
|
|
1686
|
+
} catch {
|
|
1687
|
+
}
|
|
1688
|
+
}
|
|
1689
|
+
async function checkAndUpdateCliViaBrew() {
|
|
1673
1690
|
const { execFileSync: execFileSync2 } = await import("child_process");
|
|
1674
1691
|
let brewPath;
|
|
1675
1692
|
try {
|
|
@@ -1692,7 +1709,7 @@ async function checkAndUpdateCli() {
|
|
|
1692
1709
|
if (agtOutdated) {
|
|
1693
1710
|
const installed = agtOutdated.installed_versions?.[0] ?? "unknown";
|
|
1694
1711
|
const latest = agtOutdated.current_version ?? "unknown";
|
|
1695
|
-
log(`[self-update] agt CLI update available: ${installed} \u2192 ${latest}. Upgrading...`);
|
|
1712
|
+
log(`[self-update] agt CLI update available: ${installed} \u2192 ${latest}. Upgrading via brew...`);
|
|
1696
1713
|
try {
|
|
1697
1714
|
execFileSync2(brewPath, ["upgrade", "integrity-labs/tap/agt"], {
|
|
1698
1715
|
timeout: 12e4,
|
|
@@ -1702,19 +1719,84 @@ async function checkAndUpdateCli() {
|
|
|
1702
1719
|
restartAfterUpgrade = true;
|
|
1703
1720
|
pendingUpgradeVersion = latest;
|
|
1704
1721
|
} catch (err) {
|
|
1705
|
-
log(`[self-update]
|
|
1722
|
+
log(`[self-update] brew upgrade failed: ${err.message}`);
|
|
1706
1723
|
}
|
|
1707
1724
|
} else if (!selfUpdateUpToDateLogged) {
|
|
1708
|
-
log(`[self-update] agt CLI is up to date`);
|
|
1725
|
+
log(`[self-update] agt CLI is up to date (brew, ${agtCliVersion})`);
|
|
1709
1726
|
selfUpdateUpToDateLogged = true;
|
|
1710
1727
|
}
|
|
1711
1728
|
} catch (err) {
|
|
1712
1729
|
log(`[self-update] brew outdated failed: ${err.message}`);
|
|
1713
1730
|
}
|
|
1731
|
+
}
|
|
1732
|
+
async function checkAndUpdateCliViaNpm() {
|
|
1733
|
+
const { execFileSync: execFileSync2 } = await import("child_process");
|
|
1734
|
+
if (agtCliVersion === "dev") return;
|
|
1735
|
+
let latest;
|
|
1714
1736
|
try {
|
|
1715
|
-
|
|
1716
|
-
|
|
1737
|
+
const res = await fetch(
|
|
1738
|
+
"https://registry.npmjs.org/@integrity-labs/agt-cli/latest",
|
|
1739
|
+
{
|
|
1740
|
+
signal: AbortSignal.timeout(1e4),
|
|
1741
|
+
headers: { Accept: "application/json" }
|
|
1742
|
+
}
|
|
1743
|
+
);
|
|
1744
|
+
if (!res.ok) {
|
|
1745
|
+
log(`[self-update] npm registry returned ${res.status}`);
|
|
1746
|
+
return;
|
|
1747
|
+
}
|
|
1748
|
+
const body = await res.json();
|
|
1749
|
+
if (!body.version) {
|
|
1750
|
+
log(`[self-update] npm registry response missing version field`);
|
|
1751
|
+
return;
|
|
1752
|
+
}
|
|
1753
|
+
latest = body.version;
|
|
1754
|
+
} catch (err) {
|
|
1755
|
+
log(`[self-update] npm registry fetch failed: ${err.message}`);
|
|
1756
|
+
return;
|
|
1757
|
+
}
|
|
1758
|
+
if (!isNewerSemver(agtCliVersion, latest)) {
|
|
1759
|
+
if (!selfUpdateUpToDateLogged) {
|
|
1760
|
+
log(`[self-update] agt CLI is up to date (npm, ${agtCliVersion})`);
|
|
1761
|
+
selfUpdateUpToDateLogged = true;
|
|
1762
|
+
}
|
|
1763
|
+
return;
|
|
1717
1764
|
}
|
|
1765
|
+
log(`[self-update] agt CLI update available: ${agtCliVersion} \u2192 ${latest}. Upgrading via npm...`);
|
|
1766
|
+
const isRoot = typeof process.getuid === "function" && process.getuid() === 0;
|
|
1767
|
+
const cmd = isRoot ? "npm" : "sudo";
|
|
1768
|
+
const args = isRoot ? [
|
|
1769
|
+
"install",
|
|
1770
|
+
"-g",
|
|
1771
|
+
`@integrity-labs/agt-cli@${latest}`,
|
|
1772
|
+
"--registry=https://registry.npmjs.org"
|
|
1773
|
+
] : [
|
|
1774
|
+
"-n",
|
|
1775
|
+
"npm",
|
|
1776
|
+
"install",
|
|
1777
|
+
"-g",
|
|
1778
|
+
`@integrity-labs/agt-cli@${latest}`,
|
|
1779
|
+
"--registry=https://registry.npmjs.org"
|
|
1780
|
+
];
|
|
1781
|
+
try {
|
|
1782
|
+
execFileSync2(cmd, args, { timeout: 18e4, stdio: "pipe" });
|
|
1783
|
+
log(`[self-update] agt CLI upgraded to ${latest}. Scheduling manager restart so the new binary takes effect.`);
|
|
1784
|
+
restartAfterUpgrade = true;
|
|
1785
|
+
pendingUpgradeVersion = latest;
|
|
1786
|
+
} catch (err) {
|
|
1787
|
+
log(`[self-update] npm upgrade failed: ${err.message}`);
|
|
1788
|
+
}
|
|
1789
|
+
}
|
|
1790
|
+
function isNewerSemver(local, remote) {
|
|
1791
|
+
const parse = (v) => v.replace(/^v/, "").split(".").map(Number);
|
|
1792
|
+
const l = parse(local);
|
|
1793
|
+
const r = parse(remote);
|
|
1794
|
+
for (let i = 0; i < 3; i++) {
|
|
1795
|
+
const lv = l[i] ?? 0;
|
|
1796
|
+
const rv = r[i] ?? 0;
|
|
1797
|
+
if (rv !== lv) return rv > lv;
|
|
1798
|
+
}
|
|
1799
|
+
return false;
|
|
1718
1800
|
}
|
|
1719
1801
|
async function checkClaudeAuth() {
|
|
1720
1802
|
try {
|