comfyui-mcp 0.49.1 → 0.49.2

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.
@@ -199,6 +199,11 @@ export async function fetchSupportedCommands(model) {
199
199
  void drain;
200
200
  }
201
201
  }
202
+ /** Bound on unresolved turn traces (wedged turns whose result never arrives).
203
+ * Overflow evicts the oldest trace — and POISONS classification rather than
204
+ * silently realigning it: the pop that crosses the evicted gap (and any
205
+ * traceless result) fails closed as unverifiable, never ok:true (#745 r3). */
206
+ const MAX_UNRESOLVED_TURNS = 16;
202
207
  /**
203
208
  * The Claude Agent SDK adapter. One instance per PanelAgent; it holds the live
204
209
  * `Query` for the current session and re-creates it on each `run()`.
@@ -208,6 +213,53 @@ export class ClaudeBackend {
208
213
  capabilities = CLAUDE_CAPABILITIES;
209
214
  deps;
210
215
  q = null;
216
+ // #740 turn-truthfulness, with TURN IDENTITY (#745 r2 review): every submitted
217
+ // turn gets a trace; stream messages accrue to the LATEST trace, and each
218
+ // terminal result is classified against the trace it belongs to (results
219
+ // arrive in submission order, possibly with a turn's result missing or LATE —
220
+ // the panel's no-result fallback releases the next turn and tolerates the
221
+ // late result, panel-agent.ts:671 — so the backend must too). A late result
222
+ // from a superseded turn therefore classifies by ITS OWN flags and never
223
+ // resets or consumes the in-flight turn's state. A turn that produced NO
224
+ // user-visible content is never a successful turn, and a blocking SDK
225
+ // informational message (prevent_continuation — e.g. a UserPromptSubmit hook
226
+ // denied the prompt) fails its turn even when the SDK's own result still
227
+ // arrives with subtype "success". `interrupted` mirrors PanelAgent's
228
+ // interruptRequested: an interrupted turn's empty result is the interrupt
229
+ // landing, not an empty-turn failure — and only the turn that was in flight
230
+ // when interrupt() landed may be marked.
231
+ //
232
+ // FAIL CLOSED (#745 r3/r4 review): classification must never produce ok:true
233
+ // without positive evidence. A normal successful turn ALWAYS has a trace, so
234
+ // a result whose trace is missing (stray from a dead session, or pushed off
235
+ // by the MAX_UNRESOLVED_TURNS bound) or whose id crosses an evicted-turn gap
236
+ // is UNVERIFIABLE → ok:false, never a forwarded success. The gap case is
237
+ // additionally STICKY: once a pop crosses an evicted-turn gap the FIFO
238
+ // alignment is unrecoverable (content accrued to a mismatched trace is not
239
+ // proof of ITS turn's success), so `classificationPoisoned` fails every later
240
+ // result in the session closed — cleared only by a genuine run() restart.
241
+ turnSeq = 0;
242
+ lastResultTurnId = 0;
243
+ classificationPoisoned = false;
244
+ /** Run-relative zero for turn MARKERS (#728): set at every run() entry to the
245
+ * backend-wide lastResultTurnId, so event stamps are 1-based per run and
246
+ * match PanelAgent's per-dispatch mirror. */
247
+ markerBase = 0;
248
+ /** Interrupted traces PARKED by subtype-aware correlation (#728 r5): an
249
+ * interrupted turn ends with an INTERRUPTED-subtype result, so when a result
250
+ * with any other subtype arrives while the oldest trace is interrupted and a
251
+ * newer trace exists, that turn's result is permanently LOST and the arriving
252
+ * result belongs to the newer turn — the interrupted trace is skipped
253
+ * (parked) rather than popped. The park legitimizes the resulting forward
254
+ * jump in lastResultTurnId, and lets a genuinely interrupted late landing
255
+ * still pop its OWN trace (a backward pop) and classify/stamp by its flags. */
256
+ parkedInterrupted = new Set();
257
+ /** Interrupted traces whose late landing already HAPPENED (moved out of
258
+ * parkedInterrupted on the pop) — consumption tracking so a SECOND
259
+ * interrupted landing can never re-consume a landed trace; with no
260
+ * unconsumed candidate it fails closed as traceless (#728 r6). */
261
+ consumedInterrupted = new Set();
262
+ turns = [];
211
263
  constructor(deps) {
212
264
  this.deps = deps;
213
265
  }
