awb-agent-manager 1.6.48 → 1.6.50

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.
@@ -3,7 +3,7 @@ import { ADAPTER_CAPABILITIES } from './cli-adapters/base.js';
3
3
  import { fetchChatRoomHistory, postChatRoomMessage } from './rest.js';
4
4
  import { log } from './logging.js';
5
5
  import { callMcpTool, fireAndForgetTool, unwrapToolResult } from './mcp-client.js';
6
- import { trackedTicketTool, parseStreamToolResult, harvestTicketTitles, resolveTicketRef, resolveBatchTicketRefs, resolveRejectHandoffRefs, formatTicketRefsContent, chunkTicketRefs, } from './ticket-ref-capture.js';
6
+ import { trackedTicketTool, parseStreamToolResult, harvestTicketTitles, resolveTicketRef, resolveBatchTicketRefs, resolveRejectHandoffRefs, formatTicketRefsContent, chunkTicketRefs, trackedArtifactTool, resolveArtifactRef, chunkArtifactRefs, formatArtifactRefsContent, } from './ticket-ref-capture.js';
7
7
  import { findLiveBackgroundTasks, reapProcessTrees } from './process-tree.js';
8
8
  import { composeChatRoomPrompt } from './prompts.js';
9
9
  import { approxBase64Bytes, prepareChatAttachments, renderAttachmentBlock, } from './chat-attachment-prep.js';
