@goah/cli 0.13.3 → 0.13.5
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/{chunk-7E7V6OIU.js → chunk-24NAHA3D.js} +16 -6
- package/dist/{chunk-YH6YJ2IB.js → chunk-CDELLMIJ.js} +37 -10
- package/dist/{chunk-D2DVAH37.js → chunk-J32EKOQ4.js} +1 -1
- package/dist/{chunk-KJ4HJCTK.js → chunk-ORAANUAR.js} +18 -25
- package/dist/{chunk-QBD6EJ2Z.js → chunk-RDUUXBZ2.js} +114 -51
- package/dist/cli.js +38 -18
- package/dist/console/assets/{index-B1vGMXKr.js → index-DYdJZskp.js} +5 -5
- package/dist/console/assets/{index-B1vGMXKr.js.map → index-DYdJZskp.js.map} +1 -1
- package/dist/console/index.html +1 -1
- package/dist/{dist-KNR2XL6J.js → dist-EYYNPOYG.js} +1 -1
- package/dist/execution.d.ts +29 -6
- package/dist/faux-runner-worker.js +13 -6
- package/dist/index.d.ts +29 -6
- package/dist/index.js +5 -5
- package/dist/pi-worker.js +59 -17
- package/dist/runner-pi.d.ts +26 -9
- package/dist/runner-pi.js +1 -1
- package/dist/{runner-registry-GD4BYCQC.js → runner-registry-XCGUS2P3.js} +2 -2
- package/dist/sqlite.d.ts +4 -2
- package/dist/sqlite.js +1 -1
- package/dist/supervisor.d.ts +27 -5
- package/dist/supervisor.js +1 -1
- package/dist/testkit.d.ts +26 -7
- package/dist/testkit.js +5 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -25,14 +25,14 @@ import {
|
|
|
25
25
|
streamEvents,
|
|
26
26
|
updateWorkspaceRunnerProfile,
|
|
27
27
|
writeDefaultConfig
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-ORAANUAR.js";
|
|
29
29
|
import {
|
|
30
30
|
runnerManifests,
|
|
31
31
|
runnerPlugin
|
|
32
|
-
} from "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
32
|
+
} from "./chunk-J32EKOQ4.js";
|
|
33
|
+
import "./chunk-CDELLMIJ.js";
|
|
34
|
+
import "./chunk-RDUUXBZ2.js";
|
|
35
|
+
import "./chunk-24NAHA3D.js";
|
|
36
36
|
import "./chunk-6M3OOCKO.js";
|
|
37
37
|
import "./chunk-K26BVR6O.js";
|
|
38
38
|
import "./chunk-IIJQ3DW4.js";
|
|
@@ -12670,6 +12670,9 @@ var ConversationView = class {
|
|
|
12670
12670
|
this.entries.push({ kind: "component", component });
|
|
12671
12671
|
}
|
|
12672
12672
|
addText(content) {
|
|
12673
|
+
const previous = this.entries.at(-1);
|
|
12674
|
+
if (previous?.kind === "text" && previous.content === content)
|
|
12675
|
+
return;
|
|
12673
12676
|
this.entries.push({ kind: "text", content });
|
|
12674
12677
|
this.trim();
|
|
12675
12678
|
}
|
|
@@ -12677,20 +12680,27 @@ var ConversationView = class {
|
|
|
12677
12680
|
this.entries.push({ kind: "user", content });
|
|
12678
12681
|
this.trim();
|
|
12679
12682
|
}
|
|
12680
|
-
addMarkdown(content) {
|
|
12683
|
+
addMarkdown(content, messageId) {
|
|
12681
12684
|
this.liveMarkdown = "";
|
|
12682
12685
|
content = content.trim();
|
|
12683
12686
|
if (!content)
|
|
12684
12687
|
return;
|
|
12688
|
+
if (messageId && this.entries.some((entry) => entry.kind === "markdown" && entry.messageId === messageId))
|
|
12689
|
+
return;
|
|
12685
12690
|
const previous = this.entries.at(-1);
|
|
12686
12691
|
if (previous?.kind === "markdown" && previous.content === content)
|
|
12687
12692
|
return;
|
|
12688
|
-
this.entries.push({ kind: "markdown", content });
|
|
12693
|
+
this.entries.push({ kind: "markdown", content, ...messageId ? { messageId } : {} });
|
|
12689
12694
|
this.trim();
|
|
12690
12695
|
}
|
|
12691
12696
|
appendLiveMarkdown(content) {
|
|
12692
12697
|
this.liveMarkdown += content;
|
|
12693
12698
|
}
|
|
12699
|
+
setLive(text, thinking, thinkingActive) {
|
|
12700
|
+
this.liveMarkdown = text;
|
|
12701
|
+
this.liveThinking = thinking;
|
|
12702
|
+
this.thinkingActive = thinkingActive;
|
|
12703
|
+
}
|
|
12694
12704
|
clearLiveMarkdown() {
|
|
12695
12705
|
this.liveMarkdown = "";
|
|
12696
12706
|
}
|
|
@@ -12990,14 +13000,14 @@ async function runGoahTui(configPath, stateDir, initialMessage) {
|
|
|
12990
13000
|
transcriptView.appendLiveMarkdown(text);
|
|
12991
13001
|
tui.requestRender();
|
|
12992
13002
|
};
|
|
12993
|
-
const commitLive = (text) => {
|
|
13003
|
+
const commitLive = (text, messageId) => {
|
|
12994
13004
|
transcriptView.clearLiveMarkdown();
|
|
12995
13005
|
if (text)
|
|
12996
|
-
transcriptView.addMarkdown(text);
|
|
13006
|
+
transcriptView.addMarkdown(text, messageId);
|
|
12997
13007
|
tui.requestRender();
|
|
12998
13008
|
};
|
|
12999
|
-
const pushResponse = (text) => {
|
|
13000
|
-
transcriptView.addMarkdown(text);
|
|
13009
|
+
const pushResponse = (text, messageId) => {
|
|
13010
|
+
transcriptView.addMarkdown(text, messageId);
|
|
13001
13011
|
tui.requestRender();
|
|
13002
13012
|
};
|
|
13003
13013
|
const updateTool = (activity) => {
|
|
@@ -13008,6 +13018,10 @@ async function runGoahTui(configPath, stateDir, initialMessage) {
|
|
|
13008
13018
|
transcriptView.updateThinking(activity);
|
|
13009
13019
|
tui.requestRender();
|
|
13010
13020
|
};
|
|
13021
|
+
const replaceLive = (text, thinking, thinkingActive) => {
|
|
13022
|
+
transcriptView.setLive(text, thinking, thinkingActive);
|
|
13023
|
+
tui.requestRender();
|
|
13024
|
+
};
|
|
13011
13025
|
const setWakeState = (mode) => {
|
|
13012
13026
|
statusView.setText(statusText(mode, mode === "queued" ? 1 : queued.length));
|
|
13013
13027
|
tui.requestRender();
|
|
@@ -13069,7 +13083,7 @@ async function runGoahTui(configPath, stateDir, initialMessage) {
|
|
|
13069
13083
|
activeInteractionTurnId = frame.turnId;
|
|
13070
13084
|
if (frame.type === "result" || frame.type === "error")
|
|
13071
13085
|
activeInteractionTurnId = null;
|
|
13072
|
-
renderFrame(frame, push, appendLive, commitLive, pushResponse, updateTool, updateThinking, setWakeState, () => commitLive(""));
|
|
13086
|
+
renderFrame(frame, push, appendLive, commitLive, pushResponse, updateTool, updateThinking, setWakeState, () => commitLive(""), replaceLive);
|
|
13073
13087
|
}, controller.signal);
|
|
13074
13088
|
} catch (error) {
|
|
13075
13089
|
if (!ownsStream) {
|
|
@@ -13121,7 +13135,7 @@ async function runGoahTui(configPath, stateDir, initialMessage) {
|
|
|
13121
13135
|
return;
|
|
13122
13136
|
if (frame.type === "result" || frame.type === "error")
|
|
13123
13137
|
activeInteractionTurnId = null;
|
|
13124
|
-
renderFrame(frame, push, appendLive, commitLive, pushResponse, updateTool, updateThinking, setWakeState, () => commitLive(""));
|
|
13138
|
+
renderFrame(frame, push, appendLive, commitLive, pushResponse, updateTool, updateThinking, setWakeState, () => commitLive(""), replaceLive);
|
|
13125
13139
|
}, controller.signal);
|
|
13126
13140
|
} catch (error) {
|
|
13127
13141
|
if (streams.isCurrent(controller) && !controller.signal.aborted)
|
|
@@ -13389,6 +13403,7 @@ function frameToLine(frame) {
|
|
|
13389
13403
|
function renderFrame(frame, push, appendLive = push, commitLive = push, pushResponse = push, updateTool = (activity) => push(toolActivityLine(activity)), updateThinking = () => {
|
|
13390
13404
|
}, setWakeState = () => {
|
|
13391
13405
|
}, clearLive = () => {
|
|
13406
|
+
}, replaceLive = () => {
|
|
13392
13407
|
}) {
|
|
13393
13408
|
if (frame.type === "error") {
|
|
13394
13409
|
updateThinking({ phase: "clear", text: "" });
|
|
@@ -13430,6 +13445,10 @@ function renderFrame(frame, push, appendLive = push, commitLive = push, pushResp
|
|
|
13430
13445
|
setWakeState("working");
|
|
13431
13446
|
return;
|
|
13432
13447
|
}
|
|
13448
|
+
if (record.type === "message.assistant.live") {
|
|
13449
|
+
replaceLive(typeof data.text === "string" ? data.text : "", typeof data.thinking === "string" ? data.thinking : "", data.thinkingActive === true);
|
|
13450
|
+
return;
|
|
13451
|
+
}
|
|
13433
13452
|
if (record.type === "tool.called") {
|
|
13434
13453
|
updateThinking({ phase: "done", text: "" });
|
|
13435
13454
|
updateTool({ kind: "tool", callId: String(data.callId ?? "tool"), name: String(data.name ?? "tool"), detail: toolDetail(data.arguments), status: "running" });
|
|
@@ -13457,15 +13476,16 @@ function renderFrame(frame, push, appendLive = push, commitLive = push, pushResp
|
|
|
13457
13476
|
return;
|
|
13458
13477
|
}
|
|
13459
13478
|
const text = messageText(message.content);
|
|
13479
|
+
const messageId = typeof message.id === "string" ? message.id : void 0;
|
|
13460
13480
|
if (data.commitState === "provisional") {
|
|
13461
13481
|
clearLive();
|
|
13462
13482
|
return;
|
|
13463
13483
|
}
|
|
13464
13484
|
if (text)
|
|
13465
|
-
commitLive(text);
|
|
13485
|
+
commitLive(text, messageId);
|
|
13466
13486
|
} else if (record.type === "response.committed") {
|
|
13467
13487
|
if (typeof data.text === "string" && data.text.trim())
|
|
13468
|
-
commitLive(data.text.trim());
|
|
13488
|
+
commitLive(data.text.trim(), typeof data.messageItemId === "string" ? data.messageItemId : void 0);
|
|
13469
13489
|
} else if (record.type === "handoff.recorded") {
|
|
13470
13490
|
if (typeof data.goalId === "string")
|
|
13471
13491
|
push(`${data.outcome === "blocked" ? tuiTheme.error("goal blocked") : tuiTheme.success("goal saved")} ${tuiTheme.muted(`${String(data.outcome).replaceAll("_", " ")} \xB7 record r${String(data.recordRevision)}`)}`);
|
|
@@ -13955,7 +13975,7 @@ async function main() {
|
|
|
13955
13975
|
console.log(JSON.stringify({ goal }, null, 2));
|
|
13956
13976
|
} else if (command === "dashboard") {
|
|
13957
13977
|
const path4 = option("--output") ?? join7(config.stateDir, "status.html");
|
|
13958
|
-
writeFileSync(path4, (await import("./dist-
|
|
13978
|
+
writeFileSync(path4, (await import("./dist-EYYNPOYG.js")).renderDashboard(ledger));
|
|
13959
13979
|
console.log(path4);
|
|
13960
13980
|
} else
|
|
13961
13981
|
throw new Error(`unknown command: ${command}`);
|
|
@@ -13965,7 +13985,7 @@ async function main() {
|
|
|
13965
13985
|
}
|
|
13966
13986
|
}
|
|
13967
13987
|
async function run(supervisor, signal) {
|
|
13968
|
-
const { runSupervisorDaemon } = await import("./dist-
|
|
13988
|
+
const { runSupervisorDaemon } = await import("./dist-EYYNPOYG.js");
|
|
13969
13989
|
await runSupervisorDaemon(supervisor, { signal });
|
|
13970
13990
|
}
|
|
13971
13991
|
async function waitForConsole(stateDir) {
|
|
@@ -14200,7 +14220,7 @@ async function runRunnerCommand(command, commandArgs, configPath) {
|
|
|
14200
14220
|
async function runRunnerEarly(configPath) {
|
|
14201
14221
|
const action = args[1] ?? "list";
|
|
14202
14222
|
if (action === "list") {
|
|
14203
|
-
for (const manifest of (await import("./runner-registry-
|
|
14223
|
+
for (const manifest of (await import("./runner-registry-XCGUS2P3.js")).runnerManifests())
|
|
14204
14224
|
console.log(`${manifest.id.padEnd(16)} ${manifest.description}`);
|
|
14205
14225
|
return;
|
|
14206
14226
|
}
|