本卡屬 FR-181(母卡 FR-181 母案(同清單上一張)),卡 F-1,批 2。只改 jedi-python-package。依賴:無。

這張卡做什麼(白話)

主系統和 Agent 之間講話的「格式」都定在 jedi-agent-protocol 這個套件裡(路徑、欄位名、回應長什麼樣),兩邊各自 import,才不會一邊改了另一邊不知道。本案新增三個路徑(Agent 來取指令、Agent 回覆結果、Agent 來拿主系統暫存的檔)和兩種信封(指令、回覆),以及十三種「指令類型」常數(派工、重啟、升級、設定變了、換證、取消檢測、測試連線、存帳密、取檔、送檔、送 PDF、刪檔、查日誌)。原本直推用的路徑常數不刪(決策者裁直推程式留著用開關關),只在檔頭註解改成「直推預設關、長輪詢是主路徑」。這張卡是登記型檔的 owner:後面所有卡只 import、不改這個檔。做完要發版 0.3.0 推 Nexus。

reuse/extend/new

extend:commands.py 加 COMMANDS_PATH="/agents/commands"、REPLIES_PATH="/agents/replies/{request_id}"、FILES_PATH="/agents/files/{request_id}"、WAIT_PARAM、COMMANDS_LIMIT=20;加 Command 信封 dataclass(kind/request_id/task_uid/payload/expires_at)與 CommandsResponse(commands: list/server_time_utc);加 Reply dataclass(status: taken|done|failed/result/reason);加 KIND_* 十三個常數(task/restart/update/config_changed/credentials_renew/detection_cancel/probe/credentials_set/fetch_file/send_file/send_pdf/delete_file/query_logs)+ REPLY_KINDS(要回答的那七個)。既有直推路徑常數(TASKS/RESTART/…)與 body dataclass 不刪(D6:直推留著用開關關),檔頭註解改成「直推預設關,長輪詢是主路徑」。__init__.py 匯出。登記型檔 owner:後面所有卡只 import 不改。發版 0.3.0 推 Nexus

在哪裡

repo:~/Projects/Jedicogy/module/jedi-python-package
改既有:jedi-agent-protocol/jedi_agent_protocol/commands.py
改既有:jedi-agent-protocol/jedi_agent_protocol/__init__.py
改既有:jedi-agent-protocol/pyproject.toml(0.3.0)
新開:jedi-agent-protocol/tests/test_longpoll_contract.py

怎麼做

驗收(首腦照這個驗)

pytest:十三個 KIND_* 不重複、REPLY_KINDS ⊂ 全部 kind、Command.from_dict 缺 kind 拋 ValueError、CommandsResponse 往返相等;poetry publish -r nexus 0.3.0 成功,回寫版號

必讀