@akagilnc/pi-workflow-roles 0.1.5357 → 0.1.5365
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 +109 -223
- package/dist/doctor-contracts.js +22 -34
- package/dist/headless-host/production-host.js +109 -223
- package/dist/merger-contracts.js +11 -6
- package/dist/migrate-book-topology.js +54 -98
- package/dist/open-tool-schema.js +1 -25
- package/dist/package-contracts/fixer-output.js +21 -35
- package/dist/public-cli/main.js +63 -107
- package/package.json +1 -1
- package/src/diarist-role.ts +12 -49
- package/src/doctor-contracts.ts +38 -49
- package/src/gleaner-left-role.ts +10 -11
- package/src/merger-contracts.ts +19 -12
- package/src/open-tool-schema.ts +8 -32
- package/src/package-contracts/fixer-output.ts +49 -52
- package/src/reviewer-role.ts +16 -35
- package/src/secretariat-role.ts +16 -12
- package/src/worker-role.ts +14 -29
- package/src/worker-submission-gates.ts +14 -3
|
@@ -261,29 +261,6 @@ function described(name, schema) {
|
|
|
261
261
|
if (typeof schema.description === "string") return schema;
|
|
262
262
|
throw new Error(`Tool field ${name} has no semantic description at its schema owner`);
|
|
263
263
|
}
|
|
264
|
-
function declarationIdentity(schema) {
|
|
265
|
-
const { description: _description, ...semantic } = schema;
|
|
266
|
-
return JSON.stringify(semantic);
|
|
267
|
-
}
|
|
268
|
-
function openToolObjectFromUnion(schema) {
|
|
269
|
-
const declarations = /* @__PURE__ */ new Map();
|
|
270
|
-
for (const variant of schema.anyOf) {
|
|
271
|
-
for (const [name, declaration] of Object.entries(variant.properties ?? {})) {
|
|
272
|
-
const entries = declarations.get(name) ?? [];
|
|
273
|
-
const identity = declarationIdentity(declaration);
|
|
274
|
-
if (!entries.some((entry) => declarationIdentity(entry) === identity)) entries.push(declaration);
|
|
275
|
-
declarations.set(name, entries);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
const properties = Object.fromEntries([...declarations].map(([name, entries]) => {
|
|
279
|
-
const descriptions = [...new Set(entries.map((entry) => entry.description).filter((value) => typeof value === "string"))].join(" ");
|
|
280
|
-
const declaration = entries.length === 1 ? entries[0] : Type.Union(entries, descriptions === "" ? {} : { description: descriptions });
|
|
281
|
-
return [name, Type.Optional(described(name, declaration))];
|
|
282
|
-
}));
|
|
283
|
-
const object = Type.Object(properties, { additionalProperties: true });
|
|
284
|
-
object.required = [];
|
|
285
|
-
return object;
|
|
286
|
-
}
|
|
287
264
|
function openToolObject(schema) {
|
|
288
265
|
const object = Type.Object(
|
|
289
266
|
Object.fromEntries(Object.entries(schema.properties).map(([name, declaration]) => [
|
|
@@ -533,50 +510,36 @@ import { Type as Type6 } from "typebox";
|
|
|
533
510
|
function validateFixerOutput(value, _phase) {
|
|
534
511
|
return value;
|
|
535
512
|
}
|
|
536
|
-
var FIXER_OUTPUT_TOOL_NAME,
|
|
513
|
+
var FIXER_OUTPUT_TOOL_NAME, PARTIALLY_COMPLETED_DEFINITION, FIXER_STATUS_DESCRIPTION, fixerOutputObject, fixerOutputSchema;
|
|
537
514
|
var init_fixer_output = __esm({
|
|
538
515
|
"src/package-contracts/fixer-output.ts"() {
|
|
539
516
|
"use strict";
|
|
540
517
|
init_open_tool_schema();
|
|
541
518
|
init_terminating_infrastructure();
|
|
542
519
|
FIXER_OUTPUT_TOOL_NAME = "ak_fixer_output";
|
|
543
|
-
transportString = Type6.String();
|
|
544
|
-
authorityBlockerSchema = Type6.Object({ cause: Type6.Optional(Type6.Literal("authority_violation")), evidence: Type6.Optional(transportString) });
|
|
545
|
-
prerequisiteBlockerSchema = Type6.Object({ cause: Type6.Optional(Type6.Literal("prerequisite_unmet")), prerequisiteId: Type6.Optional(transportString), evidence: Type6.Optional(transportString) });
|
|
546
|
-
blockerSchema = Type6.Union([authorityBlockerSchema, prerequisiteBlockerSchema]);
|
|
547
|
-
exceptionSchema = Type6.Object({ where: Type6.Optional(transportString), reason: Type6.Optional(transportString) });
|
|
548
|
-
testEvidenceSchema = Type6.Object({
|
|
549
|
-
contract: Type6.Optional(Type6.String({ description: "\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6" })),
|
|
550
|
-
minimumNecessaryCost: Type6.Optional(Type6.String({ description: "\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C" })),
|
|
551
|
-
measuredDuration: Type6.Optional(Type6.String({ description: "\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F" }))
|
|
552
|
-
}, { description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002" });
|
|
553
|
-
completedClassResultSchema = Type6.Object({
|
|
554
|
-
name: Type6.Optional(transportString),
|
|
555
|
-
disposition: Type6.Optional(Type6.Literal("completed")),
|
|
556
|
-
searchScope: Type6.Optional(transportString),
|
|
557
|
-
exceptions: Type6.Optional(Type6.Array(exceptionSchema)),
|
|
558
|
-
commitSha: Type6.Optional(transportString)
|
|
559
|
-
});
|
|
560
|
-
refusedClassResultSchema = Type6.Object({
|
|
561
|
-
name: Type6.Optional(transportString),
|
|
562
|
-
disposition: Type6.Optional(Type6.Literal("refused")),
|
|
563
|
-
remainingScope: Type6.Optional(transportString),
|
|
564
|
-
blocker: Type6.Optional(blockerSchema)
|
|
565
|
-
});
|
|
566
|
-
classResultSchema = Type6.Union([completedClassResultSchema, refusedClassResultSchema]);
|
|
567
|
-
completedClassResultsSchema = Type6.Array(completedClassResultSchema);
|
|
568
520
|
PARTIALLY_COMPLETED_DEFINITION = "partially_completed \u53EA\u80FD\u5728\u6709\u5408\u6CD5\u62D2\u7EDD\u9879\uFF08\u5B8C\u6210\u9879\u4E0E\u5408\u6CD5\u62D2\u7EDD\u9879\u5E76\u5B58\uFF09\u65F6\u7528\uFF0C\u522B\u7684\u60C5\u51B5\u4E0D\u51C6\u7528\u3002";
|
|
569
521
|
FIXER_STATUS_DESCRIPTION = `planned | completed | refused | unfinished | partially_completed\u3002unfinished \u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u65F6\u53EF\u7528\uFF0C\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
522
|
+
fixerOutputObject = Type6.Object({
|
|
523
|
+
status: Type6.Unknown({ description: FIXER_STATUS_DESCRIPTION }),
|
|
524
|
+
report: Type6.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
525
|
+
remainingScope: Type6.Unknown({
|
|
526
|
+
description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C\uFF1B\u4F9D\u6CD5\u4E0D\u80FD\u5B8C\u6210\u7684\u8303\u56F4\u4E5F\u5199\u6B64\u5904\u3002"
|
|
527
|
+
}),
|
|
528
|
+
blocker: Type6.Unknown({
|
|
529
|
+
description: "\u5408\u6CD5\u963B\u65AD\u5B8C\u6210\u7684 blocker\uFF0C\u539F\u6837\u7559\u5B58\u3002\u53EF\u5199 cause\uFF08authority_violation \u6216 prerequisite_unmet\uFF09\u3001evidence\uFF1Bprerequisite_unmet \u8FD8\u53EF\u5199 prerequisiteId\u3002"
|
|
530
|
+
}),
|
|
531
|
+
reason: Type6.Unknown({
|
|
532
|
+
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
533
|
+
}),
|
|
534
|
+
classResults: Type6.Unknown({
|
|
535
|
+
description: "\u5404\u7C7B class \u7ED3\u7B97\uFF0C\u539F\u6837\u7559\u5B58\u3002\u5B8C\u6210\u9879\u7684 disposition \u4E3A completed\uFF0C\u53EF\u5199 name\u3001searchScope\u3001exceptions\uFF08where\u3001reason\uFF09\u3001commitSha\u3002\u62D2\u7EDD\u9879\u7684 disposition \u4E3A refused\uFF0C\u53EF\u5199 name\u3001remainingScope\u3001blocker\u3002"
|
|
536
|
+
}),
|
|
537
|
+
testEvidence: Type6.Unknown({
|
|
538
|
+
description: "\u6D4B\u8BD5\u8BC1\u636E\u6761\uFF1Bdiff \u542B\u6D4B\u8BD5\u6539\u52A8\u65F6\u63D0\u4EA4\uFF1B\u673A\u5668\u4E0D\u6838\u9A8C\u3002\u53EF\u5199 contract\uFF08\u6D4B\u8BD5\u6539\u52A8\u6240\u8BC1\u660E\u7684\u5951\u7EA6\uFF09\u3001minimumNecessaryCost\uFF08\u6D4B\u8BD5\u6539\u52A8\u7684\u4E00\u884C\u6700\u5C0F\u5FC5\u8981\u6210\u672C\uFF09\u3001measuredDuration\uFF08\u805A\u7126\u9A8C\u8BC1\u5B9E\u6D4B\u65F6\u957F\uFF09\u3002"
|
|
539
|
+
})
|
|
540
|
+
});
|
|
578
541
|
fixerOutputSchema = withTerminatingOutputDeclarations(
|
|
579
|
-
|
|
542
|
+
openToolObject(fixerOutputObject)
|
|
580
543
|
);
|
|
581
544
|
}
|
|
582
545
|
});
|
|
@@ -694,7 +657,7 @@ function validateDoctorSubmissionShape(value) {
|
|
|
694
657
|
function validateDoctorOutput(value, _patient, _store) {
|
|
695
658
|
return validateDoctorSubmissionShape(value);
|
|
696
659
|
}
|
|
697
|
-
var DOCTOR_EVIDENCE_TOOL_NAME, DOCTOR_OUTPUT_TOOL_NAME, DOCTOR_AUDIT_TOOL_NAME, DOCTOR_OUTPUT_TOOL_DESCRIPTION, DOCTOR_TARGET_KINDS,
|
|
660
|
+
var DOCTOR_EVIDENCE_TOOL_NAME, DOCTOR_OUTPUT_TOOL_NAME, DOCTOR_AUDIT_TOOL_NAME, DOCTOR_OUTPUT_TOOL_DESCRIPTION, DOCTOR_TARGET_KINDS, DOCTOR_DISPOSITIONS, DOCTOR_PRESCRIPTION_KINDS, biteActual, biteNone, DOCTOR_BITE_KINDS, DOCTOR_STATUS_DESCRIPTION, doctorSubmissionObject, doctorSubmissionSchema, doctorEvidenceReadSchema, DoctorEvidenceStore;
|
|
698
661
|
var init_doctor_contracts = __esm({
|
|
699
662
|
"src/doctor-contracts.ts"() {
|
|
700
663
|
"use strict";
|
|
@@ -706,41 +669,29 @@ var init_doctor_contracts = __esm({
|
|
|
706
669
|
DOCTOR_AUDIT_TOOL_NAME = "ak_doctor_audit_decision";
|
|
707
670
|
DOCTOR_OUTPUT_TOOL_DESCRIPTION = "\u63D0\u4EA4\u552F\u4E00\u7EC8\u5C40\u5355\u6848\u8BC1\u8BCD\uFF1Bcompleted \u5141\u8BB8\u7A7A findings\u3002";
|
|
708
671
|
DOCTOR_TARGET_KINDS = ["law", "gate", "template", "station", "seat"];
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
Type8.Object({ kind: Type8.Optional(Type8.Literal("noRealBite")), targetKey: nonblank, eligibleEvidenceIds: evidenceIds }, { additionalProperties: true })
|
|
715
|
-
]);
|
|
716
|
-
assetKinds = DOCTOR_TARGET_KINDS;
|
|
717
|
-
findingBody = {
|
|
718
|
-
evidenceIds,
|
|
719
|
-
disposition: Type8.Optional(Type8.Union([Type8.Literal("keep"), Type8.Literal("thin"), Type8.Literal("delete")])),
|
|
720
|
-
guardrails: Type8.Optional(Type8.Object({ reproducibleFailure: guardrail, owningSeamOrInvariant: guardrail, deletionOrSimplificationSuffices: guardrail }, { additionalProperties: true })),
|
|
721
|
-
prescription: Type8.Optional(Type8.Object({ kind: Type8.Optional(Type8.Union([Type8.Literal("retain"), Type8.Literal("delete"), Type8.Literal("simplify"), Type8.Literal("patch"), Type8.Literal("addMechanism")])), recommendation: nonblank, necessityExplanation: nonblank }, { additionalProperties: true })),
|
|
722
|
-
lastRealBite: Type8.Optional(lastRealBite)
|
|
723
|
-
};
|
|
724
|
-
finding = Type8.Union([
|
|
725
|
-
Type8.Object({ targetKey: nonblank, observation: nonblank, evidenceIds }, { additionalProperties: true }),
|
|
726
|
-
Type8.Object({ targetKey: nonblank, targetKind: Type8.Optional(Type8.Union(assetKinds.map((kind) => Type8.Literal(kind)))), assetEvidence: Type8.Optional(Type8.Object({ targetKey: nonblank, targetKind: Type8.Optional(Type8.Union(assetKinds.map((kind) => Type8.Literal(kind)))), evidenceId: nonblank }, { additionalProperties: true })), ...findingBody }, { additionalProperties: true })
|
|
727
|
-
]);
|
|
728
|
-
caseIdentity = Type8.Object({ issueNumber: Type8.Optional(Type8.Integer()), runsPath: nonblank }, { additionalProperties: true });
|
|
672
|
+
DOCTOR_DISPOSITIONS = ["keep", "thin", "delete"];
|
|
673
|
+
DOCTOR_PRESCRIPTION_KINDS = ["retain", "delete", "simplify", "patch", "addMechanism"];
|
|
674
|
+
biteActual = "actual";
|
|
675
|
+
biteNone = "noRealBite";
|
|
676
|
+
DOCTOR_BITE_KINDS = [biteActual, biteNone];
|
|
729
677
|
DOCTOR_STATUS_DESCRIPTION = "completed | refused\u3002completed \u5141\u8BB8\u7A7A findings\uFF1Brefused \u4EC5\u5F53\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u6848\u8BC1\u8BCD";
|
|
730
|
-
|
|
731
|
-
Type8.
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
},
|
|
741
|
-
|
|
678
|
+
doctorSubmissionObject = Type8.Object({
|
|
679
|
+
status: Type8.Unknown({ description: DOCTOR_STATUS_DESCRIPTION }),
|
|
680
|
+
case: Type8.Unknown({
|
|
681
|
+
description: "\u7559\u5B58\u592A\u533B\u7F72\u6848\u8EAB\u4EFD\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982 issueNumber\u3001runsPath\uFF09\u3002\u673A\u68B0\u5C42\u53E6\u6309\u7ED1\u5B9A run \u6295\u5F71\u6848\u8EAB\u4EFD\uFF0C\u4E0D\u5728\u672C\u5B57\u6BB5\u91CD\u5224\u3002"
|
|
682
|
+
}),
|
|
683
|
+
findings: Type8.Unknown({
|
|
684
|
+
description: `\u9010\u6761\u8D44\u4EA7\u89C2\u5BDF\u4E0E\u5904\u65B9\uFF0C\u539F\u6837\u7559\u5B58\u3002\u4E00\u6761\u53EF\u542B targetKey\u3001targetKind\uFF08${DOCTOR_TARGET_KINDS.join(" | ")}\uFF09\u3001observation\u3001evidenceIds\u3001disposition\uFF08${DOCTOR_DISPOSITIONS.join(" | ")}\uFF09\u3001assetEvidence\uFF08targetKey\u3001targetKind\u3001evidenceId\uFF09\u3001guardrails\uFF08reproducibleFailure\u3001owningSeamOrInvariant\u3001deletionOrSimplificationSuffices\uFF0C\u5404\u9879\u53EF\u542B answer\u3001evidenceIds\u3001explanation\uFF09\u3001prescription\uFF08kind \u4E3A ${DOCTOR_PRESCRIPTION_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 recommendation\u3001necessityExplanation\uFF09\u3001lastRealBite\uFF08kind \u4E3A ${DOCTOR_BITE_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 targetKey\u3001evidenceId\u3001eligibleEvidenceIds\uFF09\u3002\u4E0D\u8981\u6C42\u4EFB\u4F55\u5904\u65B9\u6216\u53EF\u590D\u7528 finding\uFF1B\u7F3A\u53EF\u590D\u7528\u8D44\u4EA7\u6216 bounded-bite \u8BC1\u636E\u53EA\u6392\u9664\u5BF9\u5E94\u8D44\u4EA7\u5904\u65B9\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002`
|
|
685
|
+
}),
|
|
686
|
+
reason: Type8.Unknown({
|
|
687
|
+
description: "\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u8BC1\u8BCD\u7684\u539F\u56E0\uFF1B\u4EC5 refused \u65F6\u7528\u3002"
|
|
688
|
+
}),
|
|
689
|
+
missingEvidence: Type8.Unknown({
|
|
690
|
+
description: "\u5982\u5B9E\u8BC1\u8BCD\u6240\u9700\u800C\u5C1A\u7F3A\u7684\u8BC1\u636E\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982\u6BCF\u9879 need\u3001targetKeys\uFF09\u3002"
|
|
691
|
+
})
|
|
692
|
+
});
|
|
742
693
|
doctorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
743
|
-
|
|
694
|
+
openToolObject(doctorSubmissionObject)
|
|
744
695
|
);
|
|
745
696
|
doctorEvidenceReadSchema = Type8.Object({ evidenceId: Type8.String({ minLength: 1, description: "\u5F85\u8BFB\u7559\u5B58\u8BC1\u636E\u6807\u8BC6" }), offset: Type8.Optional(Type8.Integer({ minimum: 0, description: "\u8D77\u59CB\u5B57\u8282\u504F\u79FB\uFF08\u4ECE 0 \u8BA1\uFF09" })), limit: Type8.Optional(Type8.Integer({ minimum: 1, description: "\u8FD4\u56DE\u5B57\u8282\u6570\uFF08\u65E0\u4E0A\u9650\uFF09" })) }, { additionalProperties: true });
|
|
746
697
|
DoctorEvidenceStore = class {
|
|
@@ -834,7 +785,7 @@ function validateMergerInput(value) {
|
|
|
834
785
|
const authorizedChecks = Array.isArray(value.authorizedChecks) ? value.authorizedChecks.filter((check) => record(check)).map((c) => ({ name: asString(c.name), argv: asStringArray(c.argv).filter((a) => a.trim().length > 0) })).filter((c) => c.name.trim().length > 0 && c.argv.length > 0) : [];
|
|
835
786
|
return deepFreeze(structuredClone({ attemptId: value.attemptId.trim(), targetObjectId: asString(value.targetObjectId), sourceObjectId: asString(value.sourceObjectId), materials, expectedConflictPaths: asStringArray(value.expectedConflictPaths), resolutionScope: asStringArray(value.resolutionScope), authorizedChecks }));
|
|
836
787
|
}
|
|
837
|
-
var materialSchema, checkSchema, mergerInputSchema, MERGER_STATUS_DESCRIPTION,
|
|
788
|
+
var materialSchema, checkSchema, mergerInputSchema, MERGER_STATUS_DESCRIPTION, mergerOutputObject, mergerOutputSchema, MERGER_OUTPUT_TOOL_NAME, record, blank, MergerInputContractError, asString, asStringArray;
|
|
838
789
|
var init_merger_contracts = __esm({
|
|
839
790
|
"src/merger-contracts.ts"() {
|
|
840
791
|
"use strict";
|
|
@@ -853,11 +804,16 @@ var init_merger_contracts = __esm({
|
|
|
853
804
|
authorizedChecks: Type9.Array(checkSchema)
|
|
854
805
|
}, { additionalProperties: false });
|
|
855
806
|
MERGER_STATUS_DESCRIPTION = "completed | escalate";
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
807
|
+
mergerOutputObject = Type9.Object({
|
|
808
|
+
status: Type9.Unknown({ description: MERGER_STATUS_DESCRIPTION }),
|
|
809
|
+
attemptId: Type9.Unknown({ description: "\u5DF2\u53D7\u7406\u5408\u5E76 attempt \u8EAB\u4EFD" }),
|
|
810
|
+
report: Type9.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
811
|
+
mergeCommitId: Type9.Unknown({ description: "\u5B8C\u6210\u5408\u5E76 commit object ID" }),
|
|
812
|
+
diagnosis: Type9.Unknown({
|
|
813
|
+
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"
|
|
814
|
+
})
|
|
815
|
+
});
|
|
816
|
+
mergerOutputSchema = withTerminatingOutputDeclarations(openToolObject(mergerOutputObject));
|
|
861
817
|
MERGER_OUTPUT_TOOL_NAME = "ak_merger_output";
|
|
862
818
|
record = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
863
819
|
blank = (v) => typeof v !== "string" || v.trim().length === 0;
|
|
@@ -6993,7 +6949,7 @@ async function admitPublicRole(role, parsed, env, override) {
|
|
|
6993
6949
|
if (parsed.runs === void 0) {
|
|
6994
6950
|
ensureRealDirectoryTree(placed.ledgerHome, caseRunsPath);
|
|
6995
6951
|
}
|
|
6996
|
-
let
|
|
6952
|
+
let caseIdentity;
|
|
6997
6953
|
try {
|
|
6998
6954
|
const patient = await loadDoctorCase(caseRunsPath);
|
|
6999
6955
|
if (patient.identity.issueNumber !== issueNumber) {
|
|
@@ -7001,7 +6957,7 @@ async function admitPublicRole(role, parsed, env, override) {
|
|
|
7001
6957
|
`doctor case issue ${patient.identity.issueNumber} does not match --issue ${issueNumber}`
|
|
7002
6958
|
);
|
|
7003
6959
|
}
|
|
7004
|
-
|
|
6960
|
+
caseIdentity = patient.identity;
|
|
7005
6961
|
caseRunsPath = await realpath4(caseRunsPath);
|
|
7006
6962
|
} catch (error) {
|
|
7007
6963
|
if (error instanceof CliUsageError) throw error;
|
|
@@ -7015,7 +6971,7 @@ async function admitPublicRole(role, parsed, env, override) {
|
|
|
7015
6971
|
return {
|
|
7016
6972
|
issueNumber,
|
|
7017
6973
|
caseRunsPath,
|
|
7018
|
-
caseIdentity
|
|
6974
|
+
caseIdentity,
|
|
7019
6975
|
attachments: persistedAttachmentRefs(frozenAttachments)
|
|
7020
6976
|
};
|
|
7021
6977
|
}
|
|
@@ -19439,7 +19395,7 @@ async function loadResumableRunRecord(home, runId, authority) {
|
|
|
19439
19395
|
let waitWindowMs;
|
|
19440
19396
|
let issueNumber;
|
|
19441
19397
|
let caseRunsPath;
|
|
19442
|
-
let
|
|
19398
|
+
let caseIdentity;
|
|
19443
19399
|
let sourceRunPath;
|
|
19444
19400
|
let sourceRun;
|
|
19445
19401
|
try {
|
|
@@ -19510,7 +19466,7 @@ async function loadResumableRunRecord(home, runId, authority) {
|
|
|
19510
19466
|
if (record4.caseIdentity !== null && typeof record4.caseIdentity === "object" && !Array.isArray(record4.caseIdentity)) {
|
|
19511
19467
|
const ci = record4.caseIdentity;
|
|
19512
19468
|
if (typeof ci.issueNumber === "number" && Number.isSafeInteger(ci.issueNumber) && ci.issueNumber >= 1 && typeof ci.runsPath === "string" && ci.runsPath.trim() !== "") {
|
|
19513
|
-
|
|
19469
|
+
caseIdentity = { issueNumber: ci.issueNumber, runsPath: ci.runsPath };
|
|
19514
19470
|
}
|
|
19515
19471
|
}
|
|
19516
19472
|
if (typeof record4.sourceRunPath === "string" && record4.sourceRunPath.trim() !== "") {
|
|
@@ -19639,7 +19595,7 @@ async function loadResumableRunRecord(home, runId, authority) {
|
|
|
19639
19595
|
...waitWindowMs === void 0 ? {} : { waitWindowMs },
|
|
19640
19596
|
...issueNumber === void 0 ? {} : { issueNumber },
|
|
19641
19597
|
...caseRunsPath === void 0 ? {} : { caseRunsPath },
|
|
19642
|
-
...
|
|
19598
|
+
...caseIdentity === void 0 ? {} : { caseIdentity },
|
|
19643
19599
|
...sourceRunPath === void 0 ? {} : { sourceRunPath },
|
|
19644
19600
|
...sourceRun === void 0 ? {} : { sourceRun },
|
|
19645
19601
|
...model === void 0 ? {} : { model }
|
|
@@ -19861,8 +19817,8 @@ function admitResumedRole(loaded) {
|
|
|
19861
19817
|
return admitted;
|
|
19862
19818
|
}
|
|
19863
19819
|
case "case-identity": {
|
|
19864
|
-
const { issueNumber, caseRunsPath, caseIdentity
|
|
19865
|
-
if (issueNumber === void 0 || caseRunsPath === void 0 ||
|
|
19820
|
+
const { issueNumber, caseRunsPath, caseIdentity } = fields;
|
|
19821
|
+
if (issueNumber === void 0 || caseRunsPath === void 0 || caseIdentity === void 0) {
|
|
19866
19822
|
throw new CliUsageError(
|
|
19867
19823
|
`role run admitted doctor case identity is missing: ${runId}`
|
|
19868
19824
|
);
|
|
@@ -19872,7 +19828,7 @@ function admitResumedRole(loaded) {
|
|
|
19872
19828
|
...base,
|
|
19873
19829
|
issueNumber,
|
|
19874
19830
|
caseRunsPath,
|
|
19875
|
-
caseIdentity
|
|
19831
|
+
caseIdentity
|
|
19876
19832
|
};
|
|
19877
19833
|
return admitted;
|
|
19878
19834
|
}
|
|
@@ -21407,16 +21363,9 @@ var gleanerLeftOutputSchema = withTerminatingOutputDeclarations(
|
|
|
21407
21363
|
status: Type15.Unknown({
|
|
21408
21364
|
description: "completed"
|
|
21409
21365
|
}),
|
|
21410
|
-
findings: Type15.
|
|
21411
|
-
|
|
21412
|
-
|
|
21413
|
-
pointer: Type15.Optional(Type15.String({ description: "\u6587\u4EF6/\u884C\u6307\u9488" })),
|
|
21414
|
-
statement: Type15.Optional(Type15.String({ description: "\u7591\u70B9\u9648\u8FF0" }))
|
|
21415
|
-
},
|
|
21416
|
-
{ additionalProperties: true, description: "\u4E00\u6761\u5F39\u7AE0" }
|
|
21417
|
-
),
|
|
21418
|
-
{ description: "\u5F39\u7AE0\u5217\u8868\uFF1B\u7A7A\u5217\u8868\u5408\u6CD5\u5B8C\u5C40" }
|
|
21419
|
-
)
|
|
21366
|
+
findings: Type15.Unknown({
|
|
21367
|
+
description: "\u5F39\u7AE0\u5217\u8868\uFF1B\u6BCF\u6761\u53EF\u542B pointer\uFF08\u6587\u4EF6/\u884C\u6307\u9488\uFF09\u4E0E statement\uFF08\u7591\u70B9\u9648\u8FF0\uFF09\uFF0C\u539F\u6837\u7559\u5B58\u3002\u7A7A\u5217\u8868\u5408\u6CD5\u5B8C\u5C40\uFF1B\u673A\u5668\u4E0D\u5224\u5F39\u7AE0\u662F\u5426\u6210\u7ACB\u3002"
|
|
21368
|
+
})
|
|
21420
21369
|
})
|
|
21421
21370
|
)
|
|
21422
21371
|
);
|
|
@@ -21452,37 +21401,7 @@ init_terminating_infrastructure();
|
|
|
21452
21401
|
init_diarist_contracts();
|
|
21453
21402
|
init_diarist_contracts();
|
|
21454
21403
|
import { Type as Type16 } from "typebox";
|
|
21455
|
-
var
|
|
21456
|
-
Type16.Object(
|
|
21457
|
-
{
|
|
21458
|
-
path: Type16.Optional(Type16.String({ description: "\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84" })),
|
|
21459
|
-
ranges: Type16.Optional(
|
|
21460
|
-
Type16.Array(
|
|
21461
|
-
Type16.Object(
|
|
21462
|
-
{
|
|
21463
|
-
from: Type16.Optional(
|
|
21464
|
-
Type16.Object(
|
|
21465
|
-
{ id: Type16.Optional(Type16.String()), line: Type16.Optional(Type16.Unknown()) },
|
|
21466
|
-
{ additionalProperties: true, description: "\u8D77\u70B9\uFF1A\u539F\u751F id \u6216\u672C\u8F6E\u884C\u53F7\u4E8C\u9009\u4E00" }
|
|
21467
|
-
)
|
|
21468
|
-
),
|
|
21469
|
-
to: Type16.Optional(
|
|
21470
|
-
Type16.Object(
|
|
21471
|
-
{ id: Type16.Optional(Type16.String()), line: Type16.Optional(Type16.Unknown()) },
|
|
21472
|
-
{ additionalProperties: true, description: "\u7EC8\u70B9\uFF1A\u539F\u751F id \u6216\u672C\u8F6E\u884C\u53F7\u4E8C\u9009\u4E00" }
|
|
21473
|
-
)
|
|
21474
|
-
)
|
|
21475
|
-
},
|
|
21476
|
-
{ additionalProperties: true, description: "\u4E00\u6BB5\u5BF9\u8BDD\u533A\u95F4" }
|
|
21477
|
-
),
|
|
21478
|
-
{ description: "\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF1B\u81F3\u5C11\u4E00\u6BB5" }
|
|
21479
|
-
)
|
|
21480
|
-
)
|
|
21481
|
-
},
|
|
21482
|
-
{ additionalProperties: true, description: "\u4E00\u5377\u4F1A\u8BDD\u7684\u8FB9\u754C" }
|
|
21483
|
-
),
|
|
21484
|
-
{ description: "\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002" }
|
|
21485
|
-
);
|
|
21404
|
+
var DIARIST_SESSIONS_DESCRIPTION = "\u5BF9\u8BDD\u8FB9\u754C\u3002\u6BCF\u5377\u542B path\uFF08\u4F1A\u8BDD\u5377\u7EDD\u5BF9\u6216\u53EF\u8BFB\u8DEF\u5F84\uFF09\u4E0E ranges\uFF08\u672C\u5377\u672C\u8F6E\u5404\u533A\u95F4\uFF09\u3002\u6BCF\u6BB5\u533A\u95F4\u542B from / to\uFF1B\u8D77\u70B9\u4E0E\u7EC8\u70B9\u5404\u5199 id\uFF08\u539F\u751F id\uFF09\u6216 line\uFF08\u672C\u8F6E\u884C\u53F7\uFF09\uFF0C\u4E8C\u9009\u4E00\u3002\u7A7A\u5217\u8868\uFF1D\u672C\u8F6E\u65E0\u5BF9\u8BDD\u53EF\u5212\u3002\u7AEF\u70B9\u65E0\u6CD5\u6307\u540D\u65F6\u8D70 reask\uFF0C\u4E0D\u4E2D\u6B62\u3002";
|
|
21486
21405
|
var diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
21487
21406
|
openToolObject(
|
|
21488
21407
|
Type16.Object({
|
|
@@ -21494,24 +21413,13 @@ var diaristOutputSchema = withTerminatingOutputDeclarations(
|
|
|
21494
21413
|
description: "\u672C\u5EAD\u5BF9\u8C61\u7968\u53F7\uFF08\u6B63\u6574\u6570\uFF09\u6216 null/\u7701\u7565\uFF1D\u771F\u65E0\u7968\uFF1B\u4E0B\u6E38\u8D70 typed \u952E\uFF1B\u8BA4\u4E0D\u51FA\u7528 status=escalate\uFF0C\u4E0D\u6D17\u6210\u65E0\u5F55\u3002\u673A\u68B0\u5C42\u4E0D\u91CD\u5224\u3002"
|
|
21495
21414
|
})
|
|
21496
21415
|
),
|
|
21497
|
-
reason: Type16.
|
|
21498
|
-
|
|
21499
|
-
|
|
21500
|
-
|
|
21501
|
-
|
|
21502
|
-
|
|
21503
|
-
|
|
21504
|
-
Type16.Array(
|
|
21505
|
-
Type16.Object(
|
|
21506
|
-
{
|
|
21507
|
-
ticketNumber: Type16.Unknown({ description: "\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF08\u6B63\u6574\u6570\uFF09" }),
|
|
21508
|
-
sessions: diaristSessionsSchema
|
|
21509
|
-
},
|
|
21510
|
-
{ additionalProperties: true }
|
|
21511
|
-
),
|
|
21512
|
-
{ description: "\u591A\u7968\u5EAD\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002\u4E0E\u5355\u7968 sessions \u4E8C\u9009\u4E00\u3002" }
|
|
21513
|
-
)
|
|
21514
|
-
)
|
|
21416
|
+
reason: Type16.Unknown({
|
|
21417
|
+
description: "status \u4E3A escalate \u65F6\uFF1A\u8BA4\u4E0D\u51FA\u672C\u5EAD\u5BF9\u8C61\u7684\u539F\u56E0"
|
|
21418
|
+
}),
|
|
21419
|
+
sessions: Type16.Optional(Type16.Unknown({ description: DIARIST_SESSIONS_DESCRIPTION })),
|
|
21420
|
+
ticketSessions: Type16.Unknown({
|
|
21421
|
+
description: `\u591A\u7968\u5EAD\u9010\u7968\u5BF9\u8BDD\u8FB9\u754C\uFF1B\u6BCF\u7968\u542B ticketNumber\uFF08\u672C\u6761\u8FB9\u754C\u6240\u5F52\u7968\u53F7\uFF0C\u6B63\u6574\u6570\uFF09\u4E0E sessions\uFF08${DIARIST_SESSIONS_DESCRIPTION}\uFF09\u3002\u4E00\u6B21\u4EA4\u5377\u5404\u7968\u5404\u81EA\u5206\u5F55\u3002\u4E0E\u5355\u7968 sessions \u4E8C\u9009\u4E00\u3002`
|
|
21422
|
+
})
|
|
21515
21423
|
})
|
|
21516
21424
|
)
|
|
21517
21425
|
);
|
|
@@ -21535,19 +21443,13 @@ var secretariatVerdictSchema = withTerminatingOutputDeclarations(
|
|
|
21535
21443
|
description: "converged | escalate"
|
|
21536
21444
|
}),
|
|
21537
21445
|
ticketNumber: Type17.Optional(
|
|
21538
|
-
Type17.
|
|
21446
|
+
Type17.Unknown({ description: "\u672C\u7968\u53F7\uFF1B\u7F72\u65F6\u6307\u5411\u6700\u7EC8\u6B63\u6587\u6240\u5728\u7968" })
|
|
21539
21447
|
),
|
|
21540
|
-
note: Type17.
|
|
21448
|
+
note: Type17.Unknown({ description: "\u9644\u6CE8" }),
|
|
21541
21449
|
evidence: Type17.Optional(Type17.Unknown({ description: "\u7559\u5B58\u8BC1\u636E" })),
|
|
21542
|
-
decisionGate: Type17.
|
|
21543
|
-
|
|
21544
|
-
|
|
21545
|
-
question: Type17.Optional(Type17.String()),
|
|
21546
|
-
options: Type17.Optional(Type17.Array(Type17.String()))
|
|
21547
|
-
},
|
|
21548
|
-
{ additionalProperties: true, description: "\u9700\u965B\u4E0B\u5904\u7F6E\u7684\u95EE\u9898\u4E0E\u9009\u9879" }
|
|
21549
|
-
)
|
|
21550
|
-
)
|
|
21450
|
+
decisionGate: Type17.Unknown({
|
|
21451
|
+
description: "\u9700\u965B\u4E0B\u5904\u7F6E\u7684\u95EE\u9898\u4E0E\u9009\u9879\uFF1B\u53EF\u5199 question \u4E0E options\uFF0C\u539F\u6837\u7559\u5B58\u3002"
|
|
21452
|
+
})
|
|
21551
21453
|
},
|
|
21552
21454
|
{ additionalProperties: true }
|
|
21553
21455
|
)
|
|
@@ -22573,31 +22475,17 @@ init_open_tool_schema();
|
|
|
22573
22475
|
init_terminating_infrastructure();
|
|
22574
22476
|
init_reviewer_output();
|
|
22575
22477
|
import { Type as Type20 } from "typebox";
|
|
22576
|
-
var
|
|
22577
|
-
completeness: Type20.Optional(Type20.String({
|
|
22578
|
-
description: "completeness lens \u5B8C\u6574\u62A5\u544A\uFF1Acandidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict\uFF1B\u975E\u4EC5 verdict \u4E00\u884C\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u82E5\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u4E8E\u6B64"
|
|
22579
|
-
})),
|
|
22580
|
-
correctness: Type20.Optional(Type20.String({
|
|
22581
|
-
description: "correctness lens \u5B8C\u6574\u62A5\u544A\uFF1Acandidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict\uFF1B\u975E\u4EC5 verdict \u4E00\u884C\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u82E5\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u4E8E\u6B64"
|
|
22582
|
-
}))
|
|
22583
|
-
}, {
|
|
22584
|
-
additionalProperties: true,
|
|
22585
|
-
description: "\u5DF2\u8FD0\u884C lens \u7684 amendments \u627F\u8F7D candidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict \u7684\u5B8C\u6574\u62A5\u544A\uFF08\u975E\u4EC5 verdict \u884C\uFF09\uFF1B\u663E\u5F0F\u5355\u8F74\u65F6\u53E6\u4E00\u8F74\u53EF\u7701\u7565\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u5BF9\u5E94 lens \u5B57\u6BB5\u3002"
|
|
22586
|
-
});
|
|
22478
|
+
var REVIEWER_AMENDMENTS_DESCRIPTION = "\u5DF2\u8FD0\u884C lens \u7684 amendments \u627F\u8F7D candidates\u3001\u9010\u6761\u5904\u7F6E\u4E0E verdict \u7684\u5B8C\u6574\u62A5\u544A\uFF08\u975E\u4EC5 verdict \u884C\uFF09\uFF1B\u663E\u5F0F\u5355\u8F74\u65F6\u53E6\u4E00\u8F74\u53EF\u7701\u7565\uFF08completeness / correctness\uFF09\u3002hard-stop\uFF0Fusage error \u4E3A refused \u65F6\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u5BF9\u5E94 lens \u5B57\u6BB5\u3002";
|
|
22587
22479
|
var REVIEWER_STATUS_DESCRIPTION = "completed | refused\u3002\u4E24\u79CD\u6B63\u5E38 lens verdict\uFF08completeness / correctness\uFF09\u5747 completed\uFF1Bhard-stop \u4E0E usage error \u4E3A refused\uFF08\u5DF2\u4EA7\u51FA\u62A5\u544A\u4ECD\u7167\u5F55\u8FDB\u6240\u9009 lens amendments\uFF09\u3002";
|
|
22588
|
-
var
|
|
22589
|
-
Type20.
|
|
22590
|
-
|
|
22591
|
-
|
|
22592
|
-
|
|
22593
|
-
|
|
22594
|
-
|
|
22595
|
-
diagnostic: Type20.String({ description: "\u62D2\u7EDD\u8BCA\u65AD\u8BF4\u660E\uFF1Bhard-stop\uFF0Fusage error \u539F\u56E0\u8FDB\u6B64\u5B57\u6BB5\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u53E6\u7167\u5F55 amendments" }),
|
|
22596
|
-
amendments: Type20.Optional(reviewerAmendmentsSchema)
|
|
22597
|
-
}, { additionalProperties: false })
|
|
22598
|
-
]);
|
|
22480
|
+
var reviewerOutputObject = Type20.Object({
|
|
22481
|
+
status: Type20.Unknown({ description: REVIEWER_STATUS_DESCRIPTION }),
|
|
22482
|
+
amendments: Type20.Unknown({ description: REVIEWER_AMENDMENTS_DESCRIPTION }),
|
|
22483
|
+
diagnostic: Type20.Unknown({
|
|
22484
|
+
description: "\u62D2\u7EDD\u8BCA\u65AD\u8BF4\u660E\uFF1Bhard-stop\uFF0Fusage error \u539F\u56E0\u8FDB\u6B64\u5B57\u6BB5\uFF0C\u5DF2\u4EA7\u51FA\u62A5\u544A\u53E6\u7167\u5F55 amendments"
|
|
22485
|
+
})
|
|
22486
|
+
});
|
|
22599
22487
|
var reviewerOutputSchema = withTerminatingOutputDeclarations(
|
|
22600
|
-
|
|
22488
|
+
openToolObject(reviewerOutputObject)
|
|
22601
22489
|
);
|
|
22602
22490
|
function createReviewerRoleRuntime(pi, dependencies, _hostActions) {
|
|
22603
22491
|
let soul;
|
|
@@ -22751,10 +22639,19 @@ function uninstallPackageWorkerHooks(cwd) {
|
|
|
22751
22639
|
function isRecord15(value) {
|
|
22752
22640
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
22753
22641
|
}
|
|
22642
|
+
function containsWrittenReason(value) {
|
|
22643
|
+
if (typeof value === "string") return value.trim().length > 0;
|
|
22644
|
+
if (Array.isArray(value)) return value.some(containsWrittenReason);
|
|
22645
|
+
if (typeof value === "object" && value !== null) {
|
|
22646
|
+
return Object.entries(value).some(
|
|
22647
|
+
([key, item]) => containsWrittenReason(key) || containsWrittenReason(item)
|
|
22648
|
+
);
|
|
22649
|
+
}
|
|
22650
|
+
return false;
|
|
22651
|
+
}
|
|
22754
22652
|
function unfinishedReasonPresent(details) {
|
|
22755
|
-
if (typeof details !== "object" || details === null) return false;
|
|
22756
|
-
|
|
22757
|
-
return typeof reason === "string" && reason.trim().length > 0;
|
|
22653
|
+
if (typeof details !== "object" || details === null || Array.isArray(details)) return false;
|
|
22654
|
+
return containsWrittenReason(details.reason);
|
|
22758
22655
|
}
|
|
22759
22656
|
function readGateState(session) {
|
|
22760
22657
|
let baseline;
|
|
@@ -22908,27 +22805,16 @@ function fixerBashSeatbeltDenyReason(matched) {
|
|
|
22908
22805
|
|
|
22909
22806
|
// src/worker-role.ts
|
|
22910
22807
|
var CODER_STATUS_DESCRIPTION = `planned | completed | refused | partially_completed | unfinished\u3002unfinished\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u81F4\u672C\u5C40\u672A\u5B8C\u6210\u3002${PARTIALLY_COMPLETED_DEFINITION}`;
|
|
22911
|
-
var
|
|
22912
|
-
Type21.
|
|
22913
|
-
|
|
22914
|
-
|
|
22915
|
-
|
|
22916
|
-
|
|
22917
|
-
|
|
22918
|
-
|
|
22919
|
-
}, { additionalProperties: false }),
|
|
22920
|
-
Type21.Object({
|
|
22921
|
-
status: Type21.Unknown({ description: CODER_STATUS_DESCRIPTION }),
|
|
22922
|
-
report: Type21.String({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
22923
|
-
remainingScope: Type21.String({ description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C" }),
|
|
22924
|
-
reason: Type21.Optional(Type21.String({
|
|
22925
|
-
minLength: 1,
|
|
22926
|
-
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
22927
|
-
}))
|
|
22928
|
-
}, { additionalProperties: false })
|
|
22929
|
-
]);
|
|
22808
|
+
var coderOutputObject = Type21.Object({
|
|
22809
|
+
status: Type21.Unknown({ description: CODER_STATUS_DESCRIPTION }),
|
|
22810
|
+
report: Type21.Unknown({ description: "\u5982\u5B9E\u7ED3\u679C\u62A5\u544A" }),
|
|
22811
|
+
remainingScope: Type21.Unknown({ description: "\u672C\u5C40\u540E\u5269\u4F59\u5DE5\u4F5C" }),
|
|
22812
|
+
reason: Type21.Unknown({
|
|
22813
|
+
description: "\u963B\u65AD\u539F\u56E0\uFF1A\u7F3A\u524D\u7F6E\u6216\u8FDD\u5BAA\u7EA6\u675F\u3002\u7F3A\u5F85\u51B3 owner \u51B3\u5B9A\u6216\u7B54\u590D\u5C5E\u7F3A\u524D\u7F6E\u3002"
|
|
22814
|
+
})
|
|
22815
|
+
});
|
|
22930
22816
|
var coderOutputSchema = withTerminatingOutputDeclarations(
|
|
22931
|
-
|
|
22817
|
+
openToolObject(coderOutputObject)
|
|
22932
22818
|
);
|
|
22933
22819
|
var FIXER_FLAG_DEFINITIONS = {
|
|
22934
22820
|
packet: {
|
package/dist/doctor-contracts.js
CHANGED
|
@@ -1,47 +1,35 @@
|
|
|
1
1
|
import { Type } from "typebox";
|
|
2
2
|
import { canonicalJson } from "./canonical-json.js";
|
|
3
|
-
import {
|
|
3
|
+
import { openToolObject } from "./open-tool-schema.js";
|
|
4
4
|
import { withTerminatingOutputDeclarations } from "./package-contracts/terminating-infrastructure.js";
|
|
5
5
|
const DOCTOR_EVIDENCE_TOOL_NAME = "ak_doctor_evidence";
|
|
6
6
|
const DOCTOR_OUTPUT_TOOL_NAME = "ak_doctor_output";
|
|
7
7
|
const DOCTOR_AUDIT_TOOL_NAME = "ak_doctor_audit_decision";
|
|
8
8
|
const DOCTOR_OUTPUT_TOOL_DESCRIPTION = "\u63D0\u4EA4\u552F\u4E00\u7EC8\u5C40\u5355\u6848\u8BC1\u8BCD\uFF1Bcompleted \u5141\u8BB8\u7A7A findings\u3002";
|
|
9
9
|
const DOCTOR_TARGET_KINDS = ["law", "gate", "template", "station", "seat"];
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
Type.Object({ kind: Type.Optional(Type.Literal("noRealBite")), targetKey: nonblank, eligibleEvidenceIds: evidenceIds }, { additionalProperties: true })
|
|
16
|
-
]);
|
|
17
|
-
const assetKinds = DOCTOR_TARGET_KINDS;
|
|
18
|
-
const findingBody = {
|
|
19
|
-
evidenceIds,
|
|
20
|
-
disposition: Type.Optional(Type.Union([Type.Literal("keep"), Type.Literal("thin"), Type.Literal("delete")])),
|
|
21
|
-
guardrails: Type.Optional(Type.Object({ reproducibleFailure: guardrail, owningSeamOrInvariant: guardrail, deletionOrSimplificationSuffices: guardrail }, { additionalProperties: true })),
|
|
22
|
-
prescription: Type.Optional(Type.Object({ kind: Type.Optional(Type.Union([Type.Literal("retain"), Type.Literal("delete"), Type.Literal("simplify"), Type.Literal("patch"), Type.Literal("addMechanism")])), recommendation: nonblank, necessityExplanation: nonblank }, { additionalProperties: true })),
|
|
23
|
-
lastRealBite: Type.Optional(lastRealBite)
|
|
24
|
-
};
|
|
25
|
-
const finding = Type.Union([
|
|
26
|
-
Type.Object({ targetKey: nonblank, observation: nonblank, evidenceIds }, { additionalProperties: true }),
|
|
27
|
-
Type.Object({ targetKey: nonblank, targetKind: Type.Optional(Type.Union(assetKinds.map((kind) => Type.Literal(kind)))), assetEvidence: Type.Optional(Type.Object({ targetKey: nonblank, targetKind: Type.Optional(Type.Union(assetKinds.map((kind) => Type.Literal(kind)))), evidenceId: nonblank }, { additionalProperties: true })), ...findingBody }, { additionalProperties: true })
|
|
28
|
-
]);
|
|
29
|
-
const caseIdentity = Type.Object({ issueNumber: Type.Optional(Type.Integer()), runsPath: nonblank }, { additionalProperties: true });
|
|
10
|
+
const DOCTOR_DISPOSITIONS = ["keep", "thin", "delete"];
|
|
11
|
+
const DOCTOR_PRESCRIPTION_KINDS = ["retain", "delete", "simplify", "patch", "addMechanism"];
|
|
12
|
+
const biteActual = "actual";
|
|
13
|
+
const biteNone = "noRealBite";
|
|
14
|
+
const DOCTOR_BITE_KINDS = [biteActual, biteNone];
|
|
30
15
|
const DOCTOR_STATUS_DESCRIPTION = "completed | refused\u3002completed \u5141\u8BB8\u7A7A findings\uFF1Brefused \u4EC5\u5F53\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u6848\u8BC1\u8BCD";
|
|
31
|
-
const
|
|
32
|
-
Type.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
|
|
16
|
+
const doctorSubmissionObject = Type.Object({
|
|
17
|
+
status: Type.Unknown({ description: DOCTOR_STATUS_DESCRIPTION }),
|
|
18
|
+
case: Type.Unknown({
|
|
19
|
+
description: "\u7559\u5B58\u592A\u533B\u7F72\u6848\u8EAB\u4EFD\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982 issueNumber\u3001runsPath\uFF09\u3002\u673A\u68B0\u5C42\u53E6\u6309\u7ED1\u5B9A run \u6295\u5F71\u6848\u8EAB\u4EFD\uFF0C\u4E0D\u5728\u672C\u5B57\u6BB5\u91CD\u5224\u3002"
|
|
20
|
+
}),
|
|
21
|
+
findings: Type.Unknown({
|
|
22
|
+
description: `\u9010\u6761\u8D44\u4EA7\u89C2\u5BDF\u4E0E\u5904\u65B9\uFF0C\u539F\u6837\u7559\u5B58\u3002\u4E00\u6761\u53EF\u542B targetKey\u3001targetKind\uFF08${DOCTOR_TARGET_KINDS.join(" | ")}\uFF09\u3001observation\u3001evidenceIds\u3001disposition\uFF08${DOCTOR_DISPOSITIONS.join(" | ")}\uFF09\u3001assetEvidence\uFF08targetKey\u3001targetKind\u3001evidenceId\uFF09\u3001guardrails\uFF08reproducibleFailure\u3001owningSeamOrInvariant\u3001deletionOrSimplificationSuffices\uFF0C\u5404\u9879\u53EF\u542B answer\u3001evidenceIds\u3001explanation\uFF09\u3001prescription\uFF08kind \u4E3A ${DOCTOR_PRESCRIPTION_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 recommendation\u3001necessityExplanation\uFF09\u3001lastRealBite\uFF08kind \u4E3A ${DOCTOR_BITE_KINDS.join(" | ")}\uFF0C\u53E6\u53EF\u5199 targetKey\u3001evidenceId\u3001eligibleEvidenceIds\uFF09\u3002\u4E0D\u8981\u6C42\u4EFB\u4F55\u5904\u65B9\u6216\u53EF\u590D\u7528 finding\uFF1B\u7F3A\u53EF\u590D\u7528\u8D44\u4EA7\u6216 bounded-bite \u8BC1\u636E\u53EA\u6392\u9664\u5BF9\u5E94\u8D44\u4EA7\u5904\u65B9\u3002\u673A\u5668\u4E0D\u6838\u9A8C\u3002`
|
|
23
|
+
}),
|
|
24
|
+
reason: Type.Unknown({
|
|
25
|
+
description: "\u8BC1\u636E\u4E0D\u8DB3\u4EE5\u652F\u6491\u5982\u5B9E\u8BC1\u8BCD\u7684\u539F\u56E0\uFF1B\u4EC5 refused \u65F6\u7528\u3002"
|
|
26
|
+
}),
|
|
27
|
+
missingEvidence: Type.Unknown({
|
|
28
|
+
description: "\u5982\u5B9E\u8BC1\u8BCD\u6240\u9700\u800C\u5C1A\u7F3A\u7684\u8BC1\u636E\uFF0C\u539F\u6837\u7559\u5B58\uFF08\u5982\u6BCF\u9879 need\u3001targetKeys\uFF09\u3002"
|
|
29
|
+
})
|
|
30
|
+
});
|
|
43
31
|
const doctorSubmissionSchema = withTerminatingOutputDeclarations(
|
|
44
|
-
|
|
32
|
+
openToolObject(doctorSubmissionObject)
|
|
45
33
|
);
|
|
46
34
|
const doctorEvidenceReadSchema = Type.Object({ evidenceId: Type.String({ minLength: 1, description: "\u5F85\u8BFB\u7559\u5B58\u8BC1\u636E\u6807\u8BC6" }), offset: Type.Optional(Type.Integer({ minimum: 0, description: "\u8D77\u59CB\u5B57\u8282\u504F\u79FB\uFF08\u4ECE 0 \u8BA1\uFF09" })), limit: Type.Optional(Type.Integer({ minimum: 1, description: "\u8FD4\u56DE\u5B57\u8282\u6570\uFF08\u65E0\u4E0A\u9650\uFF09" })) }, { additionalProperties: true });
|
|
47
35
|
class DoctorSubmissionContractError extends Error {
|