@ondrej-svec/hog 1.24.1 → 1.24.2
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/cli.js +23 -19
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -7129,7 +7129,7 @@ var init_overlay_renderer = __esm({
|
|
|
7129
7129
|
|
|
7130
7130
|
// src/board/components/panel-layout.tsx
|
|
7131
7131
|
import { Box as Box22 } from "ink";
|
|
7132
|
-
import {
|
|
7132
|
+
import { jsx as jsx23, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
7133
7133
|
function getLayoutMode(cols) {
|
|
7134
7134
|
if (cols >= WIDE_THRESHOLD) return "wide";
|
|
7135
7135
|
if (cols >= MEDIUM_THRESHOLD) return "medium";
|
|
@@ -7176,17 +7176,16 @@ function PanelLayout({
|
|
|
7176
7176
|
/* @__PURE__ */ jsx23(Box22, { height: ACTIVITY_HEIGHT, children: activityPanel })
|
|
7177
7177
|
] });
|
|
7178
7178
|
}
|
|
7179
|
-
const STACKED_LEFT_HEIGHT = 6;
|
|
7180
7179
|
return /* @__PURE__ */ jsxs23(Box22, { flexDirection: "column", height: totalHeight, overflow: "hidden", children: [
|
|
7181
|
-
!hideLeftPanel ? /* @__PURE__ */ jsxs23(
|
|
7182
|
-
/* @__PURE__ */ jsx23(Box22, {
|
|
7183
|
-
/* @__PURE__ */ jsx23(Box22, {
|
|
7180
|
+
!hideLeftPanel ? /* @__PURE__ */ jsxs23(Box22, { height: STACKED_TOP_HEIGHT, flexShrink: 0, children: [
|
|
7181
|
+
/* @__PURE__ */ jsx23(Box22, { width: Math.floor(cols / 2), overflow: "hidden", children: reposPanel }),
|
|
7182
|
+
/* @__PURE__ */ jsx23(Box22, { flexGrow: 1, overflow: "hidden", children: statusesPanel })
|
|
7184
7183
|
] }) : null,
|
|
7185
7184
|
/* @__PURE__ */ jsx23(Box22, { flexGrow: 1, flexDirection: "column", children: issuesPanel }),
|
|
7186
7185
|
/* @__PURE__ */ jsx23(Box22, { height: ACTIVITY_HEIGHT, children: activityPanel })
|
|
7187
7186
|
] });
|
|
7188
7187
|
}
|
|
7189
|
-
var WIDE_THRESHOLD, MEDIUM_THRESHOLD, LEFT_COL_WIDTH, ACTIVITY_HEIGHT;
|
|
7188
|
+
var WIDE_THRESHOLD, MEDIUM_THRESHOLD, LEFT_COL_WIDTH, ACTIVITY_HEIGHT, STACKED_TOP_HEIGHT;
|
|
7190
7189
|
var init_panel_layout = __esm({
|
|
7191
7190
|
"src/board/components/panel-layout.tsx"() {
|
|
7192
7191
|
"use strict";
|
|
@@ -7194,12 +7193,13 @@ var init_panel_layout = __esm({
|
|
|
7194
7193
|
MEDIUM_THRESHOLD = 100;
|
|
7195
7194
|
LEFT_COL_WIDTH = 24;
|
|
7196
7195
|
ACTIVITY_HEIGHT = 5;
|
|
7196
|
+
STACKED_TOP_HEIGHT = 7;
|
|
7197
7197
|
}
|
|
7198
7198
|
});
|
|
7199
7199
|
|
|
7200
7200
|
// src/board/components/repos-panel.tsx
|
|
7201
7201
|
import { Box as Box23, Text as Text22 } from "ink";
|
|
7202
|
-
import { Fragment as
|
|
7202
|
+
import { Fragment as Fragment3, jsx as jsx24, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
7203
7203
|
function shortName(fullName) {
|
|
7204
7204
|
return fullName.includes("/") ? fullName.split("/")[1] ?? fullName : fullName;
|
|
7205
7205
|
}
|
|
@@ -7232,7 +7232,7 @@ function ReposPanel({
|
|
|
7232
7232
|
aboveCount = scroll.aboveCount;
|
|
7233
7233
|
belowCount = scroll.belowCount;
|
|
7234
7234
|
}
|
|
7235
|
-
return /* @__PURE__ */ jsx24(Panel, { title: "[1] Repos", isActive, width, flexGrow, height, children: repos.length === 0 ? /* @__PURE__ */ jsx24(Text22, { color: "gray", children: "\u2014" }) : /* @__PURE__ */ jsxs24(
|
|
7235
|
+
return /* @__PURE__ */ jsx24(Panel, { title: "[1] Repos", isActive, width, flexGrow, height, children: repos.length === 0 ? /* @__PURE__ */ jsx24(Text22, { color: "gray", children: "\u2014" }) : /* @__PURE__ */ jsxs24(Fragment3, { children: [
|
|
7236
7236
|
hasMoreAbove ? /* @__PURE__ */ jsxs24(Text22, { color: "gray", dimColor: true, children: [
|
|
7237
7237
|
" ",
|
|
7238
7238
|
"\u25B2 ",
|
|
@@ -7536,7 +7536,7 @@ var init_row_renderer = __esm({
|
|
|
7536
7536
|
|
|
7537
7537
|
// src/board/components/statuses-panel.tsx
|
|
7538
7538
|
import { Box as Box26, Text as Text25 } from "ink";
|
|
7539
|
-
import { Fragment as
|
|
7539
|
+
import { Fragment as Fragment4, jsx as jsx27, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
7540
7540
|
function StatusesPanel({
|
|
7541
7541
|
groups,
|
|
7542
7542
|
selectedIdx,
|
|
@@ -7574,7 +7574,7 @@ function StatusesPanel({
|
|
|
7574
7574
|
width,
|
|
7575
7575
|
flexGrow,
|
|
7576
7576
|
height,
|
|
7577
|
-
children: groups.length === 0 ? /* @__PURE__ */ jsx27(Text25, { color: "gray", children: "\u2014" }) : /* @__PURE__ */ jsxs27(
|
|
7577
|
+
children: groups.length === 0 ? /* @__PURE__ */ jsx27(Text25, { color: "gray", children: "\u2014" }) : /* @__PURE__ */ jsxs27(Fragment4, { children: [
|
|
7578
7578
|
hasMoreAbove ? /* @__PURE__ */ jsxs27(Text25, { color: "gray", dimColor: true, children: [
|
|
7579
7579
|
" ",
|
|
7580
7580
|
"\u25B2 ",
|
|
@@ -7617,10 +7617,10 @@ var init_statuses_panel = __esm({
|
|
|
7617
7617
|
// src/board/components/toast-container.tsx
|
|
7618
7618
|
import { Spinner as Spinner3 } from "@inkjs/ui";
|
|
7619
7619
|
import { Box as Box27, Text as Text26 } from "ink";
|
|
7620
|
-
import { Fragment as
|
|
7620
|
+
import { Fragment as Fragment5, jsx as jsx28, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
7621
7621
|
function ToastContainer({ toasts }) {
|
|
7622
7622
|
if (toasts.length === 0) return null;
|
|
7623
|
-
return /* @__PURE__ */ jsx28(Box27, { flexDirection: "column", children: toasts.map((t) => /* @__PURE__ */ jsx28(Box27, { children: t.type === "loading" ? /* @__PURE__ */ jsxs28(
|
|
7623
|
+
return /* @__PURE__ */ jsx28(Box27, { flexDirection: "column", children: toasts.map((t) => /* @__PURE__ */ jsx28(Box27, { children: t.type === "loading" ? /* @__PURE__ */ jsxs28(Fragment5, { children: [
|
|
7624
7624
|
/* @__PURE__ */ jsx28(Spinner3, { label: "" }),
|
|
7625
7625
|
/* @__PURE__ */ jsxs28(Text26, { color: "cyan", children: [
|
|
7626
7626
|
" ",
|
|
@@ -7656,7 +7656,7 @@ import { execFile as execFile2, spawn as spawn4 } from "child_process";
|
|
|
7656
7656
|
import { Spinner as Spinner4 } from "@inkjs/ui";
|
|
7657
7657
|
import { Box as Box28, Text as Text27, useApp, useStdout as useStdout2 } from "ink";
|
|
7658
7658
|
import { useCallback as useCallback16, useEffect as useEffect14, useMemo as useMemo5, useRef as useRef19, useState as useState21 } from "react";
|
|
7659
|
-
import { Fragment as
|
|
7659
|
+
import { Fragment as Fragment6, jsx as jsx29, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
7660
7660
|
function resolvePhaseConfig(rc, config2, issueTitle, phase) {
|
|
7661
7661
|
const phasePrompts = rc.workflow?.phasePrompts ?? config2.board.workflow?.phasePrompts ?? {};
|
|
7662
7662
|
const template = phasePrompts[phase] ?? DEFAULT_PHASE_PROMPTS[phase];
|
|
@@ -8464,13 +8464,16 @@ function Dashboard({ config: config2, options, activeProfile }) {
|
|
|
8464
8464
|
label,
|
|
8465
8465
|
count: issues.length
|
|
8466
8466
|
}));
|
|
8467
|
+
const leftPanelWidth = layoutMode === "stacked" ? Math.floor(usableWidth / 2) : LEFT_COL_WIDTH;
|
|
8468
|
+
const leftPanelHeight = layoutMode === "stacked" ? STACKED_TOP_HEIGHT : void 0;
|
|
8467
8469
|
const reposPanel = /* @__PURE__ */ jsx29(
|
|
8468
8470
|
ReposPanel,
|
|
8469
8471
|
{
|
|
8470
8472
|
repos: reposData,
|
|
8471
8473
|
selectedIdx: clampedRepoIdx,
|
|
8472
8474
|
isActive: panelFocus.activePanelId === 1,
|
|
8473
|
-
width:
|
|
8475
|
+
width: leftPanelWidth,
|
|
8476
|
+
height: leftPanelHeight
|
|
8474
8477
|
}
|
|
8475
8478
|
);
|
|
8476
8479
|
const statusesPanel = /* @__PURE__ */ jsx29(
|
|
@@ -8479,8 +8482,9 @@ function Dashboard({ config: config2, options, activeProfile }) {
|
|
|
8479
8482
|
groups: statusesData,
|
|
8480
8483
|
selectedIdx: clampedStatusIdx,
|
|
8481
8484
|
isActive: panelFocus.activePanelId === 2,
|
|
8482
|
-
width:
|
|
8483
|
-
flexGrow: 1
|
|
8485
|
+
width: leftPanelWidth,
|
|
8486
|
+
...layoutMode !== "stacked" ? { flexGrow: 1 } : {},
|
|
8487
|
+
height: leftPanelHeight
|
|
8484
8488
|
}
|
|
8485
8489
|
);
|
|
8486
8490
|
const issuesPanelTitle = `[3] Issues${selectedSection ? ` \u2014 ${selectedSection.repo.shortName}` : ""}${selectedStatusGroup ? ` / ${selectedStatusGroup.label}` : ""}`;
|
|
@@ -8560,10 +8564,10 @@ function Dashboard({ config: config2, options, activeProfile }) {
|
|
|
8560
8564
|
dateStr
|
|
8561
8565
|
] }),
|
|
8562
8566
|
/* @__PURE__ */ jsx29(Text27, { children: " " }),
|
|
8563
|
-
isRefreshing ? /* @__PURE__ */ jsxs29(
|
|
8567
|
+
isRefreshing ? /* @__PURE__ */ jsxs29(Fragment6, { children: [
|
|
8564
8568
|
/* @__PURE__ */ jsx29(Spinner4, { label: "" }),
|
|
8565
8569
|
/* @__PURE__ */ jsx29(Text27, { color: "cyan", children: " Refreshing..." })
|
|
8566
|
-
] }) : /* @__PURE__ */ jsxs29(
|
|
8570
|
+
] }) : /* @__PURE__ */ jsxs29(Fragment6, { children: [
|
|
8567
8571
|
/* @__PURE__ */ jsx29(RefreshAge, { lastRefresh }),
|
|
8568
8572
|
consecutiveFailures > 0 ? /* @__PURE__ */ jsx29(Text27, { color: "red", children: " (!)" }) : null
|
|
8569
8573
|
] }),
|
|
@@ -9791,7 +9795,7 @@ async function resolveRef(ref, config2) {
|
|
|
9791
9795
|
}
|
|
9792
9796
|
}
|
|
9793
9797
|
var program = new Command();
|
|
9794
|
-
program.name("hog").description("Personal command deck \u2014 GitHub Projects dashboard with workflow orchestration").version("1.24.
|
|
9798
|
+
program.name("hog").description("Personal command deck \u2014 GitHub Projects dashboard with workflow orchestration").version("1.24.2").option("--json", "Force JSON output").option("--human", "Force human-readable output").hook("preAction", (thisCommand) => {
|
|
9795
9799
|
const opts = thisCommand.opts();
|
|
9796
9800
|
if (opts.json) setFormat("json");
|
|
9797
9801
|
if (opts.human) setFormat("human");
|