@miller-tech/uap 2.1.7 → 2.11.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.
Files changed (142) hide show
  1. package/config/capacity-policy.json +32 -0
  2. package/config/classify-thresholds.json +9 -0
  3. package/config/supervise-policy.json +13 -0
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/bin/cli.js +87 -2
  6. package/dist/bin/cli.js.map +1 -1
  7. package/dist/capacity/policy.d.ts +67 -0
  8. package/dist/capacity/policy.d.ts.map +1 -0
  9. package/dist/capacity/policy.js +133 -0
  10. package/dist/capacity/policy.js.map +1 -0
  11. package/dist/capacity/probe.d.ts +23 -0
  12. package/dist/capacity/probe.d.ts.map +1 -0
  13. package/dist/capacity/probe.js +93 -0
  14. package/dist/capacity/probe.js.map +1 -0
  15. package/dist/classify/baseline.d.ts +24 -0
  16. package/dist/classify/baseline.d.ts.map +1 -0
  17. package/dist/classify/baseline.js +140 -0
  18. package/dist/classify/baseline.js.map +1 -0
  19. package/dist/classify/index.d.ts +30 -0
  20. package/dist/classify/index.d.ts.map +1 -0
  21. package/dist/classify/index.js +84 -0
  22. package/dist/classify/index.js.map +1 -0
  23. package/dist/classify/shadow.d.ts +34 -0
  24. package/dist/classify/shadow.d.ts.map +1 -0
  25. package/dist/classify/shadow.js +33 -0
  26. package/dist/classify/shadow.js.map +1 -0
  27. package/dist/classify/types.d.ts +64 -0
  28. package/dist/classify/types.d.ts.map +1 -0
  29. package/dist/classify/types.js +37 -0
  30. package/dist/classify/types.js.map +1 -0
  31. package/dist/cli/classify.d.ts +24 -0
  32. package/dist/cli/classify.d.ts.map +1 -0
  33. package/dist/cli/classify.js +94 -0
  34. package/dist/cli/classify.js.map +1 -0
  35. package/dist/cli/deliver.d.ts.map +1 -1
  36. package/dist/cli/deliver.js +26 -0
  37. package/dist/cli/deliver.js.map +1 -1
  38. package/dist/cli/doctor.d.ts +9 -0
  39. package/dist/cli/doctor.d.ts.map +1 -0
  40. package/dist/cli/doctor.js +49 -0
  41. package/dist/cli/doctor.js.map +1 -0
  42. package/dist/cli/review.d.ts +12 -0
  43. package/dist/cli/review.d.ts.map +1 -0
  44. package/dist/cli/review.js +118 -0
  45. package/dist/cli/review.js.map +1 -0
  46. package/dist/cli/supervise.d.ts +8 -0
  47. package/dist/cli/supervise.d.ts.map +1 -0
  48. package/dist/cli/supervise.js +76 -0
  49. package/dist/cli/supervise.js.map +1 -0
  50. package/dist/delivery/convergence-loop.d.ts +8 -0
  51. package/dist/delivery/convergence-loop.d.ts.map +1 -1
  52. package/dist/delivery/convergence-loop.js +1 -0
  53. package/dist/delivery/convergence-loop.js.map +1 -1
  54. package/dist/delivery/delivery-result.d.ts.map +1 -1
  55. package/dist/delivery/delivery-result.js +5 -0
  56. package/dist/delivery/delivery-result.js.map +1 -1
  57. package/dist/delivery/gate-evidence.d.ts +143 -0
  58. package/dist/delivery/gate-evidence.d.ts.map +1 -0
  59. package/dist/delivery/gate-evidence.js +239 -0
  60. package/dist/delivery/gate-evidence.js.map +1 -0
  61. package/dist/delivery/index.d.ts +1 -0
  62. package/dist/delivery/index.d.ts.map +1 -1
  63. package/dist/delivery/index.js +1 -0
  64. package/dist/delivery/index.js.map +1 -1
  65. package/dist/evals/routing-corpus.d.ts +35 -0
  66. package/dist/evals/routing-corpus.d.ts.map +1 -0
  67. package/dist/evals/routing-corpus.js +142 -0
  68. package/dist/evals/routing-corpus.js.map +1 -0
  69. package/dist/evals/routing-eval.d.ts +104 -0
  70. package/dist/evals/routing-eval.d.ts.map +1 -0
  71. package/dist/evals/routing-eval.js +231 -0
  72. package/dist/evals/routing-eval.js.map +1 -0
  73. package/dist/evals/tfidf.d.ts +35 -0
  74. package/dist/evals/tfidf.d.ts.map +1 -0
  75. package/dist/evals/tfidf.js +132 -0
  76. package/dist/evals/tfidf.js.map +1 -0
  77. package/dist/review/prepass.d.ts +88 -0
  78. package/dist/review/prepass.d.ts.map +1 -0
  79. package/dist/review/prepass.js +428 -0
  80. package/dist/review/prepass.js.map +1 -0
  81. package/dist/review/visual-captures.d.ts +60 -0
  82. package/dist/review/visual-captures.d.ts.map +1 -0
  83. package/dist/review/visual-captures.js +222 -0
  84. package/dist/review/visual-captures.js.map +1 -0
  85. package/dist/supervise/assess.d.ts +73 -0
  86. package/dist/supervise/assess.d.ts.map +1 -0
  87. package/dist/supervise/assess.js +215 -0
  88. package/dist/supervise/assess.js.map +1 -0
  89. package/dist/supervise/config.d.ts +13 -0
  90. package/dist/supervise/config.d.ts.map +1 -0
  91. package/dist/supervise/config.js +81 -0
  92. package/dist/supervise/config.js.map +1 -0
  93. package/dist/supervise/loop.d.ts +78 -0
  94. package/dist/supervise/loop.d.ts.map +1 -0
  95. package/dist/supervise/loop.js +311 -0
  96. package/dist/supervise/loop.js.map +1 -0
  97. package/dist/supervise/observe.d.ts +31 -0
  98. package/dist/supervise/observe.d.ts.map +1 -0
  99. package/dist/supervise/observe.js +172 -0
  100. package/dist/supervise/observe.js.map +1 -0
  101. package/dist/supervise/policy.d.ts +16 -0
  102. package/dist/supervise/policy.d.ts.map +1 -0
  103. package/dist/supervise/policy.js +147 -0
  104. package/dist/supervise/policy.js.map +1 -0
  105. package/dist/supervise/types.d.ts +109 -0
  106. package/dist/supervise/types.d.ts.map +1 -0
  107. package/dist/supervise/types.js +11 -0
  108. package/dist/supervise/types.js.map +1 -0
  109. package/docs/INDEX.md +9 -3
  110. package/docs/architecture/adr/0001-automode-risk-floor.md +75 -0
  111. package/docs/architecture/adr/0002-evidence-bound-ship.md +81 -0
  112. package/docs/guides/CAPACITY_POLICY.md +98 -0
  113. package/docs/performance/automode-risk-calibration.md +72 -0
  114. package/docs/performance/reliability-ladder.md +78 -0
  115. package/docs/plans/system1-uplift-2026-09-18.md +191 -0
  116. package/docs/reference/automode-risk.md +134 -0
  117. package/docs/reference/evidence-bound-ship.md +145 -0
  118. package/docs/reference/review-prepass.md +77 -0
  119. package/docs/reference/routing-evals.md +71 -0
  120. package/docs/reference/semantic-supervisor.md +140 -0
  121. package/docs/reference/system1-classifier.md +103 -0
  122. package/docs/reference/visual-captures.md +113 -0
  123. package/package.json +5 -3
  124. package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
  125. package/src/policies/enforcers/__pycache__/expert_review_required.cpython-312.pyc +0 -0
  126. package/src/policies/enforcers/__pycache__/quality_metrics_gate.cpython-312.pyc +0 -0
  127. package/src/policies/enforcers/enforcement_self_protect.py +25 -2
  128. package/src/policies/enforcers/evidence_bound_ship.py +257 -0
  129. package/src/policies/enforcers/expert_review_required.py +120 -0
  130. package/src/policies/schemas/policies/evidence-bound-ship.md +106 -0
  131. package/src/policies/schemas/policies/visual-verification.md +8 -0
  132. package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
  133. package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
  134. package/tools/agents/scripts/anthropic_proxy.py +782 -19
  135. package/tools/agents/scripts/project_telemetry.py +52 -0
  136. package/tools/agents/scripts/tool_risk.py +789 -0
  137. package/tools/agents/scripts/tool_risk_calibrate.py +255 -0
  138. package/tools/agents/tests/fixtures/tool_risk_cases.json +124 -0
  139. package/tools/agents/tests/test_enforcer_escape_hatches.py +13 -0
  140. package/tools/agents/tests/test_gate_evidence.py +56 -0
  141. package/tools/agents/tests/test_tool_risk.py +521 -0
  142. package/tools/agents/tests/test_verbatim_compact.py +629 -0
