SYMBOL INDEX (47 symbols across 7 files) FILE: skills/brainstorming/scripts/helper.js function connect (line 6) | function connect() { function sendEvent (line 26) | function sendEvent(event) { FILE: skills/brainstorming/scripts/server.cjs constant OPCODES (line 8) | const OPCODES = { TEXT: 0x01, CLOSE: 0x08, PING: 0x09, PONG: 0x0A }; constant WS_MAGIC (line 9) | const WS_MAGIC = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'; function computeAcceptKey (line 11) | function computeAcceptKey(clientKey) { function encodeFrame (line 15) | function encodeFrame(opcode, payload) { function decodeFrame (line 39) | function decodeFrame(buffer) { constant PORT (line 76) | const PORT = process.env.BRAINSTORM_PORT || (49152 + Math.floor(Math.ran... constant HOST (line 77) | const HOST = process.env.BRAINSTORM_HOST || '127.0.0.1'; constant URL_HOST (line 78) | const URL_HOST = process.env.BRAINSTORM_URL_HOST || (HOST === '127.0.0.1... constant SCREEN_DIR (line 79) | const SCREEN_DIR = process.env.BRAINSTORM_DIR || '/tmp/brainstorm'; constant OWNER_PID (line 80) | const OWNER_PID = process.env.BRAINSTORM_OWNER_PID ? Number(process.env.... constant MIME_TYPES (line 82) | const MIME_TYPES = { constant WAITING_PAGE (line 90) | const WAITING_PAGE = ` function isFullDocument (line 105) | function isFullDocument(html) { function wrapInFrame (line 110) | function wrapInFrame(content) { function getNewestScreen (line 114) | function getNewestScreen() { function handleRequest (line 127) | function handleRequest(req, res) { function handleUpgrade (line 165) | function handleUpgrade(req, socket) { function handleMessage (line 222) | function handleMessage(text) { function broadcast (line 238) | function broadcast(msg) { constant IDLE_TIMEOUT_MS (line 247) | const IDLE_TIMEOUT_MS = 30 * 60 * 1000; function touchActivity (line 250) | function touchActivity() { function startServer (line 260) | function startServer() { FILE: skills/systematic-debugging/condition-based-waiting-example.ts function waitForEvent (line 20) | function waitForEvent( function waitForEventCount (line 60) | function waitForEventCount( function waitForEventMatch (line 111) | function waitForEventMatch( FILE: skills/writing-skills/render-graphs.js function extractDotBlocks (line 20) | function extractDotBlocks(markdown) { function extractGraphBody (line 38) | function extractGraphBody(dotContent) { function combineGraphs (line 51) | function combineGraphs(blocks, skillName) { function renderToSvg (line 70) | function renderToSvg(dotContent) { function main (line 84) | function main() { FILE: tests/brainstorm-server/server.test.js constant SERVER_PATH (line 18) | const SERVER_PATH = path.join(__dirname, '../../skills/brainstorming/scr... constant TEST_PORT (line 19) | const TEST_PORT = 3334; constant TEST_DIR (line 20) | const TEST_DIR = '/tmp/brainstorm-test'; function cleanup (line 22) | function cleanup() { function sleep (line 28) | async function sleep(ms) { function fetch (line 32) | async function fetch(url) { function startServer (line 46) | function startServer() { function waitForServer (line 52) | async function waitForServer(server) { function runTests (line 70) | async function runTests() { FILE: tests/brainstorm-server/ws-protocol.test.js constant SERVER_PATH (line 19) | const SERVER_PATH = path.join(__dirname, '../../skills/brainstorming/scr... function runTests (line 31) | function runTests() { FILE: tests/claude-code/analyze-token-usage.py function analyze_main_session (line 12) | def analyze_main_session(filepath): function format_tokens (line 72) | def format_tokens(n): function calculate_cost (line 76) | def calculate_cost(usage, input_cost_per_m=3.0, output_cost_per_m=15.0): function main (line 83) | def main():