@@ -329,15 +381,55 @@ export class ClaudeBackend {
329
381
  async *run(opts) {
330
382
  const query = await loadQuery();
331
383
  const self = this;
384
+ // A (re)started session can never produce results for turns submitted to a
385
+ // PREVIOUS session — drop any dead traces and advance the result sequence
386
+ // past EVERY turn stamped so far (turnSeq), whether or not traces remain:
387
+ // in a FULLY DRAINED (e.g. poisoned) session the FIFO is already empty, but
388
+ // the sequence must still move past the old ids or the new session's first
389
+ // result re-crosses the old gap and falsely re-poisons (#745 r5). Stray
390
+ // late results from the dead session then arrive TRACELESS and fail closed
391
+ // instead. This genuine restart boundary is also the ONLY reset of the
392
+ // sticky classification poison (#745 r4). Done here, at run() entry (BEFORE
393
+ // the new query exists), rather than on system/init: the SDK's prompt drain
394
+ // legitimately pulls the first batch before init is processed, and an
395
+ // init-time clear would unmark that genuinely in-flight turn (#745).
396
+ this.turns.length = 0;
397
+ this.lastResultTurnId = this.turnSeq;
398
+ this.classificationPoisoned = false;
399
+ this.parkedInterrupted.clear(); // dead session's parks die with it
400
+ this.consumedInterrupted.clear(); // …and its landing history
401
+ this.markerBase = this.lastResultTurnId; // turn markers are run-relative (#728)
332
402
  // Wrap the neutral channel: shape each turn into the SDK's native form right
333
403
  // before it's read, so PanelAgent never deals in SDKUserMessage.
334
404
  async function* prompt() {
335
405
  for await (const turn of opts.channel) {
336
- yield await self.shapeTurn(turn);
406
+ const msg = await self.shapeTurn(turn);
407
+ // The batch is handed to the SDK: stamp the turn's identity. Its trace
408
+ // accrues this turn's content/block/interrupt flags until its terminal
409
+ // result pops it (FIFO) for classification. Bounded: wedged turns whose
410
+ // result never arrives would otherwise grow the queue without limit.
411
+ // Eviction is recorded via the id sequence — the pop that crosses the
412
+ // evicted gap fails closed as unverifiable (#745 r3), it does NOT
413
+ // silently realign classification onto the wrong turn.
414
+ self.turns.push({ id: ++self.turnSeq, hasContent: false, blockReason: null, interrupted: false });
415
+ if (self.turns.length > MAX_UNRESOLVED_TURNS) {
416
+ const evicted = self.turns.shift();
417
+ logger.warn(`[claude-backend] over ${MAX_UNRESOLVED_TURNS} unresolved turns — evicted turn ${evicted?.id}'s trace; its result will fail closed as unverifiable (#740)`);
418
+ }
419
+ yield msg;
337
420
  }
338
421
  }
339
422
  const q = query({ prompt: prompt(), options: this.buildOptions(opts) });
340
423
  this.q = q;
424
+ // TURN MARKERS (#728): stamp every event with the marker of the turn it
425
+ // BELONGS to, derived from the #745 per-turn trace FIFO (the SDK's input
426
+ // pump and output reader are independent streams, so the marker can't ride
427
+ // the input side). RESULT-message events are stamped by route() itself with
428
+ // the trace it popped (the result's OWN turn, subtype-aware — #728 r5);
429
+ // every other message is stamped here with the NEWEST in-flight trace (the
430
+ // turn currently producing output). markerBase re-zeroes the backend-wide
431
+ // trace ids per run (1 = this run's first turn), matching PanelAgent's
432
+ // per-dispatch mirror (Nth submitted turn = marker N).
341
433
  for await (const message of q) {
342
434
  // LIVENESS: every SDKMessage — including the ones route() doesn't translate
343
435
  // (tool-progress, rate-limit, etc.) — is a sign the session is alive, so
@@ -345,7 +437,17 @@ export class ClaudeBackend {
345
437
  // this is effectively a no-op for behavior here; it keeps the watchdog's
346
438
  // re-arm source uniform across both backends via the port.
347
439
  opts.onActivity?.();
348
- yield* this.route(message);
440
+ const streamTurn = this.turns[this.turns.length - 1]?.id;
441
+ for (const ev of this.route(message)) {
442
+ // Session init arrives OUTSIDE any turn — leave it unstamped (an
443
+ // unmarked event is never dead-lettered). Result-message events arrive
444
+ // pre-stamped by route().
445
+ if (ev.type === "session" || message.type === "result") {
446
+ yield ev;
447
+ continue;
448
+ }
449
+ yield streamTurn === undefined ? ev : { ...ev, turn: streamTurn - this.markerBase };
450
+ }
349
451
  }
350
452
  }
351
453
  /** Switch the model live (the SDK applies it to the next turn). */
@@ -359,6 +461,13 @@ export class ClaudeBackend {
359
461
  }
360
462
  }
361
463
  async interrupt() {
464
+ // Scope the empty-turn blessing to the turn actually in flight (the latest
465
+ // unresolved submission): an interrupt() with NO turn in flight leaves no
466
+ // state behind, and a superseded turn's trace keeps whatever mark IT earned
467
+ // (#745 review).
468
+ const active = this.turns[this.turns.length - 1];
469
+ if (active)
470
+ active.interrupted = true;
362
471
  await this.q?.interrupt();
363
472
  }
364
473
  /** Permanently dispose of the live SDK query. The Agent SDK has no explicit
@@ -388,6 +497,11 @@ export class ClaudeBackend {
388
497
  switch (message.type) {
389
498
  case "system":
390
499
  if (message.subtype === "init") {
500
+ // New session (or a restarted one). No turn state is reset here: all
501
+ // of it is per-turn (the `turns` FIFO), and dead traces from a
502
+ // previous session are dropped at run() entry — an init-time clear
503
+ // could unmark a turn the prompt drain already handed to the SDK
504
+ // before this init was processed (#745 review).
391
505
  yield {
392
506
  type: "session",
393
507
  sessionId: message.session_id,
@@ -403,6 +517,45 @@ export class ClaudeBackend {
403
517
  yield { type: "thinking", tokens: t };
404
518
  }
405
519
  }
520
+ else if (message.subtype === "informational") {
521
+ // #740: SDK informational banners are host-rendered plaintext (hook
522
+ // feedback, status lines, slash-command notices) — never drop one the
523
+ // turn logic depends on. A BLOCKING one (prevent_continuation, e.g. a
524
+ // UserPromptSubmit hook denied the prompt) means execution stops here,
525
+ // yet the SDK still ends the turn with a result whose subtype is
526
+ // "success". Record the reason on the CURRENT turn's trace so that
527
+ // turn's result is classified as the failure it actually is, and
528
+ // surface the reason now so the user never watches a turn silently
529
+ // produce nothing.
530
+ const prevent = message.prevent_continuation === true ||
531
+ message.preventContinuation === true;
532
+ const content = typeof message.content === "string" ? message.content.trim() : "";
533
+ if (prevent) {
534
+ const reason = content || "blocked by a hook";
535
+ const turn = this.turns[this.turns.length - 1];
536
+ if (turn)
537
+ turn.blockReason = reason;
538
+ logger.warn(`[claude-backend] turn blocked: ${reason}`);
539
+ yield {
540
+ type: "error",
541
+ message: content || "The turn was blocked before it could produce a reply.",
542
+ };
543
+ }
544
+ else if (content) {
545
+ // Non-blocking notices don't affect turn classification — the panel
546
+ // doesn't render them, but keep them visible in the log.
547
+ logger.info(`[claude-backend] informational (${message.level ?? "info"}): ${content}`);
548
+ }
549
+ }
550
+ else if (message.subtype === "local_command_output") {
551
+ // Slash-command output (/usage, /voice, …) IS the turn's visible
552
+ // payload, so the turn counts as having content and is not
553
+ // misclassified as an empty one. (The panel doesn't render these
554
+ // banners today — unchanged.)
555
+ const turn = this.turns[this.turns.length - 1];
556
+ if (turn)
557
+ turn.hasContent = true;
558
+ }
406
559
  break;
407
560
  case "stream_event": {
408
561
  // Live partial output (includePartialMessages). Turn the raw Anthropic
@@ -433,6 +586,13 @@ export class ClaudeBackend {
433
586
  break;
434
587
  }
435
588
  case "assistant": {
589
+ // An assistant message means the model actually responded — the CURRENT
590
+ // (latest submitted, still unresolved) turn counts as having content
591
+ // (#740). In-stream messages always belong to the newest in-flight turn:
592
+ // a superseded turn's output ends with its own result, which pops it.
593
+ const turn = this.turns[this.turns.length - 1];
594
+ if (turn)
595
+ turn.hasContent = true;
436
596
  // Remember this message's UUID — it's the rewind anchor for the turn.
437
597
  const auid = message.uuid;
438
598
  // Each assistant API response carries the CURRENT context size — report
@@ -476,12 +636,149 @@ export class ClaudeBackend {
476
636
  contextWindow = mu.contextWindow;
477
637
  }
478
638
  }
639
+ // #740: classify the result truthfully, against the trace of the turn it
640
+ // BELONGS to (#745 r2). Results arrive in submission order, so the oldest
641
+ // unresolved trace is this result's turn — even when the result is LATE
642
+ // (an earlier turn was interrupted, produced nothing, and the panel's
643
+ // fallback already released the next turn; panel-agent.ts:671 tolerates
644
+ // that late result, and so does this FIFO: popping the old trace leaves
645
+ // the in-flight turn's state untouched). The SDK reports subtype
646
+ // "success" even for a turn a blocking hook prevented from producing ANY
647
+ // output, and for a turn that simply ended with no assistant message —
648
+ // the panel must never present either as a silent empty success.
649
+ //
650
+ // FAIL CLOSED (#745 r3/r4): ok:true requires positive evidence. A normal
651
+ // successful turn ALWAYS has a trace (stamped at submission), so a
652
+ // result that is TRACELESS (stray from a dead session, or pushed off by
653
+ // the MAX_UNRESOLVED_TURNS bound) or whose id crosses an EVICTED-turn
654
+ // gap is anomalous by construction — unverifiable, never a forwarded
655
+ // success. (The panel consumes every result as completion/done, so a
656
+ // pass-through would NOT be inert.) The gap case is STICKY: alignment
657
+ // is unrecoverable once crossed, so the poison is terminal for the
658
+ // session — content evidence must not rescue it (it accrued to a
659
+ // mismatched trace, which is not proof of ITS turn's success).
660
+ // SUBTYPE-AWARE correlation on the SDK's REAL result vocabulary
661
+ // (#728 r5–r10): results arrive as `success` or `error_*` — an
662
+ // interrupted turn ends with an error_during_execution result (the
663
+ // interrupt landing); there is no "interrupted" result subtype.
664
+ //
665
+ // UNIFORM write-off (r10): an interrupted turn the PANEL killed (its
666
+ // trace is marked) that was then SUPERSEDED by a newer submission never
667
+ // delivers — the turn gate only submits newer work after the older
668
+ // turn's result was written off. So for EVERY landing (success or
669
+ // error_*): any interrupted-marked trace OLDER than the oldest LIVE
670
+ // non-interrupted trace is written off (parked as lost), and the
671
+ // landing pops that oldest live non-interrupted trace — a healthy
672
+ // turn's genuine success or error classifies by ITS flags (a genuine
673
+ // error_during_execution from a healthy newer turn is NOT blessed and
674
+ // is NOT attributed to the killed older turn). With NO live
675
+ // non-interrupted trace, the landing is an interrupt landing and pops
676
+ // the oldest LIVE interrupted trace (kills settle in submission order —
677
+ // the older turn's legitimate landing still pops the older trace, even
678
+ // when a newer interrupted turn's trace exists from queued input), else
679
+ // the oldest PARKED-but-unconsumed interrupted trace (a late landing
680
+ // for a written-off turn — the r6 tolerance), else nothing (anomalous
681
+ // → traceless fail-closed below). Each trace still lands at most once
682
+ // (landed parks move to consumedInterrupted).
683
+ const resultSubtype = message.subtype;
684
+ const oldestLive = this.turns.findIndex((t) => !t.interrupted);
685
+ if (oldestLive > 0) {
686
+ for (let i = 0; i < oldestLive; i++) {
687
+ if (this.turns[i].interrupted)
688
+ this.parkedInterrupted.add(this.turns[i].id);
689
+ }
690
+ }
691
+ let idx = oldestLive;
692
+ if (idx < 0) {
693
+ idx = this.turns.findIndex((t) => t.interrupted && !this.parkedInterrupted.has(t.id));
694
+ }
695
+ if (idx < 0) {
696
+ idx = this.turns.findIndex((t) => t.interrupted && this.parkedInterrupted.has(t.id) && !this.consumedInterrupted.has(t.id));
697
+ }
698
+ const trace = idx >= 0 ? (this.turns.splice(idx, 1)[0] ?? null) : null;
699
+ let unverifiable = null;
700
+ if (this.classificationPoisoned) {
701
+ unverifiable = "Turn bookkeeping was poisoned by an earlier overflow — no result in this session can be verified";
702
+ }
703
+ else if (!trace) {
704
+ unverifiable = "The result could not be matched to any submitted turn";
705
+ logger.warn(`[claude-backend] ${unverifiable} — unverifiable, failing closed (#740)`);
706
+ }
707
+ else {
708
+ let crossesGap = false;
709
+ if (trace.id > this.lastResultTurnId + 1) {
710
+ // Forward jump: legit only when EVERY skipped id is a parked
711
+ // interrupted trace; anything else is an evicted-turn gap.
712
+ for (let id = this.lastResultTurnId + 1; id < trace.id && !crossesGap; id++) {
713
+ if (!this.parkedInterrupted.has(id))
714
+ crossesGap = true;
715
+ }
716
+ }
717
+ else if (trace.id <= this.lastResultTurnId) {
718
+ // Backward pop: legit only for a parked (or landed-once) interrupted
719
+ // trace's deferred landing.
720
+ crossesGap = !(this.parkedInterrupted.has(trace.id) || this.consumedInterrupted.has(trace.id));
721
+ }
722
+ if (crossesGap) {
723
+ // The pop crossed an evicted-turn gap → poison the session (do NOT
724
+ // advance lastResultTurnId to the wrong trace's id — alignment is
725
+ // unrecoverable, so resyncing would just hide the next mismatch).
726
+ this.classificationPoisoned = true;
727
+ unverifiable = "Turn bookkeeping overflowed, so the result cannot be matched to its turn";
728
+ logger.warn(`[claude-backend] result crosses an evicted-turn gap (popped turn ${trace.id}, expected ${this.lastResultTurnId + 1}) — unverifiable; classification poisoned for the rest of the session (#740)`);
729
+ }
730
+ else {
731
+ // A legitimately popped park is now LANDED — consumed once, so a
732
+ // second landing for it finds no candidate (#728 r6).
733
+ if (this.parkedInterrupted.delete(trace.id))
734
+ this.consumedInterrupted.add(trace.id);
735
+ if (trace.id > this.lastResultTurnId)
736
+ this.lastResultTurnId = trace.id;
737
+ }
738
+ }
739
+ // The result's OWN turn marker (#728): stamped here, where the trace it
740
+ // popped is known (a per-message stamp in run() could not see the
741
+ // subtype-aware skip). A traceless result stays UNMARKED so its
742
+ // fail-closed error and gate completion still reach the panel.
743
+ const stamp = trace ? { turn: trace.id - this.markerBase } : {};
744
+ // An interrupted turn's terminal (an error_during_execution landing for
745
+ // its own interrupted-marked trace) is the interrupt LANDING, not a
746
+ // failure — blessed like a success; the empty-turn guard below still
747
+ // spares it. Any other error_* subtype classifies by the trace's own
748
+ // flags (a genuine failure for a non-interrupted turn).
749
+ let ok = resultSubtype === "success" ||
750
+ (resultSubtype === "error_during_execution" && trace !== null && trace.interrupted);
751
+ if (unverifiable !== null) {
752
+ // Fail closed with the reason VISIBLE — including an anomalous
753
+ // interrupted landing with no unconsumed candidate (#728 r6), whose
754
+ // ok is already false.
755
+ ok = false;
756
+ yield {
757
+ type: "error",
758
+ message: `${unverifiable} — reporting the turn as unverifiable rather than a success.`,
759
+ ...stamp,
760
+ };
761
+ }
762
+ else if (ok && trace !== null && trace.blockReason !== null) {
763
+ // The blocking informational already yielded the visible error above.
764
+ ok = false;
765
+ }
766
+ else if (ok && trace !== null && !trace.hasContent && !trace.interrupted) {
767
+ ok = false;
768
+ logger.warn("[claude-backend] result/success with no assistant content — reporting a failed turn (#740)");
769
+ yield {
770
+ type: "error",
771
+ message: "The model ended the turn without producing a reply.",
772
+ ...stamp,
773
+ };
774
+ }
479
775
  yield {
480
776
  type: "result",
481
- ok: message.subtype === "success",
777
+ ok,
482
778
  subtype: message.subtype,
483
779
  ...(contextWindow !== undefined ? { contextWindow } : {}),
484
780
  ...(typeof m.total_cost_usd === "number" ? { costUsd: m.total_cost_usd } : {}),
781
+ ...stamp,
485
782
  };
486
783
  break;
487
784
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-backend.js","sourceRoot":"","sources":["../../src/orchestrator/claude-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-backend.js","sourceRoot":"","sources":["../../src/orchestrator/claude-backend.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ import readline from "node:readline";
43
43
  import { logger } from "../utils/logger.js";
44
44
  import { errorText, messageText, promptText } from "./error-text.js";
45
45
  import { buildAgentSpawnEnv } from "../services/panel-secrets.js";
46
- import { CODEX_CAPABILITIES, } from "./agent-backend.js";
46
+ import { CODEX_CAPABILITIES, stampTurn, } from "./agent-backend.js";
47
47
  function msgOf(err) {
48
48
  return errorText(err);
49
49
  }
@@ -886,8 +886,9 @@ export class CodexBackend {
886
886
  // Process the neutral channel one turn at a time. onActivity is the LIVENESS
887
887
  // signal — every raw app-server notification for the active turn re-arms
888
888
  // PanelAgent's idle watchdog so a long, quiet generation doesn't falsely trip.
889
+ let turnSeq = 0;
889
890
  for await (const turn of opts.channel) {
890
- yield* this.runTurn(client, turn, opts.onActivity);
891
+ yield* stampTurn(this.runTurn(client, turn, opts.onActivity), ++turnSeq);
891
892
  // A timed-out interrupt detaches this client. End the old run before it can
892
893
  // consume another queued turn; PanelAgent will start a fresh app-server.
893
894
  if (this.client !== client)