@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.
- package/README.md +7 -3
- package/README.zh-CN.md +7 -3
- package/dist/acp-host/production-host.js +10 -367
- package/dist/diarist-contracts.js +1 -96
- package/dist/headless-host/production-host.js +10 -367
- package/dist/migrate-book-topology.js +75 -77
- package/dist/public-cli/countersign-run.js +3 -124
- package/dist/public-cli/instruction-seat-run.js +5 -97
- package/dist/public-cli/invocation.js +0 -33
- package/dist/public-cli/main.js +10 -362
- package/dist/public-cli/post-admission.js +2 -14
- package/dist/public-cli/run-lifecycle.js +0 -85
- package/dist/public-role-summons.js +2 -2
- package/package.json +1 -1
- package/src/diarist-contracts.ts +1 -116
- package/src/diarist-role.ts +0 -6
- package/src/public-cli/countersign-run.ts +7 -184
- package/src/public-cli/instruction-seat-run.ts +6 -101
- package/src/public-cli/invocation.ts +2 -64
- package/src/public-cli/post-admission.ts +2 -15
- package/src/public-cli/run-lifecycle.ts +0 -117
- package/src/public-role-summons.ts +3 -3
package/dist/public-cli/main.js
CHANGED
|
@@ -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
|
-
|
|
25629
|
-
|
|
25630
|
-
|
|
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
|
|
26575
|
-
//
|
|
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:
|
|
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 =
|
|
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
|
|
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
|
|
433
|
-
//
|
|
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
|