@@ -280,6 +280,58 @@ def record_dashboard_turn(
280
280
  return False
281
281
 
282
282
 
283
+ def record_risk_event(
284
+ project_dir: str,
285
+ tool_name: str,
286
+ risk_class: str,
287
+ risk_score: int,
288
+ signals: list,
289
+ latency_ms: float = 0.0,
290
+ ) -> bool:
291
+ """Append one AutoMode risk-classification event (uplift 1.3) to the
292
+ project's telemetry.db dashboard_events table, so the dashboard's Live
293
+ Events panel shows high-risk tool calls the advisory scorer flagged.
294
+ Never raises — advisory telemetry must never stall a turn. Same store,
295
+ pragmas and schema as record_dashboard_turn above."""
296
+ try:
297
+ if not project_dir:
298
+ return False
299
+ db_dir = os.path.join(project_dir, "agents", "data", "memory")
300
+ if not os.path.isdir(db_dir):
301
+ return False
302
+ conn = sqlite3.connect(os.path.join(db_dir, "telemetry.db"), timeout=1.0)
303
+ try:
304
+ conn.execute("PRAGMA journal_mode = WAL")
305
+ conn.execute("PRAGMA synchronous = NORMAL")
306
+ conn.execute("PRAGMA busy_timeout = 2000")
307
+ conn.executescript(_TELEMETRY_CREATE_SQL)
308
+ severity = "warning" if risk_class == "destructive" else "info"
309
+ conn.execute(
310
+ "INSERT INTO dashboard_events (category, type, severity, title, detail, metadata) "
311
+ "VALUES ('automode', 'risk.classified', ?, ?, ?, ?)",
312
+ (
313
+ severity,
314
+ f"{tool_name} classified {risk_class} (score {risk_score})",
315
+ ", ".join(str(s) for s in signals),
316
+ json.dumps(
317
+ {
318
+ "tool": str(tool_name or ""),
319
+ "riskClass": str(risk_class),
320
+ "riskScore": int(risk_score),
321
+ "signals": [str(s) for s in signals],
322
+ "latencyMs": round(float(latency_ms or 0), 3),
323
+ }
324
+ ),
325
+ ),
326
+ )
327
+ conn.commit()
328
+ finally:
329
+ conn.close()
330
+ return True
331
+ except Exception:
332
+ return False
333
+
334
+
283
335
  def record_from_request(
284
336
  body: dict, model: str, usage: dict, *, task_id: str = "", duration_ms: float = 0.0
285
337
  ) -> bool: