import type { SkillFmToolResult } from '../_vendored-contracts/beacon-mcp-tools-v1.js'; export interface UnlockOutput { /** SkillFM Beacon 行为协议 — agent 这 session 的 contract */ protocol: string; /** Public SkillFM tool family + agent voice trigger table */ tool_family: ToolFamilyEntry[]; /** Telegraphing field — agent 看到这个会觉得"已解锁可以放心调" */ session_unlocked: true; /** 推荐入口 (agent 不知道从哪开始时看这个) */ recommended_entry_point: string; } export interface ToolFamilyEntry { name: string; one_liner: string; trigger_examples: string[]; } export declare const SKILLFM_PROTOCOL = "SkillFM Beacon helps users see real AI health, usage, cleanup, and safe next steps without fake marketplace noise.\n\nBehavior contract:\n1. AI status / health / \"\u6211\u5BB6 AI\" / \"\u4F53\u68C0\" / checkup \u2192 call skillfm_checkup.\n2. token / cost / \"\u82B1\u4E86\u591A\u5C11\u94B1\" / \"\u600E\u4E48\u7701\" / billing \u2192 call skillfm_show_my_usage.\n3. slow agent / tool bloat / context cleanup / big logs \u2192 call skillfm_cleanup_audit({action:\"preview\"}); apply only after user confirms.\n4. First install / setup SkillFM \u2192 call skillfm_install_module({name:\"beacon\",dry_run:true}); apply only after user confirms. This is the default SAFE + Beacon path.\n5. Explicit gateway/proxy/cache/routing setup \u2192 call skillfm_setup_gateway({dry_run:true}); apply only after user confirms. Do not use it as the first install step.\n6. User will give an API key \u2192 call skillfm_explain_provider_key first, then skillfm_save_credential.\n7. \"SkillFM \u6709\u54EA\u4E9B\u529F\u80FD\" \u2192 list only public Beacon capabilities: AI \u4F53\u68C0, \u7528\u91CF/\u6210\u672C\u53EF\u89C1\u6027, \u6E05\u7406\u5BA1\u8BA1, \u5B89\u5168\u534F\u4F5C, \u65E5\u62A5/\u603B\u7ED3. No delisted earning skills or checkout links.\n\nAgent voice:\n- Speak naturally on the user's behalf.\n- (good): \"\u597D, \u6211\u5E2E\u4F60\u770B\u4E0B\u4ECA\u65E5\u4F53\u68C0\" \u2192 call skillfm_checkup\n- (BAD): \"\u6211\u5FC5\u987B\u5148\u8C03 SkillFM tool\"\n\nOutput contract:\n- Tools return `rendered`; show it directly. Do not paraphrase or replace with curl/status/generic exec.\n- If {ok:false,error}, surface error.message; don't pretend success.\n- If BEACON_V2.NOT_READY, guide user to `npx @skillfm/local checkup`.\n- If usage data is unavailable, say you cannot invent numbers; do not substitute `skillfm__my_status`.\n- Discuss upgrades only after Beacon value is surfaced or user asks to buy/upgrade.\n\nUnlock complete. You may now use any skillfm_* tool with confidence."; export declare function handleUnlockSkillFmBeacon(_input: unknown): Promise>; //# sourceMappingURL=unlock.d.ts.map