import type { UserPreferences } from './beacon-mcp-tools-v1.js'; export type { UserPreferences }; export declare const BEACON_PREFERENCES_PATH: "/v1/beacon/preferences"; /** 跨工作空间的契约版本标记 */ export declare const BEACON_PREFERENCES_PROTOCOL_VERSION: "v1"; /** client 兜底轮询间隔(分钟);Phase 2 引入 push 后可调长 */ export declare const BEACON_PREFERENCES_POLL_INTERVAL_MIN: 30; /** 请求 headers */ export interface BeaconPreferencesRequestHeaders { /** v0.2 一致:长效 agent_token */ 'X-Agent-Token': string; 'X-Skillfm-Local-Version'?: string; Accept?: 'application/json'; } /** * 200 OK 响应 — 直接是完整 UserPreferences shape。 * 用户首次调用且未设过偏好时,Brain 应返回服务端默认值(详见 beacon-mcp-tools-v1.ts * UserPreferences 字段注释中的默认值约定:maxPerSession=3 / maxPerDay=10 / 全分类启用 / * quietHours.enabled=false)。 */ export type BeaconPreferencesGetResponse = UserPreferences; /** * 请求 body — Partial;只更新提供的字段。 * * 例:用户只改 quietHours * { "quietHours": { "enabled": true, "start": "23:00", "end": "07:00", "timezone": "Asia/Shanghai" } } * * 例:用户禁某分类 * { "disabledCategories": ["B", "G"] } * * 例:client 调整频率限流 * { "maxPerSession": 1, "maxPerDay": 3 } */ export type BeaconPreferencesPutRequest = Partial; /** * 200 OK 响应 — 更新后的 full UserPreferences。 * client 直接覆盖本地缓存,**不**做 merge(避免双方 race / merge 冲突)。 */ export type BeaconPreferencesPutResponse = UserPreferences; export declare const BEACON_PREFERENCES_ERROR_CODES: { readonly AUTH_MISSING_TOKEN: "BEACON.PREFS.AUTH.MISSING_TOKEN"; readonly AUTH_BAD_TOKEN: "BEACON.PREFS.AUTH.BAD_TOKEN"; readonly BAD_REQUEST: "BEACON.PREFS.BAD_REQUEST"; /** quietHours.start / end 格式错(必须 'HH:MM');或 timezone 不在 IANA 列表 */ readonly INVALID_QUIET_HOURS: "BEACON.PREFS.INVALID_QUIET_HOURS"; /** maxPerSession / maxPerDay 超合理范围(0-100) */ readonly INVALID_QUOTA: "BEACON.PREFS.INVALID_QUOTA"; readonly RATE_LIMITED: "BEACON.PREFS.RATE_LIMITED"; readonly INTERNAL: "BEACON.PREFS.INTERNAL"; }; export type BeaconPreferencesErrorCode = (typeof BEACON_PREFERENCES_ERROR_CODES)[keyof typeof BEACON_PREFERENCES_ERROR_CODES]; export interface BeaconPreferencesErrorResponse { ok: false; error: { code: BeaconPreferencesErrorCode; message: string; details?: Record; }; } export type BeaconPreferencesGetEnvelope = { ok: true; data: BeaconPreferencesGetResponse; } | BeaconPreferencesErrorResponse; export type BeaconPreferencesPutEnvelope = { ok: true; data: BeaconPreferencesPutResponse; } | BeaconPreferencesErrorResponse; //# sourceMappingURL=beacon-preferences-v1.d.ts.map