/** 评论触发范围:仅 @bot 的评论触发 / 该文档所有新评论都触发。 */ export type CommentTriggerMode = 'mention-only' | 'all'; export interface DocSubscription { /** 解析后的底层文档 token(wiki 已换成 obj_token)。主键。 */ fileToken: string; /** 飞书 file_type(docx 等)—— 调评论 / 订阅 API 都要带。 */ fileType: string; /** 绑定会话的路由锚点:thread-scope=rootMessageId / chat-scope=chatId。 */ sessionAnchor: string; /** 绑定会话的 sessionId。daemon 重启恢复时据此查持久化会话状态判定保留/退订 * (不依赖内存 activeSessions,避免误删活跃会话的订阅)。旧订阅可能缺此字段。 */ sessionId?: string; /** 会话 scope —— 重订阅 / 落点路由时要知道。 */ scope: 'thread' | 'chat'; /** 会话所在群(回飞书侧卡片、dashboard 展示用)。 */ chatId: string; /** 评论触发范围。dashboard 可改。 */ commentTriggerMode: CommentTriggerMode; /** * 记录由哪个用户命令族管理: * - subscribe-lark-doc:远端既有的逐文件 API 订阅流程 * - watch-comment:评论监听 / 自动会话 / 审批流程 * 旧记录没有该字段,按 subscribe-lark-doc 兼容处理。 */ managedBy?: 'subscribe-lark-doc' | 'watch-comment'; /** 文档标题快照(best-effort,用于卡片 / dashboard 展示)。 */ docTitle?: string; /** 发起订阅的用户 open_id。 */ ownerOpenId?: string; /** 该文档绑定的本地仓库/目录。agent 在此目录下运行(auto-create session 时使用)。 */ workingDir?: string; /** `/watch-comment --all` 应用身份轮询游标(飞书时间戳,秒)。 */ pollCursorAt?: number; /** 同一秒内用 reply_id 打破平局,避免漏掉连续评论。 */ pollCursorReplyId?: string; /** 首次成功读取已建立历史基线;false 时只建基线、不触发历史评论。 */ pollBaselineReady?: boolean; createdAt: number; } /** * 新增 / 覆盖一条订阅(fileToken 主键 → 重订阅覆盖旧绑定 = 1 文档:1 会话)。 * 返回被覆盖掉的旧订阅(如果该文档此前绑在别的会话上),调用方据此退订旧的 / * 提示用户。 */ export declare function putDocSubscription(dataDir: string, larkAppId: string, sub: DocSubscription): { previous?: DocSubscription; }; /** 取某文档的订阅(评论事件来后据 fileToken 定位会话)。无则 null。 */ export declare function getDocSubscription(dataDir: string, larkAppId: string, fileToken: string): DocSubscription | null; /** 删一条订阅,返回被删的那条(无则 undefined)。 */ export declare function removeDocSubscription(dataDir: string, larkAppId: string, fileToken: string): DocSubscription | undefined; /** 列某会话锚点上的所有订阅(/doc list、/close 退订时用)。 */ export declare function listDocSubscriptionsForSession(dataDir: string, larkAppId: string, sessionAnchor: string): DocSubscription[]; /** 列本 app 下全部订阅(daemon 重启恢复 + dashboard 展示)。 */ export declare function listAllDocSubscriptions(dataDir: string, larkAppId: string): DocSubscription[]; /** 改某文档订阅的触发范围(dashboard)。返回是否命中。 */ export declare function setCommentTriggerMode(dataDir: string, larkAppId: string, fileToken: string, mode: CommentTriggerMode): boolean; /** 更新 `/watch-comment --all` 的持久化轮询游标。 */ export declare function setDocCommentPollCursor(dataDir: string, larkAppId: string, fileToken: string, cursor: { createdAt: number; replyId: string; } | undefined, baselineReady?: boolean): boolean; //# sourceMappingURL=doc-subs-store.d.ts.map