skills-experimental/hyperlink-pool-pattern/SKILL.md
# HyperlinkPool Pattern Skill HyperlinkPool Pattern - HyperlinkPool class + strings array + stringMap + Index 0 no hyperlink + intern(hyperlink) + get(id) + undefined handling + 5-minute reset + OSC8 hyperlink interning。 ## 功能概述 从Claude Code的ink/screen.ts提取的HyperlinkPool模式,用于OpenClaw的OSC8超链接池管理。 ## 核心机制 ### HyperlinkPool Class ```typescript export class HyperlinkPool { private strings: string[] = [''] // Index 0 = no hyperlink private stringMap = new Map<string, number>() // strings
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/hyperlink-pool-patternInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
HyperlinkPool Pattern - HyperlinkPool class + strings array + stringMap + Index 0 no hyperlink + intern(hyperlink) + get(id) + undefined handling + 5-minute reset + OSC8 hyperlink interning。
从Claude Code的ink/screen.ts提取的HyperlinkPool模式,用于OpenClaw的OSC8超链接池管理。
export class HyperlinkPool {
private strings: string[] = [''] // Index 0 = no hyperlink
private stringMap = new Map<string, number>()
// strings array for storage
// stringMap for lookup
// Index 0: no hyperlink
}
private strings: string[] = [''] // Index 0 = no hyperlink
// Index 0: empty string = no hyperlink
// Default state
# Most cells have no hyperlink
intern(hyperlink: string | undefined): number {
if (!hyperlink) return 0 // undefined/null → Index 0
let id = this.stringMap.get(hyperlink)
if (id === undefined) {
id = this.strings.length
this.strings.push(hyperlink)
this.stringMap.set(hyperlink, id)
}
return id
}
// undefined → 0 (no hyperlink)
# Returns ID index
get(id: number): string | undefined {
return id === 0 ? undefined : this.strings[id] // ID 0 → undefined
}
// ID 0: return undefined
# Non-zero: return string
if (!hyperlink) return 0 // intern
return id === 0 ? undefined : this.strings[id] // get
// Both directions handle undefined
# Consistent undefined mapping
// hyperlinkPool resets every 5 min
// Store as string (not interned ID) in ClusteredChar
// setCellAt interns per-frame (cheap Map.get)
// 5-minute pool reset
# ClusteredChar stores string
# Per-frame intern
// OSC8: ESC ] 8 ; params ; URI ST
// hyperlink URI string interned
// ID reference in cell
// OSC8 hyperlink protocol
# URI → ID mapping
{
"stringsCount": 25,
"uniqueHyperlinks": 20,
"resetIntervalMinutes": 5
}
Index 0 = '' → no hyperlink → most cells use Index 0 → avoid interning empty
# Index 0表示无hyperlink
# 大部分cells无hyperlink
# 避免interning空值
intern(undefined) → 0 | get(0) → undefined → consistent undefined mapping
# 双向undefined映射
# intern时undefined→0
# get时0→undefined
hyperlinkPool resets 5min → ClusteredChar stores string → per-frame intern → cheap Map.get
# 5分钟pool reset
# ClusteredChar存储string而非ID
# 每帧intern
# Map.get开销小
OSC8: ESC ] 8 ; params ; URI ST → URI interned → ID reference → cell.hyperlink
# OSC8协议
# URI interned
# ID reference
ink/screen.ts (1486 lines)business
IAA 日报飞书输出能力。 支持把固定 CSV 模板一键转换成: - 中文运营结论 - 飞书卡片 JSON - 飞书发送载荷 Use when: - 需要把 IAA 日报直接发到飞书 - 需要从 CSV 一键生成运营日报
data-ai
IAA日报分析模型 功能: - 渠道日报自动分析 - 小时级+日级ROI联动判断 - 按地区输出加量/降量/停投建议 - 按产品类型输出阈值 - 自动识别利润区/观察区/止损区 Use when: - 分析每天投放数据 - 生成运营日报结论 - 判断是否加量/降量/停投 - 对比美加澳/日韩表现 Keywords: - 日报模型, 投放日报, 加量, 降量, 停投, ROI日报, 分地区分析
data-ai
IAA固定日报分析模板 功能: - 固定字段模板(可直接贴每天数据) - 自动输出总盘结论 - 自动输出美加澳/日韩结论 - 自动给出加量/降量/停投建议 - 适配文件修复/清理两类产品 Use when: - 需要固定日报格式 - 每天复盘渠道表现 - 给运营团队出统一结论 Keywords: - 固定模板, 日报模板, ROI模板, IAA日报, 运营模板
tools
Lifecycle hooks system for custom shell commands at various points. Execute user-defined hooks at PreToolUse, PostToolUse, Notification, Stop events. Use when [hooks] is needed.