@@ -28,6 +28,8 @@ export class ChatSessionManager extends BaseSessionManager {
28
28
  #pendingTicketTools = new Map();
29
29
  #capturedTicketRefs = new Map();
30
30
  #ticketTitleCache = new Map();
31
+ #pendingArtifactTools = new Map();
32
+ #capturedArtifactRefs = new Map();
31
33
  constructor(config) {
32
34
  super(config, {
33
35
  keyField: 'sessionKey',
@@ -453,26 +455,38 @@ export class ChatSessionManager extends BaseSessionManager {
453
455
  if (typeof block?.id !== 'string')
454
456
  return;
455
457
  const ctx = trackedTicketTool(block?.name, block?.input);
456
- if (!ctx)
458
+ if (ctx) {
459
+ let pend = this.#pendingTicketTools.get(pid);
460
+ if (!pend) {
461
+ pend = new Map();
462
+ this.#pendingTicketTools.set(pid, pend);
463
+ }
464
+ pend.set(block.id, ctx);
465
+ return;
466
+ }
467
+ const actx = trackedArtifactTool(block?.name, block?.input);
468
+ if (!actx)
457
469
  return;
458
- let pend = this.#pendingTicketTools.get(pid);
459
- if (!pend) {
460
- pend = new Map();
461
- this.#pendingTicketTools.set(pid, pend);
470
+ let apend = this.#pendingArtifactTools.get(pid);
471
+ if (!apend) {
472
+ apend = new Map();
473
+ this.#pendingArtifactTools.set(pid, apend);
462
474
  }
463
- pend.set(block.id, ctx);
475
+ apend.set(block.id, actx);
464
476
  }
465
477
  #consumeTicketToolResult(pid, block) {
466
478
  const result = parseStreamToolResult(block?.content);
467
479
  for (const pair of harvestTicketTitles(result))
468
480
  this.#cacheTicketTitle(pair.id, pair.title);
481
+ const isError = block?.is_error === true;
469
482
  const pend = this.#pendingTicketTools.get(pid);
470
483
  const useId = typeof block?.tool_use_id === 'string' ? block.tool_use_id : undefined;
471
484
  const ctx = pend && useId ? pend.get(useId) : undefined;
472
- if (!ctx || !pend || !useId)
485
+ if (!ctx || !pend || !useId) {
486
+ this.#consumeArtifactToolResult(pid, useId, result, isError);
473
487
  return;
488
+ }
474
489
  pend.delete(useId);
475
- const isError = block?.is_error === true;
476
490
  const lookup = (id) => this.#ticketTitleCache.get(id);
477
491
  if (ctx.batchOps) {
478
492
  for (const ref of resolveBatchTicketRefs(ctx, result, isError, lookup))
@@ -495,21 +509,50 @@ export class ChatSessionManager extends BaseSessionManager {
495
509
  refs.push(ref);
496
510
  this.#capturedTicketRefs.set(pid, refs);
497
511
  }
512
+ #consumeArtifactToolResult(pid, useId, result, isError) {
513
+ const apend = this.#pendingArtifactTools.get(pid);
514
+ const actx = apend && useId ? apend.get(useId) : undefined;
515
+ if (!actx || !apend || !useId)
516
+ return;
517
+ apend.delete(useId);
518
+ const ref = resolveArtifactRef(actx, result, isError);
519
+ if (ref)
520
+ this.#pushCapturedArtifactRef(pid, ref);
521
+ }
522
+ #pushCapturedArtifactRef(pid, ref) {
523
+ const refs = this.#capturedArtifactRefs.get(pid) ?? [];
524
+ if (refs.some((r) => r.kind === ref.kind && r.title === ref.title && r.commit === ref.commit))
525
+ return;
526
+ refs.push(ref);
527
+ this.#capturedArtifactRefs.set(pid, refs);
528
+ }
498
529
  #flushTicketRefs(sess) {
499
530
  const refs = this.#capturedTicketRefs.get(sess.pid);
531
+ const artifactRefs = this.#capturedArtifactRefs.get(sess.pid);
500
532
  this.#capturedTicketRefs.delete(sess.pid);
501
533
  this.#pendingTicketTools.delete(sess.pid);
502
- if (!refs || refs.length === 0)
534
+ this.#capturedArtifactRefs.delete(sess.pid);
535
+ this.#pendingArtifactTools.delete(sess.pid);
536
+ const hasTicket = !!refs && refs.length > 0;
537
+ const hasArtifact = !!artifactRefs && artifactRefs.length > 0;
538
+ if (!hasTicket && !hasArtifact)
503
539
  return;
504
540
  const roomId = sess.roomId;
505
541
  const agentId = sess.agentId;
506
542
  if (!roomId || !agentId)
507
543
  return;
508
544
  const cfg = { ...this._config, apiKey: sess._effectiveApiKey || this._config.apiKey };
509
- const chunks = chunkTicketRefs(refs, TICKET_REFS_PER_MESSAGE);
510
- for (const chunk of chunks) {
511
- const content = formatTicketRefsContent(chunk);
512
- void postChatRoomMessage(cfg, roomId, agentId, content, { metadata: { ticket_refs: chunk } });
545
+ if (hasTicket) {
546
+ for (const chunk of chunkTicketRefs(refs, TICKET_REFS_PER_MESSAGE)) {
547
+ const content = formatTicketRefsContent(chunk);
548
+ void postChatRoomMessage(cfg, roomId, agentId, content, { metadata: { ticket_refs: chunk } });
549
+ }
550
+ }
551
+ if (hasArtifact) {
552
+ for (const chunk of chunkArtifactRefs(artifactRefs, TICKET_REFS_PER_MESSAGE)) {
553
+ const content = formatArtifactRefsContent(chunk);
554
+ void postChatRoomMessage(cfg, roomId, agentId, content, { metadata: { artifact_refs: chunk } });
555
+ }
513
556
  }
514
557
  }
515
558
  #followupTurnText(spec, attachments) {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-manager.js","sourceRoot":"","sources":["../../src/lib/chat-session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-session-manager.js","sourceRoot":"","sources":["../../src/lib/chat-session-manager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  const OK = { isFatal: false, nonRetryable: false, reason: '' };
2
+ const SESSION_LIMIT_RE = /\bsession limit\b|(?:hit|reached|exceeded) your (?:session|\d+-hour|weekly) limit/i;
2
3
  const USAGE_LIMIT_RE = /usage limit|rate limit(?:ed)?|quota|too many requests|\b429\b|(?:hit|exceeded|reached) your (?:usage|rate|monthly|daily) limit|monthly limit|insufficient_quota|upgrade to pro/i;
3
4
  const AUTH_RE = /\b401\b|\b403\b|unauthorized|forbidden|invalid api key|authentication failed|not logged in|login required|please (?:run )?[a-z-]*\s*login|missing (?:the )?api key|no api key|api key not (?:set|found)/i;
4
5
  const MODEL_UNAVAILABLE_RE = /model[_\s-]?not[_\s-]?found|unknown model|no such model|model .{0,40}?(?:does not exist|not found|is not available|unavailable|not supported|isn'?t available)|(?:invalid|unsupported|unrecognized) model|does not have access to (?:the )?model|not_?found_?error.{0,40}?model/i;
@@ -11,6 +12,8 @@ export function classifyCliError(text, opts) {
11
12
  const nonZeroExit = typeof opts?.exitCode === 'number' && opts.exitCode !== 0;
12
13
  const hasErrorContext = nonZeroExit || isCodexErrorWrapped;
13
14
  if (hasErrorContext) {
15
+ if (SESSION_LIMIT_RE.test(s))
16
+ return { isFatal: true, nonRetryable: true, reason: 'session_limit' };
14
17
  if (USAGE_LIMIT_RE.test(s))
15
18
  return { isFatal: true, nonRetryable: true, reason: 'usage_limit' };
16
19
  if (AUTH_RE.test(s))
@@ -1 +1 @@
1
- {"version":3,"file":"cli-error-signatures.js","sourceRoot":"","sources":["../../src/lib/cli-error-signatures.ts"],"names":[],"mappings":"AA6BA,MAAM,EAAE,GAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAIvF,MAAM,cAAc,GAClB,iLAAiL,CAAC;AAIpL,MAAM,OAAO,GACX,0MAA0M,CAAC;AAM7M,MAAM,oBAAoB,GACxB,kRAAkR,CAAC;AAKrR,MAAM,cAAc,GAAG,kBAAkB,CAAC;AA4B1C,MAAM,UAAU,gBAAgB,CAC9B,IAA+B,EAC/B,IAAsB;IAEtB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAEzB,MAAM,mBAAmB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,IAAI,EAAE,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,WAAW,IAAI,mBAAmB,CAAC;IAI3D,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAChG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAI1F,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9E,CAAC;IAKD,IAAI,mBAAmB;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAE9F,OAAO,EAAE,CAAC;AACZ,CAAC;AASD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC;AAShF,MAAM,UAAU,kBAAkB,CAAC,CAAyB;IAC1D,OAAO,CAAC,CAAC,OAAO,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"cli-error-signatures.js","sourceRoot":"","sources":["../../src/lib/cli-error-signatures.ts"],"names":[],"mappings":"AA6BA,MAAM,EAAE,GAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AASvF,MAAM,gBAAgB,GACpB,oFAAoF,CAAC;AAIvF,MAAM,cAAc,GAClB,iLAAiL,CAAC;AAIpL,MAAM,OAAO,GACX,0MAA0M,CAAC;AAM7M,MAAM,oBAAoB,GACxB,kRAAkR,CAAC;AAKrR,MAAM,cAAc,GAAG,kBAAkB,CAAC;AA4B1C,MAAM,UAAU,gBAAgB,CAC9B,IAA+B,EAC/B,IAAsB;IAEtB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAEzB,MAAM,mBAAmB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,IAAI,EAAE,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,WAAW,IAAI,mBAAmB,CAAC;IAI3D,IAAI,eAAe,EAAE,CAAC;QAGpB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QACxE,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAChG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAI1F,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9E,CAAC;IAKD,IAAI,mBAAmB;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAE9F,OAAO,EAAE,CAAC;AACZ,CAAC;AASD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC;AAShF,MAAM,UAAU,kBAAkB,CAAC,CAAyB;IAC1D,OAAO,CAAC,CAAC,OAAO,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC"}
@@ -3,6 +3,7 @@ export declare const CONFIG_PATH: string;
3
3
  export declare const AGENT_PATH: string;
4
4
  export declare const SUBAGENTS_BASE_DIR: string;
5
5
  export declare const SUBAGENTS_PERSIST_PATH: string;
6
+ export declare const SESSION_DEFER_PATH: string;
6
7
  export declare const INSTANCES_DIR: string;
7
8
  export declare const MANAGED_AGENTS_DIR: string;
8
9
  export declare const LOG_DIR: string;
@@ -18,6 +18,7 @@ export const CONFIG_PATH = join(AGENT_MANAGER_HOME, 'config.json');
18
18
  export const AGENT_PATH = join(AGENT_MANAGER_HOME, 'agent.json');
19
19
  export const SUBAGENTS_BASE_DIR = join(AGENT_MANAGER_HOME, 'subagents');
20
20
  export const SUBAGENTS_PERSIST_PATH = join(AGENT_MANAGER_HOME, 'subagents.json');
21
+ export const SESSION_DEFER_PATH = join(AGENT_MANAGER_HOME, 'session-defer.json');
21
22
  export const INSTANCES_DIR = join(AGENT_MANAGER_HOME, 'instances');
22
23
  export const MANAGED_AGENTS_DIR = join(AGENT_MANAGER_HOME, 'agents');
23
24
  export const LOG_DIR = AGENT_MANAGER_HOME;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { ManagedAgentContextRegistry } from './managed-agent-context.js';
4
4
  import type { WorktreeManager, WorktreeMode } from './worktree-manager.js';
5
5
  import { DispatchBlockTracker, InflightDispatchTracker } from './dispatch-preflight.js';
6
6
  import type { RetryScheduler } from './dispatch-preflight.js';
7
+ import { SessionLimitDeferStore } from './session-limit-defer.js';
7
8
  import type { HarnessSpec, ResolvedEffortPreset } from './cli-adapters/base.js';
8
9
  interface ResolvedEnvironmentConfig {
9
10
  repositories: Array<{
@@ -183,6 +184,7 @@ export interface EventDispatcherDeps {
183
184
  poolReclaimTrigger?: (() => Promise<number>) | null;
184
185
  poolRetryScheduler?: RetryScheduler | null;
185
186
  poolRetryMaxAttempts?: number | null;
187
+ sessionLimitDeferStore?: SessionLimitDeferStore | null;
186
188
  }
187
189
  export declare class EventDispatcher {
188
190
  #private;
@@ -190,10 +192,24 @@ export declare class EventDispatcher {
190
192
  dispatchBlockCounts(): Record<string, number>;
191
193
  wakePoolRetries(reason: string): void;
192
194
  pendingPoolRetryCount(): number;
195
+ recordHarnessSessionLimit(info: {
196
+ agentId: string;
197
+ ticketId?: string;
198
+ role?: string;
199
+ deferUntilMs: number;
200
+ reason?: string;
201
+ resetLabel?: string;
202
+ }): {
203
+ opened: boolean;
204
+ };
205
+ sessionDeferState(agentId: string): ReturnType<SessionLimitDeferStore['deferState']>;
206
+ pendingSessionDeferCount(agentId?: string): number;
193
207
  constructor(config: AwbConfig, deps?: EventDispatcherDeps);
194
208
  dispatch(eventType: string, raw: string): void | Promise<void>;
195
209
  handleFsRequest(raw: string): Promise<void>;
196
- handleTrigger(raw: string): Promise<void>;
210
+ handleTrigger(raw: string, opts?: {
211
+ onDispatched?: (pid: number | null) => void;
212
+ }): Promise<void>;
197
213
  handleChatRequest(raw: string): Promise<void>;
198
214
  handleCommentMention(raw: string): Promise<void>;
199
215
  handleBoardUpdate(raw: string): void;
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  import { log } from './logging.js';
2
3
  import { loadAgentInfo } from './config.js';
3
4
  import { fetchTicketContext, fetchChatRoomHistory, fetchAgentRecord, fetchRepositoryCredential, postFsResponse, postChatRoomMessage, postDispatchAck, } from './rest.js';
@@ -5,6 +6,7 @@ import { recordEvent } from './event-log-recorder.js';
5
6
  import { prepareChatAttachments } from './chat-attachment-prep.js';
6
7
  import { injectWorkFolder } from './prompts.js';
7
8
  import { DispatchBlockerTracker, DispatchBlockTracker, InflightDispatchTracker, PendingDispatchRetry, RoleSpawnSuppressor, classifyWorktreeOutcome, managedWorktreePath, provisioningPendReason } from './dispatch-preflight.js';
9
+ import { SessionLimitDeferStore } from './session-limit-defer.js';
8
10
  import { createAdapter, ADAPTER_CAPABILITIES } from './cli-adapters/index.js';
9
11
  import { parseRunProvision, provisionRunWorkspace, reconcileRunBaseWorkingDir, resolveRunFolder, } from './run-provisioner.js';
10
12
  import { FolderMutex } from './run-execution-lock.js';
@@ -212,6 +214,73 @@ export class EventDispatcher {
212
214
  pendingPoolRetryCount() {
213
215
  return this.#poolRetry.size();
214
216
  }
217
+ #sessionDefer;
218
+ #inflightTriggerRaw = new Map();
219
+ static #INFLIGHT_RAW_CAP = 512;
220
+ #rememberTriggerRaw(key, raw) {
221
+ this.#inflightTriggerRaw.delete(key);
222
+ this.#inflightTriggerRaw.set(key, raw);
223
+ while (this.#inflightTriggerRaw.size > _a.#INFLIGHT_RAW_CAP) {
224
+ const oldest = this.#inflightTriggerRaw.keys().next().value;
225
+ if (oldest === undefined)
226
+ break;
227
+ this.#inflightTriggerRaw.delete(oldest);
228
+ }
229
+ }
230
+ #forgetTriggerRawForTicket(ticketId) {
231
+ if (!ticketId)
232
+ return;
233
+ const prefix = `${ticketId}:`;
234
+ for (const key of [...this.#inflightTriggerRaw.keys()]) {
235
+ if (key.startsWith(prefix))
236
+ this.#inflightTriggerRaw.delete(key);
237
+ }
238
+ }
239
+ recordHarnessSessionLimit(info) {
240
+ const res = this.#sessionDefer.recordSessionLimit(info.agentId, {
241
+ deferUntilMs: info.deferUntilMs,
242
+ reason: info.reason,
243
+ resetLabel: info.resetLabel,
244
+ });
245
+ if (res.opened) {
246
+ log(`[dispatch] harness session-limit defer opened agent=${info.agentId.slice(0, 8)} ` +
247
+ `until=${new Date(info.deferUntilMs).toISOString()} label="${info.resetLabel ?? ''}" ` +
248
+ `— supervisor/mention re-dispatch deferred until reset`);
249
+ }
250
+ if (info.ticketId) {
251
+ const key = InflightDispatchTracker.key(info.ticketId, info.role || '', info.agentId);
252
+ const raw = this.#inflightTriggerRaw.get(key);
253
+ if (raw) {
254
+ const { created } = this.#sessionDefer.addPendingIntent(info.agentId, { ticketId: info.ticketId, role: info.role || '', agentId: info.agentId }, raw, { kind: 'trigger' });
255
+ this.#inflightTriggerRaw.delete(key);
256
+ if (created) {
257
+ log(`[dispatch] harness session-limit seeded dead task as pending intent ` +
258
+ `ticket=${info.ticketId.slice(0, 8)} role=${info.role || '_'} agent=${info.agentId.slice(0, 8)}`);
259
+ this.#postDeferAuditComment(info.ticketId, info.resetLabel ?? '');
260
+ }
261
+ }
262
+ }
263
+ return res;
264
+ }
265
+ sessionDeferState(agentId) {
266
+ return this.#sessionDefer.deferState(agentId);
267
+ }
268
+ pendingSessionDeferCount(agentId) {
269
+ return this.#sessionDefer.pendingIntentCount(agentId);
270
+ }
271
+ #postDeferAuditComment(ticketId, resetLabel) {
272
+ if (!ticketId)
273
+ return;
274
+ fireAndForgetTool(this.#config, 'add_comment', {
275
+ ticket_id: ticketId,
276
+ content: '⏸️ **Harness 세션 한도로 재디스패치 유예** — 이 agent 의 CLI 세션 한도가 소진되어 ' +
277
+ '(`session limit`) 재설정 시각까지 이 (ticket, role) 의 dispatch 를 spawn 하지 않고 ' +
278
+ '단일 pending intent 로 합쳤습니다. supervisor/mention 재트리거는 세션을 새로 만들지 ' +
279
+ '않으며, 재설정 후 **정확히 1회** 재개됩니다' +
280
+ (resetLabel ? ` (reset: ${resetLabel})` : '') +
281
+ '. (ticket 467f714a)',
282
+ });
283
+ }
215
284
  #runExecLock = new FolderMutex();
216
285
  constructor(config, deps = {}) {
217
286
  this.#config = config;
@@ -234,6 +303,11 @@ export class EventDispatcher {
234
303
  maxAttempts: deps.poolRetryMaxAttempts ?? undefined,
235
304
  log,
236
305
  });
306
+ this.#sessionDefer = deps.sessionLimitDeferStore ?? new SessionLimitDeferStore();
307
+ this.#sessionDefer.setResumeHandler((intent, onSpawned) => intent.kind === 'mention'
308
+ ? this.handleCommentMention(intent.raw)
309
+ : this.handleTrigger(intent.raw, { onDispatched: (pid) => onSpawned(pid) }));
310
+ this.#sessionDefer.load();
237
311
  }
238
312
  async #applyWorktreeCwd(agentContext, ticketId, role, mode, poolSize, bootstrapRepo) {
239
313
  const requiredError = validateWorktreeProvisioningInputs({
@@ -478,7 +552,7 @@ export class EventDispatcher {
478
552
  await postFsResponse(this.#config, requestId, result);
479
553
  log(`fs_request ${ev.op} ${ev.path} → ${result.ok ? 'ok' : `err:${result.code || 'FS_ERROR'}`}`);
480
554
  }
481
- async handleTrigger(raw) {
555
+ async handleTrigger(raw, opts) {
482
556
  let ev;
483
557
  try {
484
558
  ev = JSON.parse(raw);
@@ -498,6 +572,19 @@ export class EventDispatcher {
498
572
  log(`Trigger dropped (not for this agent): target=${eventAgentId} self=${selfAgentId}`);
499
573
  return;
500
574
  }
575
+ const deferAgentId = ev.actor_name || '';
576
+ if (typeof ev.ticket_id === 'string' && ev.ticket_id && ev.trigger_source !== 'manual') {
577
+ const defer = this.#sessionDefer.deferState(deferAgentId);
578
+ if (defer.deferred) {
579
+ const { created } = this.#sessionDefer.addPendingIntent(deferAgentId, { ticketId: ev.ticket_id, role: ev.action || '', agentId: deferAgentId }, raw, { kind: 'trigger' });
580
+ log(`Trigger deferred — harness session limit: ticket=${ev.ticket_id.slice(0, 8)} ` +
581
+ `role=${ev.action || '_'} agent=${deferAgentId.slice(0, 8) || '_'} ` +
582
+ `source=${ev.trigger_source || '_'} until=${defer.deferUntilMs ? new Date(defer.deferUntilMs).toISOString() : '?'} (${created ? 'new pending intent' : 'coalesced'})`);
583
+ if (created)
584
+ this.#postDeferAuditComment(ev.ticket_id, defer.resetLabel ?? '');
585
+ return;
586
+ }
587
+ }
501
588
  const fromSupervisor = ev.trigger_source === 'supervisor';
502
589
  const suppression = this.#spawnSuppressor.shouldSuppress(ev.ticket_id, ev.action, {
503
590
  now: Date.now(),
@@ -511,6 +598,8 @@ export class EventDispatcher {
511
598
  const inflightKey = typeof ev.ticket_id === 'string' && ev.ticket_id
512
599
  ? InflightDispatchTracker.key(ev.ticket_id, ev.action || '', dispatchAgentId)
513
600
  : null;
601
+ if (inflightKey)
602
+ this.#rememberTriggerRaw(inflightKey, raw);
514
603
  const delegationCfg = this.#config?.delegation ?? {};
515
604
  const canAuthoritative = delegationCfg.enabled !== false &&
516
605
  delegationCfg.persistentTicketSessions !== false &&
@@ -564,7 +653,7 @@ export class EventDispatcher {
564
653
  }
565
654
  const reservedFresh = !!reservation && reservation.acquired && !reservation.live;
566
655
  try {
567
- await this.#dispatchTriggerBody(ev, agentContext, envConfig, canAuthoritative && reservedFresh, raw);
656
+ await this.#dispatchTriggerBody(ev, agentContext, envConfig, canAuthoritative && reservedFresh, raw, opts);
568
657
  }
569
658
  finally {
570
659
  if (inflightKey) {
@@ -594,7 +683,7 @@ export class EventDispatcher {
594
683
  }
595
684
  }
596
685
  }
597
- async #dispatchTriggerBody(ev, agentContext, envConfig, dispatchReserved, raw) {
686
+ async #dispatchTriggerBody(ev, agentContext, envConfig, dispatchReserved, raw, opts) {
598
687
  const selectedRepo = resolveBootstrapRepository(ev.base_repo, ev.base_branch, envConfig);
599
688
  const repoCredential = selectedRepo?.resourceId && agentContext?.agent_id
600
689
  ? await fetchRepositoryCredential(this.#config, selectedRepo.resourceId, agentContext.agent_id)
@@ -756,6 +845,7 @@ export class EventDispatcher {
756
845
  });
757
846
  if (result.dispatched) {
758
847
  log(`Trigger dispatched to ticket session: ticket=${ev.ticket_id} pid=${result.pid}${result.firstTurn ? ' (new session)' : ''}`);
848
+ opts?.onDispatched?.(typeof result.pid === 'number' ? result.pid : null);
759
849
  this.#ackDispatch(ev, 'processed');
760
850
  return;
761
851
  }
@@ -801,6 +891,7 @@ export class EventDispatcher {
801
891
  });
802
892
  if (result.spawned) {
803
893
  log(`Trigger dispatched to subagent: ticket=${ev.ticket_id} pid=${result.pid}${agentContext ? ` agent=${agentContext.agent_id.slice(0, 8)}` : ''}`);
894
+ opts?.onDispatched?.(typeof result.pid === 'number' ? result.pid : null);
804
895
  this.#ackDispatch(ev, 'processed');
805
896
  return;
806
897
  }
@@ -938,6 +1029,16 @@ export class EventDispatcher {
938
1029
  log(`Ticket session forward failed for comment_mention: ${err?.message ?? err}`);
939
1030
  }
940
1031
  }
1032
+ const mentionDefer = this.#sessionDefer.deferState(agentId);
1033
+ if (mentionDefer.deferred) {
1034
+ const mentionRole = mention.mention_source === 'role' ? mention.role_shortcut || '' : '';
1035
+ const { created } = this.#sessionDefer.addPendingIntent(agentId, { ticketId, role: mentionRole, agentId }, raw, { kind: 'mention' });
1036
+ log(`Comment mention deferred — harness session limit: ticket=${ticketId.slice(0, 8) || '_'} ` +
1037
+ `role=${mentionRole || '_'} agent=${(agentId || '').slice(0, 8) || '_'} until=${mentionDefer.deferUntilMs ? new Date(mentionDefer.deferUntilMs).toISOString() : '?'} (${created ? 'new pending intent' : 'coalesced'}, no one-shot spawn while deferred)`);
1038
+ if (created)
1039
+ this.#postDeferAuditComment(ticketId, mentionDefer.resetLabel ?? '');
1040
+ return;
1041
+ }
941
1042
  const canDelegate = delegationEnabled && this.#subagentManager && this.#subagentManager.canSpawn();
942
1043
  if (canDelegate && this.#subagentManager) {
943
1044
  try {
@@ -971,10 +1072,14 @@ export class EventDispatcher {
971
1072
  const ev = JSON.parse(raw);
972
1073
  if (ev.entity_type === 'ticket' && ev.action === 'moved' && ev.ticket_id) {
973
1074
  this.#poolRetry.cancelByTicket(ev.ticket_id, 'ticket moved');
1075
+ this.#sessionDefer.cancelByTicket(ev.ticket_id, 'ticket moved');
1076
+ this.#forgetTriggerRawForTicket(ev.ticket_id);
974
1077
  void this.#cleanupTerminalTicketWorktrees(ev.ticket_id);
975
1078
  }
976
1079
  if (ev.entity_type === 'ticket' && ev.action === 'archived' && ev.ticket_id) {
977
1080
  this.#poolRetry.cancelByTicket(ev.ticket_id, 'ticket archived');
1081
+ this.#sessionDefer.cancelByTicket(ev.ticket_id, 'ticket archived');
1082
+ this.#forgetTriggerRawForTicket(ev.ticket_id);
978
1083
  void this.#cleanupArchivedTicketWorkspace(ev.ticket_id, ev.repository_resource_id);
979
1084
  }
980
1085
  if (this.#ticketSessionManager && ev.ticket_id) {
@@ -1223,4 +1328,5 @@ export class EventDispatcher {
1223
1328
  }
1224
1329
  }
1225
1330
  }
1331
+ _a = EventDispatcher;
1226
1332
  //# sourceMappingURL=event-dispatcher.js.map