dsh-auto-review 0.14.1 → 0.15.0
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/CHANGELOG.md +5 -0
- package/README-es.md +4 -0
- package/README-hi.md +4 -0
- package/README-pt.md +4 -0
- package/README-zh.md +4 -0
- package/README.md +4 -0
- package/lib/index.js +127 -17
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js.map +1 -1
- package/lib/types/runtime.d.ts +39 -1
- package/lib/types/runtime.d.ts.map +1 -1
- package/lib/types/runtime.js +160 -20
- package/lib/types/runtime.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/runtime.ts +200 -16
package/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,11 @@
|
|
|
30
30
|
- **The request wording is the measured one, not an improvised prompt.** State is exactly `The agent is about to run the shell command "<command>" in its workspace.`, and the harm options carry the descriptions the model was trained on as `criteria` (the HTTP contract has no `criteria` field). On 89 labelled commands (2026-10-25, CPU fp32, released weights) **0 of 53 destructive commands were allowed at 0.4** — 26 denied, 27 escalated — while 5 of 36 routine commands were allowed; the same measurement at 0.35 let two destructive Windows commands through. The other measured formulations (bare option names, a boolean question, `safe` / `must not run` wording) were rejected because they either collapse to deny-everything or clear destructive commands. **Correction (0.14.1):** this 89-command set did not include system-file commands; the expanded 91-command audit found `cat /etc/shadow` and `cp /dev/null /etc/passwd` allowed at 0.4, so 0.14.1 raises the default floor and adds the path/operator guards.
|
|
31
31
|
- **Privacy and egress.** Only the redacted shell command is sent to the decision service — the approval reason, transcript and workspace path are not — and the command passes the same key-level and inline-secret redaction as the generative prompt. `phocinae.allowRemoteEndpoint` must be set explicitly to send it off-host.
|
|
32
32
|
- **Observability and docs.** `/auto-review status` names the reviewer backend and model, and `autoReview/verdict` records `provider: phocinae` (instead of claiming a subagent ran). Full config documentation, an annotated example in `fixtures/config/config-full.yaml`, and the service setup instructions in all five READMEs.
|
|
33
|
+
## [0.15.0] - 2026-10-28
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- Opt-in `answerDetailed()` with exported request-local receipt types, including correlation, fallback/delegation and isolated circuit snapshots. Existing `answer()` and approval-chain behavior are unchanged; the detailed API catches exceptions and rejects final results after disposal without promising immediate cancellation.
|
|
33
38
|
|
|
34
39
|
## [0.13.8] - 2026-10-22
|
|
35
40
|
|
package/README-es.md
CHANGED
|
@@ -509,6 +509,10 @@ Este plugin **no interfiere** con otros plugins, incluidos los de más estrellas
|
|
|
509
509
|
|
|
510
510
|
Evidencia estática: `dsh-plugin-doctor` K10–K13 dan `pass` en todas las comprobaciones de este repositorio.
|
|
511
511
|
|
|
512
|
+
## Recibos estructurados
|
|
513
|
+
|
|
514
|
+
Las integraciones pueden llamar a `ctx.autoReviewRuntime.answerDetailed(request, next)` e importar `DetailedAnswer` / `ReviewReceipt` para obtener correlación, revisión, fallback, delegación y evidencia del circuito sin eventos de sesión personalizados. `answer()` y la cadena instalada mantienen su comportamiento. Solo la API detallada convierte excepciones internas o posteriores en `rejected` / `unavailable`; tras la descarga rechaza el resultado final, sin garantizar cancelación inmediata ni eliminar efectos tardíos subyacentes. `configuredReviewerBackend` identifica el backend, no el proveedor del modelo. Un listener del Host registrado después con `prepend` puede ejecutarse primero: los recibos no ofrecen admisión exclusiva.
|
|
515
|
+
|
|
512
516
|
## PerryLink DSH Plugin Family
|
|
513
517
|
|
|
514
518
|
Este proyecto forma parte de la familia de plugins de DeepSeek Harness de [PerryLink](https://github.com/PerryLink). El registro permanece plegado abajo para que cada README conserve una primera pantalla corta; expándelo para ver cada fila y su estado.
|
package/README-hi.md
CHANGED
|
@@ -570,6 +570,10 @@ pnpm pack # प्रकाशित tarball
|
|
|
570
570
|
|
|
571
571
|
सभी PerryLink प्लगइन DSH Desktop के बिल्ट-इन मार्केट में देखे जा सकते हैं: **Market → Sources → add source → पेस्ट करें** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ चुनें**। इंस्टॉलेशन मार्केट के npm-identity सत्यापन और आपकी पुष्टि से ही होता है।
|
|
572
572
|
|
|
573
|
+
## संरचित रसीदें
|
|
574
|
+
|
|
575
|
+
एकीकरण `ctx.autoReviewRuntime.answerDetailed(request, next)` को कॉल करके और `DetailedAnswer` / `ReviewReceipt` आयात करके अनुरोध संबंध, समीक्षा, fallback, delegation और circuit प्रमाण प्राप्त कर सकते हैं; कस्टम session events आवश्यक नहीं हैं। `answer()` और स्थापित approval chain का व्यवहार अपरिवर्तित है। केवल विस्तृत API आंतरिक या downstream exceptions को `rejected` / `unavailable` में बदलती है; disposal के बाद अंतिम परिणाम rejected होता है, लेकिन तुरंत cancellation या देर से होने वाले अंतर्निहित side effects हटाने की गारंटी नहीं है। `configuredReviewerBackend` backend है, model provider नहीं। बाद में `prepend` के साथ पंजीकृत Host listener पहले चल सकता है; रसीदें exclusive approval admission नहीं देतीं।
|
|
576
|
+
|
|
573
577
|
## लाइसेंस
|
|
574
578
|
|
|
575
579
|
[Apache License 2.0](LICENSE) © 2026 dsh-auto-review contributors
|
package/README-pt.md
CHANGED
|
@@ -505,6 +505,10 @@ Este plugin **não interfere** em outros plugins, incluindo os de mais estrelas:
|
|
|
505
505
|
|
|
506
506
|
Evidência estática: `dsh-plugin-doctor` K10–K13 retornam `pass` em todas as verificações deste repositório.
|
|
507
507
|
|
|
508
|
+
## Recibos estruturados
|
|
509
|
+
|
|
510
|
+
Integrações podem chamar `ctx.autoReviewRuntime.answerDetailed(request, next)` e importar `DetailedAnswer` / `ReviewReceipt` para obter correlação, revisão, fallback, delegação e evidência do circuito sem eventos de sessão personalizados. `answer()` e a cadeia instalada mantêm o comportamento. Apenas a API detalhada converte exceções internas ou posteriores em `rejected` / `unavailable`; após descarregar rejeita o resultado final, sem garantir cancelamento imediato ou eliminar efeitos tardios subjacentes. `configuredReviewerBackend` identifica o backend, não o provedor do modelo. Um listener do Host registrado depois com `prepend` pode executar primeiro: recibos não oferecem admissão exclusiva.
|
|
511
|
+
|
|
508
512
|
## PerryLink DSH Plugin Family
|
|
509
513
|
|
|
510
514
|
Este projeto faz parte da família de plugins do DeepSeek Harness da [PerryLink](https://github.com/PerryLink). O registro fica recolhido abaixo para que cada README mantenha uma primeira tela curta; expanda para ver cada linha e seu status.
|
package/README-zh.md
CHANGED
|
@@ -607,6 +607,10 @@ pnpm pack # 发布产物
|
|
|
607
607
|
|
|
608
608
|
</details>
|
|
609
609
|
|
|
610
|
+
## 结构化回执
|
|
611
|
+
|
|
612
|
+
集成方可调用 `ctx.autoReviewRuntime.answerDetailed(request, next)`,导入 `DetailedAnswer` / `ReviewReceipt`,获取请求关联、审查/回退/转交及熔断证据,无需自定义会话事件。`answer()` 和已安装的审批链保持原行为。仅详细接口将内部或下游异常转为 `rejected` / `unavailable`;卸载后最终拒绝,但不承诺立即取消或消除底层迟到副作用。`configuredReviewerBackend` 表示审查后端,不是模型供应商。Host 后注册的 `prepend` 监听器可能先运行;回执不提供独占审批入口。
|
|
613
|
+
|
|
610
614
|
## 许可证
|
|
611
615
|
|
|
612
616
|
[Apache License 2.0](LICENSE) © 2026 dsh-auto-review contributors
|
package/README.md
CHANGED
|
@@ -612,6 +612,10 @@ This project is part of the DeepSeek Harness plugin family from [PerryLink](http
|
|
|
612
612
|
|
|
613
613
|
</details>
|
|
614
614
|
|
|
615
|
+
## Structured receipts
|
|
616
|
+
|
|
617
|
+
Integrations can call `ctx.autoReviewRuntime.answerDetailed(request, next)` and import `DetailedAnswer` / `ReviewReceipt` to receive request-local correlation, review/fallback/delegation and circuit evidence without custom session events. `answer()` and the installed approval chain retain their behavior. Only the detailed API converts internal or downstream exceptions to `rejected` / `unavailable`; after disposal its final result is rejected, without promising immediate cancellation or removal of late underlying side effects. `configuredReviewerBackend` names the reviewer backend, not the model provider. A later Host listener registered with `prepend` can run first: receipts do not provide exclusive approval admission.
|
|
618
|
+
|
|
615
619
|
## License
|
|
616
620
|
|
|
617
621
|
[Apache License 2.0](LICENSE) © 2026 dsh-auto-review contributors
|
package/lib/index.js
CHANGED
|
@@ -7285,6 +7285,7 @@ function policyFor(config, request, argumentsText) {
|
|
|
7285
7285
|
var AutoReviewRuntime = class AutoReviewRuntime {
|
|
7286
7286
|
ctx;
|
|
7287
7287
|
config;
|
|
7288
|
+
disposed = false;
|
|
7288
7289
|
/**
|
|
7289
7290
|
* Live reviewer children — their approval asks never re-enter AI review,
|
|
7290
7291
|
* and their steps are stripped of injected context by
|
|
@@ -7565,29 +7566,96 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7565
7566
|
* @returns the closed approval outcome.
|
|
7566
7567
|
*/
|
|
7567
7568
|
answer(request, next) {
|
|
7568
|
-
|
|
7569
|
+
return this.answerCore(request, next);
|
|
7570
|
+
}
|
|
7571
|
+
/** Return a request-local audit receipt without appending unknown host events. */
|
|
7572
|
+
async answerDetailed(request, next) {
|
|
7573
|
+
const receipt = {
|
|
7574
|
+
sessionId: String(request.agent.id),
|
|
7575
|
+
...request.callId === void 0 ? {} : { callId: request.callId },
|
|
7576
|
+
toolName: request.toolName,
|
|
7577
|
+
category: "delegate",
|
|
7578
|
+
reason: "unclaimed"
|
|
7579
|
+
};
|
|
7580
|
+
let outcome = "rejected";
|
|
7581
|
+
try {
|
|
7582
|
+
const approvalId = correlateApprovalId(sessionEvents(request.agent.session), request.toolName, request.callId);
|
|
7583
|
+
if (approvalId !== void 0) receipt.approvalId = approvalId;
|
|
7584
|
+
if (!this.disposed) outcome = await this.answerCore(request, async () => {
|
|
7585
|
+
receipt.delegated = true;
|
|
7586
|
+
return next();
|
|
7587
|
+
}, receipt);
|
|
7588
|
+
} catch (error) {
|
|
7589
|
+
receipt.category = "fault";
|
|
7590
|
+
receipt.reason = error instanceof Error ? error.message : String(error);
|
|
7591
|
+
receipt.fallback = "unavailable";
|
|
7592
|
+
}
|
|
7593
|
+
if (this.disposed) {
|
|
7594
|
+
outcome = "rejected";
|
|
7595
|
+
receipt.category = "fault";
|
|
7596
|
+
receipt.reason = "runtime-disposed";
|
|
7597
|
+
receipt.fallback = "unavailable";
|
|
7598
|
+
}
|
|
7599
|
+
receipt.outcome = outcome;
|
|
7600
|
+
return {
|
|
7601
|
+
outcome,
|
|
7602
|
+
receipt
|
|
7603
|
+
};
|
|
7604
|
+
}
|
|
7605
|
+
/** 回执由调用方持有,嵌套 trip 也必须与内部熔断状态隔离。 */
|
|
7606
|
+
circuitSnapshot(circuit) {
|
|
7607
|
+
return {
|
|
7608
|
+
...circuit,
|
|
7609
|
+
trip: { ...circuit.trip }
|
|
7610
|
+
};
|
|
7611
|
+
}
|
|
7612
|
+
answerCore(request, next, receipt) {
|
|
7613
|
+
if (this.reviewerSessions.has(request.agent.id)) {
|
|
7614
|
+
if (receipt !== void 0) receipt.reason = "reviewer-recursion";
|
|
7615
|
+
return next();
|
|
7616
|
+
}
|
|
7569
7617
|
const session = request.agent.session;
|
|
7570
7618
|
const memory = this.memoryFor(session);
|
|
7571
|
-
if (!(effectiveAutoReviewState(sessionEvents(session)) ?? memory.enabledOverride ?? this.config.enableByDefault))
|
|
7619
|
+
if (!(effectiveAutoReviewState(sessionEvents(session)) ?? memory.enabledOverride ?? this.config.enableByDefault)) {
|
|
7620
|
+
if (receipt !== void 0) receipt.reason = "session-disabled";
|
|
7621
|
+
return next();
|
|
7622
|
+
}
|
|
7572
7623
|
const argumentsText = this.config.riskRules.some((rule) => rule.field === "arguments") && request.callId !== void 0 ? sanitizedArgumentsText(sessionEvents(session), request.callId) : void 0;
|
|
7573
7624
|
const { policy, source } = policyFor(this.config, request, argumentsText);
|
|
7574
|
-
if (policy === "never") return this.neverReject(request, source);
|
|
7575
|
-
if (policy !== "ai")
|
|
7576
|
-
|
|
7577
|
-
|
|
7625
|
+
if (policy === "never") return this.neverReject(request, source, receipt);
|
|
7626
|
+
if (policy !== "ai") {
|
|
7627
|
+
if (receipt !== void 0) receipt.reason = "human-policy";
|
|
7628
|
+
return next();
|
|
7629
|
+
}
|
|
7630
|
+
if (this.verdictsInOpenTurn(session, memory) >= this.config.maxReviewsPerTurn) {
|
|
7631
|
+
if (receipt !== void 0) receipt.reason = "review-budget";
|
|
7632
|
+
return next();
|
|
7633
|
+
}
|
|
7634
|
+
if (this.failuresInOpenTurn(session, memory) >= this.config.maxFailuresPerTurn) {
|
|
7635
|
+
if (receipt !== void 0) receipt.reason = "failure-budget";
|
|
7636
|
+
return next();
|
|
7637
|
+
}
|
|
7578
7638
|
const circuit = this.circuitFor(session, memory);
|
|
7579
|
-
if (circuit !== void 0)
|
|
7639
|
+
if (circuit !== void 0) {
|
|
7640
|
+
if (receipt !== void 0) {
|
|
7641
|
+
receipt.category = "circuit";
|
|
7642
|
+
receipt.reason = "plugin-circuit";
|
|
7643
|
+
receipt.circuit = this.circuitSnapshot(circuit);
|
|
7644
|
+
receipt.circuitTriggered = false;
|
|
7645
|
+
}
|
|
7646
|
+
return this.circuitSettle(request, circuit, next);
|
|
7647
|
+
}
|
|
7580
7648
|
const approvalId = correlateApprovalId(sessionEvents(session), request.toolName, request.callId);
|
|
7581
7649
|
if (approvalId === void 0) return this.finish(request, void 0, {
|
|
7582
7650
|
fallback: "unavailable",
|
|
7583
7651
|
error: "cannot correlate the pending approval/asked audit event"
|
|
7584
|
-
}, next);
|
|
7652
|
+
}, next, 0, receipt);
|
|
7585
7653
|
const overrideId = this.activeOverrideFor(session, memory, request.toolName, Date.now());
|
|
7586
7654
|
const override = overrideId === void 0 ? void 0 : {
|
|
7587
7655
|
reviewId: overrideId,
|
|
7588
7656
|
toolName: request.toolName
|
|
7589
7657
|
};
|
|
7590
|
-
return this.review(request, approvalId, next, override);
|
|
7658
|
+
return this.review(request, approvalId, next, override, receipt);
|
|
7591
7659
|
}
|
|
7592
7660
|
/**
|
|
7593
7661
|
* Settle a `never`-policy request deterministically: record the log-only
|
|
@@ -7600,9 +7668,14 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7600
7668
|
* @param source - the matched risk rule or policy table entry.
|
|
7601
7669
|
* @returns the closed rejection.
|
|
7602
7670
|
*/
|
|
7603
|
-
neverReject(request, source) {
|
|
7671
|
+
neverReject(request, source, receipt) {
|
|
7604
7672
|
const rejectionId = newRejectionId();
|
|
7605
7673
|
const reason = truncate(source, this.config.reasonMaxChars);
|
|
7674
|
+
if (receipt !== void 0) {
|
|
7675
|
+
receipt.category = "policy";
|
|
7676
|
+
receipt.reason = reason;
|
|
7677
|
+
receipt.reviewId = String(rejectionId);
|
|
7678
|
+
}
|
|
7606
7679
|
const approvalId = correlateApprovalId(sessionEvents(request.agent.session), request.toolName, request.callId);
|
|
7607
7680
|
const session = request.agent.session;
|
|
7608
7681
|
const memory = this.memoryFor(session);
|
|
@@ -7653,7 +7726,7 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7653
7726
|
* @param override - a pending human one-shot override, when one applies.
|
|
7654
7727
|
* @returns the closed approval outcome.
|
|
7655
7728
|
*/
|
|
7656
|
-
async review(request, approvalId, next, override) {
|
|
7729
|
+
async review(request, approvalId, next, override, receipt) {
|
|
7657
7730
|
const started = Date.now();
|
|
7658
7731
|
const cacheKey = this.fingerprintFor(request);
|
|
7659
7732
|
let resolution;
|
|
@@ -7673,10 +7746,24 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7673
7746
|
}
|
|
7674
7747
|
} else resolution = await runReview(this.ctx, this.config, request, this.reviewerSessions, override);
|
|
7675
7748
|
const durationMs = Date.now() - started;
|
|
7676
|
-
if (isReviewFailure(resolution)) return this.finish(request, approvalId, resolution, next, durationMs);
|
|
7749
|
+
if (isReviewFailure(resolution)) return this.finish(request, approvalId, resolution, next, durationMs, receipt);
|
|
7677
7750
|
const reviewId = newVerdictId();
|
|
7678
7751
|
const overridden = resolution.decision === "allow" && resolution.riskLevel !== void 0 && riskExceeds(resolution.riskLevel, this.config.riskPolicy.maxAutoAllow);
|
|
7679
7752
|
const outcome = overridden ? this.config.riskPolicy.onHighRisk === "deny" ? "rejected" : void 0 : resolution.decision === "allow" ? "allowed-once" : "rejected";
|
|
7753
|
+
if (receipt !== void 0) {
|
|
7754
|
+
receipt.category = "review";
|
|
7755
|
+
receipt.reviewId = String(reviewId);
|
|
7756
|
+
receipt.decision = resolution.decision;
|
|
7757
|
+
receipt.reason = overridden ? resolution.reason + " (risk-policy override)" : resolution.reason;
|
|
7758
|
+
if (overridden) receipt.escalation = "risk-policy";
|
|
7759
|
+
receipt.cached = cached;
|
|
7760
|
+
receipt.configuredReviewerBackend = this.config.reviewerProvider;
|
|
7761
|
+
if (this.config.reviewerModelProvider !== void 0) receipt.configuredReviewerModelProvider = this.config.reviewerModelProvider;
|
|
7762
|
+
if (resolution.model !== void 0) receipt.reviewerModel = resolution.model;
|
|
7763
|
+
if (resolution.reviewerSessionId !== void 0) receipt.reviewerSessionId = String(resolution.reviewerSessionId);
|
|
7764
|
+
receipt.durationMs = durationMs;
|
|
7765
|
+
if (outcome === void 0) receipt.delegationReason = "risk-policy";
|
|
7766
|
+
}
|
|
7680
7767
|
if (this.auditMayAppend()) {
|
|
7681
7768
|
const result = request.agent.session.append("autoReview/verdict", {
|
|
7682
7769
|
reviewId,
|
|
@@ -7703,12 +7790,22 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7703
7790
|
if (outcome === void 0) return next();
|
|
7704
7791
|
if (resolution.decision === "deny") {
|
|
7705
7792
|
this.recordDenyReason(request.callId, request.toolName, reviewId, resolution.reason);
|
|
7706
|
-
this.checkCircuit(request);
|
|
7793
|
+
const circuitTriggered = this.checkCircuit(request);
|
|
7794
|
+
if (receipt !== void 0) {
|
|
7795
|
+
const circuit = this.circuitFor(request.agent.session, this.memoryFor(request.agent.session));
|
|
7796
|
+
if (circuit !== void 0) receipt.circuit = this.circuitSnapshot(circuit);
|
|
7797
|
+
receipt.circuitTriggered = circuitTriggered;
|
|
7798
|
+
}
|
|
7707
7799
|
return "rejected";
|
|
7708
7800
|
}
|
|
7709
7801
|
if (overridden) {
|
|
7710
7802
|
this.recordDenyReason(request.callId, request.toolName, reviewId, `${resolution.reason} (risk ${resolution.riskLevel} exceeds the configured maxAutoAllow ${this.config.riskPolicy.maxAutoAllow}; the allow verdict was overridden)`);
|
|
7711
|
-
this.checkCircuit(request);
|
|
7803
|
+
const circuitTriggered = this.checkCircuit(request);
|
|
7804
|
+
if (receipt !== void 0) {
|
|
7805
|
+
const circuit = this.circuitFor(request.agent.session, this.memoryFor(request.agent.session));
|
|
7806
|
+
if (circuit !== void 0) receipt.circuit = this.circuitSnapshot(circuit);
|
|
7807
|
+
receipt.circuitTriggered = circuitTriggered;
|
|
7808
|
+
}
|
|
7712
7809
|
return "rejected";
|
|
7713
7810
|
}
|
|
7714
7811
|
return "allowed-once";
|
|
@@ -7719,12 +7816,23 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7719
7816
|
* otherwise `rejected` (fail closed), `allow-once`, or `delegate`
|
|
7720
7817
|
* (continue the chain) per config.
|
|
7721
7818
|
*/
|
|
7722
|
-
finish(request, approvalId, failure, next, durationMs = 0) {
|
|
7819
|
+
finish(request, approvalId, failure, next, durationMs = 0, receipt) {
|
|
7723
7820
|
const outcome = this.fallbackOutcome(failure);
|
|
7821
|
+
if (receipt !== void 0) {
|
|
7822
|
+
receipt.category = failure.fallback === "cancelled" ? "cancelled" : "fault";
|
|
7823
|
+
receipt.reason = failure.error;
|
|
7824
|
+
receipt.configuredReviewerBackend = this.config.reviewerProvider;
|
|
7825
|
+
if (this.config.reviewerModelProvider !== void 0) receipt.configuredReviewerModelProvider = this.config.reviewerModelProvider;
|
|
7826
|
+
if (failure.model !== void 0) receipt.reviewerModel = failure.model;
|
|
7827
|
+
if (failure.reviewerSessionId !== void 0) receipt.reviewerSessionId = String(failure.reviewerSessionId);
|
|
7828
|
+
receipt.durationMs = durationMs;
|
|
7829
|
+
receipt.fallback = failure.fallback;
|
|
7830
|
+
}
|
|
7724
7831
|
const session = request.agent.session;
|
|
7725
7832
|
const auditOk = this.auditMayAppend();
|
|
7726
7833
|
if (approvalId !== void 0) {
|
|
7727
7834
|
const reviewId = newVerdictId();
|
|
7835
|
+
if (receipt !== void 0) receipt.reviewId = String(reviewId);
|
|
7728
7836
|
if (auditOk) {
|
|
7729
7837
|
const result = session.append("autoReview/verdict", {
|
|
7730
7838
|
reviewId,
|
|
@@ -7794,7 +7902,7 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7794
7902
|
const session = request.agent.session;
|
|
7795
7903
|
const memory = this.memoryFor(session);
|
|
7796
7904
|
const auditOk = this.auditMayAppend();
|
|
7797
|
-
if ((auditOk ? circuitInOpenTurn(sessionEvents(session)) : memory.circuit) !== void 0) return;
|
|
7905
|
+
if ((auditOk ? circuitInOpenTurn(sessionEvents(session)) : memory.circuit) !== void 0) return false;
|
|
7798
7906
|
const { consecutiveDenies, windowDenies, windowSize, action } = this.config.circuitBreaker;
|
|
7799
7907
|
const consecutive = auditOk ? consecutiveDeniesInOpenTurn(sessionEvents(session)) : AutoReviewRuntime.leadingDenials(memory.verdicts);
|
|
7800
7908
|
const trip = consecutive >= consecutiveDenies ? {
|
|
@@ -7807,7 +7915,7 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7807
7915
|
count: window
|
|
7808
7916
|
} : void 0;
|
|
7809
7917
|
})();
|
|
7810
|
-
if (trip === void 0) return;
|
|
7918
|
+
if (trip === void 0) return false;
|
|
7811
7919
|
const circuitId = newCircuitId();
|
|
7812
7920
|
if (auditOk) {
|
|
7813
7921
|
const result = session.append("autoReview/circuit", {
|
|
@@ -7846,6 +7954,7 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
7846
7954
|
}, 0);
|
|
7847
7955
|
this.pendingAborts.add(timer);
|
|
7848
7956
|
}
|
|
7957
|
+
return true;
|
|
7849
7958
|
}
|
|
7850
7959
|
/**
|
|
7851
7960
|
* Store one model-visible feedback text for a denied/failed call's tool
|
|
@@ -8043,6 +8152,7 @@ var AutoReviewRuntime = class AutoReviewRuntime {
|
|
|
8043
8152
|
}
|
|
8044
8153
|
/** Clear every pending circuit-breaker abort-turn timer; called by the plugin fiber's teardown effect. */
|
|
8045
8154
|
dispose() {
|
|
8155
|
+
this.disposed = true;
|
|
8046
8156
|
for (const timer of this.pendingAborts) clearTimeout(timer);
|
|
8047
8157
|
this.pendingAborts.clear();
|
|
8048
8158
|
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ declare module '@deepseek-ai/cordis' {
|
|
|
26
26
|
}
|
|
27
27
|
export { apply };
|
|
28
28
|
export { AutoReviewRuntime } from './runtime.js';
|
|
29
|
+
export type { DetailedAnswer, ReviewReceipt } from './runtime.js';
|
|
29
30
|
export * from './cache.js';
|
|
30
31
|
export * from './call-id.js';
|
|
31
32
|
export * from './config.js';
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIrD,eAAO,MAAM,IAAI,gBAAgB,CAAA;AAMjC,eAAO,MAAM,MAAM,UAAiD,CAAA;AAEpE,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,yFAAyF;QACzF,iBAAiB,EAAE,iBAAiB,CAAA;KACrC;CACF;AAID,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIrD,eAAO,MAAM,IAAI,gBAAgB,CAAA;AAMjC,eAAO,MAAM,MAAM,UAAiD,CAAA;AAEpE,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,yFAAyF;QACzF,iBAAiB,EAAE,iBAAiB,CAAA;KACrC;CACF;AAID,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjE,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA"}
|
package/lib/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAGpC,gFAAgF;AAChF,gFAAgF;AAChF,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAA;AAEjC,iFAAiF;AACjF,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AASpE,+EAA+E;AAC/E,6EAA6E;AAC7E,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAGpC,gFAAgF;AAChF,gFAAgF;AAChF,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAA;AAEjC,iFAAiF;AACjF,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AASpE,+EAA+E;AAC/E,6EAA6E;AAC7E,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA"}
|
package/lib/types/runtime.d.ts
CHANGED
|
@@ -9,12 +9,44 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { Context } from '@deepseek-ai/cordis';
|
|
11
11
|
import type { CommandInvocation, CommandResult } from '@deepseek-ai/dsh-commands';
|
|
12
|
-
import type {
|
|
12
|
+
import type { SessionEventMap } from '@deepseek-ai/dsh-session';
|
|
13
|
+
import type { ApprovalOutcome, ApprovalRequest, ApprovalRequestId } from '@deepseek-ai/dsh-user-approval';
|
|
13
14
|
import type { PostToolDecision, ToolExecution, ToolExecutionResult } from '@deepseek-ai/dsh-tools';
|
|
14
15
|
import type { Agent, PreStepDecision } from '@deepseek-ai/dsh-agent';
|
|
15
16
|
import type { UserMessage } from '@deepseek-ai/dsh-llm/message';
|
|
17
|
+
import type { CallId } from './call-id.js';
|
|
16
18
|
import type { Config, ResolvedConfig } from './config.js';
|
|
17
19
|
import type { AutoReviewProjection, AutoReviewProjectionState } from './projection-types.js';
|
|
20
|
+
import { type AutoReviewFallback } from './events.js';
|
|
21
|
+
/** Structured receipt independent of the host's custom session-event support. */
|
|
22
|
+
export interface ReviewReceipt {
|
|
23
|
+
sessionId: string;
|
|
24
|
+
approvalId?: ApprovalRequestId;
|
|
25
|
+
callId?: CallId;
|
|
26
|
+
toolName: string;
|
|
27
|
+
reviewId?: string;
|
|
28
|
+
category: 'review' | 'fault' | 'policy' | 'delegate' | 'circuit' | 'cancelled';
|
|
29
|
+
reason: string;
|
|
30
|
+
decision?: 'allow' | 'deny';
|
|
31
|
+
fallback?: AutoReviewFallback;
|
|
32
|
+
delegated?: boolean;
|
|
33
|
+
cached?: boolean;
|
|
34
|
+
configuredReviewerBackend?: string;
|
|
35
|
+
configuredReviewerModelProvider?: string;
|
|
36
|
+
reviewerModel?: string;
|
|
37
|
+
reviewerSessionId?: string;
|
|
38
|
+
durationMs?: number;
|
|
39
|
+
delegationReason?: string;
|
|
40
|
+
escalation?: 'risk-policy';
|
|
41
|
+
circuit?: SessionEventMap['autoReview/circuit'];
|
|
42
|
+
circuitTriggered?: boolean;
|
|
43
|
+
outcome?: ApprovalOutcome;
|
|
44
|
+
}
|
|
45
|
+
/** Closed answer plus the evidence needed by an external audit owner. */
|
|
46
|
+
export interface DetailedAnswer {
|
|
47
|
+
outcome: ApprovalOutcome;
|
|
48
|
+
receipt: ReviewReceipt;
|
|
49
|
+
}
|
|
18
50
|
export declare const name = "auto-review";
|
|
19
51
|
export declare const inject: string[];
|
|
20
52
|
/**
|
|
@@ -25,6 +57,7 @@ export declare const inject: string[];
|
|
|
25
57
|
export declare class AutoReviewRuntime {
|
|
26
58
|
private readonly ctx;
|
|
27
59
|
readonly config: ResolvedConfig;
|
|
60
|
+
private disposed;
|
|
28
61
|
/**
|
|
29
62
|
* Live reviewer children — their approval asks never re-enter AI review,
|
|
30
63
|
* and their steps are stripped of injected context by
|
|
@@ -132,6 +165,11 @@ export declare class AutoReviewRuntime {
|
|
|
132
165
|
* @returns the closed approval outcome.
|
|
133
166
|
*/
|
|
134
167
|
answer(request: ApprovalRequest, next: () => Promise<ApprovalOutcome>): Promise<ApprovalOutcome>;
|
|
168
|
+
/** Return a request-local audit receipt without appending unknown host events. */
|
|
169
|
+
answerDetailed(request: ApprovalRequest, next: () => Promise<ApprovalOutcome>): Promise<DetailedAnswer>;
|
|
170
|
+
/** 回执由调用方持有,嵌套 trip 也必须与内部熔断状态隔离。 */
|
|
171
|
+
private circuitSnapshot;
|
|
172
|
+
private answerCore;
|
|
135
173
|
/**
|
|
136
174
|
* Settle a `never`-policy request deterministically: record the log-only
|
|
137
175
|
* `autoReview/rejection` audit event, and feed a model-visible
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/lib/types/runtime.js
CHANGED
|
@@ -64,6 +64,7 @@ function policyFor(config, request, argumentsText) {
|
|
|
64
64
|
export class AutoReviewRuntime {
|
|
65
65
|
ctx;
|
|
66
66
|
config;
|
|
67
|
+
disposed = false;
|
|
67
68
|
/**
|
|
68
69
|
* Live reviewer children — their approval asks never re-enter AI review,
|
|
69
70
|
* and their steps are stripped of injected context by
|
|
@@ -370,33 +371,104 @@ export class AutoReviewRuntime {
|
|
|
370
371
|
* @returns the closed approval outcome.
|
|
371
372
|
*/
|
|
372
373
|
answer(request, next) {
|
|
374
|
+
return this.answerCore(request, next);
|
|
375
|
+
}
|
|
376
|
+
/** Return a request-local audit receipt without appending unknown host events. */
|
|
377
|
+
async answerDetailed(request, next) {
|
|
378
|
+
const receipt = {
|
|
379
|
+
sessionId: String(request.agent.id),
|
|
380
|
+
...(request.callId === undefined ? {} : { callId: request.callId }),
|
|
381
|
+
toolName: request.toolName,
|
|
382
|
+
category: 'delegate',
|
|
383
|
+
reason: 'unclaimed',
|
|
384
|
+
};
|
|
385
|
+
let outcome = 'rejected';
|
|
386
|
+
try {
|
|
387
|
+
const approvalId = correlateApprovalId(sessionEvents(request.agent.session), request.toolName, request.callId);
|
|
388
|
+
if (approvalId !== undefined) {
|
|
389
|
+
receipt.approvalId = approvalId;
|
|
390
|
+
}
|
|
391
|
+
if (!this.disposed) {
|
|
392
|
+
outcome = await this.answerCore(request, async () => {
|
|
393
|
+
receipt.delegated = true;
|
|
394
|
+
return next();
|
|
395
|
+
}, receipt);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
catch (error) {
|
|
399
|
+
receipt.category = 'fault';
|
|
400
|
+
receipt.reason = error instanceof Error ? error.message : String(error);
|
|
401
|
+
receipt.fallback = 'unavailable';
|
|
402
|
+
}
|
|
403
|
+
if (this.disposed) {
|
|
404
|
+
outcome = 'rejected';
|
|
405
|
+
receipt.category = 'fault';
|
|
406
|
+
receipt.reason = 'runtime-disposed';
|
|
407
|
+
receipt.fallback = 'unavailable';
|
|
408
|
+
}
|
|
409
|
+
receipt.outcome = outcome;
|
|
410
|
+
return { outcome, receipt };
|
|
411
|
+
}
|
|
412
|
+
/** 回执由调用方持有,嵌套 trip 也必须与内部熔断状态隔离。 */
|
|
413
|
+
circuitSnapshot(circuit) {
|
|
414
|
+
return { ...circuit, trip: { ...circuit.trip } };
|
|
415
|
+
}
|
|
416
|
+
answerCore(request, next, receipt) {
|
|
373
417
|
// Anti-recursion: a reviewer child's own approval asks go to the human chain.
|
|
374
|
-
if (this.reviewerSessions.has(request.agent.id))
|
|
418
|
+
if (this.reviewerSessions.has(request.agent.id)) {
|
|
419
|
+
if (receipt !== undefined) {
|
|
420
|
+
receipt.reason = 'reviewer-recursion';
|
|
421
|
+
}
|
|
375
422
|
return next();
|
|
423
|
+
}
|
|
376
424
|
const session = request.agent.session;
|
|
377
425
|
const memory = this.memoryFor(session);
|
|
378
426
|
const enabled = effectiveAutoReviewState(sessionEvents(session)) ?? memory.enabledOverride ?? this.config.enableByDefault;
|
|
379
|
-
if (!enabled)
|
|
427
|
+
if (!enabled) {
|
|
428
|
+
if (receipt !== undefined) {
|
|
429
|
+
receipt.reason = 'session-disabled';
|
|
430
|
+
}
|
|
380
431
|
return next();
|
|
432
|
+
}
|
|
381
433
|
const needsArguments = this.config.riskRules.some(rule => rule.field === 'arguments');
|
|
382
434
|
const argumentsText = needsArguments && request.callId !== undefined
|
|
383
435
|
? sanitizedArgumentsText(sessionEvents(session), request.callId)
|
|
384
436
|
: undefined;
|
|
385
437
|
const { policy, source } = policyFor(this.config, request, argumentsText);
|
|
386
|
-
if (policy === 'never')
|
|
387
|
-
return this.neverReject(request, source);
|
|
388
|
-
|
|
438
|
+
if (policy === 'never') {
|
|
439
|
+
return this.neverReject(request, source, receipt);
|
|
440
|
+
}
|
|
441
|
+
if (policy !== 'ai') {
|
|
442
|
+
if (receipt !== undefined) {
|
|
443
|
+
receipt.reason = 'human-policy';
|
|
444
|
+
}
|
|
389
445
|
return next();
|
|
446
|
+
}
|
|
390
447
|
// Separate budgets: real AI verdicts vs reviewer failures. A broken
|
|
391
448
|
// reviewer burns the failure budget (then delegates) without eating the
|
|
392
449
|
// AI-decision budget, and vice versa.
|
|
393
|
-
if (this.verdictsInOpenTurn(session, memory) >= this.config.maxReviewsPerTurn)
|
|
450
|
+
if (this.verdictsInOpenTurn(session, memory) >= this.config.maxReviewsPerTurn) {
|
|
451
|
+
if (receipt !== undefined) {
|
|
452
|
+
receipt.reason = 'review-budget';
|
|
453
|
+
}
|
|
394
454
|
return next();
|
|
395
|
-
|
|
455
|
+
}
|
|
456
|
+
if (this.failuresInOpenTurn(session, memory) >= this.config.maxFailuresPerTurn) {
|
|
457
|
+
if (receipt !== undefined) {
|
|
458
|
+
receipt.reason = 'failure-budget';
|
|
459
|
+
}
|
|
396
460
|
return next();
|
|
461
|
+
}
|
|
397
462
|
const circuit = this.circuitFor(session, memory);
|
|
398
|
-
if (circuit !== undefined)
|
|
463
|
+
if (circuit !== undefined) {
|
|
464
|
+
if (receipt !== undefined) {
|
|
465
|
+
receipt.category = 'circuit';
|
|
466
|
+
receipt.reason = 'plugin-circuit';
|
|
467
|
+
receipt.circuit = this.circuitSnapshot(circuit);
|
|
468
|
+
receipt.circuitTriggered = false;
|
|
469
|
+
}
|
|
399
470
|
return this.circuitSettle(request, circuit, next);
|
|
471
|
+
}
|
|
400
472
|
const approvalId = correlateApprovalId(sessionEvents(session), request.toolName, request.callId);
|
|
401
473
|
if (approvalId === undefined) {
|
|
402
474
|
// The audit chain cannot be completed (verdict → approval/asked); treat
|
|
@@ -404,13 +476,13 @@ export class AutoReviewRuntime {
|
|
|
404
476
|
return this.finish(request, undefined, {
|
|
405
477
|
fallback: 'unavailable',
|
|
406
478
|
error: 'cannot correlate the pending approval/asked audit event',
|
|
407
|
-
}, next);
|
|
479
|
+
}, next, 0, receipt);
|
|
408
480
|
}
|
|
409
481
|
const overrideId = this.activeOverrideFor(session, memory, request.toolName, Date.now());
|
|
410
482
|
const override = overrideId === undefined
|
|
411
483
|
? undefined
|
|
412
484
|
: { reviewId: overrideId, toolName: request.toolName };
|
|
413
|
-
return this.review(request, approvalId, next, override);
|
|
485
|
+
return this.review(request, approvalId, next, override, receipt);
|
|
414
486
|
}
|
|
415
487
|
/**
|
|
416
488
|
* Settle a `never`-policy request deterministically: record the log-only
|
|
@@ -423,9 +495,14 @@ export class AutoReviewRuntime {
|
|
|
423
495
|
* @param source - the matched risk rule or policy table entry.
|
|
424
496
|
* @returns the closed rejection.
|
|
425
497
|
*/
|
|
426
|
-
neverReject(request, source) {
|
|
498
|
+
neverReject(request, source, receipt) {
|
|
427
499
|
const rejectionId = newRejectionId();
|
|
428
500
|
const reason = truncate(source, this.config.reasonMaxChars);
|
|
501
|
+
if (receipt !== undefined) {
|
|
502
|
+
receipt.category = 'policy';
|
|
503
|
+
receipt.reason = reason;
|
|
504
|
+
receipt.reviewId = String(rejectionId);
|
|
505
|
+
}
|
|
429
506
|
const approvalId = correlateApprovalId(sessionEvents(request.agent.session), request.toolName, request.callId);
|
|
430
507
|
const session = request.agent.session;
|
|
431
508
|
const memory = this.memoryFor(session);
|
|
@@ -485,7 +562,7 @@ export class AutoReviewRuntime {
|
|
|
485
562
|
* @param override - a pending human one-shot override, when one applies.
|
|
486
563
|
* @returns the closed approval outcome.
|
|
487
564
|
*/
|
|
488
|
-
async review(request, approvalId, next, override) {
|
|
565
|
+
async review(request, approvalId, next, override, receipt) {
|
|
489
566
|
const started = Date.now();
|
|
490
567
|
const cacheKey = this.fingerprintFor(request);
|
|
491
568
|
let resolution;
|
|
@@ -512,7 +589,7 @@ export class AutoReviewRuntime {
|
|
|
512
589
|
}
|
|
513
590
|
const durationMs = Date.now() - started;
|
|
514
591
|
if (isReviewFailure(resolution)) {
|
|
515
|
-
return this.finish(request, approvalId, resolution, next, durationMs);
|
|
592
|
+
return this.finish(request, approvalId, resolution, next, durationMs, receipt);
|
|
516
593
|
}
|
|
517
594
|
const reviewId = newVerdictId();
|
|
518
595
|
const overridden = resolution.decision === 'allow'
|
|
@@ -521,6 +598,30 @@ export class AutoReviewRuntime {
|
|
|
521
598
|
const outcome = overridden
|
|
522
599
|
? this.config.riskPolicy.onHighRisk === 'deny' ? 'rejected' : undefined
|
|
523
600
|
: resolution.decision === 'allow' ? 'allowed-once' : 'rejected';
|
|
601
|
+
if (receipt !== undefined) {
|
|
602
|
+
receipt.category = 'review';
|
|
603
|
+
receipt.reviewId = String(reviewId);
|
|
604
|
+
receipt.decision = resolution.decision;
|
|
605
|
+
receipt.reason = overridden ? resolution.reason + ' (risk-policy override)' : resolution.reason;
|
|
606
|
+
if (overridden) {
|
|
607
|
+
receipt.escalation = 'risk-policy';
|
|
608
|
+
}
|
|
609
|
+
receipt.cached = cached;
|
|
610
|
+
receipt.configuredReviewerBackend = this.config.reviewerProvider;
|
|
611
|
+
if (this.config.reviewerModelProvider !== undefined) {
|
|
612
|
+
receipt.configuredReviewerModelProvider = this.config.reviewerModelProvider;
|
|
613
|
+
}
|
|
614
|
+
if (resolution.model !== undefined) {
|
|
615
|
+
receipt.reviewerModel = resolution.model;
|
|
616
|
+
}
|
|
617
|
+
if (resolution.reviewerSessionId !== undefined) {
|
|
618
|
+
receipt.reviewerSessionId = String(resolution.reviewerSessionId);
|
|
619
|
+
}
|
|
620
|
+
receipt.durationMs = durationMs;
|
|
621
|
+
if (outcome === undefined) {
|
|
622
|
+
receipt.delegationReason = 'risk-policy';
|
|
623
|
+
}
|
|
624
|
+
}
|
|
524
625
|
const auditOk = this.auditMayAppend();
|
|
525
626
|
if (auditOk) {
|
|
526
627
|
const result = request.agent.session.append('autoReview/verdict', {
|
|
@@ -552,14 +653,30 @@ export class AutoReviewRuntime {
|
|
|
552
653
|
return next();
|
|
553
654
|
if (resolution.decision === 'deny') {
|
|
554
655
|
this.recordDenyReason(request.callId, request.toolName, reviewId, resolution.reason);
|
|
555
|
-
this.checkCircuit(request);
|
|
656
|
+
const circuitTriggered = this.checkCircuit(request);
|
|
657
|
+
if (receipt !== undefined) {
|
|
658
|
+
const circuit = this.circuitFor(request.agent.session, this.memoryFor(request.agent.session));
|
|
659
|
+
if (circuit !== undefined) {
|
|
660
|
+
// 回执由调用方持有,不能泄漏会影响后续审批的内部熔断状态。
|
|
661
|
+
receipt.circuit = this.circuitSnapshot(circuit);
|
|
662
|
+
}
|
|
663
|
+
receipt.circuitTriggered = circuitTriggered;
|
|
664
|
+
}
|
|
556
665
|
return 'rejected';
|
|
557
666
|
}
|
|
558
667
|
if (overridden) {
|
|
559
668
|
// The reviewer allowed, but the risk policy denied: feed the override
|
|
560
669
|
// back to the model and count it toward the rejection circuit breaker.
|
|
561
670
|
this.recordDenyReason(request.callId, request.toolName, reviewId, `${resolution.reason} (risk ${resolution.riskLevel} exceeds the configured maxAutoAllow ${this.config.riskPolicy.maxAutoAllow}; the allow verdict was overridden)`);
|
|
562
|
-
this.checkCircuit(request);
|
|
671
|
+
const circuitTriggered = this.checkCircuit(request);
|
|
672
|
+
if (receipt !== undefined) {
|
|
673
|
+
const circuit = this.circuitFor(request.agent.session, this.memoryFor(request.agent.session));
|
|
674
|
+
if (circuit !== undefined) {
|
|
675
|
+
// 回执由调用方持有,不能泄漏会影响后续审批的内部熔断状态。
|
|
676
|
+
receipt.circuit = this.circuitSnapshot(circuit);
|
|
677
|
+
}
|
|
678
|
+
receipt.circuitTriggered = circuitTriggered;
|
|
679
|
+
}
|
|
563
680
|
return 'rejected';
|
|
564
681
|
}
|
|
565
682
|
return 'allowed-once';
|
|
@@ -570,12 +687,31 @@ export class AutoReviewRuntime {
|
|
|
570
687
|
* otherwise `rejected` (fail closed), `allow-once`, or `delegate`
|
|
571
688
|
* (continue the chain) per config.
|
|
572
689
|
*/
|
|
573
|
-
finish(request, approvalId, failure, next, durationMs = 0) {
|
|
690
|
+
finish(request, approvalId, failure, next, durationMs = 0, receipt) {
|
|
574
691
|
const outcome = this.fallbackOutcome(failure);
|
|
692
|
+
if (receipt !== undefined) {
|
|
693
|
+
receipt.category = failure.fallback === 'cancelled' ? 'cancelled' : 'fault';
|
|
694
|
+
receipt.reason = failure.error;
|
|
695
|
+
receipt.configuredReviewerBackend = this.config.reviewerProvider;
|
|
696
|
+
if (this.config.reviewerModelProvider !== undefined) {
|
|
697
|
+
receipt.configuredReviewerModelProvider = this.config.reviewerModelProvider;
|
|
698
|
+
}
|
|
699
|
+
if (failure.model !== undefined) {
|
|
700
|
+
receipt.reviewerModel = failure.model;
|
|
701
|
+
}
|
|
702
|
+
if (failure.reviewerSessionId !== undefined) {
|
|
703
|
+
receipt.reviewerSessionId = String(failure.reviewerSessionId);
|
|
704
|
+
}
|
|
705
|
+
receipt.durationMs = durationMs;
|
|
706
|
+
receipt.fallback = failure.fallback;
|
|
707
|
+
}
|
|
575
708
|
const session = request.agent.session;
|
|
576
709
|
const auditOk = this.auditMayAppend();
|
|
577
710
|
if (approvalId !== undefined) {
|
|
578
711
|
const reviewId = newVerdictId();
|
|
712
|
+
if (receipt !== undefined) {
|
|
713
|
+
receipt.reviewId = String(reviewId);
|
|
714
|
+
}
|
|
579
715
|
if (auditOk) {
|
|
580
716
|
const result = session.append('autoReview/verdict', {
|
|
581
717
|
reviewId,
|
|
@@ -657,8 +793,9 @@ export class AutoReviewRuntime {
|
|
|
657
793
|
const session = request.agent.session;
|
|
658
794
|
const memory = this.memoryFor(session);
|
|
659
795
|
const auditOk = this.auditMayAppend();
|
|
660
|
-
if ((auditOk ? circuitInOpenTurn(sessionEvents(session)) : memory.circuit) !== undefined)
|
|
661
|
-
return;
|
|
796
|
+
if ((auditOk ? circuitInOpenTurn(sessionEvents(session)) : memory.circuit) !== undefined) {
|
|
797
|
+
return false;
|
|
798
|
+
}
|
|
662
799
|
const { consecutiveDenies, windowDenies, windowSize, action } = this.config.circuitBreaker;
|
|
663
800
|
const consecutive = auditOk ? consecutiveDeniesInOpenTurn(sessionEvents(session)) : AutoReviewRuntime.leadingDenials(memory.verdicts);
|
|
664
801
|
const trip = consecutive >= consecutiveDenies
|
|
@@ -669,8 +806,9 @@ export class AutoReviewRuntime {
|
|
|
669
806
|
: memory.verdicts.slice(0, windowSize).filter(verdict => verdict.denial).length;
|
|
670
807
|
return window >= windowDenies ? { kind: 'window', count: window } : undefined;
|
|
671
808
|
})();
|
|
672
|
-
if (trip === undefined)
|
|
673
|
-
return;
|
|
809
|
+
if (trip === undefined) {
|
|
810
|
+
return false;
|
|
811
|
+
}
|
|
674
812
|
const circuitId = newCircuitId();
|
|
675
813
|
if (auditOk) {
|
|
676
814
|
const result = session.append('autoReview/circuit', {
|
|
@@ -701,6 +839,7 @@ export class AutoReviewRuntime {
|
|
|
701
839
|
}, 0);
|
|
702
840
|
this.pendingAborts.add(timer);
|
|
703
841
|
}
|
|
842
|
+
return true;
|
|
704
843
|
}
|
|
705
844
|
/**
|
|
706
845
|
* Store one model-visible feedback text for a denied/failed call's tool
|
|
@@ -914,6 +1053,7 @@ export class AutoReviewRuntime {
|
|
|
914
1053
|
}
|
|
915
1054
|
/** Clear every pending circuit-breaker abort-turn timer; called by the plugin fiber's teardown effect. */
|
|
916
1055
|
dispose() {
|
|
1056
|
+
this.disposed = true;
|
|
917
1057
|
for (const timer of this.pendingAborts)
|
|
918
1058
|
clearTimeout(timer);
|
|
919
1059
|
this.pendingAborts.clear();
|
package/lib/types/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAKrF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAQnD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAA;AAC7G,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAErE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,GAQZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAkCtI,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAA;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;AAEpE,gGAAgG;AAChG,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAA;AAkFlC,8EAA8E;AAC9E,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,gEAAgE;AAChE,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAE5B,0FAA0F;AAC1F,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAY/B,4DAA4D;AAC5D,SAAS,WAAW,CAAC,KAAY,EAAE,KAAa;IAC9C,MAAM,IAAI,SAAS,CAAC,WAAW,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AAC3D,CAAC;AASD;;;;;;;;;GASG;AACH,SAAS,SAAS,CAAC,MAAsB,EAAE,OAAwB,EAAE,aAAiC;IACpG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ;YACrC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE;YACtB,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU;gBACzB,CAAC,CAAC,OAAO,CAAC,QAAQ;gBAClB,CAAC,CAAC,aAAa,IAAI,EAAE,CAAA;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACrH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA;IAC5G,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IAoCT,GAAG;IACX,MAAM;IApCT,QAAQ,GAAG,KAAK,CAAA;IACxB;;;;OAIG;IACc,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAA;IAE1D,4FAA4F;IAC3E,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE5D,uIAAuI;IAC/H,YAAY,GAAiB,SAAS,CAAA;IAE9C,yFAAyF;IACxE,MAAM,GAAG,IAAI,OAAO,EAA0B,CAAA;IAE/D;;;;;OAKG;IACc,OAAO,GAAG,IAAI,OAAO,EAAwB,CAAA;IAE9D,mFAAmF;IAC3E,cAAc,GAAG,KAAK,CAAA;IAE9B,kFAAkF;IACjE,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAA;IAEzE,kFAAkF;IACjE,KAAK,CAAc;IAEpC,YACmB,GAAY,EACpB,MAAsB;mBADd,GAAG;sBACX,MAAM;QAEf,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAA;IAC/G,CAAC;IAED,6EAA6E;IAE7E;;;;;OAKG;IACK,oBAAoB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAA;IAC/F,CAAC;IAED;;;;;;;;;OASG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAAE,OAAO,IAAI,CAAA;QAC/C,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa;YAAE,OAAO,KAAK,CAAA;QACrD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAA;YACpC,IAAI,OAAO,KAAK,IAAI,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,YAAY,GAAG,aAAa,CAAA;gBACjC,IAAI,CAAC,qBAAqB,EAAE,CAAA;gBAC5B,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA,CAAC,4EAA4E;IAC1F,CAAC;IAED,2GAA2G;IACnG,gBAAgB,CAAC,MAAe;QACtC,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAAE,OAAM;QAC7E,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,aAAa,CAAA;YACjC,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,0FAA0F;IAClF,qBAAqB;QAC3B,IAAI,IAAI,CAAC,cAAc;YAAE,OAAM;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAClB,ybAAyb,CAC1b,CAAA;IACH,CAAC;IAED,6EAA6E;IAE7E,2GAA2G;IACnG,WAAW,CAAC,OAAgB;QAClC,IAAI,KAAyB,CAAA;QAC7B,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAA;iBAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;gBAAE,KAAK,GAAG,SAAS,CAAA;QACvD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mFAAmF;IAC3E,SAAS,CAAC,OAAgB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACrD,KAAK,GAAG;gBACN,OAAO;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,SAAS;gBAClB,eAAe,EAAE,SAAS;gBAC1B,SAAS,EAAE,EAAE;aACd,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,kDAAkD;QAClD,mEAAmE;QACnE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACnE,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACK,QAAQ,CAAC,OAAgB;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG;gBACN,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,EAAE;gBACV,YAAY,EAAE,EAAE;aACjB,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,wFAAwF;IAChF,mBAAmB,CAAC,MAAqB,EAAE,OAAsB;QACvE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU;YAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAA;QAClI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;YACrE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB;gBAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAA;QACxF,CAAC;QACD,mDAAmD;QACnD,yDAAyD;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAM;QAC/B,IAAI,OAAO,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAA;;YAChC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAA;QACtB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5F,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB;YAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAA;QACpF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC1E,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,iBAAiB;gBAAE,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,iBAAiB,CAAA;QAClG,CAAC;IACH,CAAC;IAED,gFAAgF;IACxE,MAAM,CAAC,cAAc,CAAC,QAAkC;QAC9D,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,MAAK;YAC1B,KAAK,IAAI,CAAC,CAAA;QACZ,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,mHAAmH;IAC3G,kBAAkB,CAAC,OAAgB,EAAE,MAAqB;QAChE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;IACvG,CAAC;IAEO,kBAAkB,CAAC,OAAgB,EAAE,MAAqB;QAChE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAA;IACvG,CAAC;IAEO,UAAU,CAAC,OAAgB,EAAE,MAAqB;QACxD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;IAC3F,CAAC;IAED,mHAAmH;IAC3G,iBAAiB,CAAC,OAAgB,EAAE,MAAqB,EAAE,QAAgB,EAAE,GAAW;QAC9F,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QAClH,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAClD,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACnF,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAC/B,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAA0C,CAAA;IACjG,CAAC;IAED,iHAAiH;IACzG,WAAW,CAAC,MAAqB;QACvC,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,IAAI,CAAC,CAAA;;gBAC1B,MAAM,IAAI,CAAC,CAAA;QAClB,CAAC;QACD,OAAO;YACL,MAAM;YACN,MAAM;YACN,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACnD,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAe,CAAC,CAAC,CAAC,OAAgB;aAC9D,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;OAUG;IACK,WAAW,CAAC,EAAsB;QACxC,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC5C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YAAE,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;gBAAE,OAAO,OAAO,CAAA;QAC5F,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,aAAa,CAAC,KAAgC;QAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO,MAAM,CAAA;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACjD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,MAAM,CAAA;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI;YAC5B,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,EAAE;SACjB,CAAA;QACD,OAAO;YACL,OAAO,EAAE,wBAAwB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe;YAClH,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YACpC,YAAY,EAAE,MAAM,CAAC,QAAQ;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,KAAK,CAAC,UAAU;YAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACnC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;gBACd,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAe,CAAC,CAAC,CAAC,OAAgB;aAC9D,CAAC,CAAC;YACH,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,OAAwB,EAAE,IAAoC;QACnE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,cAAc,CAAC,OAAwB,EAAE,IAAoC;QACjF,MAAM,OAAO,GAAkB;YAC7B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YACnE,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,WAAW;SACpB,CAAA;QACD,IAAI,OAAO,GAAoB,UAAU,CAAA;QACzC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC9G,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;YACjC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAA;oBACxB,OAAO,IAAI,EAAE,CAAA;gBACf,CAAC,EAAE,OAAO,CAAC,CAAA;YACb,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAA;YAC1B,OAAO,CAAC,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACvE,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAA;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,GAAG,UAAU,CAAA;YACpB,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAA;YAC1B,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAA;YACnC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAA;QAClC,CAAC;QACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA;QACzB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,qCAAqC;IAC7B,eAAe,CAAC,OAA8C;QACpE,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAA;IAClD,CAAC;IAEO,UAAU,CAAC,OAAwB,EAAE,IAAoC,EAAE,OAAuB;QACxG,8EAA8E;QAC9E,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAA;YACvC,CAAC;YACD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,wBAAwB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;QACzH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAA;YACrC,CAAC;YACD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAA;QACrF,MAAM,aAAa,GAAG,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAClE,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;YAChE,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QACzE,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,GAAG,cAAc,CAAA;YACjC,CAAC;YACD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QACD,oEAAoE;QACpE,wEAAwE;QACxE,sCAAsC;QACtC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,GAAG,eAAe,CAAA;YAClC,CAAC;YACD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC/E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAA;YACnC,CAAC;YACD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAA;gBAC5B,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAA;gBACjC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;gBAC/C,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAA;YAClC,CAAC;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QACnD,CAAC;QACD,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAChG,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,wEAAwE;YACxE,mDAAmD;YACnD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE;gBACrC,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,yDAAyD;aACjE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;QACtB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACxF,MAAM,QAAQ,GAAgC,UAAU,KAAK,SAAS;YACpE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;QACxD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC;IAED;;;;;;;;;;OAUG;IACK,WAAW,CAAC,OAAwB,EAAE,MAAc,EAAE,OAAuB;QACnF,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QAC3D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;YAC3B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;YACvB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;QACxC,CAAC;QACD,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9G,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAI,OAAO,CAAC,MAAqC,CAAC,sBAAsB,EAAE;gBACpF,WAAW;gBACX,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;gBACjD,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;gBACjE,MAAM;gBACN,OAAO,EAAE,UAAU;aACpB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,mEAAmE;YACnE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAA;YACtB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAA;QAC9D,CAAC;QACD,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;YACxD,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;QAC3E,OAAO,OAAO,CAAC,OAAO,CAAkB,UAAU,CAAC,CAAA;IACrD,CAAC;IAED;;;;;;;;;;OAUG;IACK,cAAc,CAAC,OAAwB;QAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;QACxD,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QACzD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAClD,MAAM,GAAG,GAAG,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACnF,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,MAAM,CAClB,OAAwB,EACxB,UAA6B,EAC7B,IAAoC,EACpC,QAA0B,EAC1B,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,UAA4B,CAAA;QAChC,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC7C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,UAAU,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;gBACvB,MAAM,GAAG,IAAI,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;gBAC7F,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;wBACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;wBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,GAAG,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;qBACjF,EAAE,OAAO,CAAC,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;QAC/F,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAA;QACvC,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAChF,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAA;QAC/B,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,KAAK,OAAO;eAC7C,UAAU,CAAC,SAAS,KAAK,SAAS;eAClC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAgC,UAAU;YACrD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACvE,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAA;QACjE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;YAC3B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;YACnC,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;YACtC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAA;YAC/F,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,UAAU,GAAG,aAAa,CAAA;YACpC,CAAC;YACD,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;YACvB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAA;YAChE,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;gBACpD,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAA;YAC7E,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC,KAAK,CAAA;YAC1C,CAAC;YACD,IAAI,UAAU,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBAC/C,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;YAClE,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;YAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,gBAAgB,GAAG,aAAa,CAAA;YAC1C,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAmC,CAAC,oBAAoB,EAAE;gBAC9F,QAAQ;gBACR,UAAU;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;gBACjE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE;gBACrC,GAAG,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;gBACpE,GAAG,UAAU,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE;gBACxG,UAAU;gBACV,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,GAAG,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;gBAChF,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE;gBAClD,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC3C,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;aAClC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC9D,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,UAAU,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,UAAU,IAAI,OAAO,KAAK,UAAU,CAAC;aACjF,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,EAAE,CAAA;QACxC,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;YACpF,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC7F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,+BAA+B;oBAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;gBACjD,CAAC;gBACD,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YAC7C,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,sEAAsE;YACtE,uEAAuE;YACvE,IAAI,CAAC,gBAAgB,CACnB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,QAAQ,EAChB,QAAQ,EACR,GAAG,UAAU,CAAC,MAAM,UAAU,UAAU,CAAC,SAAS,wCAAwC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,qCAAqC,CACnK,CAAA;YACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC7F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,+BAA+B;oBAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;gBACjD,CAAC;gBACD,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YAC7C,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CACZ,OAAwB,EACxB,UAAyC,EACzC,OAAsB,EACtB,IAAoC,EACpC,UAAU,GAAG,CAAC,EACd,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;YAC3E,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAA;YAC9B,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAA;YAChE,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;gBACpD,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAA;YAC7E,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAA;YACvC,CAAC;YACD,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBAC5C,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YAC/D,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;YAC/B,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QACrC,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACrC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAA;YAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;YACrC,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAI,OAAO,CAAC,MAAmC,CAAC,oBAAoB,EAAE;oBAChF,QAAQ;oBACR,UAAU;oBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;oBACjE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE;oBACrC,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;oBAC9D,GAAG,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE;oBAClG,UAAU;oBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;iBAC5C,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBAC9C,cAAc,CAAC,QAAQ,IAAI,CAAC,CAAA;gBAC5B,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS;oBAAE,cAAc,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;YAC7E,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,QAAQ,SAAS,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;YAC5G,sEAAsE;YACtE,kEAAkE;YAClE,mDAAmD;YACnD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;YACxF,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,EAAE,CAAA;QACxC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED;;;;;;OAMG;IACK,eAAe,CAAC,OAAsB;QAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW;YAAE,OAAO,WAAW,CAAA;QACxD,QAAQ,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACnC,KAAK,UAAU,EAAE,OAAO,UAAU,CAAA;YAClC,KAAK,YAAY,EAAE,OAAO,cAAc,CAAA;YACxC,KAAK,UAAU,EAAE,OAAO,SAAS,CAAA;YACjC,SAAS,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,aAAa,CACnB,OAAwB,EACxB,OAA8C,EAC9C,IAAoC;QAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,EAAE,CAAA;QAChD,MAAM,WAAW,GAAG,sCAAsC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,WAAW,CAAA;QAC7G,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;YAChC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC;YACrE,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACzD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACzC,OAAO,OAAO,CAAC,OAAO,CAAkB,UAAU,CAAC,CAAA;IACrD,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,OAAwB;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;YACzF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;QAC1F,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrI,MAAM,IAAI,GAAG,WAAW,IAAI,iBAAiB;YAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,aAAsB,EAAE,KAAK,EAAE,WAAW,EAAE;YACtD,CAAC,CAAC,CAAC,GAAG,EAAE;gBACN,MAAM,MAAM,GAAG,OAAO;oBACpB,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;oBAC5D,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;gBACjF,OAAO,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YACxF,CAAC,CAAC,EAAE,CAAA;QACN,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAI,OAAO,CAAC,MAAmC,CAAC,oBAAoB,EAAE;gBAChF,SAAS;gBACT,MAAM;gBACN,IAAI;gBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;QAC1E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,QAAQ,OAAO,CAAC,QAAQ,YAAY,MAAM,EAAE,CAAC,CAAA;QAClI,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAClF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACrC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzC,MAAM,EAAE;oBACN,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,mBAAmB,CAAC,wCAAwC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,gBAAgB,OAAO,CAAC,QAAQ,EAAE,CAAC;iBACjI;aACF,CAAC,CAAC,CAAA;YACH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAChC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gCAAgC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC3G,CAAC,EAAE,CAAC,CAAC,CAAA;YACL,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACK,cAAc,CAAC,MAA0B,EAAE,IAAY;QAC7D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,eAAe;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;;;;;OASG;IACK,gBAAgB,CACtB,MAA0B,EAC1B,QAAgB,EAChB,QAA6B,EAC7B,MAAc;QAEd,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;YAChC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC5C,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;IACrE,CAAC;IAED;;;;;;OAMG;IACK,sBAAsB,CAC5B,MAA0B,EAC1B,QAA6B,EAC7B,QAA4B,EAC5B,KAAa;QAEb,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;YAChC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACrF,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;QAClF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,IAAmB,EACnB,MAAqC,EACrC,IAAqC;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,EAAE,CAAA;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,EAAE,CAAA;QAClC,OAAO,OAAO,CAAC,OAAO,CAAmB;YACvC,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;SAC/C,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,UAA6B;QACnC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACtD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QACvE,MAAM,OAAO,GAAG,wBAAwB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAA;QACzH,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YACrC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YACtF,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;YACpF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBACtC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBACzC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS;4BAC1C,CAAC,CAAC,OAAO,CAAC,QAAQ;4BAClB,CAAC,CAAC,YAAa,OAAiC,CAAC,QAAQ,IAAI,GAAG,GAAG,CAAA;wBACrE,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAA;oBACxC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;YACrG,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAA;YACrG,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;YAC5D,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE;oBACJ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;oBACrB,CAAC,CAAC,YAAY,CACZ,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CACpG;oBACD,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;oBAC3D,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;oBAC5D,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBACtG,QAAQ;wBACN,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;wBACvG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;oBACrG,GAAG,MAAM;oBACT,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC1C,CAAC,CAAC,KAAK;iBACR,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAA;QACH,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC/C,CAAA;QACH,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAA;QAC9B,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAA;QAClE,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiC,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/G,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,eAAe,GAAG,OAAO,CAAA;QAClC,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACxC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC7B,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb,CAAC;YACF,MAAM,EAAE;gBACN,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC;aACrC;SACF,CAAC,CAAC,CAAA;QACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAA;IACzE,CAAC;IAED;;;;;;;;OAQG;IACK,cAAc,CAAC,UAA6B;QAClD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC9D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC;aAClC,CAAA;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACrC,MAAM,MAAM,GAAG,OAAO;YACpB,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;YACnD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7C,QAAQ,EAAE,MAAM,CAAC,EAAoC;gBACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC,CAAA;QACL,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;QACrE,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAI,OAAO,CAAC,MAAoC,CAAC,qBAAqB,EAAE;gBAClF,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YACvG,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,oBAAoB;gBAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAA;QAChI,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;SAChH,CAAA;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,oBAAoB,CAClB,OAAkD,EAClD,IAAoC;QAEpC,OAAO,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACnE,CAAC;IAED,0GAA0G;IAC1G,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;QAC3D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;IAC5B,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAc;IAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACtC,6EAA6E;IAC7E,uEAAuE;IACvE,sEAAsE;IACtE,2EAA2E;IAC3E,4EAA4E;IAC5E,+CAA+C;IAC/C,IAAI,QAAQ,CAAC,eAAe,KAAK,OAAO,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxG,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,qXAAqX,CACtX,CAAA;IACH,CAAC;IACD,4EAA4E;IAC5E,8EAA8E;IAC9E,IAAI,QAAQ,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;aAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;QAChE,IAAI,QAAQ,CAAC,WAAW,CAAC,OAAO,KAAK,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC5E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,kFAAkF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;kBACxG,iIAAiI,CACpI,CAAA;QACH,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACpD,4EAA4E;IAC5E,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,mCAAmC,CAAC,CAAA;IAC9E,oEAAoE;IACpE,uEAAuE;IACvE,oDAAoD;IACpD,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;IACzC,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,uEAAuE;IACvE,kEAAkE;IAClE,wEAAwE;IACxE,yEAAyE;IACzE,6EAA6E;IAC7E,yEAAyE;IACzE,yDAAyD;IACzD,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/F,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAClG,4EAA4E;IAC5E,qEAAqE;IACrE,qEAAqE;IACrE,uDAAuD;IACvD,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3G,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACpB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW;QACpD,KAAK,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;QAC5C,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;KACnD,CAAC,CAAA;IACF,IAAI,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,SAAS,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAC3E,wBAAwB,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAC1F,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-auto-review",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"packageManager": "pnpm@11.7.0",
|
|
5
5
|
"description": "Second-model AI auto-review for DeepSeek Harness approval requests: a read-only reviewer subagent or the local non-generative Phocinae-Largha-150M-v1 decision model decides allow/deny on the approval answerer chain, with fail-closed fallback and full session-log audit.",
|
|
6
6
|
"private": false,
|
package/src/index.ts
CHANGED
|
@@ -39,6 +39,7 @@ declare module '@deepseek-ai/cordis' {
|
|
|
39
39
|
// answerer and the `tools/post-execute` deny-reason listener on the context.
|
|
40
40
|
export { apply }
|
|
41
41
|
export { AutoReviewRuntime } from './runtime.ts'
|
|
42
|
+
export type { DetailedAnswer, ReviewReceipt } from './runtime.ts'
|
|
42
43
|
export * from './cache.ts'
|
|
43
44
|
export * from './call-id.ts'
|
|
44
45
|
export * from './config.ts'
|
package/src/runtime.ts
CHANGED
|
@@ -61,6 +61,37 @@ import {
|
|
|
61
61
|
import { isReviewFailure, newCircuitId, newRejectionId, newVerdictId, runReview, sanitizedArgumentsText, truncate } from './review.ts'
|
|
62
62
|
import type { OverrideContext, ReviewFailure, ReviewResolution } from './review.ts'
|
|
63
63
|
|
|
64
|
+
/** Structured receipt independent of the host's custom session-event support. */
|
|
65
|
+
export interface ReviewReceipt {
|
|
66
|
+
sessionId: string
|
|
67
|
+
approvalId?: ApprovalRequestId
|
|
68
|
+
callId?: CallId
|
|
69
|
+
toolName: string
|
|
70
|
+
reviewId?: string
|
|
71
|
+
category: 'review' | 'fault' | 'policy' | 'delegate' | 'circuit' | 'cancelled'
|
|
72
|
+
reason: string
|
|
73
|
+
decision?: 'allow' | 'deny'
|
|
74
|
+
fallback?: AutoReviewFallback
|
|
75
|
+
delegated?: boolean
|
|
76
|
+
cached?: boolean
|
|
77
|
+
configuredReviewerBackend?: string
|
|
78
|
+
configuredReviewerModelProvider?: string
|
|
79
|
+
reviewerModel?: string
|
|
80
|
+
reviewerSessionId?: string
|
|
81
|
+
durationMs?: number
|
|
82
|
+
delegationReason?: string
|
|
83
|
+
escalation?: 'risk-policy'
|
|
84
|
+
circuit?: SessionEventMap['autoReview/circuit']
|
|
85
|
+
circuitTriggered?: boolean
|
|
86
|
+
outcome?: ApprovalOutcome
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Closed answer plus the evidence needed by an external audit owner. */
|
|
90
|
+
export interface DetailedAnswer {
|
|
91
|
+
outcome: ApprovalOutcome
|
|
92
|
+
receipt: ReviewReceipt
|
|
93
|
+
}
|
|
94
|
+
|
|
64
95
|
export const name = 'auto-review'
|
|
65
96
|
export const inject = ['approval', 'subagents', 'commands', 'tools']
|
|
66
97
|
|
|
@@ -208,6 +239,7 @@ function policyFor(config: ResolvedConfig, request: ApprovalRequest, argumentsTe
|
|
|
208
239
|
* teardown effect that clears the pending circuit-breaker timers.
|
|
209
240
|
*/
|
|
210
241
|
export class AutoReviewRuntime {
|
|
242
|
+
private disposed = false
|
|
211
243
|
/**
|
|
212
244
|
* Live reviewer children — their approval asks never re-enter AI review,
|
|
213
245
|
* and their steps are stripped of injected context by
|
|
@@ -520,26 +552,106 @@ export class AutoReviewRuntime {
|
|
|
520
552
|
* @returns the closed approval outcome.
|
|
521
553
|
*/
|
|
522
554
|
answer(request: ApprovalRequest, next: () => Promise<ApprovalOutcome>): Promise<ApprovalOutcome> {
|
|
555
|
+
return this.answerCore(request, next)
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/** Return a request-local audit receipt without appending unknown host events. */
|
|
559
|
+
async answerDetailed(request: ApprovalRequest, next: () => Promise<ApprovalOutcome>): Promise<DetailedAnswer> {
|
|
560
|
+
const receipt: ReviewReceipt = {
|
|
561
|
+
sessionId: String(request.agent.id),
|
|
562
|
+
...(request.callId === undefined ? {} : { callId: request.callId }),
|
|
563
|
+
toolName: request.toolName,
|
|
564
|
+
category: 'delegate',
|
|
565
|
+
reason: 'unclaimed',
|
|
566
|
+
}
|
|
567
|
+
let outcome: ApprovalOutcome = 'rejected'
|
|
568
|
+
try {
|
|
569
|
+
const approvalId = correlateApprovalId(sessionEvents(request.agent.session), request.toolName, request.callId)
|
|
570
|
+
if (approvalId !== undefined) {
|
|
571
|
+
receipt.approvalId = approvalId
|
|
572
|
+
}
|
|
573
|
+
if (!this.disposed) {
|
|
574
|
+
outcome = await this.answerCore(request, async () => {
|
|
575
|
+
receipt.delegated = true
|
|
576
|
+
return next()
|
|
577
|
+
}, receipt)
|
|
578
|
+
}
|
|
579
|
+
} catch (error) {
|
|
580
|
+
receipt.category = 'fault'
|
|
581
|
+
receipt.reason = error instanceof Error ? error.message : String(error)
|
|
582
|
+
receipt.fallback = 'unavailable'
|
|
583
|
+
}
|
|
584
|
+
if (this.disposed) {
|
|
585
|
+
outcome = 'rejected'
|
|
586
|
+
receipt.category = 'fault'
|
|
587
|
+
receipt.reason = 'runtime-disposed'
|
|
588
|
+
receipt.fallback = 'unavailable'
|
|
589
|
+
}
|
|
590
|
+
receipt.outcome = outcome
|
|
591
|
+
return { outcome, receipt }
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
/** 回执由调用方持有,嵌套 trip 也必须与内部熔断状态隔离。 */
|
|
595
|
+
private circuitSnapshot(circuit: SessionEventMap['autoReview/circuit']): SessionEventMap['autoReview/circuit'] {
|
|
596
|
+
return { ...circuit, trip: { ...circuit.trip } }
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
private answerCore(request: ApprovalRequest, next: () => Promise<ApprovalOutcome>, receipt?: ReviewReceipt): Promise<ApprovalOutcome> {
|
|
523
600
|
// Anti-recursion: a reviewer child's own approval asks go to the human chain.
|
|
524
|
-
if (this.reviewerSessions.has(request.agent.id))
|
|
601
|
+
if (this.reviewerSessions.has(request.agent.id)) {
|
|
602
|
+
if (receipt !== undefined) {
|
|
603
|
+
receipt.reason = 'reviewer-recursion'
|
|
604
|
+
}
|
|
605
|
+
return next()
|
|
606
|
+
}
|
|
525
607
|
const session = request.agent.session
|
|
526
608
|
const memory = this.memoryFor(session)
|
|
527
609
|
const enabled = effectiveAutoReviewState(sessionEvents(session)) ?? memory.enabledOverride ?? this.config.enableByDefault
|
|
528
|
-
if (!enabled)
|
|
610
|
+
if (!enabled) {
|
|
611
|
+
if (receipt !== undefined) {
|
|
612
|
+
receipt.reason = 'session-disabled'
|
|
613
|
+
}
|
|
614
|
+
return next()
|
|
615
|
+
}
|
|
529
616
|
const needsArguments = this.config.riskRules.some(rule => rule.field === 'arguments')
|
|
530
617
|
const argumentsText = needsArguments && request.callId !== undefined
|
|
531
618
|
? sanitizedArgumentsText(sessionEvents(session), request.callId)
|
|
532
619
|
: undefined
|
|
533
620
|
const { policy, source } = policyFor(this.config, request, argumentsText)
|
|
534
|
-
if (policy === 'never')
|
|
535
|
-
|
|
621
|
+
if (policy === 'never') {
|
|
622
|
+
return this.neverReject(request, source, receipt)
|
|
623
|
+
}
|
|
624
|
+
if (policy !== 'ai') {
|
|
625
|
+
if (receipt !== undefined) {
|
|
626
|
+
receipt.reason = 'human-policy'
|
|
627
|
+
}
|
|
628
|
+
return next()
|
|
629
|
+
}
|
|
536
630
|
// Separate budgets: real AI verdicts vs reviewer failures. A broken
|
|
537
631
|
// reviewer burns the failure budget (then delegates) without eating the
|
|
538
632
|
// AI-decision budget, and vice versa.
|
|
539
|
-
if (this.verdictsInOpenTurn(session, memory) >= this.config.maxReviewsPerTurn)
|
|
540
|
-
|
|
633
|
+
if (this.verdictsInOpenTurn(session, memory) >= this.config.maxReviewsPerTurn) {
|
|
634
|
+
if (receipt !== undefined) {
|
|
635
|
+
receipt.reason = 'review-budget'
|
|
636
|
+
}
|
|
637
|
+
return next()
|
|
638
|
+
}
|
|
639
|
+
if (this.failuresInOpenTurn(session, memory) >= this.config.maxFailuresPerTurn) {
|
|
640
|
+
if (receipt !== undefined) {
|
|
641
|
+
receipt.reason = 'failure-budget'
|
|
642
|
+
}
|
|
643
|
+
return next()
|
|
644
|
+
}
|
|
541
645
|
const circuit = this.circuitFor(session, memory)
|
|
542
|
-
if (circuit !== undefined)
|
|
646
|
+
if (circuit !== undefined) {
|
|
647
|
+
if (receipt !== undefined) {
|
|
648
|
+
receipt.category = 'circuit'
|
|
649
|
+
receipt.reason = 'plugin-circuit'
|
|
650
|
+
receipt.circuit = this.circuitSnapshot(circuit)
|
|
651
|
+
receipt.circuitTriggered = false
|
|
652
|
+
}
|
|
653
|
+
return this.circuitSettle(request, circuit, next)
|
|
654
|
+
}
|
|
543
655
|
const approvalId = correlateApprovalId(sessionEvents(session), request.toolName, request.callId)
|
|
544
656
|
if (approvalId === undefined) {
|
|
545
657
|
// The audit chain cannot be completed (verdict → approval/asked); treat
|
|
@@ -547,13 +659,13 @@ export class AutoReviewRuntime {
|
|
|
547
659
|
return this.finish(request, undefined, {
|
|
548
660
|
fallback: 'unavailable',
|
|
549
661
|
error: 'cannot correlate the pending approval/asked audit event',
|
|
550
|
-
}, next)
|
|
662
|
+
}, next, 0, receipt)
|
|
551
663
|
}
|
|
552
664
|
const overrideId = this.activeOverrideFor(session, memory, request.toolName, Date.now())
|
|
553
665
|
const override: OverrideContext | undefined = overrideId === undefined
|
|
554
666
|
? undefined
|
|
555
667
|
: { reviewId: overrideId, toolName: request.toolName }
|
|
556
|
-
return this.review(request, approvalId, next, override)
|
|
668
|
+
return this.review(request, approvalId, next, override, receipt)
|
|
557
669
|
}
|
|
558
670
|
|
|
559
671
|
/**
|
|
@@ -567,9 +679,14 @@ export class AutoReviewRuntime {
|
|
|
567
679
|
* @param source - the matched risk rule or policy table entry.
|
|
568
680
|
* @returns the closed rejection.
|
|
569
681
|
*/
|
|
570
|
-
private neverReject(request: ApprovalRequest, source: string): Promise<ApprovalOutcome> {
|
|
682
|
+
private neverReject(request: ApprovalRequest, source: string, receipt?: ReviewReceipt): Promise<ApprovalOutcome> {
|
|
571
683
|
const rejectionId = newRejectionId()
|
|
572
684
|
const reason = truncate(source, this.config.reasonMaxChars)
|
|
685
|
+
if (receipt !== undefined) {
|
|
686
|
+
receipt.category = 'policy'
|
|
687
|
+
receipt.reason = reason
|
|
688
|
+
receipt.reviewId = String(rejectionId)
|
|
689
|
+
}
|
|
573
690
|
const approvalId = correlateApprovalId(sessionEvents(request.agent.session), request.toolName, request.callId)
|
|
574
691
|
const session = request.agent.session
|
|
575
692
|
const memory = this.memoryFor(session)
|
|
@@ -631,6 +748,7 @@ export class AutoReviewRuntime {
|
|
|
631
748
|
approvalId: ApprovalRequestId,
|
|
632
749
|
next: () => Promise<ApprovalOutcome>,
|
|
633
750
|
override?: OverrideContext,
|
|
751
|
+
receipt?: ReviewReceipt,
|
|
634
752
|
): Promise<ApprovalOutcome> {
|
|
635
753
|
const started = Date.now()
|
|
636
754
|
const cacheKey = this.fingerprintFor(request)
|
|
@@ -656,7 +774,7 @@ export class AutoReviewRuntime {
|
|
|
656
774
|
}
|
|
657
775
|
const durationMs = Date.now() - started
|
|
658
776
|
if (isReviewFailure(resolution)) {
|
|
659
|
-
return this.finish(request, approvalId, resolution, next, durationMs)
|
|
777
|
+
return this.finish(request, approvalId, resolution, next, durationMs, receipt)
|
|
660
778
|
}
|
|
661
779
|
const reviewId = newVerdictId()
|
|
662
780
|
const overridden = resolution.decision === 'allow'
|
|
@@ -665,6 +783,30 @@ export class AutoReviewRuntime {
|
|
|
665
783
|
const outcome: ApprovalOutcome | undefined = overridden
|
|
666
784
|
? this.config.riskPolicy.onHighRisk === 'deny' ? 'rejected' : undefined
|
|
667
785
|
: resolution.decision === 'allow' ? 'allowed-once' : 'rejected'
|
|
786
|
+
if (receipt !== undefined) {
|
|
787
|
+
receipt.category = 'review'
|
|
788
|
+
receipt.reviewId = String(reviewId)
|
|
789
|
+
receipt.decision = resolution.decision
|
|
790
|
+
receipt.reason = overridden ? resolution.reason + ' (risk-policy override)' : resolution.reason
|
|
791
|
+
if (overridden) {
|
|
792
|
+
receipt.escalation = 'risk-policy'
|
|
793
|
+
}
|
|
794
|
+
receipt.cached = cached
|
|
795
|
+
receipt.configuredReviewerBackend = this.config.reviewerProvider
|
|
796
|
+
if (this.config.reviewerModelProvider !== undefined) {
|
|
797
|
+
receipt.configuredReviewerModelProvider = this.config.reviewerModelProvider
|
|
798
|
+
}
|
|
799
|
+
if (resolution.model !== undefined) {
|
|
800
|
+
receipt.reviewerModel = resolution.model
|
|
801
|
+
}
|
|
802
|
+
if (resolution.reviewerSessionId !== undefined) {
|
|
803
|
+
receipt.reviewerSessionId = String(resolution.reviewerSessionId)
|
|
804
|
+
}
|
|
805
|
+
receipt.durationMs = durationMs
|
|
806
|
+
if (outcome === undefined) {
|
|
807
|
+
receipt.delegationReason = 'risk-policy'
|
|
808
|
+
}
|
|
809
|
+
}
|
|
668
810
|
const auditOk = this.auditMayAppend()
|
|
669
811
|
if (auditOk) {
|
|
670
812
|
const result = (request.agent.session.append as unknown as VerdictAppend)('autoReview/verdict', {
|
|
@@ -694,7 +836,15 @@ export class AutoReviewRuntime {
|
|
|
694
836
|
if (outcome === undefined) return next()
|
|
695
837
|
if (resolution.decision === 'deny') {
|
|
696
838
|
this.recordDenyReason(request.callId, request.toolName, reviewId, resolution.reason)
|
|
697
|
-
this.checkCircuit(request)
|
|
839
|
+
const circuitTriggered = this.checkCircuit(request)
|
|
840
|
+
if (receipt !== undefined) {
|
|
841
|
+
const circuit = this.circuitFor(request.agent.session, this.memoryFor(request.agent.session))
|
|
842
|
+
if (circuit !== undefined) {
|
|
843
|
+
// 回执由调用方持有,不能泄漏会影响后续审批的内部熔断状态。
|
|
844
|
+
receipt.circuit = this.circuitSnapshot(circuit)
|
|
845
|
+
}
|
|
846
|
+
receipt.circuitTriggered = circuitTriggered
|
|
847
|
+
}
|
|
698
848
|
return 'rejected'
|
|
699
849
|
}
|
|
700
850
|
if (overridden) {
|
|
@@ -706,7 +856,15 @@ export class AutoReviewRuntime {
|
|
|
706
856
|
reviewId,
|
|
707
857
|
`${resolution.reason} (risk ${resolution.riskLevel} exceeds the configured maxAutoAllow ${this.config.riskPolicy.maxAutoAllow}; the allow verdict was overridden)`,
|
|
708
858
|
)
|
|
709
|
-
this.checkCircuit(request)
|
|
859
|
+
const circuitTriggered = this.checkCircuit(request)
|
|
860
|
+
if (receipt !== undefined) {
|
|
861
|
+
const circuit = this.circuitFor(request.agent.session, this.memoryFor(request.agent.session))
|
|
862
|
+
if (circuit !== undefined) {
|
|
863
|
+
// 回执由调用方持有,不能泄漏会影响后续审批的内部熔断状态。
|
|
864
|
+
receipt.circuit = this.circuitSnapshot(circuit)
|
|
865
|
+
}
|
|
866
|
+
receipt.circuitTriggered = circuitTriggered
|
|
867
|
+
}
|
|
710
868
|
return 'rejected'
|
|
711
869
|
}
|
|
712
870
|
return 'allowed-once'
|
|
@@ -724,12 +882,32 @@ export class AutoReviewRuntime {
|
|
|
724
882
|
failure: ReviewFailure,
|
|
725
883
|
next: () => Promise<ApprovalOutcome>,
|
|
726
884
|
durationMs = 0,
|
|
885
|
+
receipt?: ReviewReceipt,
|
|
727
886
|
): Promise<ApprovalOutcome> {
|
|
728
887
|
const outcome = this.fallbackOutcome(failure)
|
|
888
|
+
if (receipt !== undefined) {
|
|
889
|
+
receipt.category = failure.fallback === 'cancelled' ? 'cancelled' : 'fault'
|
|
890
|
+
receipt.reason = failure.error
|
|
891
|
+
receipt.configuredReviewerBackend = this.config.reviewerProvider
|
|
892
|
+
if (this.config.reviewerModelProvider !== undefined) {
|
|
893
|
+
receipt.configuredReviewerModelProvider = this.config.reviewerModelProvider
|
|
894
|
+
}
|
|
895
|
+
if (failure.model !== undefined) {
|
|
896
|
+
receipt.reviewerModel = failure.model
|
|
897
|
+
}
|
|
898
|
+
if (failure.reviewerSessionId !== undefined) {
|
|
899
|
+
receipt.reviewerSessionId = String(failure.reviewerSessionId)
|
|
900
|
+
}
|
|
901
|
+
receipt.durationMs = durationMs
|
|
902
|
+
receipt.fallback = failure.fallback
|
|
903
|
+
}
|
|
729
904
|
const session = request.agent.session
|
|
730
905
|
const auditOk = this.auditMayAppend()
|
|
731
906
|
if (approvalId !== undefined) {
|
|
732
907
|
const reviewId = newVerdictId()
|
|
908
|
+
if (receipt !== undefined) {
|
|
909
|
+
receipt.reviewId = String(reviewId)
|
|
910
|
+
}
|
|
733
911
|
if (auditOk) {
|
|
734
912
|
const result = (session.append as unknown as VerdictAppend)('autoReview/verdict', {
|
|
735
913
|
reviewId,
|
|
@@ -809,11 +987,13 @@ export class AutoReviewRuntime {
|
|
|
809
987
|
* commits first — the pair must stay turn-enclosed).
|
|
810
988
|
* @param request - the request whose denial may trip the breaker.
|
|
811
989
|
*/
|
|
812
|
-
private checkCircuit(request: ApprovalRequest):
|
|
990
|
+
private checkCircuit(request: ApprovalRequest): boolean {
|
|
813
991
|
const session = request.agent.session
|
|
814
992
|
const memory = this.memoryFor(session)
|
|
815
993
|
const auditOk = this.auditMayAppend()
|
|
816
|
-
if ((auditOk ? circuitInOpenTurn(sessionEvents(session)) : memory.circuit) !== undefined)
|
|
994
|
+
if ((auditOk ? circuitInOpenTurn(sessionEvents(session)) : memory.circuit) !== undefined) {
|
|
995
|
+
return false
|
|
996
|
+
}
|
|
817
997
|
const { consecutiveDenies, windowDenies, windowSize, action } = this.config.circuitBreaker
|
|
818
998
|
const consecutive = auditOk ? consecutiveDeniesInOpenTurn(sessionEvents(session)) : AutoReviewRuntime.leadingDenials(memory.verdicts)
|
|
819
999
|
const trip = consecutive >= consecutiveDenies
|
|
@@ -824,7 +1004,9 @@ export class AutoReviewRuntime {
|
|
|
824
1004
|
: memory.verdicts.slice(0, windowSize).filter(verdict => verdict.denial).length
|
|
825
1005
|
return window >= windowDenies ? { kind: 'window' as const, count: window } : undefined
|
|
826
1006
|
})()
|
|
827
|
-
if (trip === undefined)
|
|
1007
|
+
if (trip === undefined) {
|
|
1008
|
+
return false
|
|
1009
|
+
}
|
|
828
1010
|
const circuitId = newCircuitId()
|
|
829
1011
|
if (auditOk) {
|
|
830
1012
|
const result = (session.append as unknown as CircuitAppend)('autoReview/circuit', {
|
|
@@ -854,6 +1036,7 @@ export class AutoReviewRuntime {
|
|
|
854
1036
|
}, 0)
|
|
855
1037
|
this.pendingAborts.add(timer)
|
|
856
1038
|
}
|
|
1039
|
+
return true
|
|
857
1040
|
}
|
|
858
1041
|
|
|
859
1042
|
/**
|
|
@@ -1087,6 +1270,7 @@ export class AutoReviewRuntime {
|
|
|
1087
1270
|
|
|
1088
1271
|
/** Clear every pending circuit-breaker abort-turn timer; called by the plugin fiber's teardown effect. */
|
|
1089
1272
|
dispose(): void {
|
|
1273
|
+
this.disposed = true
|
|
1090
1274
|
for (const timer of this.pendingAborts) clearTimeout(timer)
|
|
1091
1275
|
this.pendingAborts.clear()
|
|
1092
1276
|
}
|