@akagilnc/pi-workflow-roles 0.1.5295 → 0.1.5301

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.
@@ -14873,79 +14873,6 @@ var init_ticket_provenance_contracts = __esm({
14873
14873
  });
14874
14874
 
14875
14875
  // src/diarist-contracts.ts
14876
- function projectCourtTicketNumbers(raw, options) {
14877
- if (!Array.isArray(raw)) return null;
14878
- const out = [];
14879
- const seen = /* @__PURE__ */ new Set();
14880
- for (const item of raw) {
14881
- if (!isSafePositiveTicketNumber(item)) continue;
14882
- if (seen.has(item)) continue;
14883
- seen.add(item);
14884
- out.push(item);
14885
- }
14886
- const principal = options?.principalTicket;
14887
- if (principal === void 0) return out;
14888
- requireSafePositiveTicketNumber(principal, "projectCourtTicketNumbers principalTicket");
14889
- if (seen.has(principal)) return out;
14890
- return [principal, ...out];
14891
- }
14892
- function interpretDurableCourtTicketNumbers(record4, options) {
14893
- if (!Object.hasOwn(record4, "courtTicketNumbers")) {
14894
- return { kind: "absent" };
14895
- }
14896
- const raw = record4.courtTicketNumbers;
14897
- if (!Array.isArray(raw)) {
14898
- return {
14899
- kind: "damage",
14900
- reason: "courtTicketNumbers is present but not an array"
14901
- };
14902
- }
14903
- if (raw.length === 0) {
14904
- return {
14905
- kind: "damage",
14906
- reason: "courtTicketNumbers is present but empty"
14907
- };
14908
- }
14909
- for (let i = 0; i < raw.length; i += 1) {
14910
- const item = raw[i];
14911
- if (!isSafePositiveTicketNumber(item)) {
14912
- return {
14913
- kind: "damage",
14914
- reason: `courtTicketNumbers[${i}] is not a safe positive integer`
14915
- };
14916
- }
14917
- }
14918
- const tickets = projectCourtTicketNumbers(raw);
14919
- if (tickets === null || tickets.length === 0) {
14920
- return {
14921
- kind: "damage",
14922
- reason: "courtTicketNumbers projected empty after lawful members"
14923
- };
14924
- }
14925
- const principal = options?.principalTicket;
14926
- if (principal !== void 0) {
14927
- if (!isSafePositiveTicketNumber(principal)) {
14928
- return {
14929
- kind: "damage",
14930
- reason: "courtTicketNumbers principal ticket is not a safe positive integer"
14931
- };
14932
- }
14933
- if (!tickets.includes(principal)) {
14934
- return {
14935
- kind: "damage",
14936
- reason: `courtTicketNumbers is missing principal ticket #${principal}`
14937
- };
14938
- }
14939
- }
14940
- return { kind: "ok", tickets: Object.freeze([...tickets]) };
14941
- }
14942
- function sameCourtTicketNumbers(left, right) {
14943
- if (left.length !== right.length) return false;
14944
- for (let i = 0; i < left.length; i += 1) {
14945
- if (left[i] !== right[i]) return false;
14946
- }
14947
- return true;
14948
- }
14949
14876
  var DIARIST_OUTPUT_TOOL_NAME;
