落地并存测服全端:智能体 Graph/路由、后台切 8180、主账与部署脚本齐备,便于线上重发与验收。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
"""
|
||||
主账 API 方法签名壳。
|
||||
|
||||
本文件职责:列出智能体将调用的主账端点形状;默认返回 not_implemented,不假装成功。
|
||||
禁止:直连 TMS / MySQL;Graph 成功不能冒充本文件成功。
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
from typing import Any, Optional
|
||||
|
||||
from agent.ledger import LedgerClient, LedgerResponse
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class LedgerApiShell:
|
||||
"""
|
||||
主账业务 API 空壳(签名齐、实现空)。
|
||||
|
||||
正式:各方法改走 request_json 打真实路径;路径以主账 OpenAPI 为准。
|
||||
"""
|
||||
|
||||
def __init__(self, client: Optional[LedgerClient] = None) -> None:
|
||||
self.client = client or LedgerClient.from_settings()
|
||||
|
||||
def _nyi(self, name: str) -> LedgerResponse:
|
||||
logger.info("ledger.api_shell.%s not_implemented", name)
|
||||
return LedgerResponse(
|
||||
ok=False,
|
||||
status_code=501,
|
||||
error=f"not_implemented:{name}",
|
||||
data={"method": name},
|
||||
)
|
||||
|
||||
def create_ticket(
|
||||
self,
|
||||
*,
|
||||
payload: dict[str, Any],
|
||||
idempotency_key: str,
|
||||
) -> LedgerResponse:
|
||||
"""建单壳。"""
|
||||
_ = (payload, idempotency_key)
|
||||
return self._nyi("create_ticket")
|
||||
|
||||
def transition_ticket(
|
||||
self,
|
||||
*,
|
||||
inquiry_no: str,
|
||||
to_status: str,
|
||||
idempotency_key: str,
|
||||
reason: str = "",
|
||||
) -> LedgerResponse:
|
||||
"""六态迁移壳。"""
|
||||
_ = (inquiry_no, to_status, idempotency_key, reason)
|
||||
return self._nyi("transition_ticket")
|
||||
|
||||
def get_ticket(self, *, inquiry_no: str) -> LedgerResponse:
|
||||
"""查工单壳。"""
|
||||
_ = inquiry_no
|
||||
return self._nyi("get_ticket")
|
||||
|
||||
def upsert_quote_version(
|
||||
self,
|
||||
*,
|
||||
inquiry_no: str,
|
||||
quote_version: int,
|
||||
payload: dict[str, Any],
|
||||
idempotency_key: str,
|
||||
) -> LedgerResponse:
|
||||
"""报价版本壳。"""
|
||||
_ = (inquiry_no, quote_version, payload, idempotency_key)
|
||||
return self._nyi("upsert_quote_version")
|
||||
|
||||
def register_attachment(
|
||||
self,
|
||||
*,
|
||||
inquiry_no: str,
|
||||
object_key: str,
|
||||
meta: dict[str, Any],
|
||||
idempotency_key: str,
|
||||
) -> LedgerResponse:
|
||||
"""附件元数据登记壳。"""
|
||||
_ = (inquiry_no, object_key, meta, idempotency_key)
|
||||
return self._nyi("register_attachment")
|
||||
|
||||
def get_staff_by_wecom_id(self, *, wecom_id: str) -> LedgerResponse:
|
||||
"""人员角色壳(按已有 wecom_id)。"""
|
||||
_ = wecom_id
|
||||
return self._nyi("get_staff_by_wecom_id")
|
||||
|
||||
def list_quote_templates(self, *, enabled_only: bool = True) -> LedgerResponse:
|
||||
"""
|
||||
报价模板列表壳。
|
||||
|
||||
真相:后台上传/启用;智能体只读已启用项,再经对象存储取字节。
|
||||
"""
|
||||
_ = enabled_only
|
||||
return self._nyi("list_quote_templates")
|
||||
|
||||
def wake_agent_ack(
|
||||
self,
|
||||
*,
|
||||
inquiry_no: str,
|
||||
quote_version: int,
|
||||
wait_version: int,
|
||||
) -> LedgerResponse:
|
||||
"""主账侧唤醒回执壳(智能体被唤醒后可选回写)。"""
|
||||
_ = (inquiry_no, quote_version, wait_version)
|
||||
return self._nyi("wake_agent_ack")
|
||||
Reference in New Issue
Block a user