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 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
- if (this.reviewerSessions.has(request.agent.id)) return next();
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)) return next();
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") return next();
7576
- if (this.verdictsInOpenTurn(session, memory) >= this.config.maxReviewsPerTurn) return next();
7577
- if (this.failuresInOpenTurn(session, memory) >= this.config.maxFailuresPerTurn) return next();
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) return this.circuitSettle(request, circuit, next);
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
  }
@@ -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';
@@ -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"}
@@ -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;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.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"}
@@ -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 { ApprovalOutcome, ApprovalRequest } from '@deepseek-ai/dsh-user-approval';
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":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -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
- if (policy !== 'ai')
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
- if (this.failuresInOpenTurn(session, memory) >= this.config.maxFailuresPerTurn)
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();
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-auto-review",
3
- "version": "0.14.1",
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)) return next()
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) return next()
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') return this.neverReject(request, source)
535
- if (policy !== 'ai') return next()
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) return next()
540
- if (this.failuresInOpenTurn(session, memory) >= this.config.maxFailuresPerTurn) return next()
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) return this.circuitSettle(request, circuit, next)
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): void {
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) return
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) return
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
  }