@autohq/cli 0.1.339 → 0.1.341
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/agent-bridge.js +77 -3
- package/dist/index.js +78 -4
- package/package.json +1 -1
package/dist/agent-bridge.js
CHANGED
|
@@ -23434,7 +23434,7 @@ Object.assign(lookup, {
|
|
|
23434
23434
|
// package.json
|
|
23435
23435
|
var package_default = {
|
|
23436
23436
|
name: "@autohq/cli",
|
|
23437
|
-
version: "0.1.
|
|
23437
|
+
version: "0.1.341",
|
|
23438
23438
|
license: "SEE LICENSE IN README.md",
|
|
23439
23439
|
publishConfig: {
|
|
23440
23440
|
access: "public"
|
|
@@ -27201,6 +27201,7 @@ var SESSION_DISPATCH_COMMAND_KINDS = [
|
|
|
27201
27201
|
"startWithMessage",
|
|
27202
27202
|
"message",
|
|
27203
27203
|
"answer",
|
|
27204
|
+
"interrupt",
|
|
27204
27205
|
"stop"
|
|
27205
27206
|
];
|
|
27206
27207
|
var SESSION_PERSISTED_COMMAND_KINDS = [
|
|
@@ -27453,6 +27454,10 @@ var SessionDispatchStopCommandPayloadSchema = external_exports.object({
|
|
|
27453
27454
|
kind: external_exports.literal("stop"),
|
|
27454
27455
|
reason: external_exports.string().trim().min(1).optional()
|
|
27455
27456
|
}).strict();
|
|
27457
|
+
var SessionDispatchInterruptCommandPayloadSchema = external_exports.object({
|
|
27458
|
+
kind: external_exports.literal("interrupt"),
|
|
27459
|
+
reason: external_exports.string().trim().min(1).optional()
|
|
27460
|
+
}).strict();
|
|
27456
27461
|
var SessionDispatchCommandPayloadSchema = external_exports.discriminatedUnion(
|
|
27457
27462
|
"kind",
|
|
27458
27463
|
[
|
|
@@ -27460,6 +27465,7 @@ var SessionDispatchCommandPayloadSchema = external_exports.discriminatedUnion(
|
|
|
27460
27465
|
RunStartWithMessageCommandPayloadSchema,
|
|
27461
27466
|
SessionDispatchMessageCommandPayloadSchema,
|
|
27462
27467
|
SessionDispatchAnswerCommandPayloadSchema,
|
|
27468
|
+
SessionDispatchInterruptCommandPayloadSchema,
|
|
27463
27469
|
SessionDispatchStopCommandPayloadSchema
|
|
27464
27470
|
]
|
|
27465
27471
|
);
|
|
@@ -27495,6 +27501,10 @@ var SessionDispatchCommandRecordSchema = external_exports.discriminatedUnion("ki
|
|
|
27495
27501
|
kind: external_exports.literal("answer"),
|
|
27496
27502
|
payload: SessionDispatchAnswerCommandPayloadSchema
|
|
27497
27503
|
}),
|
|
27504
|
+
SessionDispatchCommandRecordBaseSchema.extend({
|
|
27505
|
+
kind: external_exports.literal("interrupt"),
|
|
27506
|
+
payload: SessionDispatchInterruptCommandPayloadSchema
|
|
27507
|
+
}),
|
|
27498
27508
|
SessionDispatchCommandRecordBaseSchema.extend({
|
|
27499
27509
|
kind: external_exports.literal("stop"),
|
|
27500
27510
|
payload: SessionDispatchStopCommandPayloadSchema
|
|
@@ -65645,6 +65655,39 @@ var ClaudeAgentBridgeSessionImpl = class {
|
|
|
65645
65655
|
deferred_count: this.deferredMessages.length
|
|
65646
65656
|
});
|
|
65647
65657
|
}
|
|
65658
|
+
async interruptActiveTurn() {
|
|
65659
|
+
if (!this.hasInterruptibleTurn()) {
|
|
65660
|
+
return;
|
|
65661
|
+
}
|
|
65662
|
+
if (this.interruptInFlight) {
|
|
65663
|
+
await this.interruptInFlight;
|
|
65664
|
+
return;
|
|
65665
|
+
}
|
|
65666
|
+
if (this.state.kind !== "running") {
|
|
65667
|
+
return;
|
|
65668
|
+
}
|
|
65669
|
+
const query = this.state.query;
|
|
65670
|
+
const settlementBaseline = this.turnResultCount;
|
|
65671
|
+
const startedAt = Date.now();
|
|
65672
|
+
this.input.writeOutput?.(
|
|
65673
|
+
`agent_bridge_claude_turn_interrupt_started at=${new Date(startedAt).toISOString()}`
|
|
65674
|
+
);
|
|
65675
|
+
const interruptPromise = (async () => {
|
|
65676
|
+
const ack = await this.requestInterruptAck(query, startedAt);
|
|
65677
|
+
if (ack === "timeout") {
|
|
65678
|
+
this.interruptTimeoutTurn = settlementBaseline;
|
|
65679
|
+
}
|
|
65680
|
+
return "proceed";
|
|
65681
|
+
})();
|
|
65682
|
+
this.interruptInFlight = interruptPromise;
|
|
65683
|
+
try {
|
|
65684
|
+
await interruptPromise;
|
|
65685
|
+
} finally {
|
|
65686
|
+
if (this.interruptInFlight === interruptPromise) {
|
|
65687
|
+
this.interruptInFlight = null;
|
|
65688
|
+
}
|
|
65689
|
+
}
|
|
65690
|
+
}
|
|
65648
65691
|
noteActiveTurnCommand(commandId) {
|
|
65649
65692
|
const activeTurn = this.openTurnCommandIds[0];
|
|
65650
65693
|
if (activeTurn) {
|
|
@@ -66460,6 +66503,22 @@ var ClaudeCodeCommandHandler = class {
|
|
|
66460
66503
|
if (delivery.kind === "answer") {
|
|
66461
66504
|
return this.handleAnswerCommand(delivery, activeContext, socketId);
|
|
66462
66505
|
}
|
|
66506
|
+
if (delivery.kind === "interrupt") {
|
|
66507
|
+
this.injectedCommands.add(delivery.commandId);
|
|
66508
|
+
await this.agentSession?.interruptActiveTurn();
|
|
66509
|
+
this.input.runtimeLogger?.info(
|
|
66510
|
+
"agent_bridge_claude_command_interrupt_ready",
|
|
66511
|
+
commandLogContext(delivery, {
|
|
66512
|
+
socket_id: socketId,
|
|
66513
|
+
duration_ms: Date.now() - startedAt
|
|
66514
|
+
})
|
|
66515
|
+
);
|
|
66516
|
+
return commandAck({
|
|
66517
|
+
delivery,
|
|
66518
|
+
socketId,
|
|
66519
|
+
status: "injected"
|
|
66520
|
+
});
|
|
66521
|
+
}
|
|
66463
66522
|
if (delivery.kind === "stop") {
|
|
66464
66523
|
this.injectedCommands.add(delivery.commandId);
|
|
66465
66524
|
this.shutdown();
|
|
@@ -67561,6 +67620,16 @@ var CodexAgentBridgeSessionImpl = class {
|
|
|
67561
67620
|
}
|
|
67562
67621
|
await this.injectIntoActiveTurn(threadId, message);
|
|
67563
67622
|
}
|
|
67623
|
+
async interruptActiveTurn() {
|
|
67624
|
+
if (this.closed) {
|
|
67625
|
+
return;
|
|
67626
|
+
}
|
|
67627
|
+
await this.ensureStarted();
|
|
67628
|
+
if (!this.threadId || !this.activeTurnId) {
|
|
67629
|
+
return;
|
|
67630
|
+
}
|
|
67631
|
+
await this.requestTurnInterrupt(this.threadId, this.activeTurnId);
|
|
67632
|
+
}
|
|
67564
67633
|
resolveApproval(resolution) {
|
|
67565
67634
|
this.writeFrame({
|
|
67566
67635
|
jsonrpc: "2.0",
|
|
@@ -67719,11 +67788,11 @@ var CodexAgentBridgeSessionImpl = class {
|
|
|
67719
67788
|
);
|
|
67720
67789
|
}
|
|
67721
67790
|
if (this.activeTurnId) {
|
|
67722
|
-
await this.
|
|
67791
|
+
await this.requestTurnInterrupt(threadId, this.activeTurnId);
|
|
67723
67792
|
}
|
|
67724
67793
|
await this.startTurn(threadId, message);
|
|
67725
67794
|
}
|
|
67726
|
-
async
|
|
67795
|
+
async requestTurnInterrupt(threadId, turnId) {
|
|
67727
67796
|
try {
|
|
67728
67797
|
await this.request("turn/interrupt", { threadId, turnId });
|
|
67729
67798
|
this.input.writeOutput?.("agent_bridge_codex_interrupted");
|
|
@@ -68198,6 +68267,11 @@ var CodexCommandHandler = class {
|
|
|
68198
68267
|
if (delivery.kind === "answer") {
|
|
68199
68268
|
return this.handleAnswerCommand(delivery, activeContext, socketId);
|
|
68200
68269
|
}
|
|
68270
|
+
if (delivery.kind === "interrupt") {
|
|
68271
|
+
this.injectedCommands.add(delivery.commandId);
|
|
68272
|
+
await this.session?.interruptActiveTurn();
|
|
68273
|
+
return commandAck({ delivery, socketId, status: "injected" });
|
|
68274
|
+
}
|
|
68201
68275
|
if (delivery.kind === "stop") {
|
|
68202
68276
|
this.injectedCommands.add(delivery.commandId);
|
|
68203
68277
|
this.shutdown();
|
package/dist/index.js
CHANGED
|
@@ -18811,7 +18811,7 @@ var init_pool_replace = __esm({
|
|
|
18811
18811
|
});
|
|
18812
18812
|
|
|
18813
18813
|
// ../../packages/schemas/src/session-commands.ts
|
|
18814
|
-
var SESSION_COMMAND_KINDS, SESSION_DISPATCH_COMMAND_KINDS, SESSION_PERSISTED_COMMAND_KINDS, SESSION_LIFECYCLE_COMMAND_KINDS, SESSION_COMMAND_STATUSES, SESSION_DISPATCH_COMMAND_STATUSES, SessionCommandKindSchema, SessionPersistedCommandKindSchema, SessionDispatchCommandKindSchema, RunLifecycleCommandKindSchema, SessionCommandStatusSchema, SessionDispatchCommandStatusSchema, SessionCommandSenderSchema, MESSAGE_DELIVERY_MODES, MessageDeliveryModeSchema, TRIGGER_INJECTION_MODALITIES, TriggerInjectionModalitySchema, RunMessageCommandPayloadSchema, RunAnswerCommandPayloadSchema, RunLifecycleCommandPayloadSchema, RunStopCommandPayloadSchema, SessionCommandPayloadSchema, CreateRunMessageCommandRequestSchema, CreateRunAnswerCommandRequestSchema, CreateRunLifecycleCommandRequestSchema, CreateRunStopCommandRequestSchema, CreateSessionCommandRequestSchema, RunResolutionPolicySchema, AgentAddressedCommandTargetSchema, SessionCommandRecordBaseSchema, RunStartCommandPayloadSchema, RunStartWithMessageCommandPayloadSchema, SessionPersistedCommandPayloadSchema, SessionCommandRecordSchema, SessionDispatchMessageCommandPayloadSchema, SessionDispatchAnswerCommandPayloadSchema, SessionDispatchStopCommandPayloadSchema, SessionDispatchCommandPayloadSchema, SessionDispatchCommandRecordBaseSchema, SessionDispatchCommandRecordSchema;
|
|
18814
|
+
var SESSION_COMMAND_KINDS, SESSION_DISPATCH_COMMAND_KINDS, SESSION_PERSISTED_COMMAND_KINDS, SESSION_LIFECYCLE_COMMAND_KINDS, SESSION_COMMAND_STATUSES, SESSION_DISPATCH_COMMAND_STATUSES, SessionCommandKindSchema, SessionPersistedCommandKindSchema, SessionDispatchCommandKindSchema, RunLifecycleCommandKindSchema, SessionCommandStatusSchema, SessionDispatchCommandStatusSchema, SessionCommandSenderSchema, MESSAGE_DELIVERY_MODES, MessageDeliveryModeSchema, TRIGGER_INJECTION_MODALITIES, TriggerInjectionModalitySchema, RunMessageCommandPayloadSchema, RunAnswerCommandPayloadSchema, RunLifecycleCommandPayloadSchema, RunStopCommandPayloadSchema, SessionCommandPayloadSchema, CreateRunMessageCommandRequestSchema, CreateRunAnswerCommandRequestSchema, CreateRunLifecycleCommandRequestSchema, CreateRunStopCommandRequestSchema, CreateSessionCommandRequestSchema, RunResolutionPolicySchema, AgentAddressedCommandTargetSchema, SessionCommandRecordBaseSchema, RunStartCommandPayloadSchema, RunStartWithMessageCommandPayloadSchema, SessionPersistedCommandPayloadSchema, SessionCommandRecordSchema, SessionDispatchMessageCommandPayloadSchema, SessionDispatchAnswerCommandPayloadSchema, SessionDispatchStopCommandPayloadSchema, SessionDispatchInterruptCommandPayloadSchema, SessionDispatchCommandPayloadSchema, SessionDispatchCommandRecordBaseSchema, SessionDispatchCommandRecordSchema;
|
|
18815
18815
|
var init_session_commands = __esm({
|
|
18816
18816
|
"../../packages/schemas/src/session-commands.ts"() {
|
|
18817
18817
|
"use strict";
|
|
@@ -18836,6 +18836,7 @@ var init_session_commands = __esm({
|
|
|
18836
18836
|
"startWithMessage",
|
|
18837
18837
|
"message",
|
|
18838
18838
|
"answer",
|
|
18839
|
+
"interrupt",
|
|
18839
18840
|
"stop"
|
|
18840
18841
|
];
|
|
18841
18842
|
SESSION_PERSISTED_COMMAND_KINDS = [
|
|
@@ -19088,6 +19089,10 @@ var init_session_commands = __esm({
|
|
|
19088
19089
|
kind: external_exports.literal("stop"),
|
|
19089
19090
|
reason: external_exports.string().trim().min(1).optional()
|
|
19090
19091
|
}).strict();
|
|
19092
|
+
SessionDispatchInterruptCommandPayloadSchema = external_exports.object({
|
|
19093
|
+
kind: external_exports.literal("interrupt"),
|
|
19094
|
+
reason: external_exports.string().trim().min(1).optional()
|
|
19095
|
+
}).strict();
|
|
19091
19096
|
SessionDispatchCommandPayloadSchema = external_exports.discriminatedUnion(
|
|
19092
19097
|
"kind",
|
|
19093
19098
|
[
|
|
@@ -19095,6 +19100,7 @@ var init_session_commands = __esm({
|
|
|
19095
19100
|
RunStartWithMessageCommandPayloadSchema,
|
|
19096
19101
|
SessionDispatchMessageCommandPayloadSchema,
|
|
19097
19102
|
SessionDispatchAnswerCommandPayloadSchema,
|
|
19103
|
+
SessionDispatchInterruptCommandPayloadSchema,
|
|
19098
19104
|
SessionDispatchStopCommandPayloadSchema
|
|
19099
19105
|
]
|
|
19100
19106
|
);
|
|
@@ -19130,6 +19136,10 @@ var init_session_commands = __esm({
|
|
|
19130
19136
|
kind: external_exports.literal("answer"),
|
|
19131
19137
|
payload: SessionDispatchAnswerCommandPayloadSchema
|
|
19132
19138
|
}),
|
|
19139
|
+
SessionDispatchCommandRecordBaseSchema.extend({
|
|
19140
|
+
kind: external_exports.literal("interrupt"),
|
|
19141
|
+
payload: SessionDispatchInterruptCommandPayloadSchema
|
|
19142
|
+
}),
|
|
19133
19143
|
SessionDispatchCommandRecordBaseSchema.extend({
|
|
19134
19144
|
kind: external_exports.literal("stop"),
|
|
19135
19145
|
payload: SessionDispatchStopCommandPayloadSchema
|
|
@@ -30489,7 +30499,7 @@ var init_package = __esm({
|
|
|
30489
30499
|
"package.json"() {
|
|
30490
30500
|
package_default = {
|
|
30491
30501
|
name: "@autohq/cli",
|
|
30492
|
-
version: "0.1.
|
|
30502
|
+
version: "0.1.341",
|
|
30493
30503
|
license: "SEE LICENSE IN README.md",
|
|
30494
30504
|
publishConfig: {
|
|
30495
30505
|
access: "public"
|
|
@@ -43288,6 +43298,39 @@ var ClaudeAgentBridgeSessionImpl = class {
|
|
|
43288
43298
|
deferred_count: this.deferredMessages.length
|
|
43289
43299
|
});
|
|
43290
43300
|
}
|
|
43301
|
+
async interruptActiveTurn() {
|
|
43302
|
+
if (!this.hasInterruptibleTurn()) {
|
|
43303
|
+
return;
|
|
43304
|
+
}
|
|
43305
|
+
if (this.interruptInFlight) {
|
|
43306
|
+
await this.interruptInFlight;
|
|
43307
|
+
return;
|
|
43308
|
+
}
|
|
43309
|
+
if (this.state.kind !== "running") {
|
|
43310
|
+
return;
|
|
43311
|
+
}
|
|
43312
|
+
const query = this.state.query;
|
|
43313
|
+
const settlementBaseline = this.turnResultCount;
|
|
43314
|
+
const startedAt = Date.now();
|
|
43315
|
+
this.input.writeOutput?.(
|
|
43316
|
+
`agent_bridge_claude_turn_interrupt_started at=${new Date(startedAt).toISOString()}`
|
|
43317
|
+
);
|
|
43318
|
+
const interruptPromise = (async () => {
|
|
43319
|
+
const ack = await this.requestInterruptAck(query, startedAt);
|
|
43320
|
+
if (ack === "timeout") {
|
|
43321
|
+
this.interruptTimeoutTurn = settlementBaseline;
|
|
43322
|
+
}
|
|
43323
|
+
return "proceed";
|
|
43324
|
+
})();
|
|
43325
|
+
this.interruptInFlight = interruptPromise;
|
|
43326
|
+
try {
|
|
43327
|
+
await interruptPromise;
|
|
43328
|
+
} finally {
|
|
43329
|
+
if (this.interruptInFlight === interruptPromise) {
|
|
43330
|
+
this.interruptInFlight = null;
|
|
43331
|
+
}
|
|
43332
|
+
}
|
|
43333
|
+
}
|
|
43291
43334
|
noteActiveTurnCommand(commandId) {
|
|
43292
43335
|
const activeTurn = this.openTurnCommandIds[0];
|
|
43293
43336
|
if (activeTurn) {
|
|
@@ -44103,6 +44146,22 @@ var ClaudeCodeCommandHandler = class {
|
|
|
44103
44146
|
if (delivery.kind === "answer") {
|
|
44104
44147
|
return this.handleAnswerCommand(delivery, activeContext, socketId);
|
|
44105
44148
|
}
|
|
44149
|
+
if (delivery.kind === "interrupt") {
|
|
44150
|
+
this.injectedCommands.add(delivery.commandId);
|
|
44151
|
+
await this.agentSession?.interruptActiveTurn();
|
|
44152
|
+
this.input.runtimeLogger?.info(
|
|
44153
|
+
"agent_bridge_claude_command_interrupt_ready",
|
|
44154
|
+
commandLogContext(delivery, {
|
|
44155
|
+
socket_id: socketId,
|
|
44156
|
+
duration_ms: Date.now() - startedAt
|
|
44157
|
+
})
|
|
44158
|
+
);
|
|
44159
|
+
return commandAck({
|
|
44160
|
+
delivery,
|
|
44161
|
+
socketId,
|
|
44162
|
+
status: "injected"
|
|
44163
|
+
});
|
|
44164
|
+
}
|
|
44106
44165
|
if (delivery.kind === "stop") {
|
|
44107
44166
|
this.injectedCommands.add(delivery.commandId);
|
|
44108
44167
|
this.shutdown();
|
|
@@ -45209,6 +45268,16 @@ var CodexAgentBridgeSessionImpl = class {
|
|
|
45209
45268
|
}
|
|
45210
45269
|
await this.injectIntoActiveTurn(threadId, message);
|
|
45211
45270
|
}
|
|
45271
|
+
async interruptActiveTurn() {
|
|
45272
|
+
if (this.closed) {
|
|
45273
|
+
return;
|
|
45274
|
+
}
|
|
45275
|
+
await this.ensureStarted();
|
|
45276
|
+
if (!this.threadId || !this.activeTurnId) {
|
|
45277
|
+
return;
|
|
45278
|
+
}
|
|
45279
|
+
await this.requestTurnInterrupt(this.threadId, this.activeTurnId);
|
|
45280
|
+
}
|
|
45212
45281
|
resolveApproval(resolution) {
|
|
45213
45282
|
this.writeFrame({
|
|
45214
45283
|
jsonrpc: "2.0",
|
|
@@ -45367,11 +45436,11 @@ var CodexAgentBridgeSessionImpl = class {
|
|
|
45367
45436
|
);
|
|
45368
45437
|
}
|
|
45369
45438
|
if (this.activeTurnId) {
|
|
45370
|
-
await this.
|
|
45439
|
+
await this.requestTurnInterrupt(threadId, this.activeTurnId);
|
|
45371
45440
|
}
|
|
45372
45441
|
await this.startTurn(threadId, message);
|
|
45373
45442
|
}
|
|
45374
|
-
async
|
|
45443
|
+
async requestTurnInterrupt(threadId, turnId) {
|
|
45375
45444
|
try {
|
|
45376
45445
|
await this.request("turn/interrupt", { threadId, turnId });
|
|
45377
45446
|
this.input.writeOutput?.("agent_bridge_codex_interrupted");
|
|
@@ -45846,6 +45915,11 @@ var CodexCommandHandler = class {
|
|
|
45846
45915
|
if (delivery.kind === "answer") {
|
|
45847
45916
|
return this.handleAnswerCommand(delivery, activeContext, socketId);
|
|
45848
45917
|
}
|
|
45918
|
+
if (delivery.kind === "interrupt") {
|
|
45919
|
+
this.injectedCommands.add(delivery.commandId);
|
|
45920
|
+
await this.session?.interruptActiveTurn();
|
|
45921
|
+
return commandAck({ delivery, socketId, status: "injected" });
|
|
45922
|
+
}
|
|
45849
45923
|
if (delivery.kind === "stop") {
|
|
45850
45924
|
this.injectedCommands.add(delivery.commandId);
|
|
45851
45925
|
this.shutdown();
|