14950
14877
  var init_diarist_contracts = __esm({
14951
14878
  "src/diarist-contracts.ts"() {
@@ -20123,43 +20050,6 @@ async function recordAdmittedCorrelation(admitted, correlationId) {
20123
20050
  mutable.correlationId = correlationId;
20124
20051
  mutable.correlationIds = correlationIds;
20125
20052
  }
20126
- async function bindCourtTicketNumbersOnAdmitted(admitted, courtTicketNumbers) {
20127
- if (admitted.ticketNumber === void 0) {
20128
- throw new Error(
20129
- "bindCourtTicketNumbersOnAdmitted requires a bound principal ticketNumber"
20130
- );
20131
- }
20132
- const principal = requireSafePositiveTicketNumber(
20133
- admitted.ticketNumber,
20134
- "bindCourtTicketNumbersOnAdmitted principal ticketNumber"
20135
- );
20136
- for (const item of courtTicketNumbers) {
20137
- if (!isSafePositiveTicketNumber(item)) {
20138
- throw new Error(
20139
- `bindCourtTicketNumbersOnAdmitted requires safe positive integers, got ${String(item)}`
20140
- );
20141
- }
20142
- }
20143
- const projected = projectCourtTicketNumbers(courtTicketNumbers, {
20144
- principalTicket: principal
20145
- });
20146
- if (projected === null || projected.length === 0) {
20147
- throw new Error("bindCourtTicketNumbersOnAdmitted requires a non-empty ticket set");
20148
- }
20149
- const frozen = Object.freeze([...projected]);
20150
- const admittedPath = admitted.admittedRequestPath;
20151
- const current = JSON.parse(await readFile12(admittedPath, "utf8"));
20152
- await writeFile3(
20153
- admittedPath,
20154
- `${JSON.stringify({ ...current, courtTicketNumbers: frozen }, null, 2)}
20155
- `,
20156
- "utf8"
20157
- );
20158
- await mergeInvocationIdentityPage(admitted.runDirectory, {
20159
- courtTicketNumbers: frozen
20160
- });
20161
- admitted.courtTicketNumbers = frozen;
20162
- }
20163
20053
  async function relocateAdmittedRunToTicket(admitted, authority, heldLease) {
20164
20054
  if (admitted.ticketNumber === void 0 || !admitted.runDirectory.includes(`${sep3}unbound${sep3}runs${sep3}`)) return void 0;
20165
20055
  const oldRunDirectory = admitted.runDirectory;
@@ -21599,7 +21489,6 @@ var init_invocation = __esm({
21599
21489
  init_run_ticket_number();
21600
21490
  init_role_run_relocation();
21601
21491
  init_doctor_evidence();
21602
- init_diarist_contracts();
21603
21492
  init_collector_config();
21604
21493
  init_github_remote();
21605
21494
  init_fixer_packet();
@@ -25177,30 +25066,6 @@ function courtDiaristEscalateDiagnostic(roleOutcome, submissions) {
25177
25066
  currentConclusion: escalatePayloads[escalatePayloads.length - 1]
25178
25067
  })}`;
25179
25068
  }
25180
- function courtTicketNumbersFromOutcome(roleOutcome, principalTicket, submissions) {
25181
- if (roleOutcome === void 0) return void 0;
25182
- const payloads = courtDiaristPayloadRows(roleOutcome, submissions);
25183
- let latest;
25184
- for (const payload of payloads) {
25185
- if (typeof payload !== "object" || payload === null || Array.isArray(payload)) {
25186
- continue;
25187
- }
25188
- const record4 = payload;
25189
- if (!Object.hasOwn(record4, "courtTicketNumbers")) continue;
25190
- const raw = record4.courtTicketNumbers;
25191
- if (!Array.isArray(raw)) continue;
25192
- const members = projectCourtTicketNumbers(raw);
25193
- if (members === null) continue;
25194
- if (members.length === 0) {
25195
- if (raw.length === 0) {
25196
- latest = projectCourtTicketNumbers([], { principalTicket }) ?? void 0;
25197
- }
25198
- continue;
25199
- }
25200
- latest = projectCourtTicketNumbers(raw, { principalTicket }) ?? void 0;
25201
- }
25202
- return latest;
25203
- }
25204
25069
  function latestPayloadEscalated(roleOutcome) {
25205
25070
  if (roleOutcome === void 0) return false;
25206
25071
  if (roleOutcome.kind === "audit_escalation") return true;
@@ -25240,7 +25105,6 @@ async function invokeCourtDiarist(input, env, io) {
25240
25105
  ...env.credentials === void 0 ? {} : { credentials: env.credentials },
25241
25106
  ...env.signal === void 0 ? {} : { signal: env.signal },
25242
25107
  ...input.correlationId === void 0 ? {} : { correlationId: input.correlationId },
25243
- ...input.boundTicketNumber === void 0 ? {} : { boundTicketNumber: input.boundTicketNumber },
25244
25108
  // Child seat selects from the composition-root table. Do not pass the
25245
25109
  // already-selected parent adapter (#840 / ADR 0082: --host 旗标>席位配置>缺省 pi).
25246
25110
  ...env.hostAdapters === void 0 ? {} : { hostAdapters: env.hostAdapters }
@@ -25267,78 +25131,15 @@ async function invokeCourtDiarist(input, env, io) {
25267
25131
  }
25268
25132
  };
25269
25133
  }
25270
- const asserted = result.admitted?.ticketNumber;
25271
- if (isSafePositiveTicketNumber(asserted)) {
25272
- const courtTicketNumbers = courtTicketNumbersFromOutcome(
25273
- roleOutcome,
25274
- asserted,
25275
- submissions
25276
- );
25277
- return {
25278
- identity: {
25279
- kind: "ticket",
25280
- ticketNumber: asserted,
25281
- ...courtTicketNumbers === void 0 ? {} : { courtTicketNumbers }
25282
- },
25283
- ...result.admitted === void 0 ? {} : { admitted: result.admitted }
25284
- };
25285
- }
25286
25134
  return {
25287
25135
  identity: { kind: "unbound" },
25288
25136
  ...result.admitted === void 0 ? {} : { admitted: result.admitted }
25289
25137
  };
25290
25138
  }
25291
- async function runCountersignCourtDiaristStation(admitted, env, io, afterTicketNumber) {
25292
- if (env.runCourtDiaristStation !== void 0) {
25293
- await env.runCourtDiaristStation(admitted);
25294
- return;
25295
- }
25296
- if (admitted.ticketNumber === void 0) return;
25297
- let refreshTickets;
25298
- if (admitted.courtTicketNumbers !== void 0) {
25299
- if (admitted.courtTicketNumbers.length === 0 || !admitted.courtTicketNumbers.includes(admitted.ticketNumber)) {
25300
- throw new StationChildExhaustedError(
25301
- `court diarist station: courtTicketNumbers is damaged (empty or missing principal #${admitted.ticketNumber})`
25302
- );
25303
- }
25304
- refreshTickets = admitted.courtTicketNumbers;
25305
- } else {
25306
- refreshTickets = [admitted.ticketNumber];
25307
- }
25308
- const completedIndex = afterTicketNumber === void 0 ? -1 : refreshTickets.indexOf(afterTicketNumber);
25309
- for (const ticketNumber of refreshTickets.slice(completedIndex + 1)) {
25310
- const outcome = await invokeCourtDiarist(
25311
- {
25312
- instruction: admitted.instruction,
25313
- projectRoot: admitted.projectRoot,
25314
- failureLabel: `ticket #${ticketNumber}`,
25315
- correlationId: admitted.runId,
25316
- // Refresh holds a typed key — hand it off so identity is bound before turn.
25317
- boundTicketNumber: ticketNumber
25318
- },
25319
- env,
25320
- io
25321
- );
25322
- if (outcome.failedWithoutEscalate !== void 0) {
25323
- throw new StationChildExhaustedError(
25324
- outcome.failedWithoutEscalate.diagnostic
25325
- );
25326
- }
25327
- if (outcome.identity.kind === "escalate" && outcome.terminal !== void 0) {
25328
- return {
25329
- terminal: outcome.terminal,
25330
- ...outcome.admitted === void 0 ? {} : { childRunId: outcome.admitted.runId }
25331
- };
25332
- }
25333
- }
25334
- }
25335
25139
  var init_countersign_run = __esm({
25336
25140
  "src/public-cli/countersign-run.ts"() {
25337
25141
  "use strict";
25338
- init_diarist_contracts();
25339
25142
  init_readable_gate_item();
25340
- init_run_ticket_number();
25341
- init_post_admission();
25342
25143
  }
25343
25144
  });
25344
25145
 
@@ -25625,84 +25426,14 @@ async function runCountersignBody(parsed, env, io) {
25625
25426
  ...ticketNumber === void 0 ? {} : { ticketNumber }
25626
25427
  });
25627
25428
  };
25628
- let typedTicket;
25629
- let typedCourtTicketNumbers;
25630
- let identityDiaristRan = false;
25631
- let childDiaristRunId;
25632
- let pausedDiaristTerminal;
25633
- if (gateParentRunPath === void 0 && env.runCourtDiaristStation === void 0) {
25634
- let outcome;
25635
- try {
25636
- outcome = await invokeCourtDiarist({
25637
- instruction: parsed.instruction ?? "",
25638
- projectRoot: admitted.projectRoot,
25639
- failureLabel: "unbound summons",
25640
- correlationId: admitted.runId,
25641
- ...env.boundTicketNumber === void 0 ? {} : { boundTicketNumber: env.boundTicketNumber }
25642
- }, env, io);
25643
- } catch (error) {
25644
- await materializeAdmission(
25645
- isSafePositiveTicketNumber(env.boundTicketNumber) ? env.boundTicketNumber : void 0
25646
- );
25647
- await markRunAdmitted(admitted, env.principalAuthority);
25648
- return await presentControlledFailure2(admitted, {
25649
- timedOut: false,
25650
- code: null,
25651
- stderr: "",
25652
- thrown: error
25653
- }, seatAdapters(admitted, env), env.principalAuthority, io);
25654
- }
25655
- identityDiaristRan = true;
25656
- if (outcome.identity.kind === "escalate") pausedDiaristTerminal = outcome.terminal;
25657
- if (outcome.admitted?.runDirectory.includes(`${sep4}unbound${sep4}runs${sep4}`)) {
25658
- childDiaristRunId = outcome.admitted.runId;
25659
- }
25660
- if (outcome.failedWithoutEscalate !== void 0) {
25661
- const diagnostic = outcome.failedWithoutEscalate.diagnostic;
25662
- await materializeAdmission(
25663
- isSafePositiveTicketNumber(env.boundTicketNumber) ? env.boundTicketNumber : void 0
25664
- );
25665
- if (childDiaristRunId !== void 0) await recordChildDiaristRun(admitted, childDiaristRunId);
25666
- await markRunAdmitted(admitted, env.principalAuthority);
25667
- return await presentControlledFailure2(admitted, {
25668
- timedOut: false,
25669
- code: null,
25670
- stderr: "",
25671
- thrown: new Error(diagnostic)
25672
- }, seatAdapters(admitted, env), env.principalAuthority, io);
25673
- }
25674
- if (outcome.identity.kind === "ticket") {
25675
- typedTicket = outcome.identity.ticketNumber;
25676
- typedCourtTicketNumbers = outcome.identity.courtTicketNumbers;
25677
- }
25678
- }
25679
- await materializeAdmission(typedTicket);
25429
+ await materializeAdmission(
25430
+ isSafePositiveTicketNumber(env.boundTicketNumber) ? env.boundTicketNumber : void 0
25431
+ );
25680
25432
  await markRunAdmitted(admitted, env.principalAuthority);
