Finish approval engine spine
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a05e2e-805b-7042-a750-71f473bceea2
This commit is contained in:
parent
e7c210bf56
commit
c3f1dfbc07
18 changed files with 526 additions and 75 deletions
|
|
@ -1,4 +1,4 @@
|
|||
"""HTTP surface. Introspection and mutation; never a decision; never consume."""
|
||||
"""HTTP surface. Introspection and lifecycle mutation; never a decision."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
|
|
@ -87,8 +87,6 @@ class App:
|
|||
if len(parts) >= 3 and parts[0] == "v1" and parts[1] == "approvals":
|
||||
approval_id = parts[2]
|
||||
rest = parts[3:]
|
||||
if rest == ["consume"] or path.endswith("/consume"):
|
||||
return 404, {"error": "not_found", "message": "consume is not implemented"}
|
||||
if not rest and method == "GET":
|
||||
return 200, self.engine.get(approval_id).as_dict()
|
||||
if rest == ["claim"] and method == "GET":
|
||||
|
|
@ -107,7 +105,14 @@ class App:
|
|||
if rest == ["supersede"] and method == "POST":
|
||||
data = _read_json(environ)
|
||||
return 200, self.engine.supersede(approval_id, data.get("successor_id"))
|
||||
if "check" in path or path.endswith("/authorize") or path.endswith("/consume"):
|
||||
if rest == ["consume"] and method == "POST":
|
||||
data = _read_json(environ)
|
||||
return 200, self.engine.consume(
|
||||
approval_id,
|
||||
data.get("request_digest"),
|
||||
decision_id=data.get("decision_id"),
|
||||
)
|
||||
if "check" in path or path.endswith("/authorize"):
|
||||
return 404, {"error": "not_found", "message": "no such surface"}
|
||||
return 404, {"error": "not_found", "message": path}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue