feat: 询价流程接入事件异常等待起停

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-21 18:28:35 +08:00
co-authored by Cursor
parent fc1b85113d
commit a878b046d2
11 changed files with 131 additions and 5 deletions
@@ -1076,6 +1076,9 @@ class AirTextInquiryFlow:
return self._skip_collab(sess, reply, card_meta=card_meta)
if action == copy.BTN_REJECT:
self._grey_clicked_card(reply, card_meta)
from agent.policy.event_exception import clear_wait
clear_wait(self._ledger, work_order_no=sess.work_order_no)
sess.phase = "wait_adjust"
sess.allowed = ()
sess.wait_version += 1
@@ -1128,6 +1131,9 @@ class AirTextInquiryFlow:
transport_mode=mode,
),
)
from agent.policy.event_exception import WAIT_ADOPT, start_wait
start_wait(self._ledger, work_order_no=sess.work_order_no, wait_kind=WAIT_ADOPT)
return "wait_adopt"
def _grey_clicked_card(
@@ -1186,6 +1192,9 @@ class AirTextInquiryFlow:
reply(str(result.get("message") or copy.quote_template_missing()))
return "wait_adopt"
filename = str(result.get("fileName") or f"{sess.work_order_no}_quote.{fmt}")
from agent.policy.event_exception import clear_wait
clear_wait(self._ledger, work_order_no=sess.work_order_no)
file_extra = self._quote_file_payload(result, filename=filename)
if kind == "PDF" and result.get("needsPdf"):
queued = self._enqueue_quote_pdf(
@@ -1264,6 +1273,9 @@ class AirTextInquiryFlow:
sess.allowed = (copy.BTN_DEAL, copy.BTN_LOST, copy.BTN_NEGOTIATE)
sess.wait_version += 1
self._save(sess)
from agent.policy.event_exception import WAIT_DEAL, start_wait
start_wait(self._ledger, work_order_no=sess.work_order_no, wait_kind=WAIT_DEAL)
return "wait_deal"
def _emit_deal(self, reply: ReplyFn, sess: FlowSession) -> None:
@@ -1423,6 +1435,9 @@ class AirTextInquiryFlow:
sess.allowed = (copy.BTN_DEAL, copy.BTN_LOST, copy.BTN_NEGOTIATE)
sess.wait_version += 1
self._save(sess)
from agent.policy.event_exception import WAIT_DEAL, start_wait
start_wait(self._ledger, work_order_no=sess.work_order_no, wait_kind=WAIT_DEAL)
def _refresh_wait_file(self, sess: FlowSession) -> None:
"""