ITADN

refactor(chat): host StartChatParams を chat-service から extends + chat-service Attachment を protocol に統合

#2488Openisamu 创建于 26 天前
I
isamucommented
## 反証検証の結果(alert #173) 「構造ミラーは強制」という判定は**半分だけ正しい**: - chat-service の `StartChatParams` **本体は KEEP 確定**(host 型を import できない root 型 — hard constraint) - しかし **host 側コピー(`server/api/routes/agent.ts:113-145` 相当)は非強制**。host は `@mulmobridge/chat-service` に既に依存しており(`createChatService` / `ChatService` を import 済み)、`extends` で書ける: ```ts // chat-service/src/index.ts に StartChatParams / Attachment の名前 export を追加 import type { StartChatParams as ChatServiceStartChatParams } from "@mulmobridge/chat-service"; export interface StartChatParams extends ChatServiceStartChatParams { userTimezone?: string; // host 固有の1フィールドだけ残る } ``` - さらに chat-service の `Attachment`(types.ts:46-51)は `@mulmobridge/protocol` の `Attachment` と**フィールド完全一致**で、chat-service は protocol に**既に依存している**(^0.1.4)。package-contract ルールが禁じるのは host への import であって、正規依存の import ではない — ローカル再宣言は非強制。protocol の型に置換 ## 検証 型のみ。host `StartChatParams` は `spawnSystemWorker`/`dispatchAgentRun`/`persistUserTurn` 等で広く参照されるが、構造的スーパーセットなのでソース互換。`yarn typecheck` が両 Attachment の一致を保証する。chat-service に export を足すため、次回 `@mulmobridge/chat-service` publish で npm にも反映(workspace 内は即時)。 工数 ~1h・リスク低。
0 条评论