chatroom-cli 1.108.3 → 1.109.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/dist/index.js CHANGED
@@ -87338,11 +87338,7 @@ class AgentProcessManager {
87338
87338
  slot,
87339
87339
  eventId: `${opts.pid}:${++this.agentTurnEndedSequence}`
87340
87340
  };
87341
- const outcomes = await Promise.all([...this.agentTurnEndedHandlers].map((handler) => handler(event)));
87342
- if (outcomes.includes("reminder_requested")) {
87343
- console.log(`[AgentProcessManager] ⏩ Handoff reminder requested for ${opts.role}`);
87344
- return;
87345
- }
87341
+ await Promise.all([...this.agentTurnEndedHandlers].map((handler) => handler(event)));
87346
87342
  setNativeTurnPhase(slot, defaultNativeTurnPhase());
87347
87343
  console.log(`[AgentProcessManager] ✅ Native agent_end completed for ${opts.role}`);
87348
87344
  return;
@@ -116854,25 +116850,6 @@ class NativeDeliveryService {
116854
116850
  this.deps.agentTaskState.clear({ chatroomId: event.chatroomId, role: event.role });
116855
116851
  }
116856
116852
  async handleAgentTurnEnded(event) {
116857
- const activeTask = this.deps.agentTaskState.get({
116858
- chatroomId: event.chatroomId,
116859
- role: event.role
116860
- });
116861
- if (!activeTask) {
116862
- this.scheduleRoleDelivery(event.chatroomId, event.role);
116863
- return;
116864
- }
116865
- const result = await this.deps.agentTaskState.handleAgentTurnEnded({
116866
- chatroomId: event.chatroomId,
116867
- role: event.role,
116868
- version: {
116869
- taskId: activeTask.taskId,
116870
- generation: activeTask.generation
116871
- },
116872
- eventId: event.eventId
116873
- });
116874
- if (result.outcome === "reminder_requested")
116875
- return "reminder_requested";
116876
116853
  this.scheduleRoleDelivery(event.chatroomId, event.role);
116877
116854
  }
