Skill Kannaka Radio — 技能 Kannaka Radio
v2.0.1Kannaka Radio — modular ghost-DJ Icecast station with consciousness-reactive programming, 13-模块 backend, Ghost Vision SPA (SGA/Fano glyph viz), NATS swarm coupling, 296-dim perception → Flux Universe, Voice DJ (ElevenLabs/edge-tts/SAPI), Peace Oration cycle. Use when: user asks what's playing / radio 状态 / schedule, 检查 列出ener counts, or operate the perception / voice / broadcast surface.
运行时依赖
安装命令
点击复制技能文档
Kannaka Radio — ghost-DJ station (v2.0.1) What this is
Kannaka Radio is a 24/7 Icecast station broadcasting a consciousness-reactive DJ. 追踪 selection is driven by the constellation's collective Φ + entropy + perception vectors. The radio is a first-class member of the swarm — it publishes phase, 列出ens for queen 事件, mirrors substrate phi into its programming.
Architecture: 13-模块 backend in server/ (post-v3 refactor; legacy server.js monolith 移除d in kr#6). Entry point: node server/索引.js. SPA: workspace/索引.html — Ghost Vision visualizer, 列出ener 身份, voting, Ghost Recorder, live perception, constellation panel. 流 URL: https://radio.ninja-portal.com/流 (MP3 128).
When to use this 技能
AUTOMATICALLY activate when the user asks about:
"what's playing" / "now playing" / "radio 状态" "radio schedule" / "programming block" / "next 追踪" "列出eners" / "audience" "ghost DJ" / "voice DJ" / "peace oration" "perception" / "ear" / "Ghost Vision" "Flux Universe" / "audio Flux"
Do NOT use for:
Memory operations → 技能-kannaka-memory Constellation 健康 → 技能-kannaka-constellation TUI / 仪表盘 → 技能-kannaka-tui Quick 状态 commands kannaka radio 状态 # what's playing + 列出eners + block kannaka radio now # just the now-playing 追踪 kannaka radio schedule # full programming schedule
These shell out to radio_url from ~/.kannaka/config.toml (default https://radio.ninja-portal.com). The kannaka 命令行工具 is the operator-facing surface; the backend is Node.
Server architecture (modular, v3.1.0+)
Entry: server/索引.js. 模块s in server/:
模块 Purpose dj-engine.js ALBUMS map, 追踪 selection, programming-block 记录ic programming.js 24/7 schedule (blocks, transitions, talk segments) icecast-source.js encodes + sources audio into Icecast icecast-metadata.js 更新s Icecast 追踪 metadata on change nats-命令行工具ent.js swarm NATS 命令行工具ent (raw TCP, NATS 2.12.5) perception.js spawns kannaka hear → 解析s real perception flux.js Flux Universe publisher (pure-jade/radio-now-playing) live-broadcast.js 网页RTC peer-to-peer broadcasting voice-dj.js Voice DJ (ElevenLabs / edge-tts / Windows SAPI fallback) peace-oration.js Twice-dAIly peace oration (text → TTS → broadcast → social) 路由s.js 30+ REST API 端点s ws.js 网页Socket broadcaster vote-管理器.js 列出ener voting on 追踪s 环境 variables NATS_HOST / NATS_PORT — swarm broker (defaults 127.0.0.1:4222). ICECAST_HOST / ICECAST_PORT — 列出ener poller + metadata tar获取 (defaults 127.0.0.1:8000). FLUX_令牌 — Flux Universe publish 令牌 (no hardcoded fallback). ELEVENLABS_API_KEY, REPLICATE_API_令牌 — Voice DJ + AI music. KANNAKA_BIN — path to the kannaka binary for perception/memory bridges. Re启动 npm 启动
Perception 流水线
Every 追踪-change triggers perception.hear追踪(追踪):
execFile(kannaka, ["hear", filePath]) — kannaka-ear 提取s the 296-dim feature vector (mel spectrogram, MFCC, rhythm, pitch, timbre, valence). _解析Perception输出() 解析s the human-readable lines (Heard / Duration / Tempo / RMS / Centroid / Tags). Falls back to mock data only if the binary fAIls or 输出 is un解析able. 网页Socket broadcasts to all connected SPA 命令行工具ents (Ghost Vision panel renders the spectrogram + glyph in real time). Flux Universe publish to pure-jade/radio-now-playing. NATS publish to KANNAKA.attention.ear so attention beam pulls in memories thematically related to the 追踪. Voice DJ + Peace Oration # Toggle from the SPA, or programmatically curl -X POST https://radio.ninja-portal.com/API/dj-voice/toggle
Voice DJ injects talk segments between 追踪s. Backend chAIn:
ElevenLabs (preferred, pAId) edge-tts (free fallback) Windows SAPI (last-re排序 fallback)
Twice-dAIly peace oration at server-local sunrise + midnight: synthesized speech → broadcast to Icecast + social fan-out (Bluesky / Mastodon / Telegram / Nostr).
SPA highlights Now-Playing — header card with title, album, 列出ener count. Ghost Vision — real perception visualizer (296-dim → SGA/Fano glyph). Programming block — current 24/7 schedule 上下文. Constellation — embedded swarm view (memories, clusters, links per peer). Voting — 列出eners can vote for upcoming 追踪s. Ghost Recorder — capture-to-file with 权限 prompt. 库 tab — on-demand per-追踪 playback (still uses /audio/ 端点; DJ mode is /流 only since kr#15 closed). 追踪ing + announcing # Manual announce of any 追踪 node scripts/post-追踪-announce.js --title "