@akagilnc/pi-workflow-roles 0.1.4321 → 0.1.4387
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 +4 -1
- package/README.zh-CN.md +5 -1
- package/dist/acp-host/production-host.js +1308 -587
- package/dist/doctor-contracts.js +2 -2
- package/dist/engine-detour-tool.js +2 -8
- package/dist/gatekeeper-role.js +4 -19
- package/dist/headless-host/production-host.js +2613 -1892
- package/dist/merger-contracts.js +2 -2
- package/dist/migrate-book-topology.js +34 -9
- package/dist/notary-contracts.js +2 -2
- package/dist/package-contracts/auditor-output.js +2 -2
- package/dist/package-contracts/fixer-output.js +2 -2
- package/dist/package-contracts/gatekeeper-output.js +2 -2
- package/dist/package-contracts/navigator-output.js +2 -2
- package/dist/package-contracts/terminating-infrastructure.js +7 -2
- package/dist/package-contracts/terminating-tools.js +6 -0
- package/dist/packaged-role-registry.js +20 -1
- package/dist/public-cli/case-dossier-delivery.js +45 -28
- package/dist/public-cli/countersign-run.js +439 -0
- package/dist/public-cli/invocation.js +10 -0
- package/dist/public-cli/main.js +388 -101
- package/dist/public-cli/option-definitions.js +14 -0
- package/dist/public-cli/post-admission.js +44 -49
- package/dist/public-cli/run-lifecycle.js +13 -1
- package/dist/public-cli/settlement.js +14 -53
- package/dist/public-role-summons.js +14 -0
- package/dist/secretariat-contracts.js +8 -0
- package/dist/sitian-appender.js +21 -4
- package/extensions/role-runtime.ts +1 -0
- package/package.json +1 -1
- package/scripts/build-package.mjs +1 -0
- package/souls/secretariat.md +26 -0
- package/souls/ticket-law.md +9 -0
- package/src/collector-tool-schemas.ts +2 -2
- package/src/countersign-role.ts +2 -2
- package/src/diarist-role.ts +2 -2
- package/src/doctor-contracts.ts +2 -2
- package/src/engine-detour-tool.ts +3 -9
- package/src/gatekeeper-pass-envelope.ts +35 -2
- package/src/gatekeeper-role.ts +8 -31
- package/src/gleaner-left-role.ts +2 -2
- package/src/host-contracts.ts +2 -1
- package/src/inspector-role.ts +2 -2
- package/src/judge-role.ts +2 -2
- package/src/merger-contracts.ts +2 -2
- package/src/notary-contracts.ts +2 -2
- package/src/package-contracts/auditor-output.ts +2 -2
- package/src/package-contracts/fixer-output.ts +2 -2
- package/src/package-contracts/gatekeeper-output.ts +2 -2
- package/src/package-contracts/navigator-output.ts +2 -2
- package/src/package-contracts/terminating-infrastructure.ts +13 -3
- package/src/package-contracts/terminating-tools.ts +9 -1
- package/src/packaged-role-registry.ts +20 -1
- package/src/public-cli/case-dossier-delivery.ts +48 -29
- package/src/public-cli/cli.ts +10 -0
- package/src/public-cli/countersign-run.ts +29 -5
- package/src/public-cli/invocation.ts +28 -2
- package/src/public-cli/option-definitions.ts +17 -0
- package/src/public-cli/post-admission.ts +45 -58
- package/src/public-cli/run-lifecycle.ts +29 -2
- package/src/public-cli/secretariat-run.ts +266 -0
- package/src/public-cli/settlement.ts +31 -55
- package/src/public-cli/terminal.ts +2 -1
- package/src/public-role-summons.ts +23 -1
- package/src/reviewer-role.ts +2 -2
- package/src/role-runtime-dependencies.ts +1 -0
- package/src/role-runtime.ts +203 -18
- package/src/secretariat-contracts.ts +27 -0
- package/src/secretariat-role.ts +210 -0
- package/src/sitian-appender.ts +36 -3
- package/src/worker-role.ts +2 -2
package/dist/public-cli/main.js
CHANGED
|
@@ -8465,10 +8465,15 @@ var init_open_tool_schema = __esm({
|
|
|
8465
8465
|
});
|
|
8466
8466
|
|
|
8467
8467
|
// src/package-contracts/terminating-infrastructure.ts
|
|
8468
|
-
function
|
|
8468
|
+
function withTerminatingOutputDeclarations(schema) {
|
|
8469
8469
|
const baseProperties = schema.properties;
|
|
8470
8470
|
const properties = {
|
|
8471
8471
|
...baseProperties ?? {},
|
|
8472
|
+
...baseProperties?.ticketNumber === void 0 ? {
|
|
8473
|
+
ticketNumber: typebox_exports.Unknown({
|
|
8474
|
+
description: "\u53EF\u9009\u672C\u7968\u53F7\uFF1A\u5C1A\u672A\u7ED1\u5B9A\u65F6\u7531\u89D2\u8272\u5728\u65E2\u6709\u56DE\u6267\u4E2D\u7533\u62A5\uFF1B\u673A\u68B0\u5C42\u53EA\u8BB0\u5F55\u5408\u6CD5\u6B63\u6574\u6570\uFF0C\u4E0D\u4ECE\u6563\u6587\u63A8\u5BFC\u3001\u4E0D\u9A8C\u771F\u3002\u7F3A\u5931\u6216\u9519\u5F62\u4E0D\u62D2\u6536\u3002"
|
|
8475
|
+
})
|
|
8476
|
+
} : {},
|
|
8472
8477
|
[INFRASTRUCTURE_FAILURE_DECLARATION_KEY]: infrastructureFailureDeclarationSchema.properties[INFRASTRUCTURE_FAILURE_DECLARATION_KEY]
|
|
8473
8478
|
};
|
|
8474
8479
|
const object = typebox_exports.Object(properties, { additionalProperties: true });
|
|
@@ -8525,7 +8530,7 @@ var init_gatekeeper_output = __esm({
|
|
|
8525
8530
|
})
|
|
8526
8531
|
})
|
|
8527
8532
|
);
|
|
8528
|
-
gatekeeperOutputSchema =
|
|
8533
|
+
gatekeeperOutputSchema = withTerminatingOutputDeclarations(
|
|
8529
8534
|
gatekeeperDecisionSchema
|
|
8530
8535
|
);
|
|
8531
8536
|
}
|
|
@@ -8540,7 +8545,7 @@ var init_navigator_output = __esm({
|
|
|
8540
8545
|
init_open_tool_schema();
|
|
8541
8546
|
init_terminating_infrastructure();
|
|
8542
8547
|
NAVIGATOR_OUTPUT_TOOL_NAME = "ak_navigator_output";
|
|
8543
|
-
navigatorOutputSchema =
|
|
8548
|
+
navigatorOutputSchema = withTerminatingOutputDeclarations(
|
|
8544
8549
|
openToolObject(
|
|
8545
8550
|
typebox_exports.Object({
|
|
8546
8551
|
status: typebox_exports.Unknown({
|
|
@@ -8616,7 +8621,7 @@ var init_fixer_output = __esm({
|
|
|
8616
8621
|
typebox_exports.Object({ status: typebox_exports.Unknown({ description: FIXER_STATUS_DESCRIPTION }), report: typebox_exports.String({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }), classResults: typebox_exports.Array(classResultSchema, { description: "\u5404\u7C7B\u62D2\u7EDD\u7ED3\u7B97" }) }),
|
|
8617
8622
|
typebox_exports.Object({ status: typebox_exports.Unknown({ description: FIXER_STATUS_DESCRIPTION }), report: typebox_exports.String({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }), classResults: typebox_exports.Array(classResultSchema, { description: "\u5404\u7C7B\u5B8C\u6210\u6216\u62D2\u7EDD\u7ED3\u7B97" }), testEvidence: typebox_exports.Optional(testEvidenceSchema) })
|
|
8618
8623
|
]);
|
|
8619
|
-
fixerOutputSchema =
|
|
8624
|
+
fixerOutputSchema = withTerminatingOutputDeclarations(
|
|
8620
8625
|
openToolObjectFromUnion(fixerOutputVariants)
|
|
8621
8626
|
);
|
|
8622
8627
|
}
|
|
@@ -14676,7 +14681,7 @@ var init_doctor_contracts = __esm({
|
|
|
14676
14681
|
missingEvidence: typebox_exports.Array(typebox_exports.Object({ need: nonblank, targetKeys: evidenceIds }, { additionalProperties: true }), { description: "\u5982\u5B9E\u8BC1\u8BCD\u6240\u9700\u800C\u5C1A\u7F3A\u7684\u8BC1\u636E" })
|
|
14677
14682
|
}, { additionalProperties: false, description: "\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u6848\u8BC1\u8BCD" })
|
|
14678
14683
|
]);
|
|
14679
|
-
doctorSubmissionSchema =
|
|
14684
|
+
doctorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
14680
14685
|
openToolObjectFromUnion(doctorSubmissionVariants)
|
|
14681
14686
|
);
|
|
14682
14687
|
doctorEvidenceReadSchema = typebox_exports.Object({ evidenceId: typebox_exports.String({ minLength: 1, description: "\u5F85\u8BFB\u7559\u5B58\u8BC1\u636E\u6807\u8BC6" }), offset: typebox_exports.Optional(typebox_exports.Integer({ minimum: 0, description: "\u8D77\u59CB\u5B57\u8282\u504F\u79FB\uFF08\u4ECE 0 \u8BA1\uFF09" })), limit: typebox_exports.Optional(typebox_exports.Integer({ minimum: 1, description: "\u8FD4\u56DE\u5B57\u8282\u6570\uFF08\u65E0\u4E0A\u9650\uFF09" })) }, { additionalProperties: true });
|
|
@@ -14748,7 +14753,7 @@ var init_merger_contracts = __esm({
|
|
|
14748
14753
|
typebox_exports.Object({ status: typebox_exports.Unknown({ description: MERGER_STATUS_DESCRIPTION }), attemptId: typebox_exports.String({ description: "\u5DF2\u53D7\u7406\u5408\u5E76 attempt \u8EAB\u4EFD" }), report: typebox_exports.String({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }), mergeCommitId: typebox_exports.String({ description: "\u5B8C\u6210\u5408\u5E76 commit object ID" }) }, { additionalProperties: false }),
|
|
14749
14754
|
typebox_exports.Object({ status: typebox_exports.Unknown({ description: MERGER_STATUS_DESCRIPTION }), attemptId: typebox_exports.String({ description: "\u5DF2\u53D7\u7406\u5408\u5E76 attempt \u8EAB\u4EFD" }), diagnosis: typebox_exports.String({ description: "\u5408\u5E76\u65E0\u6CD5\u6216\u4E0D\u5E94\u7531\u672C\u5E2D\u5B8C\u6210\u7684\u539F\u56E0\uFF08\u542B\u65E0\u8FDB\u884C\u4E2D\u5408\u5E76\u3001\u65E0\u6D3B\u53EF\u5E72\u3001\u9700\u65B0\u7684\u4EA7\u54C1/\u6743\u529B\u51B3\u5B9A\uFF09" }), report: typebox_exports.String({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }) }, { additionalProperties: false })
|
|
14750
14755
|
]);
|
|
14751
|
-
mergerOutputSchema =
|
|
14756
|
+
mergerOutputSchema = withTerminatingOutputDeclarations(openToolObjectFromUnion(mergerOutputVariants));
|
|
14752
14757
|
MERGER_OUTPUT_TOOL_NAME = "ak_merger_output";
|
|
14753
14758
|
record = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
14754
14759
|
blank = (v) => typeof v !== "string" || v.trim().length === 0;
|
|
@@ -14773,7 +14778,7 @@ var init_notary_contracts = __esm({
|
|
|
14773
14778
|
init_terminating_infrastructure();
|
|
14774
14779
|
NOTARY_OUTPUT_TOOL_NAME = "ak_notary_output";
|
|
14775
14780
|
NOTARY_FIXED_KICKOFF = "\u7B26\u5B9D\u90CE\u6848\u5377\u5DF2\u53D7\u7406\uFF1B\u6765\u6E90 run \u5B9A\u4F4D\u89C1\u4F1A\u8BDD\u6750\u6599\u3002";
|
|
14776
|
-
notaryOutputSchema =
|
|
14781
|
+
notaryOutputSchema = withTerminatingOutputDeclarations(
|
|
14777
14782
|
openToolObject(
|
|
14778
14783
|
typebox_exports.Object({
|
|
14779
14784
|
status: typebox_exports.Unknown({
|
|
@@ -14827,7 +14832,7 @@ var init_auditor_output = __esm({
|
|
|
14827
14832
|
init_open_tool_schema();
|
|
14828
14833
|
init_terminating_infrastructure();
|
|
14829
14834
|
AUDITOR_OUTPUT_TOOL_NAME = "ak_auditor_output";
|
|
14830
|
-
auditorOutputSchema =
|
|
14835
|
+
auditorOutputSchema = withTerminatingOutputDeclarations(
|
|
14831
14836
|
openToolObject(
|
|
14832
14837
|
typebox_exports.Object({
|
|
14833
14838
|
status: typebox_exports.Unknown({
|
|
@@ -14941,6 +14946,15 @@ var init_diarist_contracts = __esm({
|
|
|
14941
14946
|
}
|
|
14942
14947
|
});
|
|
14943
14948
|
|
|
14949
|
+
// src/secretariat-contracts.ts
|
|
14950
|
+
var SECRETARIAT_OUTPUT_TOOL_NAME;
|
|
14951
|
+
var init_secretariat_contracts = __esm({
|
|
14952
|
+
"src/secretariat-contracts.ts"() {
|
|
14953
|
+
"use strict";
|
|
14954
|
+
SECRETARIAT_OUTPUT_TOOL_NAME = "ak_secretariat_output";
|
|
14955
|
+
}
|
|
14956
|
+
});
|
|
14957
|
+
|
|
14944
14958
|
// src/packaged-role-registry.ts
|
|
14945
14959
|
function packagedRoleMetadata(role) {
|
|
14946
14960
|
return PACKAGED_ROLE_REGISTRY.find((entry) => entry.role === role);
|
|
@@ -14969,10 +14983,12 @@ var init_packaged_role_registry = __esm({
|
|
|
14969
14983
|
init_inspector_contracts();
|
|
14970
14984
|
init_auditor_output();
|
|
14971
14985
|
init_diarist_contracts();
|
|
14986
|
+
init_secretariat_contracts();
|
|
14972
14987
|
NOTARY_SESSION_MATERIALS = [
|
|
14973
14988
|
"CLAUDE.md",
|
|
14974
14989
|
"souls/notary.md",
|
|
14975
14990
|
"souls/audit-law.md",
|
|
14991
|
+
"souls/ticket-law.md",
|
|
14976
14992
|
"souls/gate-output-guide.md"
|
|
14977
14993
|
];
|
|
14978
14994
|
INSPECTOR_SESSION_MATERIALS = [
|
|
@@ -15095,7 +15111,24 @@ var init_packaged_role_registry = __esm({
|
|
|
15095
15111
|
inputFlag: void 0,
|
|
15096
15112
|
phaseFlag: void 0,
|
|
15097
15113
|
activationStage: "load-and-install",
|
|
15098
|
-
|
|
15114
|
+
// #924: 公用《票面法》三席同装
|
|
15115
|
+
sessionMaterials: ["CLAUDE.md", "souls/countersign.md", "souls/ticket-law.md"]
|
|
15116
|
+
},
|
|
15117
|
+
{
|
|
15118
|
+
role: "secretariat",
|
|
15119
|
+
phases: [null],
|
|
15120
|
+
outputTool: SECRETARIAT_OUTPUT_TOOL_NAME,
|
|
15121
|
+
inputFlag: void 0,
|
|
15122
|
+
phaseFlag: void 0,
|
|
15123
|
+
activationStage: "load-and-install",
|
|
15124
|
+
// #924: owner-finalized Soul + 票面法 + 给事中/符宝郎行为指南
|
|
15125
|
+
sessionMaterials: [
|
|
15126
|
+
"CLAUDE.md",
|
|
15127
|
+
"souls/secretariat.md",
|
|
15128
|
+
"souls/ticket-law.md",
|
|
15129
|
+
"souls/countersign.md",
|
|
15130
|
+
"souls/notary.md"
|
|
15131
|
+
]
|
|
15099
15132
|
},
|
|
15100
15133
|
{
|
|
15101
15134
|
role: "gleaner-left",
|
|
@@ -16360,25 +16393,40 @@ function resolveSitianVolumeCategory(kind) {
|
|
|
16360
16393
|
}
|
|
16361
16394
|
return kind;
|
|
16362
16395
|
}
|
|
16396
|
+
function ticketProvenanceUnderBookPaths(ledgerHome, bookKey, ticketId) {
|
|
16397
|
+
const sessionDir = join9(activationBookDirectory(ledgerHome, bookKey), ticketId);
|
|
16398
|
+
return { sessionDir, recordFile: join9(sessionDir, SITIAN_RECORDS_LEAF) };
|
|
16399
|
+
}
|
|
16363
16400
|
function resolveSitianRecordPathInLedger(input, ledgerHome) {
|
|
16364
16401
|
const category = resolveSitianVolumeCategory(input.kind);
|
|
16365
16402
|
const ticketNumber = category === "ticket-provenance" ? typeof input.subject === "string" && /^[1-9][0-9]*$/.test(input.subject) ? input.subject : typeof input.subject === "object" && typeof input.subject.ticketNumber === "number" && Number.isSafeInteger(input.subject.ticketNumber) && input.subject.ticketNumber > 0 ? String(input.subject.ticketNumber) : void 0 : void 0;
|
|
16366
16403
|
let sessionDir;
|
|
16404
|
+
let recordFile;
|
|
16367
16405
|
if (ticketNumber !== void 0) {
|
|
16368
|
-
const
|
|
16406
|
+
const paths = ticketProvenanceUnderBookPaths(
|
|
16369
16407
|
ledgerHome,
|
|
16370
|
-
resolveBookKeyFromGit(input.cwd ?? process.cwd())
|
|
16408
|
+
resolveBookKeyFromGit(input.cwd ?? process.cwd()),
|
|
16409
|
+
ticketNumber
|
|
16371
16410
|
);
|
|
16372
|
-
sessionDir =
|
|
16411
|
+
sessionDir = paths.sessionDir;
|
|
16412
|
+
recordFile = paths.recordFile;
|
|
16373
16413
|
} else {
|
|
16374
16414
|
if (input.sessionParent === void 0 || input.sessionParent.length === 0 || !physicallyContainedIn(ledgerHome, input.sessionParent)) {
|
|
16375
16415
|
throw new Error("Sitian record ownership requires a parent session inside the ledger home");
|
|
16376
16416
|
}
|
|
16377
16417
|
sessionDir = join9(dirname5(input.sessionParent), category);
|
|
16418
|
+
recordFile = join9(sessionDir, SITIAN_RECORDS_LEAF);
|
|
16378
16419
|
}
|
|
16379
|
-
const recordFile = join9(sessionDir, "records.jsonl");
|
|
16380
16420
|
return { sessionDir, recordFile, ledgerHome };
|
|
16381
16421
|
}
|
|
16422
|
+
function projectTicketRecordsPathShape() {
|
|
16423
|
+
const { recordFile } = ticketProvenanceUnderBookPaths(
|
|
16424
|
+
join9("~", ".ak-roles"),
|
|
16425
|
+
"<\u7C3F>",
|
|
16426
|
+
"<\u7968\u53F7>"
|
|
16427
|
+
);
|
|
16428
|
+
return recordFile.replace(/\\/g, "/");
|
|
16429
|
+
}
|
|
16382
16430
|
function resolveSitianRecordPath(input) {
|
|
16383
16431
|
const ledgerHome = input.home !== void 0 && input.home.length > 0 ? resolveActivationLedgerHome(input.home) : resolveActivationLedgerHomeForPath(input.sessionParent);
|
|
16384
16432
|
return resolveSitianRecordPathInLedger(input, ledgerHome);
|
|
@@ -16415,7 +16463,7 @@ function appendSitianRecord(input) {
|
|
|
16415
16463
|
);
|
|
16416
16464
|
}
|
|
16417
16465
|
}
|
|
16418
|
-
var S4_SUBMISSION_LEDGER_KINDS;
|
|
16466
|
+
var S4_SUBMISSION_LEDGER_KINDS, SITIAN_RECORDS_LEAF;
|
|
16419
16467
|
var init_sitian_appender = __esm({
|
|
16420
16468
|
"src/sitian-appender.ts"() {
|
|
16421
16469
|
"use strict";
|
|
@@ -16429,6 +16477,7 @@ var init_sitian_appender = __esm({
|
|
|
16429
16477
|
"sealed",
|
|
16430
16478
|
"post-seal-anomaly"
|
|
16431
16479
|
]);
|
|
16480
|
+
SITIAN_RECORDS_LEAF = "records.jsonl";
|
|
16432
16481
|
}
|
|
16433
16482
|
});
|
|
16434
16483
|
|
|
@@ -17301,6 +17350,8 @@ function acceptedFacts(toolName, details) {
|
|
|
17301
17350
|
return typeof record4.judgeStatus === "string" ? { status: record4.judgeStatus } : {};
|
|
17302
17351
|
case COUNTERSIGN_OUTPUT_TOOL_NAME:
|
|
17303
17352
|
return typeof record4.countersignStatus === "string" ? { status: record4.countersignStatus } : {};
|
|
17353
|
+
case SECRETARIAT_OUTPUT_TOOL_NAME:
|
|
17354
|
+
return typeof record4.secretariatStatus === "string" ? { status: record4.secretariatStatus } : {};
|
|
17304
17355
|
case MERGER_OUTPUT_TOOL_NAME: {
|
|
17305
17356
|
const status = typeof record4.status === "string" ? record4.status : void 0;
|
|
17306
17357
|
return {
|
|
@@ -17332,6 +17383,7 @@ var init_terminating_tools = __esm({
|
|
|
17332
17383
|
init_gleaner_left_contracts();
|
|
17333
17384
|
init_inspector_contracts();
|
|
17334
17385
|
init_diarist_contracts();
|
|
17386
|
+
init_secretariat_contracts();
|
|
17335
17387
|
init_worker_output();
|
|
17336
17388
|
TERMINATING_TOOL_NAMES = [
|
|
17337
17389
|
CODER_OUTPUT_TOOL_NAME,
|
|
@@ -17348,7 +17400,8 @@ var init_terminating_tools = __esm({
|
|
|
17348
17400
|
GATEKEEPER_OUTPUT_TOOL_NAME,
|
|
17349
17401
|
NAVIGATOR_OUTPUT_TOOL_NAME,
|
|
17350
17402
|
AUDITOR_OUTPUT_TOOL_NAME,
|
|
17351
|
-
DIARIST_OUTPUT_TOOL_NAME
|
|
17403
|
+
DIARIST_OUTPUT_TOOL_NAME,
|
|
17404
|
+
SECRETARIAT_OUTPUT_TOOL_NAME
|
|
17352
17405
|
];
|
|
17353
17406
|
AcceptedDetailsContractError = class extends CorrectableSubmissionError {
|
|
17354
17407
|
code = "accepted_details_contract";
|
|
@@ -18203,7 +18256,7 @@ async function readRoleRunStateDisk(runDirectory) {
|
|
|
18203
18256
|
if (typeof record4.runId !== "string" || record4.runId.trim() === "") {
|
|
18204
18257
|
return void 0;
|
|
18205
18258
|
}
|
|
18206
|
-
if (record4.role !== "judge" && record4.role !== "coder" && record4.role !== "fixer" && record4.role !== "collector" && record4.role !== "doctor" && record4.role !== "reviewer" && record4.role !== "merger" && record4.role !== "notary" && record4.role !== "countersign" && record4.role !== "gleaner-left" && record4.role !== "inspector" && record4.role !== "gatekeeper" && record4.role !== "navigator" && record4.role !== "auditor" && record4.role !== "diarist") {
|
|
18259
|
+
if (record4.role !== "judge" && record4.role !== "coder" && record4.role !== "fixer" && record4.role !== "collector" && record4.role !== "doctor" && record4.role !== "reviewer" && record4.role !== "merger" && record4.role !== "notary" && record4.role !== "countersign" && record4.role !== "gleaner-left" && record4.role !== "inspector" && record4.role !== "gatekeeper" && record4.role !== "navigator" && record4.role !== "auditor" && record4.role !== "diarist" && record4.role !== "secretariat") {
|
|
18207
18260
|
return void 0;
|
|
18208
18261
|
}
|
|
18209
18262
|
if (record4.state !== "admitted" && record4.state !== "running" && record4.state !== "resumable" && record4.state !== "terminal") {
|
|
@@ -19170,6 +19223,19 @@ async function loadResumableDiaristRun(home, runId, authority) {
|
|
|
19170
19223
|
};
|
|
19171
19224
|
return seatLoadedResult(loaded, admitted);
|
|
19172
19225
|
}
|
|
19226
|
+
async function loadResumableSecretariatRun(home, runId, authority) {
|
|
19227
|
+
const loaded = await loadResumableRunRecord(home, runId, authority);
|
|
19228
|
+
if (loaded.run.role !== "secretariat") {
|
|
19229
|
+
throw new CliUsageError(
|
|
19230
|
+
`role run ${runId} belongs to ${loaded.run.role}, not secretariat`
|
|
19231
|
+
);
|
|
19232
|
+
}
|
|
19233
|
+
const admitted = {
|
|
19234
|
+
role: "secretariat",
|
|
19235
|
+
...resumedBaseAdmitted(loaded)
|
|
19236
|
+
};
|
|
19237
|
+
return seatLoadedResult(loaded, admitted);
|
|
19238
|
+
}
|
|
19173
19239
|
async function loadResumableMergerRun(home, runId, authority) {
|
|
19174
19240
|
const loaded = await loadResumableRunRecord(home, runId, authority);
|
|
19175
19241
|
if (loaded.run.role !== "merger") {
|
|
@@ -19723,7 +19789,7 @@ function renderHumanOwnerOptionLines(owner, locale2 = "en") {
|
|
|
19723
19789
|
}
|
|
19724
19790
|
return lines;
|
|
19725
19791
|
}
|
|
19726
|
-
var ANALYST_REQUIRE_ANY_OF, ANALYST_DEFAULT_MODE, REJECTED_PUBLIC_SPELLINGS, GLOBAL_OPTIONS, SHARED_PROJECT_SEMANTICS, SHARED_ATTACH_SEMANTICS, JUDGE_OPTIONS, GLEANER_LEFT_OPTIONS, INSPECTOR_OPTIONS, GATEKEEPER_OPTIONS, NAVIGATOR_OPTIONS, AUDITOR_OPTIONS, COUNTERSIGN_OPTIONS, DIARIST_OPTIONS, CODER_OPTIONS, FIXER_OPTIONS, REVIEWER_OPTIONS, COLLECTOR_OPTIONS, DOCTOR_OPTIONS, NOTARY_OPTIONS, MERGER_OPTIONS, ANALYST_OPTIONS, PUBLIC_OPTION_TABLE, PUBLIC_NAVIGATOR_HELP_NOTE, TOP_LEVEL_HELP, ROLE_COMMAND_HELP, SUPPORT_COMMAND_HELP, PUBLIC_COMMAND_HELP;
|
|
19792
|
+
var ANALYST_REQUIRE_ANY_OF, ANALYST_DEFAULT_MODE, REJECTED_PUBLIC_SPELLINGS, GLOBAL_OPTIONS, SHARED_PROJECT_SEMANTICS, SHARED_ATTACH_SEMANTICS, JUDGE_OPTIONS, GLEANER_LEFT_OPTIONS, INSPECTOR_OPTIONS, GATEKEEPER_OPTIONS, NAVIGATOR_OPTIONS, AUDITOR_OPTIONS, COUNTERSIGN_OPTIONS, DIARIST_OPTIONS, SECRETARIAT_OPTIONS, CODER_OPTIONS, FIXER_OPTIONS, REVIEWER_OPTIONS, COLLECTOR_OPTIONS, DOCTOR_OPTIONS, NOTARY_OPTIONS, MERGER_OPTIONS, ANALYST_OPTIONS, PUBLIC_OPTION_TABLE, PUBLIC_NAVIGATOR_HELP_NOTE, TOP_LEVEL_HELP, ROLE_COMMAND_HELP, SUPPORT_COMMAND_HELP, PUBLIC_COMMAND_HELP;
|
|
19727
19793
|
var init_option_definitions = __esm({
|
|
19728
19794
|
"src/public-cli/option-definitions.ts"() {
|
|
19729
19795
|
"use strict";
|
|
@@ -19936,6 +20002,10 @@ var init_option_definitions = __esm({
|
|
|
19936
20002
|
bindOwner("diarist", SHARED_PROJECT_SEMANTICS),
|
|
19937
20003
|
bindOwner("diarist", SHARED_ATTACH_SEMANTICS)
|
|
19938
20004
|
];
|
|
20005
|
+
SECRETARIAT_OPTIONS = [
|
|
20006
|
+
bindOwner("secretariat", SHARED_PROJECT_SEMANTICS),
|
|
20007
|
+
bindOwner("secretariat", SHARED_ATTACH_SEMANTICS)
|
|
20008
|
+
];
|
|
19939
20009
|
CODER_OPTIONS = [
|
|
19940
20010
|
{
|
|
19941
20011
|
id: "phase",
|
|
@@ -20298,6 +20368,7 @@ var init_option_definitions = __esm({
|
|
|
20298
20368
|
navigator: NAVIGATOR_OPTIONS,
|
|
20299
20369
|
auditor: AUDITOR_OPTIONS,
|
|
20300
20370
|
diarist: DIARIST_OPTIONS,
|
|
20371
|
+
secretariat: SECRETARIAT_OPTIONS,
|
|
20301
20372
|
analyst: ANALYST_OPTIONS
|
|
20302
20373
|
};
|
|
20303
20374
|
PUBLIC_NAVIGATOR_HELP_NOTE = "Navigator also attends automatically on top-level public entry legs; that sidecar is unchanged by direct `ak-role navigator` calls.";
|
|
@@ -20435,6 +20506,14 @@ var init_option_definitions = __esm({
|
|
|
20435
20506
|
'ak-role diarist --attach ./design.md "\u8865\u5F55\u672C\u8F6E\u8BBE\u8BA1\u4FEE\u8BA2\u3002"'
|
|
20436
20507
|
]
|
|
20437
20508
|
},
|
|
20509
|
+
secretariat: {
|
|
20510
|
+
command: "secretariat",
|
|
20511
|
+
summary: "Secretariat (\u4E2D\u4E66\u7701): rewrite ticket per \u7968\u9762\u6CD5 and drive countersign to converged or escalate.",
|
|
20512
|
+
usage: ["ak-role secretariat [options] [instruction]"],
|
|
20513
|
+
examples: [
|
|
20514
|
+
'ak-role secretariat "\u6574\u7406 #924 \u7968\u9762\u5E76\u9001\u5EAD\u3002"'
|
|
20515
|
+
]
|
|
20516
|
+
},
|
|
20438
20517
|
notary: {
|
|
20439
20518
|
command: "notary",
|
|
20440
20519
|
summary: "Direct Notary document check (quote fidelity + ticket alignment); zero prompt/attachment.",
|
|
@@ -20545,6 +20624,7 @@ __export(invocation_exports, {
|
|
|
20545
20624
|
admitNavigatorInvocation: () => admitNavigatorInvocation,
|
|
20546
20625
|
admitNotaryInvocation: () => admitNotaryInvocation,
|
|
20547
20626
|
admitReviewerInvocation: () => admitReviewerInvocation,
|
|
20627
|
+
admitSecretariatInvocation: () => admitSecretariatInvocation,
|
|
20548
20628
|
bindAdmittedTicketNumber: () => bindAdmittedTicketNumber,
|
|
20549
20629
|
bindCourtTicketNumbersOnAdmitted: () => bindCourtTicketNumbersOnAdmitted,
|
|
20550
20630
|
bindTicketNumberOnRunDirectory: () => bindTicketNumberOnRunDirectory,
|
|
@@ -20560,6 +20640,7 @@ __export(invocation_exports, {
|
|
|
20560
20640
|
buildMergerTransportPrompt: () => buildMergerTransportPrompt,
|
|
20561
20641
|
buildNotaryTransportPrompt: () => buildNotaryTransportPrompt,
|
|
20562
20642
|
buildReviewerTransportPrompt: () => buildReviewerTransportPrompt,
|
|
20643
|
+
buildSecretariatTransportPrompt: () => buildSecretariatTransportPrompt,
|
|
20563
20644
|
deriveMergerEnvelopeFromActiveMerge: () => deriveMergerEnvelopeFromActiveMerge,
|
|
20564
20645
|
ensureRunArtifactsDir: () => ensureRunArtifactsDir,
|
|
20565
20646
|
freezeAttachmentsIntoRun: () => freezeAttachmentsIntoRun,
|
|
@@ -20587,6 +20668,7 @@ __export(invocation_exports, {
|
|
|
20587
20668
|
parseNotaryArgv: () => parseNotaryArgv,
|
|
20588
20669
|
parsePositiveTicketNumber: () => parsePositiveTicketNumber,
|
|
20589
20670
|
parseReviewerArgv: () => parseReviewerArgv,
|
|
20671
|
+
parseSecretariatArgv: () => parseSecretariatArgv,
|
|
20590
20672
|
persistAdmittedSourceRunPath: () => persistAdmittedSourceRunPath,
|
|
20591
20673
|
recordEffectiveInvocationModel: () => recordEffectiveInvocationModel,
|
|
20592
20674
|
recordLaunchedPiIdentity: () => recordLaunchedPiIdentity,
|
|
@@ -21016,6 +21098,9 @@ function parseAuditorArgv(args) {
|
|
|
21016
21098
|
function parseDiaristArgv(args) {
|
|
21017
21099
|
return parseInstructionArgv(args, "diarist");
|
|
21018
21100
|
}
|
|
21101
|
+
function parseSecretariatArgv(args) {
|
|
21102
|
+
return parseInstructionArgv(args, "secretariat");
|
|
21103
|
+
}
|
|
21019
21104
|
function parseCoderArgv(args) {
|
|
21020
21105
|
const attachmentPaths = [];
|
|
21021
21106
|
let project;
|
|
@@ -21249,6 +21334,9 @@ async function admitAuditorInvocation(options) {
|
|
|
21249
21334
|
async function admitDiaristInvocation(options) {
|
|
21250
21335
|
return admitStandardMaterialInvocation("diarist", options);
|
|
21251
21336
|
}
|
|
21337
|
+
async function admitSecretariatInvocation(options) {
|
|
21338
|
+
return admitStandardMaterialInvocation("secretariat", options);
|
|
21339
|
+
}
|
|
21252
21340
|
function buildInstructionTransportPrompt(admitted, engineMaterial) {
|
|
21253
21341
|
const lines = [admitted.instructionEmpty ? "" : admitted.instruction];
|
|
21254
21342
|
if (admitted.attachments.length > 0) {
|
|
@@ -21263,6 +21351,9 @@ function buildInstructionTransportPrompt(admitted, engineMaterial) {
|
|
|
21263
21351
|
function buildJudgeTransportPrompt(admitted, engineMaterial) {
|
|
21264
21352
|
return buildInstructionTransportPrompt(admitted, engineMaterial);
|
|
21265
21353
|
}
|
|
21354
|
+
function buildSecretariatTransportPrompt(admitted, engineMaterial) {
|
|
21355
|
+
return buildInstructionTransportPrompt(admitted, engineMaterial);
|
|
21356
|
+
}
|
|
21266
21357
|
function buildInspectorTransportPrompt(admitted, engineMaterial) {
|
|
21267
21358
|
return buildInstructionTransportPrompt(admitted, engineMaterial);
|
|
21268
21359
|
}
|
|
@@ -24871,7 +24962,6 @@ __export(settlement_exports, {
|
|
|
24871
24962
|
publishMergerArtifacts: () => publishMergerArtifacts,
|
|
24872
24963
|
publishReviewerArtifacts: () => publishReviewerArtifacts,
|
|
24873
24964
|
raceNavigatorGrace: () => raceNavigatorGrace,
|
|
24874
|
-
readBoundAuditorKnownFailure: () => readBoundAuditorKnownFailure,
|
|
24875
24965
|
readBoundEvidenceChildKnownFailure: () => readBoundEvidenceChildKnownFailure,
|
|
24876
24966
|
readCollectorInfrastructureFailure: () => readCollectorInfrastructureFailure,
|
|
24877
24967
|
readEngineDetourInfrastructureFailure: () => readEngineDetourInfrastructureFailure,
|
|
@@ -24909,6 +24999,7 @@ __export(settlement_exports, {
|
|
|
24909
24999
|
trySettleNavigatorTerminalResult: () => trySettleNavigatorTerminalResult,
|
|
24910
25000
|
trySettleNotaryTerminalResult: () => trySettleNotaryTerminalResult,
|
|
24911
25001
|
trySettleReviewerTerminalResult: () => trySettleReviewerTerminalResult,
|
|
25002
|
+
trySettleSecretariatTerminalResult: () => trySettleSecretariatTerminalResult,
|
|
24912
25003
|
withSubmissions: () => withSubmissions
|
|
24913
25004
|
});
|
|
24914
25005
|
import { randomUUID as randomUUID4 } from "node:crypto";
|
|
@@ -25415,32 +25506,6 @@ async function loadBoundAuditorVolumes(sessionFile) {
|
|
|
25415
25506
|
}
|
|
25416
25507
|
const parentId = parentEntries.find((entry) => entry.type === "session")?.id;
|
|
25417
25508
|
if (parentId === void 0) return void 0;
|
|
25418
|
-
const isResumeEnvelopeBytes = (value) => {
|
|
25419
|
-
if (typeof value !== "string") return false;
|
|
25420
|
-
if (value.length === 0) return true;
|
|
25421
|
-
const nl = value.indexOf("\n");
|
|
25422
|
-
const firstLine = nl === -1 ? value : value.slice(0, nl);
|
|
25423
|
-
const body = firstLine === "" && nl !== -1 ? value.slice(nl + 1) : value;
|
|
25424
|
-
return body.startsWith("\u672C\u6B21\u914D\u7F6E\u7684\u52B3\u52A1\u5F15\u64CE\u53CA\u5176\u624B\u518C\uFF1A") || body.startsWith("- engine:");
|
|
25425
|
-
};
|
|
25426
|
-
const isResumeEnvelope = (msg) => {
|
|
25427
|
-
if (!isRecord10(msg) || msg.role !== "user") return false;
|
|
25428
|
-
const text = typeof msg.text === "string" ? msg.text : typeof msg.content === "string" ? msg.content : void 0;
|
|
25429
|
-
if (isResumeEnvelopeBytes(text)) return true;
|
|
25430
|
-
const content = msg.content;
|
|
25431
|
-
if (Array.isArray(content)) {
|
|
25432
|
-
return content.some((p) => isRecord10(p) && (isResumeEnvelopeBytes(p.text) || isResumeEnvelopeBytes(p.content)));
|
|
25433
|
-
}
|
|
25434
|
-
return false;
|
|
25435
|
-
};
|
|
25436
|
-
let latestParentUserIndex = -1;
|
|
25437
|
-
for (let i = parentEntries.length - 1; i >= 0; i -= 1) {
|
|
25438
|
-
const entry = parentEntries[i];
|
|
25439
|
-
if (entry?.type !== "message" || entry.message?.role !== "user") continue;
|
|
25440
|
-
if (isResumeEnvelope(entry.message)) continue;
|
|
25441
|
-
latestParentUserIndex = i;
|
|
25442
|
-
break;
|
|
25443
|
-
}
|
|
25444
25509
|
const childDirectories = [join25(dirname13(sessionFile), "auditor-roles")];
|
|
25445
25510
|
const valid = [];
|
|
25446
25511
|
let sawAnyDirectory = false;
|
|
@@ -25477,12 +25542,9 @@ async function loadBoundAuditorVolumes(sessionFile) {
|
|
|
25477
25542
|
for (const { entry: bindingEntry, start, end } of bindingPasses) {
|
|
25478
25543
|
const bindingParent = bindingEntry !== void 0 && isRecord10(bindingEntry.data) && isRecord10(bindingEntry.data.parent) ? bindingEntry.data.parent : void 0;
|
|
25479
25544
|
const attemptEntryId = typeof bindingParent?.attemptEntryId === "string" ? bindingParent.attemptEntryId : void 0;
|
|
25480
|
-
const attemptEntryIndex = attemptEntryId === void 0 ? -1 : parentEntries.findIndex((entry) => entry.id === attemptEntryId);
|
|
25481
25545
|
const boundSessionFile = typeof bindingParent?.sessionFile === "string" ? bindingParent.sessionFile : typeof header.parentSession === "string" ? header.parentSession : void 0;
|
|
25482
25546
|
if (boundSessionFile !== sessionFile) continue;
|
|
25483
|
-
if (bindingParent !== void 0 &&
|
|
25484
|
-
continue;
|
|
25485
|
-
}
|
|
25547
|
+
if (bindingParent !== void 0 && bindingParent.sessionId !== parentId) continue;
|
|
25486
25548
|
if (bindingParent === void 0 && header.parentSession !== sessionFile) continue;
|
|
25487
25549
|
valid.push({
|
|
25488
25550
|
entries: entries.slice(start, end),
|
|
@@ -25537,11 +25599,6 @@ function providerStopFallbackFromAuditorVolumes(volumes) {
|
|
|
25537
25599
|
}
|
|
25538
25600
|
return void 0;
|
|
25539
25601
|
}
|
|
25540
|
-
async function readBoundAuditorKnownFailure(sessionFile) {
|
|
25541
|
-
const volumes = await loadBoundAuditorVolumes(sessionFile);
|
|
25542
|
-
if (volumes === void 0) return void 0;
|
|
25543
|
-
return complianceFailureFromAuditorVolumes(volumes) ?? providerStopFallbackFromAuditorVolumes(volumes);
|
|
25544
|
-
}
|
|
25545
25602
|
async function readBoundAuditorComplianceFailure(sessionFile) {
|
|
25546
25603
|
const volumes = await loadBoundAuditorVolumes(sessionFile);
|
|
25547
25604
|
if (volumes === void 0) return void 0;
|
|
@@ -26781,6 +26838,15 @@ async function settleLawfulDiaristTerminalResult(admitted, authority, scope) {
|
|
|
26781
26838
|
async function trySettleDiaristTerminalResult(admitted, authority, scope) {
|
|
26782
26839
|
return settleLawfulDiaristTerminalResult(admitted, authority, scope);
|
|
26783
26840
|
}
|
|
26841
|
+
async function settleLawfulSecretariatTerminalResult(admitted, authority, scope) {
|
|
26842
|
+
return settleLawfulSeatAcceptedTerminalResult(admitted, authority, {
|
|
26843
|
+
role: "secretariat",
|
|
26844
|
+
toolName: SECRETARIAT_OUTPUT_TOOL_NAME
|
|
26845
|
+
}, scope);
|
|
26846
|
+
}
|
|
26847
|
+
async function trySettleSecretariatTerminalResult(admitted, authority, scope) {
|
|
26848
|
+
return settleLawfulSecretariatTerminalResult(admitted, authority, scope);
|
|
26849
|
+
}
|
|
26784
26850
|
async function settleLawfulInspectorTerminalResult(admitted, authority, scope) {
|
|
26785
26851
|
return settleLawfulSeatAcceptedTerminalResult(admitted, authority, {
|
|
26786
26852
|
role: "inspector",
|
|
@@ -27407,6 +27473,7 @@ var init_settlement = __esm({
|
|
|
27407
27473
|
init_countersign_contracts();
|
|
27408
27474
|
init_gleaner_left_contracts();
|
|
27409
27475
|
init_diarist_contracts();
|
|
27476
|
+
init_secretariat_contracts();
|
|
27410
27477
|
init_inspector_contracts();
|
|
27411
27478
|
init_gatekeeper_output();
|
|
27412
27479
|
init_navigator_output();
|
|
@@ -27568,11 +27635,14 @@ var init_ticket_provenance = __esm({
|
|
|
27568
27635
|
import { mkdtemp, readFile as readFile19, rm, writeFile as writeFile8 } from "node:fs/promises";
|
|
27569
27636
|
import { tmpdir } from "node:os";
|
|
27570
27637
|
import { join as join27 } from "node:path";
|
|
27571
|
-
function describeDossierFile(path) {
|
|
27572
|
-
return path;
|
|
27573
|
-
}
|
|
27574
27638
|
async function projectCaseDossierPointerSection(input) {
|
|
27575
|
-
if (input.ticketNumber === void 0)
|
|
27639
|
+
if (input.ticketNumber === void 0) {
|
|
27640
|
+
return [
|
|
27641
|
+
UNBOUND_DOSSIER_PATH_HEADING,
|
|
27642
|
+
"",
|
|
27643
|
+
`\u8BB0\u5F55\u5377\u5B97\uFF1A${projectTicketRecordsPathShape()}`
|
|
27644
|
+
].join("\n");
|
|
27645
|
+
}
|
|
27576
27646
|
const volume = resolveTicketProvenanceVolume(
|
|
27577
27647
|
input.ticketNumber,
|
|
27578
27648
|
input.projectRoot,
|
|
@@ -27582,7 +27652,7 @@ async function projectCaseDossierPointerSection(input) {
|
|
|
27582
27652
|
CASE_DOSSIER_SECTION_HEADING,
|
|
27583
27653
|
"",
|
|
27584
27654
|
`\u7968\u53F7\uFF1A#${input.ticketNumber}`,
|
|
27585
|
-
`\u8BB0\u5F55\u5377\u5B97\uFF1A${
|
|
27655
|
+
`\u8BB0\u5F55\u5377\u5B97\uFF1A${volume.recordFile}`
|
|
27586
27656
|
].join("\n");
|
|
27587
27657
|
}
|
|
27588
27658
|
async function deliverCaseDossierAsAttachment(input) {
|
|
@@ -27591,7 +27661,6 @@ async function deliverCaseDossierAsAttachment(input) {
|
|
|
27591
27661
|
projectRoot: input.projectRoot,
|
|
27592
27662
|
home: input.home
|
|
27593
27663
|
});
|
|
27594
|
-
if (section === void 0) return void 0;
|
|
27595
27664
|
const stagingDir = await mkdtemp(join27(tmpdir(), "ak-case-dossier-"));
|
|
27596
27665
|
try {
|
|
27597
27666
|
const stagingPath = join27(stagingDir, CASE_DOSSIER_ATTACH_FILE);
|
|
@@ -27606,13 +27675,15 @@ async function deliverCaseDossierAsAttachment(input) {
|
|
|
27606
27675
|
await rm(stagingDir, { recursive: true, force: true });
|
|
27607
27676
|
}
|
|
27608
27677
|
}
|
|
27609
|
-
var CASE_DOSSIER_SECTION_HEADING, CASE_DOSSIER_ATTACH_KEY, CASE_DOSSIER_ATTACH_FILE;
|
|
27678
|
+
var CASE_DOSSIER_SECTION_HEADING, UNBOUND_DOSSIER_PATH_HEADING, CASE_DOSSIER_ATTACH_KEY, CASE_DOSSIER_ATTACH_FILE;
|
|
27610
27679
|
var init_case_dossier_delivery = __esm({
|
|
27611
27680
|
"src/public-cli/case-dossier-delivery.ts"() {
|
|
27612
27681
|
"use strict";
|
|
27682
|
+
init_sitian_facade();
|
|
27613
27683
|
init_ticket_provenance();
|
|
27614
27684
|
init_invocation();
|
|
27615
27685
|
CASE_DOSSIER_SECTION_HEADING = "## \u672C\u7968\u8D77\u5C45\u5F55\uFF08\u7CFB\u7EDF\u968F\u6848\u63D0\u4F9B\uFF09";
|
|
27686
|
+
UNBOUND_DOSSIER_PATH_HEADING = "## \u8D77\u5C45\u5F55\u8DEF\u5F84\uFF08\u7CFB\u7EDF\u968F\u6848\u63D0\u4F9B\uFF09";
|
|
27616
27687
|
CASE_DOSSIER_ATTACH_KEY = "case-dossier";
|
|
27617
27688
|
CASE_DOSSIER_ATTACH_FILE = "case-dossier-pointer.md";
|
|
27618
27689
|
}
|
|
@@ -28111,12 +28182,6 @@ function describeCaughtError(error) {
|
|
|
28111
28182
|
}
|
|
28112
28183
|
return { message: String(error) };
|
|
28113
28184
|
}
|
|
28114
|
-
function appendContinuationSection(continuation, section) {
|
|
28115
|
-
const prompt = `${continuation.prompt}
|
|
28116
|
-
|
|
28117
|
-
${section}`;
|
|
28118
|
-
return continuation.kind === "initial" ? { kind: "initial", prompt } : { kind: "resume", prompt };
|
|
28119
|
-
}
|
|
28120
28185
|
function isStationChildOfficerDialogue(role, env) {
|
|
28121
28186
|
return env.stationChild === true && isOfficerReviewSeat(role);
|
|
28122
28187
|
}
|
|
@@ -28278,10 +28343,24 @@ async function dispatchPostAdmissionTurn(input) {
|
|
|
28278
28343
|
const shouldPresent = adapters.shouldPresentSettled ?? ((terminal) => isLawfulTypedTerminalOutcome(terminal.roleOutcome));
|
|
28279
28344
|
let afterDispatchApplied = false;
|
|
28280
28345
|
const finishAfterTurn = async (result2) => {
|
|
28281
|
-
if (
|
|
28346
|
+
if (afterDispatchApplied) return result2;
|
|
28282
28347
|
afterDispatchApplied = true;
|
|
28283
28348
|
try {
|
|
28284
|
-
|
|
28349
|
+
if (admitted.ticketNumber === void 0) {
|
|
28350
|
+
const rows = await readRecordedSubmissionRows(
|
|
28351
|
+
admitted.projectRoot,
|
|
28352
|
+
admitted.runId,
|
|
28353
|
+
{ home: homeFromRunDirectory(admitted.runDirectory), sessionParent: join30(admitted.runDirectory, "session", "session.jsonl") }
|
|
28354
|
+
);
|
|
28355
|
+
const asserted = rows.filter((row) => row.kind === "accepted" && row.role === admitted.role).map((row) => row.accepted).find((payload) => {
|
|
28356
|
+
if (payload === null || typeof payload !== "object" || Array.isArray(payload)) return false;
|
|
28357
|
+
const value = payload.ticketNumber;
|
|
28358
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value > 0;
|
|
28359
|
+
});
|
|
28360
|
+
const ticketNumber = asserted === void 0 ? void 0 : asserted.ticketNumber;
|
|
28361
|
+
if (ticketNumber !== void 0) await bindAdmittedTicketNumber(admitted, ticketNumber);
|
|
28362
|
+
}
|
|
28363
|
+
if (adapters.afterDispatch !== void 0) await adapters.afterDispatch(admitted, lease);
|
|
28285
28364
|
return result2;
|
|
28286
28365
|
} catch (error) {
|
|
28287
28366
|
const primaryFailure = result2.terminal !== void 0 && !isLawfulTypedTerminalOutcome(result2.terminal.roleOutcome);
|
|
@@ -28396,29 +28475,12 @@ async function dispatchPostAdmissionTurn(input) {
|
|
|
28396
28475
|
if (typeof liveHost === "string" && liveHost.trim() !== "") {
|
|
28397
28476
|
turnRequest = { ...turnRequest, host: liveHost.trim() };
|
|
28398
28477
|
}
|
|
28399
|
-
|
|
28400
|
-
|
|
28401
|
-
|
|
28402
|
-
|
|
28403
|
-
|
|
28404
|
-
|
|
28405
|
-
});
|
|
28406
|
-
} else {
|
|
28407
|
-
const dossierSection = await projectCaseDossierPointerSection({
|
|
28408
|
-
ticketNumber: admitted.ticketNumber,
|
|
28409
|
-
projectRoot: admitted.projectRoot,
|
|
28410
|
-
home: env.home
|
|
28411
|
-
});
|
|
28412
|
-
if (dossierSection !== void 0) {
|
|
28413
|
-
turnRequest = {
|
|
28414
|
-
...turnRequest,
|
|
28415
|
-
continuation: appendContinuationSection(
|
|
28416
|
-
turnRequest.continuation,
|
|
28417
|
-
dossierSection
|
|
28418
|
-
)
|
|
28419
|
-
};
|
|
28420
|
-
}
|
|
28421
|
-
}
|
|
28478
|
+
await deliverCaseDossierAsAttachment({
|
|
28479
|
+
ticketNumber: admitted.ticketNumber,
|
|
28480
|
+
projectRoot: admitted.projectRoot,
|
|
28481
|
+
home: env.home,
|
|
28482
|
+
runDirectory: admitted.runDirectory
|
|
28483
|
+
});
|
|
28422
28484
|
await markRunRunning(
|
|
28423
28485
|
admitted.runDirectory,
|
|
28424
28486
|
env.model,
|
|
@@ -28675,7 +28737,7 @@ function resumeTurnRequestProjectionOptions(admitted, request, env, summonsPrepa
|
|
|
28675
28737
|
...env.model === void 0 ? {} : { model: env.model },
|
|
28676
28738
|
...pickEngineAxis(env),
|
|
28677
28739
|
...env.timeoutMs === void 0 ? {} : { timeoutMs: env.timeoutMs },
|
|
28678
|
-
...
|
|
28740
|
+
...env.correlationId === void 0 && admitted.correlationId === void 0 ? {} : { correlationId: env.correlationId ?? admitted.correlationId },
|
|
28679
28741
|
continuation: {
|
|
28680
28742
|
kind: "resume",
|
|
28681
28743
|
prompt
|
|
@@ -28832,10 +28894,7 @@ async function runPostAdmissionSeatResume(input) {
|
|
|
28832
28894
|
dispatch: async (turnRequest) => {
|
|
28833
28895
|
const result2 = await dispatchPostAdmissionTurn({
|
|
28834
28896
|
admitted: loaded.admitted,
|
|
28835
|
-
env:
|
|
28836
|
-
...input.env,
|
|
28837
|
-
...loaded.admitted.correlationId === void 0 ? {} : { correlationId: loaded.admitted.correlationId }
|
|
28838
|
-
},
|
|
28897
|
+
env: input.env,
|
|
28839
28898
|
io: attemptIo,
|
|
28840
28899
|
request: turnRequest,
|
|
28841
28900
|
lease,
|
|
@@ -29006,6 +29065,7 @@ var init_post_admission = __esm({
|
|
|
29006
29065
|
init_run_lifecycle();
|
|
29007
29066
|
init_cli_errors();
|
|
29008
29067
|
init_invocation();
|
|
29068
|
+
init_submission_ledger();
|
|
29009
29069
|
init_activation_ledger_topology();
|
|
29010
29070
|
init_engine_material();
|
|
29011
29071
|
init_session_identity();
|
|
@@ -30502,11 +30562,15 @@ async function summonPublicRole(options) {
|
|
|
30502
30562
|
env: {
|
|
30503
30563
|
...built.env,
|
|
30504
30564
|
stationChild: true,
|
|
30565
|
+
// Forward composition-root adapters so nested court stations (e.g.
|
|
30566
|
+
// countersign → diarist) select the same faux/production table (#924).
|
|
30567
|
+
...options.hostAdapters === void 0 ? {} : { hostAdapters: options.hostAdapters },
|
|
30505
30568
|
...config.autoResumeLimit === void 0 ? {} : { autoResumeLimit: config.autoResumeLimit },
|
|
30506
30569
|
...options.signal === void 0 ? {} : { signal: options.signal },
|
|
30507
30570
|
...options.reviewReask === void 0 ? {} : { reviewReask: options.reviewReask },
|
|
30508
30571
|
...options.gateReviewInstruction === void 0 ? {} : { gateReviewInstruction: options.gateReviewInstruction },
|
|
30509
30572
|
...options.boundTicketNumber === void 0 ? {} : { boundTicketNumber: options.boundTicketNumber },
|
|
30573
|
+
...options.correlationId === void 0 || options.correlationId.trim() === "" ? {} : { correlationId: options.correlationId },
|
|
30510
30574
|
...options.createRunId === void 0 ? {} : { createRunId: options.createRunId }
|
|
30511
30575
|
}
|
|
30512
30576
|
};
|
|
@@ -30609,6 +30673,16 @@ async function summonPublicRole(options) {
|
|
|
30609
30673
|
result2 = stepped.ok;
|
|
30610
30674
|
break;
|
|
30611
30675
|
}
|
|
30676
|
+
case "countersign": {
|
|
30677
|
+
const [{ runPublicCountersign: runPublicCountersign2 }, { parseCountersignArgv: parseCountersignArgv2 }] = await Promise.all([
|
|
30678
|
+
Promise.resolve().then(() => (init_countersign_run(), countersign_run_exports)),
|
|
30679
|
+
Promise.resolve().then(() => (init_invocation(), invocation_exports))
|
|
30680
|
+
]);
|
|
30681
|
+
const stepped = await runPrepared(parseCountersignArgv2, (env, once) => runPublicCountersign2(options.argv, env, io, once));
|
|
30682
|
+
if ("fail" in stepped) return stepped.fail;
|
|
30683
|
+
result2 = stepped.ok;
|
|
30684
|
+
break;
|
|
30685
|
+
}
|
|
30612
30686
|
}
|
|
30613
30687
|
const stderr = captured?.stderrText();
|
|
30614
30688
|
const runDirectory = result2.admitted?.runDirectory;
|
|
@@ -30623,8 +30697,8 @@ async function summonPublicRole(options) {
|
|
|
30623
30697
|
async function summonGateOfficer(options) {
|
|
30624
30698
|
let home = options.home;
|
|
30625
30699
|
if (home === void 0) {
|
|
30626
|
-
const { homeFromRunDirectory:
|
|
30627
|
-
home =
|
|
30700
|
+
const { homeFromRunDirectory: homeFromRunDirectory2 } = await Promise.resolve().then(() => (init_activation_ledger_topology(), activation_ledger_topology_exports));
|
|
30701
|
+
home = homeFromRunDirectory2(options.sourceRunDirectory);
|
|
30628
30702
|
}
|
|
30629
30703
|
let gateReviewInstruction;
|
|
30630
30704
|
if (options.reask === void 0 && options.submission !== void 0) {
|
|
@@ -30679,6 +30753,14 @@ var init_public_role_summons = __esm({
|
|
|
30679
30753
|
});
|
|
30680
30754
|
|
|
30681
30755
|
// src/public-cli/countersign-run.ts
|
|
30756
|
+
var countersign_run_exports = {};
|
|
30757
|
+
__export(countersign_run_exports, {
|
|
30758
|
+
buildCountersignTurnRequest: () => buildCountersignTurnRequest,
|
|
30759
|
+
invokeCourtDiarist: () => invokeCourtDiarist,
|
|
30760
|
+
runCountersignCourtDiaristStation: () => runCountersignCourtDiaristStation,
|
|
30761
|
+
runPublicCountersign: () => runPublicCountersign,
|
|
30762
|
+
runPublicCountersignResume: () => runPublicCountersignResume
|
|
30763
|
+
});
|
|
30682
30764
|
function buildCountersignTurnRequest(admitted, options) {
|
|
30683
30765
|
return projectRoleTurnRequest(
|
|
30684
30766
|
admitted,
|
|
@@ -30737,7 +30819,13 @@ async function invokeCourtDiarist(input, env, io) {
|
|
|
30737
30819
|
const { summonPublicRole: summonPublicRole2 } = await Promise.resolve().then(() => (init_public_role_summons(), public_role_summons_exports));
|
|
30738
30820
|
const result2 = await summonPublicRole2({
|
|
30739
30821
|
role: "diarist",
|
|
30740
|
-
argv: [
|
|
30822
|
+
argv: [
|
|
30823
|
+
"--project",
|
|
30824
|
+
input.projectRoot,
|
|
30825
|
+
...(input.attachmentPaths ?? []).flatMap((path) => ["--attach", path]),
|
|
30826
|
+
"--",
|
|
30827
|
+
input.instruction
|
|
30828
|
+
],
|
|
30741
30829
|
cwd: env.cwd,
|
|
30742
30830
|
home: env.home,
|
|
30743
30831
|
agentDir: env.agentDir,
|
|
@@ -30745,6 +30833,7 @@ async function invokeCourtDiarist(input, env, io) {
|
|
|
30745
30833
|
io: quietIo,
|
|
30746
30834
|
...env.credentials === void 0 ? {} : { credentials: env.credentials },
|
|
30747
30835
|
...env.signal === void 0 ? {} : { signal: env.signal },
|
|
30836
|
+
...input.correlationId === void 0 ? {} : { correlationId: input.correlationId },
|
|
30748
30837
|
...input.boundTicketNumber === void 0 ? {} : { boundTicketNumber: input.boundTicketNumber },
|
|
30749
30838
|
// Child seat selects from the composition-root table. Do not pass the
|
|
30750
30839
|
// already-selected parent adapter (#840 / ADR 0082: --host 旗标>席位配置>缺省 pi).
|
|
@@ -30803,6 +30892,7 @@ async function runCountersignCourtDiaristStation(admitted, env, io) {
|
|
|
30803
30892
|
instruction: `\u6574\u7406 #${ticketNumber} \u7684\u672C\u6848\u4F9D\u636E\u3002`,
|
|
30804
30893
|
projectRoot: admitted.projectRoot,
|
|
30805
30894
|
failureLabel: `ticket #${ticketNumber}`,
|
|
30895
|
+
correlationId: admitted.runId,
|
|
30806
30896
|
// Refresh holds a typed key — hand it off so identity is bound before turn.
|
|
30807
30897
|
boundTicketNumber: ticketNumber
|
|
30808
30898
|
},
|
|
@@ -30859,7 +30949,8 @@ async function runPublicCountersign(argv, env, io, parseCountersignArgv2) {
|
|
|
30859
30949
|
{
|
|
30860
30950
|
instruction: parsed.instruction,
|
|
30861
30951
|
projectRoot: admitted.projectRoot,
|
|
30862
|
-
failureLabel: "unbound summons"
|
|
30952
|
+
failureLabel: "unbound summons",
|
|
30953
|
+
correlationId: admitted.runId
|
|
30863
30954
|
},
|
|
30864
30955
|
env,
|
|
30865
30956
|
io
|
|
@@ -31070,6 +31161,188 @@ var init_countersign_run = __esm({
|
|
|
31070
31161
|
}
|
|
31071
31162
|
});
|
|
31072
31163
|
|
|
31164
|
+
// src/public-cli/secretariat-run.ts
|
|
31165
|
+
function buildSecretariatTurnRequest(admitted, options) {
|
|
31166
|
+
return projectRoleTurnRequest(
|
|
31167
|
+
admitted,
|
|
31168
|
+
{
|
|
31169
|
+
activation: {
|
|
31170
|
+
role: "secretariat",
|
|
31171
|
+
...admitted.ticketNumber === void 0 ? {} : { ticketNumber: admitted.ticketNumber }
|
|
31172
|
+
}
|
|
31173
|
+
},
|
|
31174
|
+
options
|
|
31175
|
+
);
|
|
31176
|
+
}
|
|
31177
|
+
function diaristEnv(env) {
|
|
31178
|
+
return {
|
|
31179
|
+
cwd: env.cwd,
|
|
31180
|
+
home: env.home,
|
|
31181
|
+
agentDir: env.agentDir,
|
|
31182
|
+
packageRoot: env.packageRoot,
|
|
31183
|
+
...env.credentials === void 0 ? {} : { credentials: env.credentials },
|
|
31184
|
+
...env.signal === void 0 ? {} : { signal: env.signal },
|
|
31185
|
+
...env.hostAdapters === void 0 ? {} : { hostAdapters: env.hostAdapters }
|
|
31186
|
+
};
|
|
31187
|
+
}
|
|
31188
|
+
async function runPublicSecretariat(argv, env, io, parseSecretariatArgv2) {
|
|
31189
|
+
let parsed;
|
|
31190
|
+
try {
|
|
31191
|
+
parsed = parseSecretariatArgv2(argv);
|
|
31192
|
+
} catch (error) {
|
|
31193
|
+
if (error instanceof CliUsageError) {
|
|
31194
|
+
presentStructuralRejection(error, io);
|
|
31195
|
+
return { exitCode: 2 };
|
|
31196
|
+
}
|
|
31197
|
+
throw error;
|
|
31198
|
+
}
|
|
31199
|
+
let admitted;
|
|
31200
|
+
try {
|
|
31201
|
+
admitted = await admitSecretariatInvocation({
|
|
31202
|
+
home: env.home,
|
|
31203
|
+
principalAuthority: env.principalAuthority,
|
|
31204
|
+
cwd: env.cwd,
|
|
31205
|
+
instruction: parsed.instruction,
|
|
31206
|
+
attachmentPaths: parsed.attachmentPaths,
|
|
31207
|
+
...parsed.project === void 0 ? {} : { project: parsed.project },
|
|
31208
|
+
...env.createRunId === void 0 ? {} : { createRunId: env.createRunId },
|
|
31209
|
+
...env.model === void 0 ? {} : { model: env.model },
|
|
31210
|
+
...env.correlationId === void 0 ? {} : { correlationId: env.correlationId }
|
|
31211
|
+
});
|
|
31212
|
+
} catch (error) {
|
|
31213
|
+
if (error instanceof CliUsageError) {
|
|
31214
|
+
presentStructuralRejection(error, io);
|
|
31215
|
+
return { exitCode: 2 };
|
|
31216
|
+
}
|
|
31217
|
+
throw error;
|
|
31218
|
+
}
|
|
31219
|
+
await markRunAdmitted(admitted, env.principalAuthority);
|
|
31220
|
+
const outcome = await invokeCourtDiarist(
|
|
31221
|
+
{
|
|
31222
|
+
instruction: parsed.instruction,
|
|
31223
|
+
projectRoot: admitted.projectRoot,
|
|
31224
|
+
failureLabel: "secretariat unbound summons",
|
|
31225
|
+
attachmentPaths: admitted.attachments.map((attachment) => attachment.frozenPath),
|
|
31226
|
+
correlationId: admitted.runId
|
|
31227
|
+
},
|
|
31228
|
+
diaristEnv(env),
|
|
31229
|
+
io
|
|
31230
|
+
);
|
|
31231
|
+
if (outcome.identity.kind === "escalate") {
|
|
31232
|
+
return await presentControlledFailure2(
|
|
31233
|
+
admitted,
|
|
31234
|
+
{
|
|
31235
|
+
timedOut: false,
|
|
31236
|
+
code: null,
|
|
31237
|
+
stderr: "",
|
|
31238
|
+
thrown: new Error(
|
|
31239
|
+
"court diarist station escalated (cannot identify court target)"
|
|
31240
|
+
)
|
|
31241
|
+
},
|
|
31242
|
+
secretariatAdapters(),
|
|
31243
|
+
env.principalAuthority,
|
|
31244
|
+
io
|
|
31245
|
+
);
|
|
31246
|
+
}
|
|
31247
|
+
if (outcome.failedWithoutEscalate !== void 0) {
|
|
31248
|
+
return await presentControlledFailure2(
|
|
31249
|
+
admitted,
|
|
31250
|
+
{
|
|
31251
|
+
timedOut: false,
|
|
31252
|
+
code: null,
|
|
31253
|
+
stderr: "",
|
|
31254
|
+
thrown: new Error(outcome.failedWithoutEscalate.diagnostic)
|
|
31255
|
+
},
|
|
31256
|
+
secretariatAdapters(),
|
|
31257
|
+
env.principalAuthority,
|
|
31258
|
+
io
|
|
31259
|
+
);
|
|
31260
|
+
}
|
|
31261
|
+
if (outcome.identity.kind === "ticket") {
|
|
31262
|
+
try {
|
|
31263
|
+
await bindAdmittedTicketNumber(admitted, outcome.identity.ticketNumber);
|
|
31264
|
+
await relocateAdmittedRunToTicket(admitted, env.principalAuthority);
|
|
31265
|
+
} catch (error) {
|
|
31266
|
+
return await presentControlledFailure2(
|
|
31267
|
+
admitted,
|
|
31268
|
+
{
|
|
31269
|
+
timedOut: false,
|
|
31270
|
+
code: null,
|
|
31271
|
+
stderr: "",
|
|
31272
|
+
thrown: error
|
|
31273
|
+
},
|
|
31274
|
+
secretariatAdapters(),
|
|
31275
|
+
env.principalAuthority,
|
|
31276
|
+
io
|
|
31277
|
+
);
|
|
31278
|
+
}
|
|
31279
|
+
}
|
|
31280
|
+
const turnRequest = buildSecretariatTurnRequest(admitted, {
|
|
31281
|
+
packageRoot: env.packageRoot,
|
|
31282
|
+
home: env.home,
|
|
31283
|
+
agentDir: env.agentDir,
|
|
31284
|
+
...env.model === void 0 ? {} : { model: env.model },
|
|
31285
|
+
...pickEngineAxis(env),
|
|
31286
|
+
...env.timeoutMs === void 0 ? {} : { timeoutMs: env.timeoutMs },
|
|
31287
|
+
...env.correlationId === void 0 || env.correlationId.trim() === "" ? {} : { correlationId: env.correlationId },
|
|
31288
|
+
continuation: {
|
|
31289
|
+
kind: "initial",
|
|
31290
|
+
prompt: buildSecretariatTransportPrompt(
|
|
31291
|
+
admitted,
|
|
31292
|
+
engineSessionMaterialFromOptions({
|
|
31293
|
+
...pickEngineAxis(env),
|
|
31294
|
+
packageRoot: env.packageRoot
|
|
31295
|
+
})
|
|
31296
|
+
)
|
|
31297
|
+
}
|
|
31298
|
+
});
|
|
31299
|
+
return await runPostAdmissionOneShot({
|
|
31300
|
+
admitted,
|
|
31301
|
+
env,
|
|
31302
|
+
io,
|
|
31303
|
+
request: turnRequest,
|
|
31304
|
+
adapters: secretariatAdapters(),
|
|
31305
|
+
...env.engine === void 0 ? {} : { effectiveEngine: env.engine }
|
|
31306
|
+
});
|
|
31307
|
+
}
|
|
31308
|
+
function secretariatAdapters() {
|
|
31309
|
+
return {
|
|
31310
|
+
trySettle: (admitted, authority, scope) => trySettleSecretariatTerminalResult(admitted, authority, scope),
|
|
31311
|
+
shouldPresentSettled: () => true
|
|
31312
|
+
};
|
|
31313
|
+
}
|
|
31314
|
+
async function runPublicSecretariatResume(request, env, io) {
|
|
31315
|
+
return await runPostAdmissionSeatResume({
|
|
31316
|
+
request,
|
|
31317
|
+
env,
|
|
31318
|
+
io,
|
|
31319
|
+
load: (effective) => loadResumableSecretariatRun(
|
|
31320
|
+
env.home,
|
|
31321
|
+
effective.runId,
|
|
31322
|
+
env.principalAuthority
|
|
31323
|
+
),
|
|
31324
|
+
buildTurnRequest: (admitted, effective) => buildSecretariatTurnRequest(
|
|
31325
|
+
admitted,
|
|
31326
|
+
resumeTurnRequestProjectionOptions(admitted, effective, env)
|
|
31327
|
+
),
|
|
31328
|
+
adapters: secretariatAdapters(),
|
|
31329
|
+
...env.engine === void 0 ? {} : { effectiveEngine: env.engine }
|
|
31330
|
+
});
|
|
31331
|
+
}
|
|
31332
|
+
var init_secretariat_run = __esm({
|
|
31333
|
+
"src/public-cli/secretariat-run.ts"() {
|
|
31334
|
+
"use strict";
|
|
31335
|
+
init_engine_material();
|
|
31336
|
+
init_cli_errors();
|
|
31337
|
+
init_invocation();
|
|
31338
|
+
init_countersign_run();
|
|
31339
|
+
init_post_admission();
|
|
31340
|
+
init_run_lifecycle();
|
|
31341
|
+
init_settlement();
|
|
31342
|
+
init_turn_request();
|
|
31343
|
+
}
|
|
31344
|
+
});
|
|
31345
|
+
|
|
31073
31346
|
// src/public-cli/gleaner-left-run.ts
|
|
31074
31347
|
function buildGleanerLeftTurnRequest(admitted, options) {
|
|
31075
31348
|
return projectRoleTurnRequest(
|
|
@@ -34598,6 +34871,17 @@ async function runAkRole(argv, env) {
|
|
|
34598
34871
|
(args, roleEnv, once) => runPublicDiarist(args, roleEnv, io, once)
|
|
34599
34872
|
);
|
|
34600
34873
|
}
|
|
34874
|
+
if (parsed.command === "secretariat") {
|
|
34875
|
+
return await dispatchPublicRoleCommand(
|
|
34876
|
+
env,
|
|
34877
|
+
home,
|
|
34878
|
+
io,
|
|
34879
|
+
parsed,
|
|
34880
|
+
"secretariat",
|
|
34881
|
+
PUBLIC_ROLE_ARGV.secretariat.parse,
|
|
34882
|
+
(args, roleEnv, once) => runPublicSecretariat(args, roleEnv, io, once)
|
|
34883
|
+
);
|
|
34884
|
+
}
|
|
34601
34885
|
if (parsed.command === "coder") {
|
|
34602
34886
|
return await dispatchPublicRoleCommand(
|
|
34603
34887
|
env,
|
|
@@ -34753,6 +35037,7 @@ var init_cli = __esm({
|
|
|
34753
35037
|
init_collector_run();
|
|
34754
35038
|
init_countersign_run();
|
|
34755
35039
|
init_diarist_run();
|
|
35040
|
+
init_secretariat_run();
|
|
34756
35041
|
init_gleaner_left_run();
|
|
34757
35042
|
init_doctor_run();
|
|
34758
35043
|
init_fixer_run();
|
|
@@ -34782,7 +35067,8 @@ var init_cli = __esm({
|
|
|
34782
35067
|
gatekeeper: { seat: "gatekeeper", run: runPublicInstructionSeatResume },
|
|
34783
35068
|
navigator: { seat: "navigator", run: runPublicInstructionSeatResume },
|
|
34784
35069
|
auditor: { seat: "auditor", run: runPublicInstructionSeatResume },
|
|
34785
|
-
diarist: { seat: "diarist", run: runPublicDiaristResume }
|
|
35070
|
+
diarist: { seat: "diarist", run: runPublicDiaristResume },
|
|
35071
|
+
secretariat: { seat: "secretariat", run: runPublicSecretariatResume }
|
|
34786
35072
|
};
|
|
34787
35073
|
PUBLIC_ROLE_ARGV = {
|
|
34788
35074
|
judge: { parse: parseJudgeArgv, options: optionsForOwner("judge") },
|
|
@@ -34800,6 +35086,7 @@ var init_cli = __esm({
|
|
|
34800
35086
|
navigator: { parse: parseNavigatorArgv, options: optionsForOwner("navigator") },
|
|
34801
35087
|
auditor: { parse: parseAuditorArgv, options: optionsForOwner("auditor") },
|
|
34802
35088
|
diarist: { parse: parseDiaristArgv, options: optionsForOwner("diarist") },
|
|
35089
|
+
secretariat: { parse: parseSecretariatArgv, options: optionsForOwner("secretariat") },
|
|
34803
35090
|
/** Deterministic analysis seat (#336) — argv parse only; no LLM admission. */
|
|
34804
35091
|
analyst: { parse: parseAnalystArgv, options: optionsForOwner("analyst") }
|
|
34805
35092
|
};
|