116878
116855
  scheduleRoleDelivery(chatroomId, role) {
@@ -116895,17 +116872,6 @@ class NativeDeliveryService {
116895
116872
  return this.deps.agentTaskState;
116896
116873
  }
116897
116874
  async handleTaskInboxUpdate(update6) {
116898
- for (const signal of update6.signals) {
116899
- if (signal.taskStatus === "completed") {
116900
- await this.deps.runSerializedForAgent({ chatroomId: signal.chatroomId, role: signal.targetRole }, { timeoutMs: TASK_STATE_UPDATE_TIMEOUT_MS }, async () => {
116901
- this.recordTaskHandedOff({
116902
- chatroomId: signal.chatroomId,
116903
- role: signal.targetRole,
116904
- taskId: signal.taskId
116905
- });
116906
- });
116907
- }
116908
- }
116909
116875
  this.deps.taskSnapshotState.applySignalPage(update6.signals, update6.snapshots);
116910
116876
  await this.processSnapshots("inbox-signal", update6.snapshots);
116911
116877
  }
@@ -116923,18 +116889,7 @@ class NativeDeliveryService {
116923
116889
  recordTaskDelivered(args2) {
116924
116890
  this.deps.agentTaskState.start(args2);
116925
116891
  }
116926
- recordTaskHandedOff(args2) {
116927
- const key = { chatroomId: args2.chatroomId, role: args2.role };
116928
- const active2 = this.deps.agentTaskState.get(key);
116929
- if (active2?.taskId !== args2.taskId)
116930
- return;
116931
- this.deps.agentTaskState.markHandedOff(key, {
116932
- taskId: active2.taskId,
116933
- generation: active2.generation
116934
- });
116935
- }
116936
116892
  }
116937
- var TASK_STATE_UPDATE_TIMEOUT_MS = 30000;
116938
116893
  var init_native_delivery_service = __esm(() => {
116939
116894
  init_task_delivery_processor();
116940
116895
  });
@@ -117118,9 +117073,6 @@ var init_operational_inbox = __esm(() => {
117118
117073
  function keyOf(key) {
117119
117074
  return `${key.chatroomId}:${key.role.toLowerCase()}`;
117120
117075
  }
117121
- function matches(state, version3) {
117122
- return state.taskId === version3.taskId && state.generation === version3.generation;
117123
- }
117124
117076
 
117125
117077
  class InMemoryActiveTaskStateStore {
117126
117078
  states = new Map;
@@ -117129,51 +117081,14 @@ class InMemoryActiveTaskStateStore {
117129
117081
  return state ? { ...state } : undefined;
117130
117082
  }
117131
117083
  start(input) {
117132
- const previous = this.states.get(keyOf(input));
117133
117084
  const state = {
117134
117085
  chatroomId: input.chatroomId,
117135
117086
  role: input.role,
117136
- taskId: input.taskId,
117137
- generation: (previous?.generation ?? 0) + 1,
117138
- status: "in_flight",
117139
- handedOff: false,
117140
- reminderAttempts: 0
117087
+ taskId: input.taskId
117141
117088
  };
117142
117089
  this.states.set(keyOf(input), state);
117143
117090
  return { ...state };
117144
117091
  }
117145
- markHandedOff(key, version3) {
117146
- const state = this.states.get(keyOf(key));
117147
- if (!state || !matches(state, version3))
117148
- return false;
117149
- this.states.set(keyOf(key), {
117150
- ...state,
117151
- status: "handed_off",
117152
- handedOff: true
117153
- });
117154
- return true;
117155
- }
117156
- recordTurnEnd(key, version3, eventId) {
117157
- const state = this.states.get(keyOf(key));
117158
- if (!state || !matches(state, version3) || state.lastTurnEndEventId === eventId) {
117159
- return;
117160
- }
117161
- const next4 = {
117162
- ...state,
117163
- status: state.handedOff ? "handed_off" : "reminder_requested",
117164
- reminderAttempts: state.handedOff ? state.reminderAttempts : state.reminderAttempts + 1,
117165
- lastTurnEndEventId: eventId
117166
- };
117167
- this.states.set(keyOf(key), next4);
117168
- return { ...next4 };
117169
- }
117170
- complete(key, version3) {
117171
- const state = this.states.get(keyOf(key));
117172
- if (!state || !matches(state, version3))
117173
- return false;
117174
- this.states.delete(keyOf(key));
117175
- return true;
117176
- }
117177
117092
  clear(key) {
117178
117093
  return this.states.delete(keyOf(key));
117179
117094
  }
@@ -117184,37 +117099,6 @@ class InMemoryActiveTaskStateStore {
117184
117099
  }
117185
117100
  }
117186
117101
 
117187
- // src/daemon/infrastructure/agent-process-manager/components/agent-task-state/usecase/handle-agent-turn-ended.ts
117188
- async function handleAgentTurnEnded(deps, input) {
117189
- const active2 = deps.taskState.get(input);
117190
- if (!active2)
117191
- return { outcome: "no_active_task" };
117192
- if (active2.taskId !== input.version.taskId || active2.generation !== input.version.generation) {
117193
- return { outcome: "stale_event" };
117194
- }
117195
- if (active2.lastTurnEndEventId === input.eventId) {
117196
- return { outcome: "duplicate_event" };
117197
- }
117198
- const recorded = deps.taskState.recordTurnEnd(input, input.version, input.eventId);
117199
- if (!recorded)
117200
- return { outcome: "stale_event" };
117201
- if (recorded.handedOff) {
117202
- deps.taskState.complete(input, input.version);
117203
- return { outcome: "already_handed_off", taskId: recorded.taskId };
117204
- }
117205
- await deps.reminder.remind({
117206
- chatroomId: recorded.chatroomId,
117207
- role: recorded.role,
117208
- taskId: recorded.taskId,
117209
- attempt: recorded.reminderAttempts
117210
- });
117211
- return {
117212
- outcome: "reminder_requested",
117213
- taskId: recorded.taskId,
117214
- attempt: recorded.reminderAttempts
117215
- };
117216
- }
117217
-
117218
117102
  // src/daemon/infrastructure/agent-process-manager/components/agent-task-state/usecase/agent-task-state-service.ts
117219
117103
  class DefaultAgentTaskStateService {
117220
117104
  deps;
@@ -117227,12 +117111,6 @@ class DefaultAgentTaskStateService {
117227
117111
  start(input) {
117228
117112
  return this.deps.taskState.start(input);
117229
117113
  }
117230
- markHandedOff(key, version3) {
117231
- return this.deps.taskState.markHandedOff(key, version3);
117232
- }
117233
- handleAgentTurnEnded(input) {
117234
- return handleAgentTurnEnded(this.deps, input);
117235
- }
117236
117114
  clear(key) {
117237
117115
  return this.deps.taskState.clear(key);
117238
117116
  }
@@ -117240,19 +117118,14 @@ class DefaultAgentTaskStateService {
117240
117118
  return this.deps.taskState.clearAll();
117241
117119
  }
117242
117120
  }
117243
- var init_agent_task_state_service = () => {};
117244
117121
 
117245
117122
  // src/daemon/infrastructure/agent-process-manager/components/agent-task-state/index.ts
117246
- function createAgentTaskStateService(deps) {
117123
+ function createAgentTaskStateService() {
117247
117124
  return new DefaultAgentTaskStateService({
117248
- taskState: new InMemoryActiveTaskStateStore,
117249
- reminder: deps.reminder
117125
+ taskState: new InMemoryActiveTaskStateStore
117250
117126
  });
117251
117127
  }
117252
- var init_agent_task_state = __esm(() => {
117253
- init_agent_task_state_service();
117254
- init_agent_task_state_service();
117255
- });
117128
+ var init_agent_task_state = () => {};
117256
117129
 
117257
117130
  // src/daemon/infrastructure/inbox/fetch-machine-assigned-task-snapshots.ts
117258
117131
  async function fetchMachineAssignedTaskSnapshots(sessionDeps, machineId) {
@@ -117658,7 +117531,7 @@ async function runOperationalInboxLoopWithRestart(options, onUpdate, isStopped)
117658
117531
  }
117659
117532
  }
117660
117533
  }
117661
- var NATIVE_DELIVERY_RECONCILE_MS = 1e4, INBOX_RESTART_INITIAL_MS = 1000, INBOX_RESTART_MAX_MS = 30000, NATIVE_HANDOFF_REMINDER = "Reminder: Use the handoff command to send your response to the team.", startTaskInboxEffect = (wsClient2) => exports_Effect.gen(function* () {
117534
+ var NATIVE_DELIVERY_RECONCILE_MS = 1e4, INBOX_RESTART_INITIAL_MS = 1000, INBOX_RESTART_MAX_MS = 30000, startTaskInboxEffect = (wsClient2) => exports_Effect.gen(function* () {
117662
117535
  const session2 = yield* DaemonSessionService;
117663
117536
  const agentMgr = yield* DaemonAgentProcessManagerService;
117664
117537
  const commandService = yield* DaemonAgentProcessManagerCommandService;
@@ -117685,17 +117558,7 @@ var NATIVE_DELIVERY_RECONCILE_MS = 1e4, INBOX_RESTART_INITIAL_MS = 1000, INBOX_R
117685
117558
  let stopped = false;
117686
117559
  const taskSnapshotState = new MachineTaskSnapshotState;
117687
117560
  const agentOperationalReadModel = new AgentOperationalReadModel;
117688
- const agentTaskState = createAgentTaskStateService({
117689
- reminder: {
117690
- remind: async ({ chatroomId, role }) => {
117691
- await exports_Effect.runPromise(agentMgr.resumeTurnForSlot({
117692
- chatroomId,
117693
- role,
117694
- prompt: NATIVE_HANDOFF_REMINDER
117695
- }));
117696
- }
117697
- }
117698
- });
117561
+ const agentTaskState = createAgentTaskStateService();
117699
117562
  const nativeDelivery = new NativeDeliveryService({
117700
117563
  runtime: runtime4,
117701
117564
  effectContext: effectContext2,
@@ -135246,4 +135109,4 @@ program2.hook("preAction", async (_thisCommand, actionCommand) => {
135246
135109
  });
135247
135110
  program2.parse();
135248
135111
 
135249
- //# debugId=49E223D09A5B19D764756E2164756E21
135112
+ //# debugId=4F6AF6B53314C68764756E2164756E21