@akagilnc/pi-workflow-roles 0.1.3405 → 0.1.3410
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.
|
@@ -47,20 +47,7 @@ async function buildEvidenceChildSystemPrompt(engineMaterial) {
|
|
|
47
47
|
}
|
|
48
48
|
return appendEngineSessionMaterial(materials, engineMaterial).join("\n");
|
|
49
49
|
}
|
|
50
|
-
const AUDITOR_TURN_LIMIT = 32;
|
|
51
50
|
const DEFAULT_COMPLIANCE_IDLE_MAX_RETRIES = 2;
|
|
52
|
-
class AuditorTurnLimitError extends Error {
|
|
53
|
-
constructor(limit, observedTurns, lastResponse) {
|
|
54
|
-
super(observedTurns === void 0 ? `Auditor exceeded ${limit} turns` : `Auditor exhausted its ${limit}-turn limit after ${observedTurns} provider turns`);
|
|
55
|
-
this.limit = limit;
|
|
56
|
-
this.observedTurns = observedTurns;
|
|
57
|
-
this.lastResponse = lastResponse;
|
|
58
|
-
this.name = "AuditorTurnLimitError";
|
|
59
|
-
}
|
|
60
|
-
limit;
|
|
61
|
-
observedTurns;
|
|
62
|
-
lastResponse;
|
|
63
|
-
}
|
|
64
51
|
async function withInProcessScratch(options, run) {
|
|
65
52
|
const scratch = await mkdtemp(join(options.parentDirectory ?? tmpdir(), options.prefix));
|
|
66
53
|
let failure;
|
|
@@ -426,7 +413,6 @@ async function executeAuditorChild(options) {
|
|
|
426
413
|
});
|
|
427
414
|
} catch {
|
|
428
415
|
}
|
|
429
|
-
let turns = 0;
|
|
430
416
|
const sessionUsage = emptyUsage();
|
|
431
417
|
let boundaryResponse;
|
|
432
418
|
let retentionFailure;
|
|
@@ -460,7 +446,6 @@ async function executeAuditorChild(options) {
|
|
|
460
446
|
evidenceToolFailures.set(event.toolCallId, failure);
|
|
461
447
|
}
|
|
462
448
|
if (event.type === "message_end" && event.role === "assistant" && boundaryResponse === void 0) {
|
|
463
|
-
turns += 1;
|
|
464
449
|
if (event.usage) addUsage(sessionUsage, event.usage);
|
|
465
450
|
const msg = event.message;
|
|
466
451
|
retainedResponse = msg;
|
|
@@ -483,7 +468,7 @@ async function executeAuditorChild(options) {
|
|
|
483
468
|
}
|
|
484
469
|
}
|
|
485
470
|
}
|
|
486
|
-
if (
|
|
471
|
+
if (msg.stopReason === "error") boundaryResponse = msg;
|
|
487
472
|
}
|
|
488
473
|
}
|
|
489
474
|
if (event.type === "turn_end") {
|
|
@@ -589,13 +574,6 @@ async function executeAuditorChild(options) {
|
|
|
589
574
|
}
|
|
590
575
|
const assistants = [...retainedAssistants].reverse();
|
|
591
576
|
const response = !decisionSubmitted ? assistants[0] : assistants.find((message) => message.content.some((part) => part.type === "toolCall" && part.name === tool.name));
|
|
592
|
-
if (boundaryResponse !== void 0 && boundaryResponse.stopReason !== "error" && !decisionSubmitted && noReceiptLifecycle === void 0) {
|
|
593
|
-
const toolNames = boundaryResponse.content.flatMap((part) => part.type === "toolCall" ? [part.name] : []);
|
|
594
|
-
throw new AuditorTurnLimitError(AUDITOR_TURN_LIMIT, turns, {
|
|
595
|
-
stopReason: boundaryResponse.stopReason,
|
|
596
|
-
toolNames
|
|
597
|
-
});
|
|
598
|
-
}
|
|
599
577
|
if (response !== void 0) {
|
|
600
578
|
try {
|
|
601
579
|
if (retentionFailure !== void 0) throw retentionFailure;
|
|
@@ -849,8 +827,6 @@ function createNativeNavigatorSessionFactory(defaultModelSettingPath = navigator
|
|
|
849
827
|
};
|
|
850
828
|
}
|
|
851
829
|
export {
|
|
852
|
-
AUDITOR_TURN_LIMIT,
|
|
853
|
-
AuditorTurnLimitError,
|
|
854
830
|
DEFAULT_COMPLIANCE_IDLE_MAX_RETRIES,
|
|
855
831
|
createNativeNavigatorSessionFactory,
|
|
856
832
|
executeAuditorChild,
|
|
@@ -4043,19 +4043,6 @@ async function buildEvidenceChildSystemPrompt(engineMaterial) {
|
|
|
4043
4043
|
}
|
|
4044
4044
|
return appendEngineSessionMaterial(materials, engineMaterial).join("\n");
|
|
4045
4045
|
}
|
|
4046
|
-
var AUDITOR_TURN_LIMIT = 32;
|
|
4047
|
-
var AuditorTurnLimitError = class extends Error {
|
|
4048
|
-
constructor(limit, observedTurns, lastResponse) {
|
|
4049
|
-
super(observedTurns === void 0 ? `Auditor exceeded ${limit} turns` : `Auditor exhausted its ${limit}-turn limit after ${observedTurns} provider turns`);
|
|
4050
|
-
this.limit = limit;
|
|
4051
|
-
this.observedTurns = observedTurns;
|
|
4052
|
-
this.lastResponse = lastResponse;
|
|
4053
|
-
this.name = "AuditorTurnLimitError";
|
|
4054
|
-
}
|
|
4055
|
-
limit;
|
|
4056
|
-
observedTurns;
|
|
4057
|
-
lastResponse;
|
|
4058
|
-
};
|
|
4059
4046
|
async function withInProcessScratch(options, run) {
|
|
4060
4047
|
const scratch = await mkdtemp3(join12(options.parentDirectory ?? tmpdir3(), options.prefix));
|
|
4061
4048
|
let failure2;
|
|
@@ -4388,7 +4375,6 @@ async function executeAuditorChild(options) {
|
|
|
4388
4375
|
});
|
|
4389
4376
|
} catch {
|
|
4390
4377
|
}
|
|
4391
|
-
let turns = 0;
|
|
4392
4378
|
const sessionUsage = emptyUsage2();
|
|
4393
4379
|
let boundaryResponse;
|
|
4394
4380
|
let retentionFailure;
|
|
@@ -4422,7 +4408,6 @@ async function executeAuditorChild(options) {
|
|
|
4422
4408
|
evidenceToolFailures.set(event.toolCallId, failure2);
|
|
4423
4409
|
}
|
|
4424
4410
|
if (event.type === "message_end" && event.role === "assistant" && boundaryResponse === void 0) {
|
|
4425
|
-
turns += 1;
|
|
4426
4411
|
if (event.usage) addUsage2(sessionUsage, event.usage);
|
|
4427
4412
|
const msg = event.message;
|
|
4428
4413
|
retainedResponse = msg;
|
|
@@ -4445,7 +4430,7 @@ async function executeAuditorChild(options) {
|
|
|
4445
4430
|
}
|
|
4446
4431
|
}
|
|
4447
4432
|
}
|
|
4448
|
-
if (
|
|
4433
|
+
if (msg.stopReason === "error") boundaryResponse = msg;
|
|
4449
4434
|
}
|
|
4450
4435
|
}
|
|
4451
4436
|
if (event.type === "turn_end") {
|
|
@@ -4551,13 +4536,6 @@ async function executeAuditorChild(options) {
|
|
|
4551
4536
|
}
|
|
4552
4537
|
const assistants = [...retainedAssistants].reverse();
|
|
4553
4538
|
const response = !decisionSubmitted ? assistants[0] : assistants.find((message) => message.content.some((part) => part.type === "toolCall" && part.name === tool2.name));
|
|
4554
|
-
if (boundaryResponse !== void 0 && boundaryResponse.stopReason !== "error" && !decisionSubmitted && noReceiptLifecycle === void 0) {
|
|
4555
|
-
const toolNames = boundaryResponse.content.flatMap((part) => part.type === "toolCall" ? [part.name] : []);
|
|
4556
|
-
throw new AuditorTurnLimitError(AUDITOR_TURN_LIMIT, turns, {
|
|
4557
|
-
stopReason: boundaryResponse.stopReason,
|
|
4558
|
-
toolNames
|
|
4559
|
-
});
|
|
4560
|
-
}
|
|
4561
4539
|
if (response !== void 0) {
|
|
4562
4540
|
try {
|
|
4563
4541
|
if (retentionFailure !== void 0) throw retentionFailure;
|
package/package.json
CHANGED
package/souls/quality-law.md
CHANGED
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
|
|
31
31
|
日常施工只跑触及面的聚焦测试;全量到绿只在家族或批次的**最终待合并状态**跑一次——**家族车道上的逐腿交卷不是收尾,不得据此索取全量**;之后再有修复,在新的最终状态重跑全量。
|
|
32
32
|
|
|
33
|
+
**最终待合并状态**只有一个:本票或本家族全部轮次结束、判官已 converged、PR 已开之后,即将并入目标分支的那一个 HEAD;CI 在它上面通过一次即为全量。其后再有修复 commit,新 HEAD 才是新的最终状态。将作监/修内司的每次交卷(含闸内重交)、切片轮次、修理轮次、审官中间轮次都不是最终状态——审官不得据此索全量,派单也不得把本机全量写进这些轮次的验收。
|
|
34
|
+
|
|
33
35
|
## 未完成交卷
|
|
34
36
|
|
|
35
37
|
unfinished 只认两因:**缺前置**——处置当下仍缺少已声明的前置产物、决定或答复,且该缺失使剩余派工当前无法合法执行;**违宪约束**——继续施工将违反 authority 或既裁法源。两因之外的一切理由(执行窗口、时间、工作量、难度等),不得作为 unfinished 成立依据,审官一律封驳。
|
|
@@ -88,25 +88,8 @@ async function buildEvidenceChildSystemPrompt(
|
|
|
88
88
|
|
|
89
89
|
// ── shared constants / types ──────────────────────────────────────────────
|
|
90
90
|
|
|
91
|
-
export const AUDITOR_TURN_LIMIT = 32;
|
|
92
91
|
export const DEFAULT_COMPLIANCE_IDLE_MAX_RETRIES = 2;
|
|
93
92
|
|
|
94
|
-
export type AuditorLastResponseFacts = {
|
|
95
|
-
readonly stopReason: AssistantMessage["stopReason"];
|
|
96
|
-
readonly toolNames: readonly string[];
|
|
97
|
-
};
|
|
98
|
-
export class AuditorTurnLimitError extends Error {
|
|
99
|
-
constructor(
|
|
100
|
-
readonly limit: number,
|
|
101
|
-
readonly observedTurns?: number,
|
|
102
|
-
readonly lastResponse?: AuditorLastResponseFacts,
|
|
103
|
-
) {
|
|
104
|
-
super(observedTurns === undefined
|
|
105
|
-
? `Auditor exceeded ${limit} turns`
|
|
106
|
-
: `Auditor exhausted its ${limit}-turn limit after ${observedTurns} provider turns`);
|
|
107
|
-
this.name = "AuditorTurnLimitError";
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
93
|
export type AuditorDecisionTool = {
|
|
111
94
|
name: string;
|
|
112
95
|
description: string;
|
|
@@ -640,7 +623,6 @@ export async function executeAuditorChild(
|
|
|
640
623
|
});
|
|
641
624
|
} catch {}
|
|
642
625
|
|
|
643
|
-
let turns = 0;
|
|
644
626
|
const sessionUsage = emptyUsage();
|
|
645
627
|
let boundaryResponse: AssistantMessage | undefined;
|
|
646
628
|
let retentionFailure: unknown;
|
|
@@ -682,8 +664,8 @@ export async function executeAuditorChild(
|
|
|
682
664
|
// A native unknown-tool receipt ("Tool <name> not found") is not an
|
|
683
665
|
// evidence-tool failure: the child session has no such tool registered,
|
|
684
666
|
// so its errored toolResult must not short-circuit the auditor (it keeps
|
|
685
|
-
// prompting
|
|
686
|
-
//
|
|
667
|
+
// prompting, mirroring the pre-migration registeredToolNames exclusion
|
|
668
|
+
// in findToolFailure).
|
|
687
669
|
if (detailText !== undefined && /^Tool\s+.+ not found$/.test(detailText.trim())) return;
|
|
688
670
|
const failure = detailText === undefined
|
|
689
671
|
? new Error(event.toolName ?? "evidence tool failed")
|
|
@@ -696,7 +678,6 @@ export async function executeAuditorChild(
|
|
|
696
678
|
evidenceToolFailures.set(event.toolCallId, failure);
|
|
697
679
|
}
|
|
698
680
|
if (event.type === "message_end" && event.role === "assistant" && boundaryResponse === undefined) {
|
|
699
|
-
turns += 1;
|
|
700
681
|
if (event.usage) addUsage(sessionUsage, event.usage);
|
|
701
682
|
const msg = event.message as AssistantMessage | undefined;
|
|
702
683
|
retainedResponse = msg;
|
|
@@ -730,7 +711,7 @@ export async function executeAuditorChild(
|
|
|
730
711
|
}
|
|
731
712
|
}
|
|
732
713
|
}
|
|
733
|
-
if (
|
|
714
|
+
if (msg.stopReason === "error") boundaryResponse = msg;
|
|
734
715
|
}
|
|
735
716
|
}
|
|
736
717
|
if (event.type === "turn_end") {
|
|
@@ -861,14 +842,6 @@ export async function executeAuditorChild(
|
|
|
861
842
|
: assistants.find((message) =>
|
|
862
843
|
message.content.some((part) => part.type === "toolCall" && part.name === tool.name));
|
|
863
844
|
|
|
864
|
-
if (boundaryResponse !== undefined && boundaryResponse.stopReason !== "error" && !decisionSubmitted && noReceiptLifecycle === undefined) {
|
|
865
|
-
const toolNames = boundaryResponse.content.flatMap((part) => part.type === "toolCall" ? [part.name] : []);
|
|
866
|
-
throw new AuditorTurnLimitError(AUDITOR_TURN_LIMIT, turns, {
|
|
867
|
-
stopReason: boundaryResponse.stopReason,
|
|
868
|
-
toolNames,
|
|
869
|
-
});
|
|
870
|
-
}
|
|
871
|
-
|
|
872
845
|
if (response !== undefined) {
|
|
873
846
|
try {
|
|
874
847
|
if (retentionFailure !== undefined) throw retentionFailure;
|