@neriros/ralphy 2.13.13 → 2.13.15
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/index.js +40 -5
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -70108,7 +70108,8 @@ function TaskLoop({ opts }) {
|
|
|
70108
70108
|
|
|
70109
70109
|
// apps/cli/src/components/AgentMode.tsx
|
|
70110
70110
|
var import_react57 = __toESM(require_react(), 1);
|
|
70111
|
-
import { join as join16 } from "path";
|
|
70111
|
+
import { join as join16, relative } from "path";
|
|
70112
|
+
import { homedir as homedir3 } from "os";
|
|
70112
70113
|
|
|
70113
70114
|
// apps/cli/src/agent/config.ts
|
|
70114
70115
|
import { join as join10 } from "path";
|
|
@@ -72164,6 +72165,22 @@ function prLabel(prUrl) {
|
|
|
72164
72165
|
const m = prUrl.match(/\/pull\/(\d+)/);
|
|
72165
72166
|
return m ? `#${m[1]}` : "PR";
|
|
72166
72167
|
}
|
|
72168
|
+
var HYPERLINKS_SUPPORTED = (() => {
|
|
72169
|
+
if (process.env["TMUX"])
|
|
72170
|
+
return false;
|
|
72171
|
+
const tp = process.env["TERM_PROGRAM"];
|
|
72172
|
+
if (tp === "iTerm.app" || tp === "WezTerm" || tp === "Hyper")
|
|
72173
|
+
return true;
|
|
72174
|
+
const term = process.env["TERM"];
|
|
72175
|
+
if (term === "xterm-kitty" || term === "foot" || term === "xterm-ghostty")
|
|
72176
|
+
return true;
|
|
72177
|
+
if (process.env["VTE_VERSION"])
|
|
72178
|
+
return true;
|
|
72179
|
+
return false;
|
|
72180
|
+
})();
|
|
72181
|
+
function osc8(url, label) {
|
|
72182
|
+
return HYPERLINKS_SUPPORTED ? `\x1B]8;;${url}\x07${label}\x1B]8;;\x07` : label;
|
|
72183
|
+
}
|
|
72167
72184
|
var ANSI_STRIP_RE = /\x1b(?:\[[0-9;]*[A-Za-z]|\][^\x07\x1b]*(?:\x07|\x1b\\)|.)/g;
|
|
72168
72185
|
var BOX_ONLY_RE = /^[\s\u2500\u2502\u256D\u256E\u2570\u256F\u254C\u2504\u2501\u2503]+$/;
|
|
72169
72186
|
var STATUS_BAR_LINE_RE = /^[\u280B\u2819\u2839\u2838\u283C\u2834\u2826\u2827\u2807\u280F\u2713\u2717]\s+iter\s+\d+/;
|
|
@@ -72265,6 +72282,15 @@ function displayTailLines(activeCount) {
|
|
|
72265
72282
|
return 8;
|
|
72266
72283
|
return 5;
|
|
72267
72284
|
}
|
|
72285
|
+
var AGENT_LOG_PATH = join16(homedir3(), ".ralph", "agent-mode.log");
|
|
72286
|
+
var SESSION_START = new Date().toISOString();
|
|
72287
|
+
function writeAgentLog(text) {
|
|
72288
|
+
const line = `[${new Date().toISOString()}] ${text}
|
|
72289
|
+
`;
|
|
72290
|
+
Bun.file(AGENT_LOG_PATH).text().catch(() => "").then((existing) => Bun.write(AGENT_LOG_PATH, existing + line)).catch(() => {
|
|
72291
|
+
return;
|
|
72292
|
+
});
|
|
72293
|
+
}
|
|
72268
72294
|
function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
72269
72295
|
const { exit } = use_app_default();
|
|
72270
72296
|
const { stdout } = use_stdout_default();
|
|
@@ -72280,11 +72306,13 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72280
72306
|
const [pollStatus, setPollStatus] = import_react57.useState({ state: "idle", lastFound: null, lastAdded: null, lastAt: null, filterDesc: "" });
|
|
72281
72307
|
function appendLog(text, color) {
|
|
72282
72308
|
setLogs((prev) => [...prev, { id: nextId(), text, color }]);
|
|
72309
|
+
writeAgentLog(text);
|
|
72283
72310
|
}
|
|
72284
72311
|
import_react57.useEffect(() => {
|
|
72285
72312
|
let pollTimer = null;
|
|
72286
72313
|
let cancelled = false;
|
|
72287
72314
|
async function init2() {
|
|
72315
|
+
writeAgentLog(`=== session start ${SESSION_START} ===`);
|
|
72288
72316
|
const cfgPath = await ensureRalphyConfig(projectRoot);
|
|
72289
72317
|
const cfg2 = await loadRalphyConfig(projectRoot);
|
|
72290
72318
|
cfgRef.current = cfg2;
|
|
@@ -72305,6 +72333,7 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72305
72333
|
onLog: appendLog,
|
|
72306
72334
|
onWorkersChanged: () => setTick((t) => t + 1),
|
|
72307
72335
|
onWorkerStarted: (changeName, dir, logFile, changeDir) => {
|
|
72336
|
+
writeAgentLog(`worker-started ${changeName} log=${logFile}`);
|
|
72308
72337
|
workerMetaRef.current.set(changeName, {
|
|
72309
72338
|
startedAt: Date.now(),
|
|
72310
72339
|
statesDir: dir,
|
|
@@ -72321,14 +72350,17 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72321
72350
|
});
|
|
72322
72351
|
},
|
|
72323
72352
|
onWorkerExited: (changeName) => {
|
|
72353
|
+
writeAgentLog(`worker-exited ${changeName}`);
|
|
72324
72354
|
workerMetaRef.current.delete(changeName);
|
|
72325
72355
|
},
|
|
72326
72356
|
onWorkerPhase: (changeName, phase, detail) => {
|
|
72327
72357
|
const m = workerMetaRef.current.get(changeName);
|
|
72328
72358
|
if (!m)
|
|
72329
72359
|
return;
|
|
72330
|
-
if (m.phase !== phase)
|
|
72360
|
+
if (m.phase !== phase) {
|
|
72361
|
+
writeAgentLog(`phase ${changeName}: ${phase}${detail ? ` (${detail})` : ""}`);
|
|
72331
72362
|
m.phaseStartedAt = Date.now();
|
|
72363
|
+
}
|
|
72332
72364
|
m.phase = phase;
|
|
72333
72365
|
m.phaseDetail = detail ?? "";
|
|
72334
72366
|
},
|
|
@@ -72963,7 +72995,8 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72963
72995
|
}, undefined, false, undefined, this),
|
|
72964
72996
|
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72965
72997
|
color: "blue",
|
|
72966
|
-
|
|
72998
|
+
underline: HYPERLINKS_SUPPORTED,
|
|
72999
|
+
children: osc8(w.issue.url, w.issueIdentifier)
|
|
72967
73000
|
}, undefined, false, undefined, this)
|
|
72968
73001
|
]
|
|
72969
73002
|
}, undefined, true, undefined, this),
|
|
@@ -72976,7 +73009,8 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72976
73009
|
}, undefined, false, undefined, this),
|
|
72977
73010
|
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72978
73011
|
color: "green",
|
|
72979
|
-
|
|
73012
|
+
underline: HYPERLINKS_SUPPORTED,
|
|
73013
|
+
children: osc8(prUrl, prLabel(prUrl))
|
|
72980
73014
|
}, undefined, false, undefined, this)
|
|
72981
73015
|
]
|
|
72982
73016
|
}, undefined, true, undefined, this)
|
|
@@ -73000,6 +73034,7 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
73000
73034
|
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
73001
73035
|
gap: 3,
|
|
73002
73036
|
marginTop: 0,
|
|
73037
|
+
flexWrap: "wrap",
|
|
73003
73038
|
children: [
|
|
73004
73039
|
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
73005
73040
|
gap: 1,
|
|
@@ -73048,7 +73083,7 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
73048
73083
|
}, undefined, false, undefined, this),
|
|
73049
73084
|
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73050
73085
|
dimColor: true,
|
|
73051
|
-
children: trunc(meta?.logFile
|
|
73086
|
+
children: trunc(meta?.logFile ? relative(process.cwd(), meta.logFile) : "\u2013", 40)
|
|
73052
73087
|
}, undefined, false, undefined, this)
|
|
73053
73088
|
]
|
|
73054
73089
|
}, undefined, true, undefined, this)
|
package/package.json
CHANGED