25681
- if (childDiaristRunId !== void 0) {
25682
- await recordChildDiaristRun(admitted, childDiaristRunId);
25683
- }
25684
- if (pausedDiaristTerminal !== void 0) {
25685
- io.stdout(formatTerminalResult(pausedDiaristTerminal));
25686
- return { exitCode: 0, admitted, terminal: pausedDiaristTerminal };
25687
- }
25688
25433
  if (gateParentRunPath !== void 0) {
25689
25434
  await persistAdmittedSourceRunPath(admitted, gateParentRunPath);
25690
25435
  admitted = { ...admitted, sourceRunPath: gateParentRunPath };
25691
25436
  }
25692
- if (identityDiaristRan && typedTicket !== void 0) {
25693
- try {
25694
- await bindAdmittedTicketNumber(admitted, typedTicket);
25695
- await relocateAdmittedRunToTicket(admitted, env.principalAuthority);
25696
- await bindCourtTicketNumbersOnAdmitted(admitted, typedCourtTicketNumbers ?? [typedTicket]);
25697
- } catch (error) {
25698
- return await presentControlledFailure2(admitted, {
25699
- timedOut: false,
25700
- code: null,
25701
- stderr: "",
25702
- thrown: error
25703
- }, seatAdapters(admitted, env), env.principalAuthority, io);
25704
- }
25705
- }
25706
25437
  const turnProjection = {
25707
25438
  packageRoot: env.packageRoot,
25708
25439
  home: env.home,
@@ -25732,13 +25463,6 @@ async function runCountersignBody(parsed, env, io) {
25732
25463
  ...seatAdapters(admitted, env),
25733
25464
  beforeDispatch: async (admittedSeat, lease) => {
25734
25465
  if (!packagedAdmitsCountersign(admittedSeat.role)) return;
25735
- if (!identityDiaristRan || typedTicket !== void 0) {
25736
- const refresh = await runCountersignCourtDiaristStation(admittedSeat, env, io);
25737
- if (refresh !== void 0) {
25738
- io.stdout(formatTerminalResult(refresh.terminal));
25739
- return refresh.terminal;
25740
- }
25741
- }
25742
25466
  await relocateAdmittedRunToTicket(admittedSeat, env.principalAuthority, lease);
25743
25467
  Object.assign(turnRequest, buildInstructionSeatTurnRequest(admittedSeat, turnProjection));
25744
25468
  }
@@ -26070,13 +25794,6 @@ async function continueParentAfterChild(parentRunId, child, env, io) {
26070
25794
  return runPublicInstructionSeatResume({ runId: parentRunId }, env, io);
26071
25795
  }
26072
25796
  const admitted = loaded.admitted;
26073
- if (admitted.role === "countersign" && admitted.ticketNumber !== void 0 && child.role === "diarist") {
26074
- const refresh = await runCountersignCourtDiaristStation(admitted, env, io, child.ticketNumber);
26075
- if (refresh !== void 0) {
26076
- io.stdout(formatTerminalResult(refresh.terminal));
26077
- return { exitCode: 0, admitted, terminal: refresh.terminal };
26078
- }
26079
- }
26080
25797
  const resolved = await queueConclusionFromChild(child, env, io);
26081
25798
  if (resolved !== void 0 && "stop" in resolved) return resolved.stop;
26082
25799
  if (resolved !== void 0 && resolved.status === "escalate") {
@@ -26571,8 +26288,8 @@ async function summonPublicRole(options) {
26571
26288
  // Nested court stations keep station-child semantics; dual-lens
26572
26289
  // ordinary Reviewer axes opt out (#946 / ADR 0082).
26573
26290
  ...options.stationChild === false ? {} : { stationChild: true },
26574
- // Forward composition-root adapters so nested court stations (e.g.
26575
- // countersign → diarist) select the same faux/production table (#924).
26291
+ // Forward composition-root adapters so nested stations (e.g.
26292
+ // secretariat → diarist) select the same faux/production table (#924).
26576
26293
  ...options.hostAdapters === void 0 ? {} : { hostAdapters: options.hostAdapters },
26577
26294
  ...config.autoResumeLimit === void 0 ? {} : { autoResumeLimit: config.autoResumeLimit },
26578
26295
  ...options.signal === void 0 ? {} : { signal: options.signal },
@@ -26856,10 +26573,10 @@ async function summonGateOfficer(options) {
26856
26573
  );
26857
26574
  }
26858
26575
  const correlationId = parentRunId;
26859
- const { isSafePositiveTicketNumber: isSafePositiveTicketNumber2, readBoardTicketNumber: readBoardTicketNumber2 } = await Promise.resolve().then(() => (init_run_ticket_number(), run_ticket_number_exports));
26576
+ const { isSafePositiveTicketNumber: isSafePositiveTicketNumber3, readBoardTicketNumber: readBoardTicketNumber2 } = await Promise.resolve().then(() => (init_run_ticket_number(), run_ticket_number_exports));
26860
26577
  const parentTicket = await readBoardTicketNumber2(options.sourceRunDirectory);
26861
26578
  const submittedTicket = options.submission !== null && typeof options.submission === "object" && !Array.isArray(options.submission) ? options.submission.ticketNumber : void 0;
26862
- const courtTicket = isSafePositiveTicketNumber2(submittedTicket) ? submittedTicket : parentTicket;
26579
+ const courtTicket = isSafePositiveTicketNumber3(submittedTicket) ? submittedTicket : parentTicket;
26863
26580
  const instruction = options.reask ?? gateReviewInstruction ?? "";
26864
26581
  return summonPublicRole({
26865
26582
  role: options.officer,
@@ -27745,52 +27462,10 @@ function parsePersistedTicketIdentity(record4) {
27745
27462
  ...ticketNumber === void 0 ? {} : { ticketNumber }
27746
27463
  };
27747
27464
  }
27748
- function readDurableCourtTicketNumbersPage(record4, principalTicket, pageLabel) {
27749
- const interpreted = interpretDurableCourtTicketNumbers(record4, {
27750
- ...principalTicket === void 0 ? {} : { principalTicket }
27751
- });
27752
- if (interpreted.kind === "damage") {
27753
- return {
27754
- kind: "damage",
27755
- reason: `role run ${pageLabel} courtTicketNumbers is damaged: ${interpreted.reason}`
27756
- };
27757
- }
27758
- if (interpreted.kind === "ok") {
27759
- return { kind: "ok", tickets: interpreted.tickets };
27760
- }
27761
- return { kind: "absent" };
27762
- }
27763
- function mergeDurableCourtTicketNumbers(input) {
27764
- const fromAdmitted = input.admittedRecord === void 0 ? { kind: "absent" } : readDurableCourtTicketNumbersPage(
27765
- input.admittedRecord,
27766
- input.principalTicket,
27767
- "admitted-request"
27768
- );
27769
- const fromInvocation = input.invocationRecord === void 0 ? { kind: "absent" } : readDurableCourtTicketNumbersPage(
27770
- input.invocationRecord,
27771
- input.principalTicket,
27772
- "invocation"
27773
- );
27774
- if (fromAdmitted.kind === "damage") return fromAdmitted;
27775
- if (fromInvocation.kind === "damage") return fromInvocation;
27776
- if (fromAdmitted.kind === "ok" && fromInvocation.kind === "ok") {
27777
- if (!sameCourtTicketNumbers(fromAdmitted.tickets, fromInvocation.tickets)) {
27778
- return {
27779
- kind: "damage",
27780
- reason: "role run courtTicketNumbers differs between admitted-request and invocation"
27781
- };
27782
- }
27783
- return { kind: "ok", tickets: fromAdmitted.tickets };
27784
- }
27785
- if (fromAdmitted.kind === "ok") return { kind: "ok", tickets: fromAdmitted.tickets };
27786
- if (fromInvocation.kind === "ok") return { kind: "ok", tickets: fromInvocation.tickets };
27787
- return { kind: "ok" };
27788
- }
27789
27465
  function restoredTicketFields(fields) {
27790
27466
  return {
27791
27467
  ...fields.correlationId === void 0 ? {} : { correlationId: fields.correlationId },
27792
- ...fields.ticketNumber === void 0 ? {} : { ticketNumber: fields.ticketNumber },
27793
- ...fields.courtTicketNumbers === void 0 ? {} : { courtTicketNumbers: fields.courtTicketNumbers }
27468
+ ...fields.ticketNumber === void 0 ? {} : { ticketNumber: fields.ticketNumber }
27794
27469
  };
27795
27470
  }
27796
27471
  async function loadResumableRunRecord(home, runId, authority) {
@@ -27822,10 +27497,6 @@ async function loadResumableRunRecord(home, runId, authority) {
27822
27497
  let derived;
27823
27498
  let correlationId;
27824
27499
  let ticketNumber;
27825
- let courtTicketNumbers;
27826
- let courtTicketNumbersDamage;
27827
- let admittedIdentityRecord;
27828
- let invocationIdentityRecord;
27829
27500
  let prNumber;
27830
27501
  let repository;
27831
27502
  let repositoryDisplay;
@@ -27947,7 +27618,6 @@ async function loadResumableRunRecord(home, runId, authority) {
27947
27618
  };
27948
27619
  }
27949
27620
  }
27950
- admittedIdentityRecord = record4;
27951
27621
  const fromAdmitted = parsePersistedTicketIdentity(record4);
27952
27622
  correlationId = fromAdmitted.correlationId;
27953
27623
  ticketNumber = fromAdmitted.ticketNumber;
@@ -27966,7 +27636,6 @@ async function loadResumableRunRecord(home, runId, authority) {
27966
27636
  );
27967
27637
  if (invocationRaw !== null && typeof invocationRaw === "object" && !Array.isArray(invocationRaw)) {
27968
27638
  const rec = invocationRaw;
27969
- invocationIdentityRecord = rec;
27970
27639
  if (typeof rec.provider === "string" && typeof rec.model === "string") {
27971
27640
  model = {
27972
27641
  provider: rec.provider,
@@ -27991,16 +27660,6 @@ async function loadResumableRunRecord(home, runId, authority) {
27991
27660
  );
27992
27661
  }
27993
27662
  }
27994
- const mergedSet = mergeDurableCourtTicketNumbers({
27995
- admittedRecord: admittedIdentityRecord,
27996
- invocationRecord: invocationIdentityRecord,
27997
- principalTicket: ticketNumber
27998
- });
27999
- if (mergedSet.kind === "damage") {
28000
- courtTicketNumbersDamage = mergedSet.reason;
28001
- } else if (mergedSet.tickets !== void 0) {
28002
- courtTicketNumbers = mergedSet.tickets;
28003
- }
28004
27663
  const sourceRunLeaf = basename8(sourceRunPath ?? "").split("@");
28005
27664
  const referencedRunId = sourceRun?.runId ?? sourceRunLeaf[0];
28006
27665
  const referencedRole = sourceRun?.role ?? sourceRunLeaf[1];
@@ -28038,8 +27697,6 @@ async function loadResumableRunRecord(home, runId, authority) {
28038
27697
  ...derived === void 0 ? {} : { derived },
28039
27698
  ...correlationId === void 0 ? {} : { correlationId },
28040
27699
  ...ticketNumber === void 0 ? {} : { ticketNumber },
28041
- ...courtTicketNumbers === void 0 ? {} : { courtTicketNumbers },
28042
- ...courtTicketNumbersDamage === void 0 ? {} : { courtTicketNumbersDamage },
28043
27700
  ...prNumber === void 0 ? {} : { prNumber },
28044
27701
  ...repository === void 0 ? {} : { repository },
28045
27702
  ...repositoryDisplay === void 0 ? {} : { repositoryDisplay },
@@ -28114,9 +27771,7 @@ function admitResumedRole(loaded) {
28114
27771
  case "court-materials": {
28115
27772
  const admitted = {
28116
27773
  role: "countersign",
28117
- ...base,
28118
- ...base.courtTicketNumbers === void 0 ? {} : { courtTicketNumbers: base.courtTicketNumbers },
28119
- ...fields.courtTicketNumbersDamage === void 0 ? {} : { courtTicketNumbersDamage: fields.courtTicketNumbersDamage }
27774
+ ...base
28120
27775
  };
28121
27776
  return admitted;
28122
27777
  }
@@ -28323,7 +27978,6 @@ var init_run_lifecycle = __esm({
28323
27978
  init_typed_provider_http();
28324
27979
  init_typed_provider_http();
28325
27980
  init_collector_config();
28326
- init_diarist_contracts();
28327
27981
  init_role_run_relocation();
28328
27982
  init_engine_material();
28329
27983
  init_packaged_role_registry();
@@ -29122,9 +28776,6 @@ async function dispatchPostAdmissionTurn(input) {
29122
28776
  io,
29123
28777
  persistRunState
29124
28778
  );
29125
- if (error instanceof StationChildExhaustedError) {
29126
- return { ...settled2, skipAutoResume: true, ...deferredPersist };
29127
- }
29128
28779
  return { ...settled2, ...deferredPersist };
29129
28780
  }
29130
28781
  }
@@ -29827,7 +29478,7 @@ async function runPostAdmissionManualResume(input) {
29827
29478
  }
29828
29479
  return result;
29829
29480
  }
29830
- var StationChildExhaustedError, POST_ADMISSION_CLEANUP_DIAGNOSTIC_ENTRY_TYPE;
29481
+ var POST_ADMISSION_CLEANUP_DIAGNOSTIC_ENTRY_TYPE;
29831
29482
  var init_post_admission = __esm({
29832
29483
  "src/public-cli/post-admission.ts"() {
29833
29484
  "use strict";
@@ -29849,9 +29500,6 @@ var init_post_admission = __esm({
29849
29500
  init_settlement();
29850
29501
  init_terminal();
29851
29502
  init_auto_resume();
29852
- StationChildExhaustedError = class extends Error {
29853
- name = "StationChildExhaustedError";
29854
- };
29855
29503
  POST_ADMISSION_CLEANUP_DIAGNOSTIC_ENTRY_TYPE = "ak_post_admission_cleanup_diagnostic";
29856
29504
  }
29857
29505
  });
@@ -87,14 +87,6 @@ async function settleProcessCancelAfterTurn(input) {
87
87
  ...input.deferredPersist,
88
88
  };
89
89
  }
90
- /**
91
- * Nested station-child role already finished its own call-local loop.
92
- * Parent records that failure once and must not auto-resume into a re-summon
93
- * (#840 父子不层叠). Other beforeDispatch failures keep the shared #416 budget.
94
- */
95
- export class StationChildExhaustedError extends Error {
96
- name = "StationChildExhaustedError";
97
- }
98
90
  function withOnceSuccessfulBeforeDispatch(adapters) {
99
91
  const hook = adapters.beforeDispatch;
100
92
  if (hook === undefined)
@@ -423,15 +415,11 @@ export async function dispatchPostAdmissionTurn(input) {
423
415
  stderr: "",
424
416
  thrown: error,
425
417
  }, request.invocationScopeId), adapters, env.principalAuthority, io, persistRunState));
426
- if (error instanceof StationChildExhaustedError) {
427
- return { ...settled, skipAutoResume: true, ...deferredPersist };
428
- }
429
418
  return { ...settled, ...deferredPersist };
430
419
  }
431
420
  }
432
- // Turn request is assembled after beforeDispatch so this turn sees whatever it
433
- // settled — the seat's ticket bind re-projection and any court diarist station
434
- // writes (#742). Dialogue continuation stays caller/peer opaque. #1092: no
421
+ // Turn request is assembled after beforeDispatch so this turn sees any
422
+ // seat-specific admission changes. Dialogue continuation stays caller/peer opaque. #1092: no
435
423
  // code-side 起居录 path freeze or readingMaterial inject — roles read by ticket.
436
424
  // No package-resume parallel face or typed resume identity.
437
425
  // #990: one-shot / auto-resume may freeze principal+runDirectory before