nolo-cli 0.12.0 → 0.13.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/{agentEmailCommands-YFVKOGM7.js → agentEmailCommands-VQENDYL5.js} +2 -2
- package/{agentMachineCommands-55UUZNHF.js → agentMachineCommands-Q3I3VDWS.js} +1 -1
- package/{agentRecordCommands-BTP3OAPL.js → agentRecordCommands-RY7CSPPL.js} +2 -2
- package/{agentRunCommand-WCO4B6VK.js → agentRunCommand-U76NZ2G6.js} +2 -2
- package/{chunk-3XF6LCCN.js → chunk-BTYBYAMP.js} +1 -1
- package/{chunk-EIMX5ER5.js → chunk-KGI44L4E.js} +1 -1
- package/{chunk-DHVDBZGS.js → chunk-QAJWQTLB.js} +1 -1
- package/{chunk-KWBH4RAL.js → chunk-UWNSWEEC.js} +17 -0
- package/index.js +15 -15
- package/{machineCommands-STHZKBDJ.js → machineCommands-NGE4ZARV.js} +2 -2
- package/{machineWsRunDispatch-7YHT4TPT.js → machineWsRunDispatch-FISQUBI2.js} +2 -2
- package/package.json +1 -1
- package/{readlineWorkspace-KT3OV7JP.js → readlineWorkspace-JK6P56TT.js} +59 -14
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
} from "./chunk-3QAF2LTL.js";
|
|
9
9
|
import {
|
|
10
10
|
runAgentCreateCommand
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-BTYBYAMP.js";
|
|
12
|
+
import "./chunk-UWNSWEEC.js";
|
|
13
13
|
import "./chunk-TOILAPLH.js";
|
|
14
14
|
import "./chunk-CMKUBIGW.js";
|
|
15
15
|
import "./chunk-JBTJAPUF.js";
|
|
@@ -76,7 +76,7 @@ async function defaultExecuteCli(provider, prompt, options) {
|
|
|
76
76
|
return executeCli(provider, prompt, options);
|
|
77
77
|
}
|
|
78
78
|
async function forwardConnectorRunMessage(machine, message, pushMessage, executeCli, env, fetchImpl) {
|
|
79
|
-
const { handleConnectorRunMessage } = await import("./machineWsRunDispatch-
|
|
79
|
+
const { handleConnectorRunMessage } = await import("./machineWsRunDispatch-FISQUBI2.js");
|
|
80
80
|
return handleConnectorRunMessage(message, pushMessage, executeCli, env, fetchImpl);
|
|
81
81
|
}
|
|
82
82
|
async function detectLaunchableMachineInfo() {
|
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
runAgentCreateCommand,
|
|
3
3
|
runAgentReadCommand,
|
|
4
4
|
runAgentUpdateCommand
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-BTYBYAMP.js";
|
|
6
|
+
import "./chunk-UWNSWEEC.js";
|
|
7
7
|
import "./chunk-TOILAPLH.js";
|
|
8
8
|
import "./chunk-CMKUBIGW.js";
|
|
9
9
|
import "./chunk-JBTJAPUF.js";
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
prependSubjectDialogMarker,
|
|
7
7
|
resolveWorkflowReference,
|
|
8
8
|
runAgentRunCommand
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QAJWQTLB.js";
|
|
10
10
|
import {
|
|
11
11
|
parseAgentRunArgs
|
|
12
12
|
} from "./chunk-3QAF2LTL.js";
|
|
13
13
|
import "./chunk-6HYVJV7B.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-UWNSWEEC.js";
|
|
15
15
|
import "./chunk-TOILAPLH.js";
|
|
16
16
|
import "./chunk-CMKUBIGW.js";
|
|
17
17
|
import "./chunk-JBTJAPUF.js";
|
|
@@ -287,6 +287,14 @@ var STRINGS = {
|
|
|
287
287
|
en: "queued",
|
|
288
288
|
zh: "\u6392\u961F"
|
|
289
289
|
},
|
|
290
|
+
flushQueuedIdleHint: {
|
|
291
|
+
en: "Flushed {0} queued messages as one.",
|
|
292
|
+
zh: "\u5DF2\u628A {0} \u6761\u6392\u961F\u6D88\u606F\u5408\u5E76\u53D1\u9001\u3002"
|
|
293
|
+
},
|
|
294
|
+
flushQueuedBusyHint: {
|
|
295
|
+
en: "Stopped this reply and flushed {0} queued messages as one.",
|
|
296
|
+
zh: "\u5DF2\u505C\u6B62\u5F53\u524D\u56DE\u590D\uFF0C\u5E76\u628A {0} \u6761\u6392\u961F\u6D88\u606F\u5408\u5E76\u53D1\u9001\u3002"
|
|
297
|
+
},
|
|
290
298
|
turnStopped: {
|
|
291
299
|
en: "Stopped this reply.",
|
|
292
300
|
zh: "\u5DF2\u505C\u6B62\u672C\u6B21\u56DE\u590D\u3002"
|
|
@@ -2149,6 +2157,15 @@ function createCliControlAgentRunExecutor(deps = {}) {
|
|
|
2149
2157
|
startedAt: reconciled.startedAt,
|
|
2150
2158
|
endedAt: reconciled.endedAt ?? null,
|
|
2151
2159
|
exitCode: reconciled.exitCode ?? null,
|
|
2160
|
+
// Expose dialogId so the caller can read the agent's actual output
|
|
2161
|
+
// via `nolo dialog read <dialogId>`. The dialog is the authoritative
|
|
2162
|
+
// result store; the run log is the child process stdout/stderr,
|
|
2163
|
+
// whose contents vary by provider (some stream tokens to stdout,
|
|
2164
|
+
// some only emit startup + stderr). Because status does not carry
|
|
2165
|
+
// logTail by default, a "done" run with an empty logTail is
|
|
2166
|
+
// indistinguishable from a hung run without this field. Surfacing
|
|
2167
|
+
// dialogId gives the caller a reliable way to fetch the result.
|
|
2168
|
+
...reconciled.dialogId ? { dialogId: reconciled.dialogId } : {},
|
|
2152
2169
|
...logTail !== void 0 ? { logTail } : {},
|
|
2153
2170
|
...logLines ? { logLines } : {}
|
|
2154
2171
|
}),
|
package/index.js
CHANGED
|
@@ -126,7 +126,7 @@ function createDaemonShortcutCommand(path, description, command2) {
|
|
|
126
126
|
// packages/cli/agentInternalCommandEntries.ts
|
|
127
127
|
function getAgentInternalCommandEntries() {
|
|
128
128
|
const createAgentRunCommand = (path, description) => createContextCommand(path, description, async (args2, ctx) => {
|
|
129
|
-
const { runAgentRunCommand } = await import("./agentRunCommand-
|
|
129
|
+
const { runAgentRunCommand } = await import("./agentRunCommand-U76NZ2G6.js");
|
|
130
130
|
return runAgentRunCommand(args2, {
|
|
131
131
|
env: ctx.env,
|
|
132
132
|
scriptDir: ctx.scriptDir,
|
|
@@ -142,7 +142,7 @@ function getAgentInternalCommandEntries() {
|
|
|
142
142
|
return runAgentListCommand(args2, deps);
|
|
143
143
|
}),
|
|
144
144
|
createEnvCommand(["agent", "create"], "Create a new agent", async (args2, deps) => {
|
|
145
|
-
const { runAgentCreateCommand } = await import("./agentRecordCommands-
|
|
145
|
+
const { runAgentCreateCommand } = await import("./agentRecordCommands-RY7CSPPL.js");
|
|
146
146
|
return runAgentCreateCommand(args2, deps);
|
|
147
147
|
}),
|
|
148
148
|
createEnvCommand(["agent", "pull"], "Cache an agent for local runs", async (args2, deps) => {
|
|
@@ -150,7 +150,7 @@ function getAgentInternalCommandEntries() {
|
|
|
150
150
|
return runAgentPullCommand(args2, deps);
|
|
151
151
|
}),
|
|
152
152
|
createEnvCommand(["agent", "read"], "Read a single agent", async (args2, deps) => {
|
|
153
|
-
const { runAgentReadCommand } = await import("./agentRecordCommands-
|
|
153
|
+
const { runAgentReadCommand } = await import("./agentRecordCommands-RY7CSPPL.js");
|
|
154
154
|
return runAgentReadCommand(args2, deps);
|
|
155
155
|
}),
|
|
156
156
|
createAgentRunCommand(["agent", "run"], "Run an agent"),
|
|
@@ -179,26 +179,26 @@ function getAgentInternalCommandEntries() {
|
|
|
179
179
|
return runSetupOfflineMarxistsAgentCommand(args2, deps);
|
|
180
180
|
}),
|
|
181
181
|
createEnvCommand(["agent", "update"], "Update agent fields", async (args2, deps) => {
|
|
182
|
-
const { runAgentUpdateCommand } = await import("./agentRecordCommands-
|
|
182
|
+
const { runAgentUpdateCommand } = await import("./agentRecordCommands-RY7CSPPL.js");
|
|
183
183
|
return runAgentUpdateCommand(args2, deps);
|
|
184
184
|
}),
|
|
185
185
|
createEnvCommand(["agent", "email", "provision"], "Provision a controlled inbox for an agent", async (args2, deps) => {
|
|
186
|
-
const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-
|
|
186
|
+
const { runAgentEmailProvisionCommand } = await import("./agentEmailCommands-VQENDYL5.js");
|
|
187
187
|
return runAgentEmailProvisionCommand(args2, deps);
|
|
188
188
|
}),
|
|
189
189
|
createEnvCommand(["agent", "email", "bind"], "Bind an existing email address to an agent", async (args2, deps) => {
|
|
190
|
-
const { runAgentEmailBindCommand } = await import("./agentEmailCommands-
|
|
190
|
+
const { runAgentEmailBindCommand } = await import("./agentEmailCommands-VQENDYL5.js");
|
|
191
191
|
return runAgentEmailBindCommand(args2, deps);
|
|
192
192
|
}),
|
|
193
193
|
createEnvCommand(["agent", "email", "transfer"], "Transfer an email identity from one agent to another (cross-account)", async (args2, deps) => {
|
|
194
|
-
const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-
|
|
194
|
+
const { runAgentEmailTransferCommand } = await import("./agentEmailCommands-VQENDYL5.js");
|
|
195
195
|
return runAgentEmailTransferCommand(args2, deps);
|
|
196
196
|
}),
|
|
197
197
|
createEnvCommand(
|
|
198
198
|
["agent", "email", "create-and-provision"],
|
|
199
199
|
"Create an agent and provision its controlled inbox",
|
|
200
200
|
async (args2, deps) => {
|
|
201
|
-
const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-
|
|
201
|
+
const { runAgentEmailCreateAndProvisionCommand } = await import("./agentEmailCommands-VQENDYL5.js");
|
|
202
202
|
return runAgentEmailCreateAndProvisionCommand(args2, deps);
|
|
203
203
|
}
|
|
204
204
|
),
|
|
@@ -207,15 +207,15 @@ function getAgentInternalCommandEntries() {
|
|
|
207
207
|
return runAgentDeleteCommand(args2, deps);
|
|
208
208
|
}),
|
|
209
209
|
createEnvCommand(["agent", "bind-current"], "Bind an agent to this machine", async (args2, deps) => {
|
|
210
|
-
const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-
|
|
210
|
+
const { runAgentBindCurrentCommand } = await import("./agentMachineCommands-Q3I3VDWS.js");
|
|
211
211
|
return runAgentBindCurrentCommand(args2, deps);
|
|
212
212
|
}),
|
|
213
213
|
createEnvCommand(["agent", "smoke-current"], "Smoke test a bound agent through this machine", async (args2, deps) => {
|
|
214
|
-
const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-
|
|
214
|
+
const { runAgentSmokeCurrentCommand } = await import("./agentMachineCommands-Q3I3VDWS.js");
|
|
215
215
|
return runAgentSmokeCurrentCommand(args2, deps);
|
|
216
216
|
}),
|
|
217
217
|
createEnvCommand(["agent", "runtime-doctor"], "Diagnose current machine runtime compatibility", async (args2, deps) => {
|
|
218
|
-
const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-
|
|
218
|
+
const { runAgentRuntimeDoctorCommand } = await import("./agentMachineCommands-Q3I3VDWS.js");
|
|
219
219
|
return runAgentRuntimeDoctorCommand(args2, deps);
|
|
220
220
|
}),
|
|
221
221
|
createAgentRunCommand(["agent", "chat"], "Chat with an agent")
|
|
@@ -370,15 +370,15 @@ function getSystemInternalCommandEntries(renderHelpText2) {
|
|
|
370
370
|
return runWhoamiCommand({ args: args2, env: ctx.env });
|
|
371
371
|
}),
|
|
372
372
|
createEntrypointEnvCommand(["connect"], "Send machine heartbeats or hold a connector websocket", async (args2, deps) => {
|
|
373
|
-
const { runMachineConnectCommand } = await import("./machineCommands-
|
|
373
|
+
const { runMachineConnectCommand } = await import("./machineCommands-NGE4ZARV.js");
|
|
374
374
|
return runMachineConnectCommand(args2, deps);
|
|
375
375
|
}),
|
|
376
376
|
createDaemonShortcutCommand(["daemon"], "Run the connector daemon shortcut", async (args2, deps) => {
|
|
377
|
-
const { runMachineConnectCommand } = await import("./machineCommands-
|
|
377
|
+
const { runMachineConnectCommand } = await import("./machineCommands-NGE4ZARV.js");
|
|
378
378
|
return runMachineConnectCommand(args2, deps);
|
|
379
379
|
}),
|
|
380
380
|
createEnvCommand(["machine", "status"], "List machines registered to the current profile", async (args2, deps) => {
|
|
381
|
-
const { runMachineStatusCommand } = await import("./machineCommands-
|
|
381
|
+
const { runMachineStatusCommand } = await import("./machineCommands-NGE4ZARV.js");
|
|
382
382
|
return runMachineStatusCommand(args2, deps);
|
|
383
383
|
}),
|
|
384
384
|
createEnvCommand(["doctor", "runtime"], "Diagnose local-first agent runtime selection", async (args2, deps) => {
|
|
@@ -753,7 +753,7 @@ async function runScript(script, forwardedArgs, env) {
|
|
|
753
753
|
return proc.exited;
|
|
754
754
|
}
|
|
755
755
|
async function launchTuiWorkspace(args2) {
|
|
756
|
-
const { startTuiWorkspace } = await import("./readlineWorkspace-
|
|
756
|
+
const { startTuiWorkspace } = await import("./readlineWorkspace-JK6P56TT.js");
|
|
757
757
|
const { createTuiSummaryLlmCaller } = await import("./tuiSummaryLlmCaller-XDC7WG4K.js");
|
|
758
758
|
return startTuiWorkspace({
|
|
759
759
|
...args2,
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
buildMachinePermissionPromptBlock,
|
|
3
3
|
handleConnectorRunMessage,
|
|
4
4
|
resolveMachineRunPermissionPolicy
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KGI44L4E.js";
|
|
6
6
|
import {
|
|
7
7
|
isConnectorWebSocketAuthError,
|
|
8
8
|
isConnectorWebSocketRetryableError,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
detectMachineInfo
|
|
13
13
|
} from "./chunk-6HYVJV7B.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-UWNSWEEC.js";
|
|
15
15
|
import "./chunk-TOILAPLH.js";
|
|
16
16
|
import "./chunk-CMKUBIGW.js";
|
|
17
17
|
import "./chunk-JBTJAPUF.js";
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
runtimeWorkspacePermissionPolicy,
|
|
12
12
|
scopePermissionPolicyToRuntimeWorkspace,
|
|
13
13
|
summarizeAgentConfigForLogs
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-KGI44L4E.js";
|
|
15
|
+
import "./chunk-UWNSWEEC.js";
|
|
16
16
|
import "./chunk-TOILAPLH.js";
|
|
17
17
|
import "./chunk-CMKUBIGW.js";
|
|
18
18
|
import "./chunk-JBTJAPUF.js";
|
package/package.json
CHANGED
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
visibleWidth,
|
|
58
58
|
wrapTextToLines,
|
|
59
59
|
wrapTranscriptLine
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-QAJWQTLB.js";
|
|
61
61
|
import "./chunk-3QAF2LTL.js";
|
|
62
62
|
import "./chunk-6HYVJV7B.js";
|
|
63
63
|
import {
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
parseCliLocale,
|
|
77
77
|
setCliLocale,
|
|
78
78
|
t
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-UWNSWEEC.js";
|
|
80
80
|
import "./chunk-TOILAPLH.js";
|
|
81
81
|
import "./chunk-CMKUBIGW.js";
|
|
82
82
|
import "./chunk-JBTJAPUF.js";
|
|
@@ -3848,11 +3848,18 @@ function createChatQueueTuiBinding(runTurn) {
|
|
|
3848
3848
|
runtime.send({ type: "turn-start" });
|
|
3849
3849
|
};
|
|
3850
3850
|
const notifyTurnEnd = async (outcome) => {
|
|
3851
|
-
const
|
|
3852
|
-
|
|
3853
|
-
|
|
3851
|
+
const consumePreempt = (raw) => {
|
|
3852
|
+
const mode = preemptArmed;
|
|
3853
|
+
preemptArmed = null;
|
|
3854
|
+
if (mode === null || !raw.aborted) return { outcome: raw, mode: null };
|
|
3855
|
+
return {
|
|
3856
|
+
outcome: mode === "drain" ? { ok: true, aborted: false } : { ok: false, aborted: false },
|
|
3857
|
+
mode
|
|
3858
|
+
};
|
|
3859
|
+
};
|
|
3860
|
+
const { outcome: effectiveOutcome, mode: consumedMode } = consumePreempt(outcome);
|
|
3854
3861
|
runtime.send({ type: "turn-end", ...effectiveOutcome });
|
|
3855
|
-
if (
|
|
3862
|
+
if (consumedMode === "stop") {
|
|
3856
3863
|
runtime.send({ type: "drain-error", message: "" });
|
|
3857
3864
|
}
|
|
3858
3865
|
let lastOk = effectiveOutcome.ok && !effectiveOutcome.aborted;
|
|
@@ -3868,9 +3875,13 @@ function createChatQueueTuiBinding(runTurn) {
|
|
|
3868
3875
|
} catch {
|
|
3869
3876
|
turnOutcome = { ok: false, aborted: false };
|
|
3870
3877
|
}
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
if (
|
|
3878
|
+
const { outcome: cascadeOutcome, mode: cascadeMode } = consumePreempt(turnOutcome);
|
|
3879
|
+
runtime.send({ type: "turn-end", ...cascadeOutcome });
|
|
3880
|
+
if (cascadeMode === "stop") {
|
|
3881
|
+
runtime.send({ type: "drain-error", message: "" });
|
|
3882
|
+
}
|
|
3883
|
+
lastOk = cascadeOutcome.ok && !cascadeOutcome.aborted;
|
|
3884
|
+
if (cascadeOutcome.aborted) break;
|
|
3874
3885
|
if (!lastOk) break;
|
|
3875
3886
|
} else {
|
|
3876
3887
|
break;
|
|
@@ -3897,6 +3908,13 @@ function createChatQueueTuiBinding(runTurn) {
|
|
|
3897
3908
|
preemptArmed = "stop";
|
|
3898
3909
|
return true;
|
|
3899
3910
|
};
|
|
3911
|
+
const snapshotAndClearQueue = () => {
|
|
3912
|
+
const status = runtime.getState();
|
|
3913
|
+
if (status.queue.length === 0) return null;
|
|
3914
|
+
const merged = status.queue.join("\n");
|
|
3915
|
+
runtime.send({ type: "clear" });
|
|
3916
|
+
return merged;
|
|
3917
|
+
};
|
|
3900
3918
|
const clear = () => {
|
|
3901
3919
|
runtime.send({ type: "clear" });
|
|
3902
3920
|
};
|
|
@@ -3913,6 +3931,7 @@ function createChatQueueTuiBinding(runTurn) {
|
|
|
3913
3931
|
drainHeadForManualTurn,
|
|
3914
3932
|
preemptForDrain,
|
|
3915
3933
|
preemptForStop,
|
|
3934
|
+
snapshotAndClearQueue,
|
|
3916
3935
|
clear,
|
|
3917
3936
|
getStatus,
|
|
3918
3937
|
queueLength,
|
|
@@ -4598,6 +4617,7 @@ function createRawInputDecoder(onToken, options) {
|
|
|
4598
4617
|
}
|
|
4599
4618
|
|
|
4600
4619
|
// packages/cli/tui/readlineWorkspace.ts
|
|
4620
|
+
var CTRL_S = "";
|
|
4601
4621
|
var AGENTS_MD_MAX_BYTES = 8192;
|
|
4602
4622
|
var altScreenRestoreOutput = null;
|
|
4603
4623
|
var altScreenHandlersInstalled = false;
|
|
@@ -5325,6 +5345,11 @@ ${t("copyViewHint")}
|
|
|
5325
5345
|
});
|
|
5326
5346
|
return chatQueueBinding;
|
|
5327
5347
|
};
|
|
5348
|
+
const preemptAndAbortForDrain = (binding) => {
|
|
5349
|
+
if (binding.preemptForDrain() && activeTurnAbort) {
|
|
5350
|
+
activeTurnAbort.abort();
|
|
5351
|
+
}
|
|
5352
|
+
};
|
|
5328
5353
|
const emitCommandOutput = (text) => {
|
|
5329
5354
|
if (!text) return;
|
|
5330
5355
|
if (!isInteractiveInput(input)) {
|
|
@@ -5752,6 +5777,30 @@ ${err.message}` : ""}`
|
|
|
5752
5777
|
rawActionGateTokenHandler?.(sequence);
|
|
5753
5778
|
return;
|
|
5754
5779
|
}
|
|
5780
|
+
if (sequence === CTRL_S) {
|
|
5781
|
+
if (!chatQueueBinding || chatQueueBinding.queueLength() === 0) {
|
|
5782
|
+
return;
|
|
5783
|
+
}
|
|
5784
|
+
const flushCount = chatQueueBinding.queueLength();
|
|
5785
|
+
const merged = chatQueueBinding.snapshotAndClearQueue();
|
|
5786
|
+
if (!merged) return;
|
|
5787
|
+
const draftIncluded = !busy && buffer.trim() !== "";
|
|
5788
|
+
const fullText = draftIncluded ? `${buffer}
|
|
5789
|
+
${merged}` : merged;
|
|
5790
|
+
chatQueueBinding.enqueue(fullText);
|
|
5791
|
+
const totalCount = flushCount + (draftIncluded ? 1 : 0);
|
|
5792
|
+
emitCommandOutput(
|
|
5793
|
+
t(busy ? "flushQueuedBusyHint" : "flushQueuedIdleHint", String(totalCount))
|
|
5794
|
+
);
|
|
5795
|
+
if (busy) {
|
|
5796
|
+
preemptAndAbortForDrain(chatQueueBinding);
|
|
5797
|
+
return;
|
|
5798
|
+
}
|
|
5799
|
+
buffer = "";
|
|
5800
|
+
cursorPos = 0;
|
|
5801
|
+
if (fixedInput.active) fixedInput.repaint(buffer, cursorPos);
|
|
5802
|
+
return handleInputToken("\r");
|
|
5803
|
+
}
|
|
5755
5804
|
const busyLock = busy;
|
|
5756
5805
|
const scrollAction = parseScrollAction(sequence);
|
|
5757
5806
|
if (scrollAction) {
|
|
@@ -5881,11 +5930,7 @@ ${hint}` : hint;
|
|
|
5881
5930
|
fixedInput.repaint(buffer, cursorPos);
|
|
5882
5931
|
} else if (decision.kind === "queue-blocked") {
|
|
5883
5932
|
} else if (decision.kind === "noop" && !submittedText.trim() && binding.queueLength() > 0) {
|
|
5884
|
-
|
|
5885
|
-
if (activeTurnAbort) {
|
|
5886
|
-
activeTurnAbort.abort();
|
|
5887
|
-
}
|
|
5888
|
-
}
|
|
5933
|
+
preemptAndAbortForDrain(binding);
|
|
5889
5934
|
}
|
|
5890
5935
|
return;
|
|
5891
5936
|
}
|