hotsheet 0.17.0-beta.14 → 0.17.0-beta.16
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 +64 -17
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -19233,12 +19233,12 @@ __export(gitignore_exports, {
|
|
|
19233
19233
|
isGitRepo: () => isGitRepo,
|
|
19234
19234
|
isHotsheetGitignored: () => isHotsheetGitignored
|
|
19235
19235
|
});
|
|
19236
|
-
import { execFileSync } from "child_process";
|
|
19236
|
+
import { execFileSync as execFileSync2 } from "child_process";
|
|
19237
19237
|
import { appendFileSync, existsSync as existsSync9, readFileSync as readFileSync8 } from "fs";
|
|
19238
19238
|
import { join as join12 } from "path";
|
|
19239
19239
|
function isHotsheetGitignored(repoRoot) {
|
|
19240
19240
|
try {
|
|
19241
|
-
|
|
19241
|
+
execFileSync2("git", ["check-ignore", "-q", ".hotsheet"], { cwd: repoRoot, stdio: "ignore" });
|
|
19242
19242
|
return true;
|
|
19243
19243
|
} catch {
|
|
19244
19244
|
return false;
|
|
@@ -19246,7 +19246,7 @@ function isHotsheetGitignored(repoRoot) {
|
|
|
19246
19246
|
}
|
|
19247
19247
|
function isGitRepo(dir) {
|
|
19248
19248
|
try {
|
|
19249
|
-
|
|
19249
|
+
execFileSync2("git", ["rev-parse", "--is-inside-work-tree"], { cwd: dir, stdio: "ignore" });
|
|
19250
19250
|
return true;
|
|
19251
19251
|
} catch {
|
|
19252
19252
|
return false;
|
|
@@ -19254,7 +19254,7 @@ function isGitRepo(dir) {
|
|
|
19254
19254
|
}
|
|
19255
19255
|
function getGitRoot(dir) {
|
|
19256
19256
|
try {
|
|
19257
|
-
return
|
|
19257
|
+
return execFileSync2("git", ["rev-parse", "--show-toplevel"], { cwd: dir, encoding: "utf-8" }).trim();
|
|
19258
19258
|
} catch {
|
|
19259
19259
|
return null;
|
|
19260
19260
|
}
|
|
@@ -20249,7 +20249,7 @@ __export(processInspect_exports, {
|
|
|
20249
20249
|
parsePsOutput: () => parsePsOutput,
|
|
20250
20250
|
pickForegroundProcess: () => pickForegroundProcess
|
|
20251
20251
|
});
|
|
20252
|
-
import { execFile as execFile2, execFileSync as
|
|
20252
|
+
import { execFile as execFile2, execFileSync as execFileSync3 } from "child_process";
|
|
20253
20253
|
import { promisify } from "util";
|
|
20254
20254
|
function normalizeComm(raw) {
|
|
20255
20255
|
let s = raw.trim();
|
|
@@ -20412,7 +20412,7 @@ function killProcessTreeBestEffort(rootPid, signal = "SIGTERM", psRowsProvider)
|
|
|
20412
20412
|
} else {
|
|
20413
20413
|
let stdout = "";
|
|
20414
20414
|
try {
|
|
20415
|
-
stdout =
|
|
20415
|
+
stdout = execFileSync3("ps", ["-o", "pid,ppid,comm", "-A"], { encoding: "utf8", timeout: 2e3 });
|
|
20416
20416
|
} catch (err) {
|
|
20417
20417
|
return { ...empty, error: `ps execution failed: ${err instanceof Error ? err.message : String(err)}` };
|
|
20418
20418
|
}
|
|
@@ -24269,6 +24269,7 @@ import { execFile as execFile6 } from "child_process";
|
|
|
24269
24269
|
import { existsSync as existsSync27, mkdirSync as mkdirSync16 } from "fs";
|
|
24270
24270
|
import { tmpdir as tmpdir3 } from "os";
|
|
24271
24271
|
import { join as join31, resolve as resolve10 } from "path";
|
|
24272
|
+
import { pathToFileURL as pathToFileURL2 } from "url";
|
|
24272
24273
|
|
|
24273
24274
|
// src/cleanup.ts
|
|
24274
24275
|
init_queries();
|
|
@@ -24555,6 +24556,51 @@ init_connection();
|
|
|
24555
24556
|
init_queries();
|
|
24556
24557
|
init_demo();
|
|
24557
24558
|
|
|
24559
|
+
// src/enrich-path.ts
|
|
24560
|
+
import { execFileSync } from "child_process";
|
|
24561
|
+
var SHELL_PATH_TIMEOUT_MS = 2e3;
|
|
24562
|
+
function mergePaths(currentPath, shellPath) {
|
|
24563
|
+
const sep = ":";
|
|
24564
|
+
const existing = currentPath.split(sep).filter((s) => s !== "");
|
|
24565
|
+
const existingSet = new Set(existing);
|
|
24566
|
+
const additions = [];
|
|
24567
|
+
for (const dir of shellPath.split(sep)) {
|
|
24568
|
+
const trimmed = dir.trim();
|
|
24569
|
+
if (trimmed === "" || existingSet.has(trimmed)) continue;
|
|
24570
|
+
existingSet.add(trimmed);
|
|
24571
|
+
additions.push(trimmed);
|
|
24572
|
+
}
|
|
24573
|
+
if (additions.length === 0) return currentPath;
|
|
24574
|
+
return [...additions, ...existing].join(sep);
|
|
24575
|
+
}
|
|
24576
|
+
function readLoginShellPath(execOverride) {
|
|
24577
|
+
const shell = process.env.SHELL;
|
|
24578
|
+
if (typeof shell !== "string" || shell === "") return null;
|
|
24579
|
+
const exec2 = execOverride ?? execFileSync;
|
|
24580
|
+
try {
|
|
24581
|
+
const out = exec2(shell, ["-ilc", 'printf %s "$PATH"'], {
|
|
24582
|
+
encoding: "utf8",
|
|
24583
|
+
timeout: SHELL_PATH_TIMEOUT_MS,
|
|
24584
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
24585
|
+
windowsHide: true
|
|
24586
|
+
});
|
|
24587
|
+
const trimmed = out.trim();
|
|
24588
|
+
return trimmed === "" ? null : trimmed;
|
|
24589
|
+
} catch {
|
|
24590
|
+
return null;
|
|
24591
|
+
}
|
|
24592
|
+
}
|
|
24593
|
+
function enrichProcessPath(opts) {
|
|
24594
|
+
if (process.platform === "win32") return;
|
|
24595
|
+
const shellPath = readLoginShellPath(opts?.exec);
|
|
24596
|
+
if (shellPath === null) return;
|
|
24597
|
+
const current = process.env.PATH ?? "";
|
|
24598
|
+
const merged = mergePaths(current, shellPath);
|
|
24599
|
+
if (merged !== current) {
|
|
24600
|
+
process.env.PATH = merged;
|
|
24601
|
+
}
|
|
24602
|
+
}
|
|
24603
|
+
|
|
24558
24604
|
// src/feature-flags.ts
|
|
24559
24605
|
function resolvePluginsEnabled() {
|
|
24560
24606
|
if (true) return true;
|
|
@@ -24748,9 +24794,9 @@ var channelRoutes = new Hono3();
|
|
|
24748
24794
|
var channelDoneFlags = /* @__PURE__ */ new Map();
|
|
24749
24795
|
var loggedPermissionRequests = /* @__PURE__ */ new Map();
|
|
24750
24796
|
channelRoutes.get("/channel/claude-check", async (c) => {
|
|
24751
|
-
const { execFileSync:
|
|
24797
|
+
const { execFileSync: execFileSync4 } = await import("child_process");
|
|
24752
24798
|
try {
|
|
24753
|
-
const version2 =
|
|
24799
|
+
const version2 = execFileSync4("claude", ["--version"], { timeout: 5e3, encoding: "utf-8" }).trim();
|
|
24754
24800
|
const match = version2.match(/(\d+\.\d+\.\d+)/);
|
|
24755
24801
|
const versionNum = match !== null ? match[1] : null;
|
|
24756
24802
|
const parts = versionNum !== null ? versionNum.split(".").map(Number) : [];
|
|
@@ -25128,9 +25174,9 @@ dashboardRoutes.post("/ensure-skills", (c) => {
|
|
|
25128
25174
|
var glassboxAvailable = null;
|
|
25129
25175
|
dashboardRoutes.get("/glassbox/status", async (c) => {
|
|
25130
25176
|
if (glassboxAvailable === null) {
|
|
25131
|
-
const { execFileSync:
|
|
25177
|
+
const { execFileSync: execFileSync4 } = await import("child_process");
|
|
25132
25178
|
try {
|
|
25133
|
-
|
|
25179
|
+
execFileSync4("which", ["glassbox"], { stdio: "ignore" });
|
|
25134
25180
|
glassboxAvailable = true;
|
|
25135
25181
|
} catch {
|
|
25136
25182
|
glassboxAvailable = false;
|
|
@@ -27774,6 +27820,7 @@ init_errorMessage();
|
|
|
27774
27820
|
if (process.env.UV_THREADPOOL_SIZE === void 0 || process.env.UV_THREADPOOL_SIZE === "") {
|
|
27775
27821
|
process.env.UV_THREADPOOL_SIZE = "16";
|
|
27776
27822
|
}
|
|
27823
|
+
enrichProcessPath();
|
|
27777
27824
|
async function handleEarlyFlags(args) {
|
|
27778
27825
|
if (args.close) {
|
|
27779
27826
|
await handleClose(args.dataDir, args.force);
|
|
@@ -28097,17 +28144,16 @@ async function main() {
|
|
|
28097
28144
|
await seedDemoExtraProjects2(demo, dataDir, actualPort);
|
|
28098
28145
|
}
|
|
28099
28146
|
}
|
|
28100
|
-
|
|
28147
|
+
function computeIsEntryPoint(argv1, importMetaUrl) {
|
|
28101
28148
|
try {
|
|
28102
|
-
|
|
28103
|
-
if (
|
|
28104
|
-
|
|
28105
|
-
if (url2 === `file://${entry}`) return true;
|
|
28106
|
-
return url2.endsWith("/cli.ts") && entry.endsWith("/cli.ts");
|
|
28149
|
+
if (typeof argv1 !== "string" || argv1 === "") return false;
|
|
28150
|
+
if (importMetaUrl === pathToFileURL2(argv1).href) return true;
|
|
28151
|
+
return importMetaUrl.endsWith("/cli.ts") && argv1.endsWith("/cli.ts");
|
|
28107
28152
|
} catch {
|
|
28108
28153
|
return false;
|
|
28109
28154
|
}
|
|
28110
|
-
}
|
|
28155
|
+
}
|
|
28156
|
+
var isEntryPoint = computeIsEntryPoint(process.argv[1], import.meta.url);
|
|
28111
28157
|
if (isEntryPoint) {
|
|
28112
28158
|
main().catch((err) => {
|
|
28113
28159
|
console.error(err);
|
|
@@ -28115,6 +28161,7 @@ if (isEntryPoint) {
|
|
|
28115
28161
|
});
|
|
28116
28162
|
}
|
|
28117
28163
|
export {
|
|
28164
|
+
computeIsEntryPoint,
|
|
28118
28165
|
createSignalHandler
|
|
28119
28166
|
};
|
|
28120
28167
|
//# sourceMappingURL=cli.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hotsheet",
|
|
3
|
-
"version": "0.17.0-beta.
|
|
3
|
+
"version": "0.17.0-beta.16",
|
|
4
4
|
"description": "A lightweight local project management tool. Create, categorize, and prioritize tickets with a fast bullet-list interface, then export an Up Next worklist for AI tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|