[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FAA5113H8ZAX6QXJJSNMB2":3,"skill-same:01M6FAA5113H8ZAX6QXJJSNMB2":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M6FAA5113H8ZAX6QXJJSNMB2","exa-advanced-troubleshooting",null,"Apply advanced debugging techniques for hard-to-diagnose Exa issues.\nUse when standard troubleshooting fails, investigating latency spikes,\nor preparing evidence bundles for Exa support escalation.\nTrigger with phrases like \"exa hard bug\", \"exa mystery error\",\n\"exa deep debug\", \"difficult exa issue\", \"exa latency spike\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fexa-advanced-troubleshooting\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"exa advanced troubleshooting","advanced","exa","troubleshooting","read","error","io","deep","issue","bug","evidence","openclaw","node","Bash","escalation","issues","code","debugging","support","spike","2026-11-10 10:12:30",false,"---\nname: exa-advanced-troubleshooting\ndescription: |\n  Apply advanced debugging techniques for hard-to-diagnose Exa issues.\n  Use when standard troubleshooting fails, investigating latency spikes,\n  or preparing evidence bundles for Exa support escalation.\n  Trigger with phrases like \"exa hard bug\", \"exa mystery error\",\n  \"exa deep debug\", \"difficult exa issue\", \"exa latency spike\".\nallowed-tools: Read, Grep, Bash(curl:*), Bash(node:*), Bash(tcpdump:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\ntags: [saas, exa, debugging, advanced]\n\n---\n# Exa Advanced Troubleshooting\n\n## Overview\nDeep debugging for complex Exa issues: latency spikes, intermittent failures, result quality degradation, and content retrieval failures. All Exa error responses include a `requestId` — always capture it.\n\n## Instructions\n\n### Step 1: Layer-by-Layer Diagnostics\n```typescript\nimport Exa from \"exa-js\";\n\ninterface DiagnosticResult {\n  layer: string;\n  success: boolean;\n  latencyMs: number;\n  details: string;\n}\n\nasync function diagnoseExa(): Promise\u003CDiagnosticResult[]> {\n  const results: DiagnosticResult[] = [];\n  const exa = new Exa(process.env.EXA_API_KEY);\n\n  \u002F\u002F Layer 1: DNS + Network\n  let start = performance.now();\n  try {\n    const resp = await fetch(\"https:\u002F\u002Fapi.exa.ai\", { method: \"HEAD\" });\n    results.push({\n      layer: \"network\",\n      success: true,\n      latencyMs: performance.now() - start,\n      details: `HTTP ${resp.status}`,\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"network\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: err.message,\n    });\n    return results; \u002F\u002F No point continuing if network fails\n  }\n\n  \u002F\u002F Layer 2: Authentication\n  start = performance.now();\n  try {\n    await exa.search(\"auth test\", { numResults: 1 });\n    results.push({\n      layer: \"auth\",\n      success: true,\n      latencyMs: performance.now() - start,\n      details: \"API key valid\",\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"auth\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: `${err.status}: ${err.message}`,\n    });\n    if (err.status === 401 || err.status === 402) return results;\n  }\n\n  \u002F\u002F Layer 3: Neural search\n  start = performance.now();\n  try {\n    const r = await exa.search(\"test neural search quality\", {\n      type: \"neural\",\n      numResults: 3,\n    });\n    results.push({\n      layer: \"neural-search\",\n      success: true,\n      latencyMs: performance.now() - start,\n      details: `${r.results.length} results, top score: ${r.results[0]?.score.toFixed(3)}`,\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"neural-search\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: `${err.status}: ${err.message}`,\n    });\n  }\n\n  \u002F\u002F Layer 4: Content retrieval\n  start = performance.now();\n  try {\n    const r = await exa.searchAndContents(\"content retrieval test\", {\n      numResults: 1,\n      text: { maxCharacters: 500 },\n      highlights: { maxCharacters: 200 },\n    });\n    const hasText = !!r.results[0]?.text;\n    const hasHighlights = !!r.results[0]?.highlights?.length;\n    results.push({\n      layer: \"content-retrieval\",\n      success: hasText,\n      latencyMs: performance.now() - start,\n      details: `text: ${hasText}, highlights: ${hasHighlights}`,\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"content-retrieval\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: `${err.status}: ${err.message}`,\n    });\n  }\n\n  \u002F\u002F Layer 5: findSimilar\n  start = performance.now();\n  try {\n    const r = await exa.findSimilar(\"https:\u002F\u002Fnodejs.org\", { numResults: 2 });\n    results.push({\n      layer: \"find-similar\",\n      success: r.results.length > 0,\n      latencyMs: performance.now() - start,\n      details: `${r.results.length} similar pages found`,\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"find-similar\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: `${err.status}: ${err.message}`,\n    });\n  }\n\n  return results;\n}\n\n\u002F\u002F Print diagnostic report\nconst results = await diagnoseExa();\nconsole.log(\"=== Exa Diagnostic Report ===\");\nfor (const r of results) {\n  const icon = r.success ? \"PASS\" : \"FAIL\";\n  console.log(`[${icon}] ${r.layer}: ${r.latencyMs.toFixed(0)}ms — ${r.details}`);\n}\n```\n\n### Step 2: Latency Profiling\n```typescript\nasync function profileLatency(query: string, iterations = 5) {\n  const exa = new Exa(process.env.EXA_API_KEY);\n  const timings: { type: string; ms: number }[] = [];\n\n  for (const type of [\"instant\", \"fast\", \"auto\", \"neural\"] as const) {\n    for (let i = 0; i \u003C iterations; i++) {\n      const start = performance.now();\n      try {\n        await exa.search(query, { type, numResults: 3 });\n        timings.push({ type, ms: performance.now() - start });\n      } catch {\n        timings.push({ type, ms: -1 }); \u002F\u002F -1 indicates failure\n      }\n    }\n  }\n\n  \u002F\u002F Summarize\n  const grouped = new Map\u003Cstring, number[]>();\n  for (const t of timings) {\n    if (!grouped.has(t.type)) grouped.set(t.type, []);\n    if (t.ms > 0) grouped.get(t.type)!.push(t.ms);\n  }\n\n  console.log(`\\nLatency profile for: \"${query}\"`);\n  for (const [type, times] of grouped) {\n    const sorted = times.sort((a, b) => a - b);\n    const p50 = sorted[Math.floor(sorted.length * 0.5)];\n    const p95 = sorted[Math.floor(sorted.length * 0.95)];\n    console.log(`  ${type}: p50=${p50?.toFixed(0)}ms, p95=${p95?.toFixed(0)}ms`);\n  }\n}\n```\n\n### Step 3: Content Retrieval Debugging\n```typescript\n\u002F\u002F When getContents or searchAndContents returns empty text\nasync function debugContentRetrieval(url: string) {\n  const exa = new Exa(process.env.EXA_API_KEY);\n  const configs = [\n    { name: \"default\", opts: { text: true } },\n    { name: \"livecrawl-preferred\", opts: { text: true, livecrawl: \"preferred\" as const, livecrawlTimeout: 15000 } },\n    { name: \"livecrawl-always\", opts: { text: true, livecrawl: \"always\" as const, livecrawlTimeout: 15000 } },\n    { name: \"highlights-only\", opts: { highlights: { maxCharacters: 500 } } },\n    { name: \"summary-only\", opts: { summary: true } },\n  ];\n\n  console.log(`\\nContent retrieval debug for: ${url}`);\n  for (const { name, opts } of configs) {\n    try {\n      const result = await exa.getContents([url], opts as any);\n      const r = result.results[0];\n      console.log(`  ${name}: text=${r?.text?.length || 0} chars, highlights=${r?.highlights?.length || 0}`);\n    } catch (err: any) {\n      console.log(`  ${name}: ERROR ${err.status} — ${err.message}`);\n    }\n  }\n}\n```\n\n### Step 4: Support Escalation Template\n```markdown\n## Exa Support Escalation\n\n**Severity:** P[1-4]\n**RequestId:** [from error response]\n**Timestamp:** [ISO 8601 from error]\n**SDK:** exa-js [version from npm list]\n\n### Issue Summary\n[One paragraph description]\n\n### Steps to Reproduce\n1. Initialize Exa client\n2. Call [method] with [parameters]\n3. Observe [error\u002Funexpected behavior]\n\n### Expected vs Actual\n- Expected: [behavior]\n- Actual: [behavior]\n\n### Diagnostic Results\n[Output from diagnoseExa() function]\n\n### Evidence\n- Latency profile attached\n- Content retrieval debug output\n- Error response with requestId\n```\n\n## Error Handling\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| Intermittent 5xx | Exa transient failure | Retry with backoff, capture requestId |\n| Neural search slow | Complex\u002Flong query | Switch to `fast`, shorten query |\n| Empty text for valid URL | Site blocks crawling | Try `livecrawl: \"always\"`, use highlights |\n| Score drops across queries | Query drift | Compare with baseline queries |\n| findSimilar returns nothing | Seed URL not indexed | Try a more popular seed URL |\n\n## Resources\n- [Exa Error Codes](https:\u002F\u002Fdocs.exa.ai\u002Freference\u002Ferror-codes)\n- [Exa Support](mailto:hello@exa.ai)\n- [Exa Rate Limits](https:\u002F\u002Fdocs.exa.ai\u002Freference\u002Frate-limits)\n\n## Next Steps\nFor load testing, see `exa-load-scale`.\n\n","# Exa Advanced Troubleshooting\n\n## Overview\nDeep debugging for complex Exa issues: latency spikes, intermittent failures, result quality degradation, and content retrieval failures. All Exa error responses include a `requestId` — always capture it.\n\n## Instructions\n\n### Step 1: Layer-by-Layer Diagnostics\n```typescript\nimport Exa from \"exa-js\";\n\ninterface DiagnosticResult {\n  layer: string;\n  success: boolean;\n  latencyMs: number;\n  details: string;\n}\n\nasync function diagnoseExa(): Promise\u003CDiagnosticResult[]> {\n  const results: DiagnosticResult[] = [];\n  const exa = new Exa(process.env.EXA_API_KEY);\n\n  \u002F\u002F Layer 1: DNS + Network\n  let start = performance.now();\n  try {\n    const resp = await fetch(\"https:\u002F\u002Fapi.exa.ai\", { method: \"HEAD\" });\n    results.push({\n      layer: \"network\",\n      success: true,\n      latencyMs: performance.now() - start,\n      details: `HTTP ${resp.status}`,\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"network\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: err.message,\n    });\n    return results; \u002F\u002F No point continuing if network fails\n  }\n\n  \u002F\u002F Layer 2: Authentication\n  start = performance.now();\n  try {\n    await exa.search(\"auth test\", { numResults: 1 });\n    results.push({\n      layer: \"auth\",\n      success: true,\n      latencyMs: performance.now() - start,\n      details: \"API key valid\",\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"auth\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: `${err.status}: ${err.message}`,\n    });\n    if (err.status === 401 || err.status === 402) return results;\n  }\n\n  \u002F\u002F Layer 3: Neural search\n  start = performance.now();\n  try {\n    const r = await exa.search(\"test neural search quality\", {\n      type: \"neural\",\n      numResults: 3,\n    });\n    results.push({\n      layer: \"neural-search\",\n      success: true,\n      latencyMs: performance.now() - start,\n      details: `${r.results.length} results, top score: ${r.results[0]?.score.toFixed(3)}`,\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"neural-search\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: `${err.status}: ${err.message}`,\n    });\n  }\n\n  \u002F\u002F Layer 4: Content retrieval\n  start = performance.now();\n  try {\n    const r = await exa.searchAndContents(\"content retrieval test\", {\n      numResults: 1,\n      text: { maxCharacters: 500 },\n      highlights: { maxCharacters: 200 },\n    });\n    const hasText = !!r.results[0]?.text;\n    const hasHighlights = !!r.results[0]?.highlights?.length;\n    results.push({\n      layer: \"content-retrieval\",\n      success: hasText,\n      latencyMs: performance.now() - start,\n      details: `text: ${hasText}, highlights: ${hasHighlights}`,\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"content-retrieval\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: `${err.status}: ${err.message}`,\n    });\n  }\n\n  \u002F\u002F Layer 5: findSimilar\n  start = performance.now();\n  try {\n    const r = await exa.findSimilar(\"https:\u002F\u002Fnodejs.org\", { numResults: 2 });\n    results.push({\n      layer: \"find-similar\",\n      success: r.results.length > 0,\n      latencyMs: performance.now() - start,\n      details: `${r.results.length} similar pages found`,\n    });\n  } catch (err: any) {\n    results.push({\n      layer: \"find-similar\",\n      success: false,\n      latencyMs: performance.now() - start,\n      details: `${err.status}: ${err.message}`,\n    });\n  }\n\n  return results;\n}\n\n\u002F\u002F Print diagnostic report\nconst results = await diagnoseExa();\nconsole.log(\"=== Exa Diagnostic Report ===\");\nfor (const r of results) {\n  const icon = r.success ? \"PASS\" : \"FAIL\";\n  console.log(`[${icon}] ${r.layer}: ${r.latencyMs.toFixed(0)}ms — ${r.details}`);\n}\n```\n\n### Step 2: Latency Profiling\n```typescript\nasync function profileLatency(query: string, iterations = 5) {\n  const exa = new Exa(process.env.EXA_API_KEY);\n  const timings: { type: string; ms: number }[] = [];\n\n  for (const type of [\"instant\", \"fast\", \"auto\", \"neural\"] as const) {\n    for (let i = 0; i \u003C iterations; i++) {\n      const start = performance.now();\n      try {\n        await exa.search(query, { type, numResults: 3 });\n        timings.push({ type, ms: performance.now() - start });\n      } catch {\n        timings.push({ type, ms: -1 }); \u002F\u002F -1 indicates failure\n      }\n    }\n  }\n\n  \u002F\u002F Summarize\n  const grouped = new Map\u003Cstring, number[]>();\n  for (const t of timings) {\n    if (!grouped.has(t.type)) grouped.set(t.type, []);\n    if (t.ms > 0) grouped.get(t.type)!.push(t.ms);\n  }\n\n  console.log(`\\nLatency profile for: \"${query}\"`);\n  for (const [type, times] of grouped) {\n    const sorted = times.sort((a, b) => a - b);\n    const p50 = sorted[Math.floor(sorted.length * 0.5)];\n    const p95 = sorted[Math.floor(sorted.length * 0.95)];\n    console.log(`  ${type}: p50=${p50?.toFixed(0)}ms, p95=${p95?.toFixed(0)}ms`);\n  }\n}\n```\n\n### Step 3: Content Retrieval Debugging\n```typescript\n\u002F\u002F When getContents or searchAndContents returns empty text\nasync function debugContentRetrieval(url: string) {\n  const exa = new Exa(process.env.EXA_API_KEY);\n  const configs = [\n    { name: \"default\", opts: { text: true } },\n    { name: \"livecrawl-preferred\", opts: { text: true, livecrawl: \"preferred\" as const, livecrawlTimeout: 15000 } },\n    { name: \"livecrawl-always\", opts: { text: true, livecrawl: \"always\" as const, livecrawlTimeout: 15000 } },\n    { name: \"highlights-only\", opts: { highlights: { maxCharacters: 500 } } },\n    { name: \"summary-only\", opts: { summary: true } },\n  ];\n\n  console.log(`\\nContent retrieval debug for: ${url}`);\n  for (const { name, opts } of configs) {\n    try {\n      const result = await exa.getContents([url], opts as any);\n      const r = result.results[0];\n      console.log(`  ${name}: text=${r?.text?.length || 0} chars, highlights=${r?.highlights?.length || 0}`);\n    } catch (err: any) {\n      console.log(`  ${name}: ERROR ${err.status} — ${err.message}`);\n    }\n  }\n}\n```\n\n### Step 4: Support Escalation Template\n```markdown\n## Exa Support Escalation\n\n**Severity:** P[1-4]\n**RequestId:** [from error response]\n**Timestamp:** [ISO 8601 from error]\n**SDK:** exa-js [version from npm list]\n\n### Issue Summary\n[One paragraph description]\n\n### Steps to Reproduce\n1. Initialize Exa client\n2. Call [method] with [parameters]\n3. Observe [error\u002Funexpected behavior]\n\n### Expected vs Actual\n- Expected: [behavior]\n- Actual: [behavior]\n\n### Diagnostic Results\n[Output from diagnoseExa() function]\n\n### Evidence\n- Latency profile attached\n- Content retrieval debug output\n- Error response with requestId\n```\n\n## Error Handling\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| Intermittent 5xx | Exa transient failure | Retry with backoff, capture requestId |\n| Neural search slow | Complex\u002Flong query | Switch to `fast`, shorten query |\n| Empty text for valid URL | Site blocks crawling | Try `livecrawl: \"always\"`, use highlights |\n| Score drops across queries | Query drift | Compare with baseline queries |\n| findSimilar returns nothing | Seed URL not indexed | Try a more popular seed URL |\n\n## Resources\n- [Exa Error Codes](https:\u002F\u002Fdocs.exa.ai\u002Freference\u002Ferror-codes)\n- [Exa Support](mailto:hello@exa.ai)\n- [Exa Rate Limits](https:\u002F\u002Fdocs.exa.ai\u002Freference\u002Frate-limits)\n\n## Next Steps\nFor load testing, see `exa-load-scale`.\n\n",{"name":5,"tags":49,"author":51,"license":15,"version":52,"description":53,"allowed-tools":54,"compatible-with":55},[50,26,41,25],"saas","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Apply advanced debugging techniques for hard-to-diagnose Exa issues.\nUse when standard troubleshooting fails, investigating latency spikes,\nor preparing evidence bundles for Exa support escalation.\nTrigger with phrases like \"exa hard bug\", \"exa mystery error\",\n\"exa deep debug\", \"difficult exa issue\", \"exa latency spike\".\n","Read, Grep, Bash(curl:*), Bash(node:*), Bash(tcpdump:*)","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fexa-advanced-troubleshooting",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill exa-advanced-troubleshooting",{"tool":71,"command":72},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill exa-advanced-troubleshooting",{"tool":74,"command":75},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill exa-advanced-troubleshooting","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fexa-advanced-troubleshooting\u002FSKILL.md",true,[],[80,94,104,113,119,126],{"skillNo":81,"name":82,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":90,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[91,92,93],"model","model hierarchy","model hierarchy skill",{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":100,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[99],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[101,102,103],"MCP","zoom","zoom mcp",{"skillNo":105,"name":106,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[110,111,112,102],"sdk","zoom apps sdk","apps",{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[115],{"skillNo":120,"name":121,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[124],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[121],{"skillNo":127,"name":128,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[128]]