@akagilnc/pi-workflow-roles 0.1.5365 → 0.1.5375
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acp-host/production-host.js +5585 -5655
- package/dist/activation-ledger-git.js +2 -2
- package/dist/activation-ledger-topology.js +1 -7
- package/dist/analyst-entry.js +4 -8
- package/dist/analyst-gate-cycles-read.js +3 -11
- package/dist/analyst-index.js +3 -9
- package/dist/analyst-ledger.js +1 -11
- package/dist/analyst-metric-families/acceptance-success-rework.js +1 -3
- package/dist/analyst-metric-families/round-timeline.js +1 -3
- package/dist/analyst-page.js +2 -2
- package/dist/archivist-record-topology.js +2 -2
- package/dist/audit-escalation.js +2 -1
- package/dist/auditor-soul.js +2 -1
- package/dist/collector-config.js +6 -8
- package/dist/compliance-transport.js +2 -1
- package/dist/countersign-contracts.js +2 -1
- package/dist/diarist-contracts.js +3 -2
- package/dist/doctor-contracts.js +1 -3
- package/dist/doctor-evidence.js +7 -8
- package/dist/dossier-resolution.js +1 -3
- package/dist/engine-detour-usage.js +1 -3
- package/dist/gatekeeper-role.js +2 -9
- package/dist/gleaner-left-contracts.js +2 -1
- package/dist/headless-host/description.js +14 -17
- package/dist/headless-host/production-host.js +1665 -1737
- package/dist/host-session-record.js +3 -2
- package/dist/inspector-contracts.js +2 -1
- package/dist/ledger-session-read.js +1 -3
- package/dist/merger-contracts.js +9 -9
- package/dist/migrate-book-topology.js +348 -314
- package/dist/navigator-attendance.js +9 -11
- package/dist/navigator-invocation-identity.js +3 -2
- package/dist/navigator-public-session.js +3 -5
- package/dist/navigator-session-contracts.js +8 -10
- package/dist/navigator-work-base.js +5 -8
- package/dist/notary-contracts.js +3 -5
- package/dist/package-contracts/auditor-output.js +1 -3
- package/dist/package-contracts/fixer-packet.js +3 -6
- package/dist/package-contracts/gatekeeper-output.js +1 -3
- package/dist/package-contracts/navigator-output.js +8 -8
- package/dist/package-contracts/terminating-infrastructure.js +5 -9
- package/dist/package-contracts/terminating-tools.js +4 -3
- package/dist/public-cli/analyst-run.js +3 -2
- package/dist/public-cli/auto-resume.js +4 -9
- package/dist/public-cli/cli.js +66 -64
- package/dist/public-cli/config.js +12 -11
- package/dist/public-cli/countersign-run.js +1 -3
- package/dist/public-cli/host-providers.js +7 -14
- package/dist/public-cli/instruction-seat-run.js +69 -43
- package/dist/public-cli/invocation.js +141 -136
- package/dist/public-cli/main.js +1919 -1968
- package/dist/public-cli/post-admission.js +89 -89
- package/dist/public-cli/role-seat-runtime.js +29 -0
- package/dist/public-cli/run-lifecycle.js +20 -32
- package/dist/public-cli/settlement.js +10 -26
- package/dist/public-cli/turn-request.js +14 -0
- package/dist/public-role-summons.js +23 -35
- package/dist/receipt-delivery-policy.js +1 -3
- package/dist/role-run-placement.js +7 -5
- package/dist/role-run-relocation.js +12 -19
- package/dist/run-terminal-artifacts.js +1 -11
- package/dist/run-ticket-number.js +2 -4
- package/dist/session-assistant-usage.js +2 -1
- package/dist/session-dialogue.js +1 -14
- package/dist/sitian-reader.js +2 -4
- package/dist/submission-correctable-error.js +2 -1
- package/dist/submission-errors.js +2 -1
- package/dist/submission-gate.js +2 -1
- package/dist/submission-ledger.js +4 -5
- package/dist/ticket-provenance-contracts.js +1 -3
- package/dist/ticket-provenance.js +2 -1
- package/dist/typed-provider-http.js +4 -7
- package/dist/unknown-value.js +28 -0
- package/dist/user-dialogue-stdin.js +2 -1
- package/package.json +1 -1
- package/src/acp-host/role-turn-host.ts +4 -2
- package/src/activation-ledger-git.ts +3 -2
- package/src/activation-ledger-topology.ts +4 -12
- package/src/analyst-entry.ts +3 -11
- package/src/analyst-gate-cycles-read.ts +3 -15
- package/src/analyst-index.ts +3 -13
- package/src/analyst-ledger.ts +2 -16
- package/src/analyst-metric-families/acceptance-success-rework.ts +2 -4
- package/src/analyst-metric-families/round-timeline.ts +2 -4
- package/src/analyst-page.ts +2 -2
- package/src/archivist-record-topology.ts +2 -2
- package/src/audit-escalation.ts +2 -1
- package/src/auditor-soul.ts +3 -1
- package/src/book-topology-migration-placement.ts +8 -21
- package/src/book-topology-migrators-t11.ts +16 -15
- package/src/book-topology-mixed-volume-migrators.ts +3 -6
- package/src/book-topology-record-class-migrators.ts +7 -10
- package/src/book-topology-runs-migrator.ts +4 -3
- package/src/collector-config.ts +7 -9
- package/src/compliance-transport.ts +2 -1
- package/src/countersign-contracts.ts +2 -1
- package/src/diarist-contracts.ts +3 -2
- package/src/doctor-contracts.ts +3 -1
- package/src/doctor-evidence.ts +8 -7
- package/src/doctor-role.ts +4 -2
- package/src/dossier-resolution.ts +2 -4
- package/src/engine-detour-tool.ts +0 -2
- package/src/engine-detour-usage.ts +2 -4
- package/src/external-host-turn-loop.ts +3 -1
- package/src/factory-board.ts +1 -8
- package/src/gatekeeper-role.ts +2 -10
- package/src/gleaner-left-contracts.ts +3 -1
- package/src/headless-host/description.ts +15 -18
- package/src/headless-host/role-turn-host.ts +10 -9
- package/src/host-session-record.ts +4 -2
- package/src/inspector-contracts.ts +2 -1
- package/src/ledger-session-read.ts +2 -5
- package/src/merger-contracts.ts +10 -9
- package/src/navigator-attendance.ts +10 -12
- package/src/navigator-invocation-identity.ts +3 -2
- package/src/navigator-public-session.ts +4 -6
- package/src/navigator-session-contracts.ts +8 -11
- package/src/navigator-work-base.ts +5 -8
- package/src/navigator-work-context.ts +2 -1
- package/src/notary-contracts.ts +4 -6
- package/src/oauth-keepalive.ts +5 -18
- package/src/package-contracts/auditor-output.ts +2 -4
- package/src/package-contracts/fixer-packet.ts +4 -6
- package/src/package-contracts/gatekeeper-output.ts +2 -4
- package/src/package-contracts/judge-output.ts +0 -1
- package/src/package-contracts/navigator-output.ts +8 -8
- package/src/package-contracts/terminating-infrastructure.ts +6 -20
- package/src/package-contracts/terminating-tools.ts +8 -12
- package/src/pi/adapter.ts +0 -1
- package/src/pi/role-turn-host.ts +0 -1
- package/src/public-cli/analyst-run.ts +4 -2
- package/src/public-cli/auto-resume.ts +5 -12
- package/src/public-cli/cli.ts +77 -83
- package/src/public-cli/config.ts +16 -27
- package/src/public-cli/countersign-run.ts +2 -4
- package/src/public-cli/host-providers.ts +10 -27
- package/src/public-cli/instruction-seat-run.ts +87 -58
- package/src/public-cli/invocation.ts +159 -172
- package/src/public-cli/post-admission.ts +115 -103
- package/src/public-cli/role-seat-runtime.ts +72 -0
- package/src/public-cli/run-lifecycle.ts +27 -67
- package/src/public-cli/settlement.ts +11 -33
- package/src/public-cli/terminal.ts +2 -17
- package/src/public-cli/turn-request.ts +26 -0
- package/src/public-role-summons.ts +24 -48
- package/src/receipt-delivery-policy.ts +1 -4
- package/src/reviewer-role.ts +0 -1
- package/src/role-envelope.ts +5 -3
- package/src/role-run-placement.ts +9 -10
- package/src/role-run-relocation.ts +13 -23
- package/src/role-runtime.ts +9 -15
- package/src/run-terminal-artifacts.ts +2 -16
- package/src/run-ticket-number.ts +4 -10
- package/src/session-assistant-usage.ts +3 -1
- package/src/session-dialogue.ts +1 -4
- package/src/session-identity.ts +0 -1
- package/src/sitian-reader.ts +2 -4
- package/src/submission-correctable-error.ts +3 -1
- package/src/submission-errors.ts +2 -1
- package/src/submission-gate.ts +3 -1
- package/src/submission-ledger.ts +5 -6
- package/src/ticket-provenance-contracts.ts +1 -4
- package/src/ticket-provenance.ts +3 -1
- package/src/ticket-snapshot.ts +2 -4
- package/src/ticket-trajectory.ts +1 -8
- package/src/typed-provider-http.ts +5 -15
- package/src/unknown-value.ts +34 -0
- package/src/user-dialogue-stdin.ts +3 -1
- package/src/worker-role.ts +2 -5
- package/src/worker-submission-gates.ts +5 -7
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Seat differences are composition-root fields. An omitted reviewer lens
|
|
4
4
|
* starts two ordinary single-axis runs here.
|
|
5
5
|
*/
|
|
6
|
-
import { dirname, resolve
|
|
6
|
+
import { dirname, resolve } from "node:path";
|
|
7
|
+
import { isUnboundRunDirectory } from "../role-run-placement.ts";
|
|
7
8
|
import { AUDITOR_DOSSIER_PROMPT } from "../compliance-transport.ts";
|
|
8
9
|
import { bookDirectOfficerRunPointer } from "../archivist-record-pointer.ts";
|
|
9
10
|
import { createPiDoctorAuditor } from "../doctor-auditor.ts";
|
|
@@ -24,6 +25,7 @@ import {
|
|
|
24
25
|
latestQueueStatus,
|
|
25
26
|
} from "../submission-gate.ts";
|
|
26
27
|
import { isSafePositiveTicketNumber, readBoardTicketNumber } from "../run-ticket-number.ts";
|
|
28
|
+
import type { NotarySourceRunLocator } from "../notary-contracts.ts";
|
|
27
29
|
import { NotarySourceRunError, resolveNotarySourceRunLocator } from "../notary-source-run.ts";
|
|
28
30
|
import { engineSessionMaterialFromOptions, pickEngineAxis } from "../package-resources/engine-material.ts";
|
|
29
31
|
import type { PackagedRole } from "../packaged-role-registry.ts";
|
|
@@ -33,7 +35,7 @@ import {
|
|
|
33
35
|
packagedRebindSourceOnResume,
|
|
34
36
|
packagedRoleMetadata,
|
|
35
37
|
} from "../packaged-role-registry.ts";
|
|
36
|
-
import {
|
|
38
|
+
import { readAuditorResumeBinding } from "../auditor-soul.ts";
|
|
37
39
|
import { CliUsageError } from "./cli-errors.ts";
|
|
38
40
|
import {
|
|
39
41
|
admitPublicRole,
|
|
@@ -89,6 +91,7 @@ import {
|
|
|
89
91
|
} from "./terminal.ts";
|
|
90
92
|
import {
|
|
91
93
|
admittedSeatTurnDetails,
|
|
94
|
+
projectPublicTurnAxes,
|
|
92
95
|
projectRoleTurnRequest,
|
|
93
96
|
requiredMethodSkills,
|
|
94
97
|
type RoleTurnRequestProjectionOptions,
|
|
@@ -98,6 +101,8 @@ import {
|
|
|
98
101
|
latestPayloadEscalated,
|
|
99
102
|
type CountersignRunEnv,
|
|
100
103
|
} from "./countersign-run.ts";
|
|
104
|
+
import { isRecord, errorText } from "../unknown-value.ts";
|
|
105
|
+
|
|
101
106
|
export type InstructionSeatRunEnv = PostAdmissionEnv & Pick<
|
|
102
107
|
CountersignRunEnv,
|
|
103
108
|
"reviewReask" | "gateReviewInstruction" | "parentRunPath"
|
|
@@ -156,7 +161,7 @@ function unreadablePostSubmissionStatus(
|
|
|
156
161
|
const route = POST_SUBMISSION_ROUTING[admitted.role];
|
|
157
162
|
if (route === undefined) return undefined;
|
|
158
163
|
const payload = terminal.roleOutcome.payloads?.at(-1);
|
|
159
|
-
const status =
|
|
164
|
+
const status = isRecord(payload)
|
|
160
165
|
? (payload as Record<string, unknown>).status
|
|
161
166
|
: undefined;
|
|
162
167
|
return typeof status === "string" && route.statuses.has(status)
|
|
@@ -455,6 +460,45 @@ async function runOmittedLensBatch(
|
|
|
455
460
|
return { exitCode: failed ? 1 : 0, terminal };
|
|
456
461
|
}
|
|
457
462
|
|
|
463
|
+
/**
|
|
464
|
+
* One same-parent lookup. Seat branches still build their own summons.
|
|
465
|
+
* A found child resumes that child; no prior run returns undefined so the caller mints.
|
|
466
|
+
*/
|
|
467
|
+
function resumeSameParentInstructionSeat(input: {
|
|
468
|
+
readonly env: InstructionSeatRunEnv;
|
|
469
|
+
readonly io: CliIo;
|
|
470
|
+
readonly projectRoot: string;
|
|
471
|
+
readonly role: PackagedRole;
|
|
472
|
+
readonly parentRunPath: string;
|
|
473
|
+
readonly summons: SameTicketSummonsMaterials;
|
|
474
|
+
readonly ticketNumber?: number;
|
|
475
|
+
}): Promise<SeatRunResult | undefined> {
|
|
476
|
+
return tryResumeSameTicketSeatRun({
|
|
477
|
+
home: input.env.home,
|
|
478
|
+
projectRoot: input.projectRoot,
|
|
479
|
+
role: input.role,
|
|
480
|
+
parentRunPath: input.parentRunPath,
|
|
481
|
+
...(input.ticketNumber === undefined ? {} : { ticketNumber: input.ticketNumber }),
|
|
482
|
+
freshSummons: input.env.freshSummons,
|
|
483
|
+
summons: input.summons,
|
|
484
|
+
resume: (runId, materials) => runPublicInstructionSeatResume(
|
|
485
|
+
{ runId, ...(materials === undefined ? {} : { summons: materials }) },
|
|
486
|
+
input.env,
|
|
487
|
+
input.io,
|
|
488
|
+
),
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/** Re-ask words when the parent supplied them; otherwise the caller's own instruction. */
|
|
493
|
+
function sameParentInstruction(
|
|
494
|
+
env: InstructionSeatRunEnv,
|
|
495
|
+
fallback: { readonly instruction: string; readonly instructionEmpty: boolean },
|
|
496
|
+
): { readonly instruction: string; readonly instructionEmpty: boolean } {
|
|
497
|
+
const resumeInstruction = env.reviewReask ?? env.gateReviewInstruction;
|
|
498
|
+
if (resumeInstruction === undefined) return fallback;
|
|
499
|
+
return { instruction: resumeInstruction, instructionEmpty: false };
|
|
500
|
+
}
|
|
501
|
+
|
|
458
502
|
/**
|
|
459
503
|
* Countersign on the shared entry: gate parent resume, deferred materialization,
|
|
460
504
|
* then the same one-shot settlement as every other seat.
|
|
@@ -470,23 +514,20 @@ async function runCountersignBody(
|
|
|
470
514
|
: undefined;
|
|
471
515
|
if (gateParentRunPath !== undefined) {
|
|
472
516
|
const resumeInstruction = env.reviewReask ?? env.gateReviewInstruction ?? parsed.instruction ?? "";
|
|
473
|
-
const resumed = await
|
|
474
|
-
|
|
517
|
+
const resumed = await resumeSameParentInstructionSeat({
|
|
518
|
+
env,
|
|
519
|
+
io,
|
|
475
520
|
projectRoot: resolve(parsed.project ?? env.cwd),
|
|
476
521
|
role: "countersign",
|
|
477
522
|
parentRunPath: gateParentRunPath,
|
|
478
|
-
...(isSafePositiveTicketNumber(env.boundTicketNumber)
|
|
479
|
-
|
|
523
|
+
...(isSafePositiveTicketNumber(env.boundTicketNumber)
|
|
524
|
+
? { ticketNumber: env.boundTicketNumber }
|
|
525
|
+
: {}),
|
|
480
526
|
summons: {
|
|
481
527
|
sourceRunPath: gateParentRunPath,
|
|
482
528
|
instruction: resumeInstruction,
|
|
483
529
|
instructionEmpty: resumeInstruction.trim() === "",
|
|
484
530
|
},
|
|
485
|
-
resume: (runId, materials) => runPublicInstructionSeatResume(
|
|
486
|
-
{ runId, ...(materials === undefined ? {} : { summons: materials }) },
|
|
487
|
-
env,
|
|
488
|
-
io,
|
|
489
|
-
),
|
|
490
531
|
});
|
|
491
532
|
if (resumed != null) return resumed;
|
|
492
533
|
}
|
|
@@ -521,12 +562,7 @@ async function runCountersignBody(
|
|
|
521
562
|
admitted = { ...admitted, sourceRunPath: gateParentRunPath };
|
|
522
563
|
}
|
|
523
564
|
const turnProjection: RoleTurnRequestProjectionOptions = {
|
|
524
|
-
|
|
525
|
-
home: env.home,
|
|
526
|
-
agentDir: env.agentDir,
|
|
527
|
-
...(env.model === undefined ? {} : { model: env.model }),
|
|
528
|
-
...pickEngineAxis(env),
|
|
529
|
-
...(env.timeoutMs === undefined ? {} : { timeoutMs: env.timeoutMs }),
|
|
565
|
+
...projectPublicTurnAxes(env),
|
|
530
566
|
...(env.correlationId === undefined || env.correlationId.trim() === ""
|
|
531
567
|
? {}
|
|
532
568
|
: { correlationId: env.correlationId }),
|
|
@@ -608,49 +644,45 @@ export async function runPublicInstructionSeat(
|
|
|
608
644
|
let auditorSubject: "judge" | "doctor" | undefined;
|
|
609
645
|
let auditorSource: string | undefined;
|
|
610
646
|
let auditorTicket: number | undefined;
|
|
647
|
+
let resolvedNotarySource: NotarySourceRunLocator | undefined;
|
|
611
648
|
if (record.sameParent === "subject-source") {
|
|
612
|
-
if (
|
|
649
|
+
if (parsed.subject === undefined) {
|
|
613
650
|
presentStructuralRejection(new CliUsageError("auditor --subject requires judge|doctor"), io);
|
|
614
651
|
return { exitCode: 2 };
|
|
615
652
|
}
|
|
616
653
|
auditorSubject = parsed.subject;
|
|
617
|
-
|
|
618
|
-
if (source === "") {
|
|
654
|
+
if (parsed.sourceRun === undefined) {
|
|
619
655
|
presentStructuralRejection(new CliUsageError("auditor --source-run requires a run locator"), io);
|
|
620
656
|
return { exitCode: 2 };
|
|
621
657
|
}
|
|
658
|
+
const source = parsed.sourceRun;
|
|
622
659
|
try {
|
|
623
660
|
const resolved = await resolveNotarySourceRunLocator({ projectRoot, sourceRun: source, home: env.home });
|
|
624
661
|
auditorSource = resolved.runDirectory;
|
|
625
662
|
auditorTicket = await readBoardTicketNumber(resolved.runDirectory);
|
|
626
663
|
} catch (error) {
|
|
627
|
-
presentStructuralRejection(new CliUsageError(
|
|
664
|
+
presentStructuralRejection(new CliUsageError(errorText(error)), io);
|
|
628
665
|
return { exitCode: 2 };
|
|
629
666
|
}
|
|
630
667
|
if (auditorSource === undefined) return { exitCode: 2 };
|
|
631
668
|
const sourceDirectory = auditorSource;
|
|
632
|
-
const resumeInstruction = env.reviewReask ?? env.gateReviewInstruction;
|
|
633
669
|
const summons: SameTicketSummonsMaterials = {
|
|
634
|
-
...(
|
|
635
|
-
|
|
636
|
-
:
|
|
670
|
+
...sameParentInstruction(env, {
|
|
671
|
+
instruction: parsed.instruction ?? "",
|
|
672
|
+
instructionEmpty: (parsed.instruction ?? "").trim() === "",
|
|
673
|
+
}),
|
|
637
674
|
attachmentPaths: parsed.attachmentPaths ?? [],
|
|
638
675
|
};
|
|
639
676
|
const resumed = await withAuditorSoulEnv({
|
|
640
677
|
subject: auditorSubject,
|
|
641
678
|
sourceRunDirectory: auditorSource,
|
|
642
|
-
run: () =>
|
|
643
|
-
|
|
679
|
+
run: () => resumeSameParentInstructionSeat({
|
|
680
|
+
env,
|
|
681
|
+
io,
|
|
644
682
|
projectRoot,
|
|
645
683
|
role,
|
|
646
684
|
parentRunPath: sourceDirectory,
|
|
647
|
-
freshSummons: env.freshSummons,
|
|
648
685
|
summons,
|
|
649
|
-
resume: (runId, materials) => runPublicInstructionSeatResume(
|
|
650
|
-
{ runId, ...(materials === undefined ? {} : { summons: materials }) },
|
|
651
|
-
env,
|
|
652
|
-
io,
|
|
653
|
-
),
|
|
654
686
|
}),
|
|
655
687
|
});
|
|
656
688
|
if (resumed != null) return resumed;
|
|
@@ -659,26 +691,21 @@ export async function runPublicInstructionSeat(
|
|
|
659
691
|
if (record.sameParent === "gate-pointer") {
|
|
660
692
|
const parentRunPath = parentRunPathFromGatePointerInstruction(parsed.instruction ?? "");
|
|
661
693
|
if (parentRunPath !== undefined) {
|
|
662
|
-
const resumeInstruction = env.reviewReask ?? env.gateReviewInstruction;
|
|
663
694
|
const summons: SameTicketSummonsMaterials = {
|
|
664
695
|
sourceRunPath: parentRunPath,
|
|
665
|
-
...(
|
|
666
|
-
|
|
667
|
-
:
|
|
696
|
+
...sameParentInstruction(env, {
|
|
697
|
+
instruction: parsed.instruction ?? "",
|
|
698
|
+
instructionEmpty: (parsed.instruction ?? "").trim() === "",
|
|
699
|
+
}),
|
|
668
700
|
attachmentPaths: parsed.attachmentPaths ?? [],
|
|
669
701
|
};
|
|
670
|
-
const resumed = await
|
|
671
|
-
|
|
702
|
+
const resumed = await resumeSameParentInstructionSeat({
|
|
703
|
+
env,
|
|
704
|
+
io,
|
|
672
705
|
projectRoot,
|
|
673
706
|
role,
|
|
674
707
|
parentRunPath,
|
|
675
|
-
freshSummons: env.freshSummons,
|
|
676
708
|
summons,
|
|
677
|
-
resume: (runId, materials) => runPublicInstructionSeatResume(
|
|
678
|
-
{ runId, ...(materials === undefined ? {} : { summons: materials }) },
|
|
679
|
-
env,
|
|
680
|
-
io,
|
|
681
|
-
),
|
|
682
709
|
});
|
|
683
710
|
if (resumed != null) return resumed;
|
|
684
711
|
}
|
|
@@ -703,31 +730,33 @@ export async function runPublicInstructionSeat(
|
|
|
703
730
|
const summons: SameTicketSummonsMaterials = {
|
|
704
731
|
sourceRunPath: source.runDirectory,
|
|
705
732
|
sourceRun: source,
|
|
706
|
-
...(resumeInstruction === undefined
|
|
733
|
+
...(resumeInstruction === undefined
|
|
734
|
+
? {}
|
|
735
|
+
: { instruction: resumeInstruction, instructionEmpty: false }),
|
|
707
736
|
};
|
|
708
|
-
|
|
709
|
-
|
|
737
|
+
resolvedNotarySource = source;
|
|
738
|
+
const resumed = await resumeSameParentInstructionSeat({
|
|
739
|
+
env,
|
|
740
|
+
io,
|
|
710
741
|
projectRoot,
|
|
711
742
|
role,
|
|
712
743
|
parentRunPath: source.runDirectory,
|
|
713
|
-
freshSummons: env.freshSummons,
|
|
714
744
|
summons,
|
|
715
|
-
resume: (runId, materials) => runPublicInstructionSeatResume(
|
|
716
|
-
{ runId, ...(materials === undefined ? {} : { summons: materials }) },
|
|
717
|
-
env,
|
|
718
|
-
io,
|
|
719
|
-
),
|
|
720
745
|
});
|
|
721
746
|
if (resumed != null) return resumed;
|
|
722
747
|
}
|
|
723
748
|
|
|
724
749
|
let admitted: AdmittedRoleInvocation;
|
|
725
750
|
try {
|
|
751
|
+
const admissionOverride = {
|
|
752
|
+
...(auditorTicket === undefined ? {} : { assertedTicketNumber: auditorTicket }),
|
|
753
|
+
...(resolvedNotarySource === undefined ? {} : { resolvedSourceRun: resolvedNotarySource }),
|
|
754
|
+
};
|
|
726
755
|
admitted = await admitPublicRole(
|
|
727
756
|
role,
|
|
728
757
|
parsed,
|
|
729
758
|
env,
|
|
730
|
-
auditorTicket === undefined
|
|
759
|
+
auditorTicket === undefined && resolvedNotarySource === undefined ? undefined : admissionOverride,
|
|
731
760
|
);
|
|
732
761
|
} catch (error) {
|
|
733
762
|
const rejected = usageExit(error, io);
|
|
@@ -764,7 +793,7 @@ export async function runPublicInstructionSeat(
|
|
|
764
793
|
timedOut: false, code: null, stderr: "", thrown: error,
|
|
765
794
|
}, seatAdapters(admitted, env), env.principalAuthority, io) as SeatRunResult;
|
|
766
795
|
}
|
|
767
|
-
if (outcome.admitted
|
|
796
|
+
if (outcome.admitted !== undefined && isUnboundRunDirectory(outcome.admitted.runDirectory)) {
|
|
768
797
|
await recordChildDiaristRun(admitted, outcome.admitted.runId);
|
|
769
798
|
}
|
|
770
799
|
if (outcome.failedWithoutEscalate !== undefined) {
|
|
@@ -970,7 +999,7 @@ async function auditSubmittedRole(
|
|
|
970
999
|
|| turn.terminal?.roleOutcome.kind !== "accepted") return turn;
|
|
971
1000
|
const accepted = turn.terminal.roleOutcome.payloads?.at(-1);
|
|
972
1001
|
if (accepted === undefined) throw new Error("accepted submission has no payload");
|
|
973
|
-
const record =
|
|
1002
|
+
const record = isRecord(accepted)
|
|
974
1003
|
? accepted as Record<string, unknown> : undefined;
|
|
975
1004
|
const status = admitted.role === "secretariat" ? record?.secretariatStatus : record?.status;
|
|
976
1005
|
if (admitted.role === "secretariat" && status !== "converged" && status !== "escalate") {
|