/** Skill attribution rules for trace records. */ import type { CcAssistantRecord, CcUserRecord } from './trace-source.js'; import type { TraceMessageEvent, TraceToolCallEvent } from './trace-ir.js'; export interface SkillRef { skillName: string; rawSkillRef: string; pluginName?: string; } export declare function extractMarkdownLogSkill(text: string): string | null; /** * 归一化 skill 名:去掉 plugin 前缀并校验稳定身份。 * - "impeccable:audit" → "audit" * - "pbakaus/impeccable:audit" → "audit" */ export declare function normalizeSkillName(raw: string): string | null; export declare function parseSkillRef(raw: string): SkillRef | null; export declare function stripCommandEnvelopeText(text: string): string; export declare function extractCommandEnvelopeText(text: string): string | null; /** * 从 user message 里提取 slash-command skill 名字(信号 2)。 * 返回 null 表示没命中。 */ export declare function extractCommandSkill(record: CcUserRecord): string | null; export declare function extractCommandSkillRef(record: CcUserRecord): SkillRef | null; export declare function isClaudeBuiltinCommand(raw: string): boolean; /** * 从 OpenClaw user message 的业务动作标签里提取 skill 名字(信号 4)。 * * 注意: 真实 OpenClaw 数据里 name 可能是业务动作展示名, 不是稳定 skill id。 * 只有 name 本身像 "prd-create" 这种 slug 时才用于 skill 归因; * 展示名继续保留在 sourceMetadata.businessActions 里, 不切 skill。 */ export declare function extractBusinessActionSkillRef(record: CcUserRecord): SkillRef | null; /** * 从 assistant message 的 tool_use 里提取 Skill tool 调用的 skill 名字(信号 1)。 * 返回 null 表示没命中。 */ export declare function extractSkillToolUse(record: CcAssistantRecord): string | null; export declare function extractSkillToolUseRef(record: CcAssistantRecord): SkillRef | null; export declare function extractAttributionSkill(record: CcAssistantRecord): string | null; export declare function extractAttributionSkillRef(record: CcAssistantRecord): SkillRef | null; export declare function isInstalledSkillAssetPath(value: string, skillName: string): boolean; /** * 从 assistant message 的 Read / Bash tool_use 里提取 skill 名字(信号 3, fallback)。 * Codex 通常用 shell 读取 `.agents/skills//SKILL.md`,Claude Code 与 * OpenClaw 则更常用结构化 Read tool;两种形式统一识别。 * 返回 null 表示没命中。 */ export declare function extractSkillReadFile(record: CcAssistantRecord): string | null; export declare function extractSkillReadFileRef(record: CcAssistantRecord): SkillRef | null; /** * 从 OpenClaw cron/user 文本或 Bash/exec tool command 里提取 skill 脚本路径。 * * cron 型 OpenClaw session 通常没有业务动作标签或 Skill tool_use, * 只会直接执行 ~/.openclaw/workspace-main/skills//scripts/*.sh。 */ export declare function extractSkillScriptCommandRef(record: CcUserRecord | CcAssistantRecord): SkillRef | null; export declare function extractCommandSkillRefFromEvent(event: TraceMessageEvent): SkillRef | null; export declare function extractBusinessActionSkillRefFromEvent(event: TraceMessageEvent): SkillRef | null; export declare function extractAttributionSkillRefFromEvent(event: TraceMessageEvent): SkillRef | null; export declare function extractSkillToolUseRefFromEvent(event: TraceToolCallEvent): SkillRef | null; export declare function extractSkillReadFileRefFromEvent(event: TraceToolCallEvent): SkillRef | null; export declare function extractSkillScriptCommandRefFromEvent(event: TraceMessageEvent | TraceToolCallEvent): SkillRef | null;