@hegemonart/get-design-done 1.54.0 → 1.55.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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +47 -0
- package/README.md +2 -0
- package/bin/gdd-dashboard +91 -0
- package/package.json +2 -1
- package/scripts/lib/dashboard/graph-html.cjs +0 -0
- package/scripts/lib/health-mirror/index.cjs +146 -1
- package/sdk/cli/commands/dashboard.ts +419 -0
- package/sdk/cli/index.js +253 -2
- package/sdk/cli/index.ts +7 -0
- package/sdk/dashboard/data/_pkg-root.cjs +92 -0
- package/sdk/dashboard/data/cost-aggregator.cjs +187 -0
- package/sdk/dashboard/data/discovery.cjs +297 -0
- package/sdk/dashboard/data/risk-surface.cjs +136 -0
- package/sdk/dashboard/data/source.cjs +576 -0
- package/sdk/dashboard/tui/ansi.cjs +355 -0
- package/sdk/dashboard/tui/index.cjs +778 -0
- package/sdk/mcp/gdd-mcp/server.js +70 -0
|
@@ -1718,6 +1718,32 @@ var require_health_mirror = __commonJS({
|
|
|
1718
1718
|
}
|
|
1719
1719
|
checks.push({ name: "stack_addendums", status, detail });
|
|
1720
1720
|
}
|
|
1721
|
+
{
|
|
1722
|
+
let status;
|
|
1723
|
+
let detail;
|
|
1724
|
+
try {
|
|
1725
|
+
const gddRoot = resolveDashboardRoot(rootDir);
|
|
1726
|
+
const binPresent = dashboardBinResolves(gddRoot);
|
|
1727
|
+
const dataPlaneOk = dashboardDataPlaneLoads(gddRoot);
|
|
1728
|
+
if (binPresent && dataPlaneOk) {
|
|
1729
|
+
status = "ok";
|
|
1730
|
+
detail = "dashboard: bin/gdd-dashboard present; data plane ok";
|
|
1731
|
+
} else {
|
|
1732
|
+
status = "warn";
|
|
1733
|
+
if (!binPresent && !dataPlaneOk) {
|
|
1734
|
+
detail = "dashboard: bin missing; data plane unavailable";
|
|
1735
|
+
} else if (!binPresent) {
|
|
1736
|
+
detail = "dashboard: bin missing";
|
|
1737
|
+
} else {
|
|
1738
|
+
detail = "dashboard: data plane unavailable";
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1741
|
+
} catch {
|
|
1742
|
+
status = "warn";
|
|
1743
|
+
detail = "dashboard: unavailable";
|
|
1744
|
+
}
|
|
1745
|
+
checks.push({ name: "dashboard_reachable", status, detail });
|
|
1746
|
+
}
|
|
1721
1747
|
return { checks };
|
|
1722
1748
|
}
|
|
1723
1749
|
function sessionStartWiresInject(rootDir) {
|
|
@@ -1772,6 +1798,50 @@ var require_health_mirror = __commonJS({
|
|
|
1772
1798
|
return false;
|
|
1773
1799
|
}
|
|
1774
1800
|
}
|
|
1801
|
+
function findGddPackageRoot(startDir) {
|
|
1802
|
+
try {
|
|
1803
|
+
let dir = path.resolve(startDir);
|
|
1804
|
+
for (let i = 0; i < 12; i++) {
|
|
1805
|
+
try {
|
|
1806
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(dir, "package.json"), "utf8"));
|
|
1807
|
+
if (pkg && typeof pkg.name === "string") {
|
|
1808
|
+
if (pkg.name === "get-design-done" || /\/get-design-done$/.test(pkg.name)) {
|
|
1809
|
+
return dir;
|
|
1810
|
+
}
|
|
1811
|
+
}
|
|
1812
|
+
} catch {
|
|
1813
|
+
}
|
|
1814
|
+
const parent = path.dirname(dir);
|
|
1815
|
+
if (parent === dir) break;
|
|
1816
|
+
dir = parent;
|
|
1817
|
+
}
|
|
1818
|
+
return null;
|
|
1819
|
+
} catch {
|
|
1820
|
+
return null;
|
|
1821
|
+
}
|
|
1822
|
+
}
|
|
1823
|
+
function resolveDashboardRoot(rootDir) {
|
|
1824
|
+
const fromRoot = findGddPackageRoot(rootDir);
|
|
1825
|
+
if (fromRoot) return fromRoot;
|
|
1826
|
+
return findGddPackageRoot(__dirname);
|
|
1827
|
+
}
|
|
1828
|
+
function dashboardBinResolves(gddRoot) {
|
|
1829
|
+
if (!gddRoot) return false;
|
|
1830
|
+
try {
|
|
1831
|
+
return fs.statSync(path.join(gddRoot, "bin", "gdd-dashboard")).isFile();
|
|
1832
|
+
} catch {
|
|
1833
|
+
return false;
|
|
1834
|
+
}
|
|
1835
|
+
}
|
|
1836
|
+
function dashboardDataPlaneLoads(gddRoot) {
|
|
1837
|
+
if (!gddRoot) return false;
|
|
1838
|
+
try {
|
|
1839
|
+
const mod = require(path.join(gddRoot, "sdk", "dashboard", "data", "source.cjs"));
|
|
1840
|
+
return !!(mod && typeof mod.loadDashboardModel === "function");
|
|
1841
|
+
} catch {
|
|
1842
|
+
return false;
|
|
1843
|
+
}
|
|
1844
|
+
}
|
|
1775
1845
|
module2.exports = { getHealthChecks: getHealthChecks2 };
|
|
1776
1846
|
}
|
|
1777
1847
|
});
|