InnerI commited on
Commit
43b8c47
·
verified ·
1 Parent(s): bc86ffa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -19
app.py CHANGED
@@ -403,31 +403,54 @@ for tc, tm in zip(tools, tools_meta):
403
 
404
  # Plan gating: block tools above tier max risk
405
  if risk_rank.get(tm["risk"], 3) > tier_max_rank:
406
- outputs.append({"tool_id": tm["tool_id"], "blocked": True, "reason": "plan_blocks_{tm['risk']}_risk"})
 
 
 
 
407
  continue
 
 
408
  if mode == "sandbox" and tm["risk"] != "low":
409
- outputs.append({"tool_id": tm["tool_id"], "blocked": True, "reason": "sandbox_mode"})
 
 
 
 
410
  continue
411
 
412
  try:
413
- outputs.append({"tool_id": tm["tool_id"], "output": run_tool(tm["tool_id"], tc.get("args", {}))})
 
 
 
414
  except Exception as e:
415
- outputs.append({"tool_id": tm["tool_id"], "error": str(e)})
416
-
417
- # receipts + audit chain
418
- receipt = {
419
- "ts_unix": now_unix(),
420
- "agent_id": agent_id,
421
- "user_id": user["user_id"],
422
- "intent": intent,
423
- "mode": mode,
424
- "decision": decision,
425
- "outputs_hash": sha256_hex(canonical_json(outputs)),
426
- }
427
- receipt["signature"] = sign_hmac(receipt, RECEIPT_SIGNING_KEY)
428
- audit = audit_append(agent_id, user["user_id"], "secure_call.run", {"intent": intent, "tools": tools}, {"outputs": outputs, "receipt": receipt})
429
- conn.close()
430
- return {"outputs": outputs, "receipt": receipt, "audit": audit}
 
 
 
 
 
 
 
 
 
 
431
 
432
  # ---------------- Admin actions ----------------
433
  def create_agent_admin(session_token: str, agent_id: str, display_name: str, risk_tier: str, verification_level: str):
 
403
 
404
  # Plan gating: block tools above tier max risk
405
  if risk_rank.get(tm["risk"], 3) > tier_max_rank:
406
+ outputs.append({
407
+ "tool_id": tm["tool_id"],
408
+ "blocked": True,
409
+ "reason": f"plan_blocks_{tm['risk']}_risk"
410
+ })
411
  continue
412
+
413
+ # Sandbox gating (policy-based)
414
  if mode == "sandbox" and tm["risk"] != "low":
415
+ outputs.append({
416
+ "tool_id": tm["tool_id"],
417
+ "blocked": True,
418
+ "reason": "sandbox_mode"
419
+ })
420
  continue
421
 
422
  try:
423
+ outputs.append({
424
+ "tool_id": tm["tool_id"],
425
+ "output": run_tool(tm["tool_id"], tc.get("args", {}))
426
+ })
427
  except Exception as e:
428
+ outputs.append({
429
+ "tool_id": tm["tool_id"],
430
+ "error": str(e)
431
+ })
432
+
433
+ # receipts + audit chain (MUST be after the loop)
434
+ receipt = {
435
+ "ts_unix": now_unix(),
436
+ "agent_id": agent_id,
437
+ "user_id": user["user_id"],
438
+ "intent": intent,
439
+ "mode": mode,
440
+ "decision": decision,
441
+ "outputs_hash": sha256_hex(canonical_json(outputs)),
442
+ }
443
+ receipt["signature"] = sign_hmac(receipt, RECEIPT_SIGNING_KEY)
444
+ audit = audit_append(
445
+ agent_id,
446
+ user["user_id"],
447
+ "secure_call.run",
448
+ {"intent": intent, "tools": tools},
449
+ {"outputs": outputs, "receipt": receipt},
450
+ )
451
+
452
+ conn.close()
453
+ return {"outputs": outputs, "receipt": receipt, "audit": audit}
454
 
455
  # ---------------- Admin actions ----------------
456
  def create_agent_admin(session_token: str, agent_id: str, display_name: str, risk_tier: str, verification_level: str):