@autohq/cli 0.1.339 → 0.1.340

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.
@@ -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.339",
23437
+ version: "0.1.340",
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.interruptActiveTurn(threadId, this.activeTurnId);
67791
+ await this.requestTurnInterrupt(threadId, this.activeTurnId);
67723
67792
  }
67724
67793
  await this.startTurn(threadId, message);
67725
67794
  }
67726
- async interruptActiveTurn(threadId, turnId) {
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.339",
30502
+ version: "0.1.340",
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.interruptActiveTurn(threadId, this.activeTurnId);
45439
+ await this.requestTurnInterrupt(threadId, this.activeTurnId);
45371
45440
  }
45372
45441
  await this.startTurn(threadId, message);
45373
45442
  }
45374
- async interruptActiveTurn(threadId, turnId) {
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();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autohq/cli",
3
- "version": "0.1.339",
3
+ "version": "0.1.340",
4
4
  "license": "SEE LICENSE IN README.md",
5
5
  "publishConfig": {
6
6
  "access": "public"