[{"data":1,"prerenderedAt":3831},["ShallowReactive",2],{"navigation":3,"/developers/troubleshooting":506,"/developers/troubleshooting-surround":3826},[4,66,204,292,339,402,450,482],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Whitepaper","i-lucide-file-text","/whitepaper","1.whitepaper",[10,13,17,22,27,32,37,42,47,51,56,61],{"title":5,"path":7,"stem":11,"icon":12},"1.whitepaper/index","i-heroicons-document-text",{"title":14,"path":15,"stem":16,"icon":12},"Executive Summary","/whitepaper/executive-summary","1.whitepaper/1.executive-summary",{"title":18,"path":19,"stem":20,"icon":21},"Investment Opportunity","/whitepaper/investment-opportunity","1.whitepaper/10.investment-opportunity","i-heroicons-banknotes",{"title":23,"path":24,"stem":25,"icon":26},"Risk Analysis","/whitepaper/risk-analysis","1.whitepaper/11.risk-analysis","i-lucide-shield-alert",{"title":28,"path":29,"stem":30,"icon":31},"Problem Statement","/whitepaper/problem-statement","1.whitepaper/2.problem-statement","i-heroicons-exclamation-triangle",{"title":33,"path":34,"stem":35,"icon":36},"Solution Overview","/whitepaper/solution-overview","1.whitepaper/3.solution-overview","i-heroicons-light-bulb",{"title":38,"path":39,"stem":40,"icon":41},"Market Opportunity","/whitepaper/market-opportunity","1.whitepaper/4.market-opportunity","i-heroicons-chart-bar",{"title":43,"path":44,"stem":45,"icon":46},"Technology Architecture","/whitepaper/technology-architecture","1.whitepaper/5.technology-architecture","i-heroicons-cog",{"title":48,"path":49,"stem":50,"icon":21},"Business Model","/whitepaper/business-model","1.whitepaper/6.business-model",{"title":52,"path":53,"stem":54,"icon":55},"Competitive Advantages","/whitepaper/competitive-advantages","1.whitepaper/7.competitive-advantages","i-heroicons-rocket-launch",{"title":57,"path":58,"stem":59,"icon":60},"Roadmap & Milestones","/whitepaper/roadmap-milestones","1.whitepaper/8.roadmap-milestones","i-heroicons-map",{"title":62,"path":63,"stem":64,"icon":65},"Team & Advisors","/whitepaper/team-advisors","1.whitepaper/9.team-advisors","i-heroicons-users",{"title":67,"icon":68,"path":69,"stem":70,"children":71},"Techniques","i-lucide-graduation-cap","/techniques","2.techniques",[72,75,107,139,171],{"title":67,"path":69,"stem":73,"icon":74},"2.techniques/index","i-heroicons-academic-cap",{"title":76,"path":77,"stem":78,"children":79,"icon":81,"parent":70,"order":82},"Remote Viewing","/techniques/remote-viewing","2.techniques/1.remote-viewing/index",[80,83,88,93,98,103],{"title":76,"path":77,"stem":78,"icon":81,"parent":70,"order":82},"i-lucide-eye",1,{"title":84,"path":85,"stem":86,"icon":87},"Controlled Remote Viewing (CRV)","/techniques/remote-viewing/controlled-remote-viewing-crv","2.techniques/1.remote-viewing/1.controlled-remote-viewing-crv","i-heroicons-clipboard-document-check",{"title":89,"path":90,"stem":91,"icon":92},"Scientific Remote Viewing (SRV)","/techniques/remote-viewing/scientific-remote-viewing-srv","2.techniques/1.remote-viewing/2.scientific-remote-viewing-srv","i-lucide-microscope",{"title":94,"path":95,"stem":96,"icon":97},"Technical Remote Viewing (TRV)","/techniques/remote-viewing/technical-remote-viewing-trv","2.techniques/1.remote-viewing/3.technical-remote-viewing-trv","i-heroicons-cog-6-tooth",{"title":99,"path":100,"stem":101,"icon":102},"Extended Remote Viewing (ERV)","/techniques/remote-viewing/extended-remote-viewing-erv","2.techniques/1.remote-viewing/4.extended-remote-viewing-erv","i-heroicons-arrows-pointing-out",{"title":104,"path":105,"stem":106,"icon":74},"RV Training & Development","/techniques/remote-viewing/rv-training-development","2.techniques/1.remote-viewing/5.rv-training-development",{"title":108,"path":109,"stem":110,"children":111,"icon":113,"parent":70,"order":114},"Dowsing","/techniques/dowsing","2.techniques/2.dowsing/index",[112,115,120,125,130,134],{"title":108,"path":109,"stem":110,"icon":113,"parent":70,"order":114},"i-lucide-compass",2,{"title":116,"path":117,"stem":118,"icon":119},"Pendulum Dowsing","/techniques/dowsing/pendulum-dowsing","2.techniques/2.dowsing/1.pendulum-dowsing","i-heroicons-clock",{"title":121,"path":122,"stem":123,"icon":124},"L-Rods Dowsing","/techniques/dowsing/l-rods-dowsing","2.techniques/2.dowsing/2.l-rods-dowsing","i-heroicons-adjustments-horizontal",{"title":126,"path":127,"stem":128,"icon":129},"Y-Rods Dowsing","/techniques/dowsing/y-rods-dowsing","2.techniques/2.dowsing/3.y-rods-dowsing","i-lucide-git-fork",{"title":131,"path":132,"stem":133,"icon":60},"Map Dowsing","/techniques/dowsing/map-dowsing","2.techniques/2.dowsing/4.map-dowsing",{"title":135,"path":136,"stem":137,"icon":138},"Information Dowsing","/techniques/dowsing/information-dowsing","2.techniques/2.dowsing/5.information-dowsing","i-heroicons-question-mark-circle",{"title":140,"path":141,"stem":142,"children":143,"icon":145,"parent":70,"order":146},"ESP Development","/techniques/esp-development","2.techniques/3.esp-development/index",[144,147,152,157,162,167],{"title":140,"path":141,"stem":142,"icon":145,"parent":70,"order":146},"i-lucide-brain",3,{"title":148,"path":149,"stem":150,"icon":151},"Telepathy Training","/techniques/esp-development/telepathy-training","2.techniques/3.esp-development/1.telepathy-training","i-heroicons-chat-bubble-left-right",{"title":153,"path":154,"stem":155,"icon":156},"Clairvoyance Development","/techniques/esp-development/clairvoyance-development","2.techniques/3.esp-development/2.clairvoyance-development","i-heroicons-eye",{"title":158,"path":159,"stem":160,"icon":161},"Clairaudience Practice","/techniques/esp-development/clairaudience-practice","2.techniques/3.esp-development/3.clairaudience-practice","i-heroicons-speaker-wave",{"title":163,"path":164,"stem":165,"icon":166},"Clairsentience Enhancement","/techniques/esp-development/clairsentience-enhancement","2.techniques/3.esp-development/4.clairsentience-enhancement","i-heroicons-hand-raised",{"title":168,"path":169,"stem":170,"icon":119},"Precognition Exercises","/techniques/esp-development/precognition-exercises","2.techniques/3.esp-development/5.precognition-exercises",{"title":172,"path":173,"stem":174,"children":175,"icon":177,"parent":70,"order":178},"Other Techniques","/techniques/other-techniques","2.techniques/4.other-techniques/index",[176,179,184,189,194,199],{"title":172,"path":173,"stem":174,"icon":177,"parent":70,"order":178},"i-lucide-sparkles",4,{"title":180,"path":181,"stem":182,"icon":183},"Tarot Reading","/techniques/other-techniques/tarot-reading","2.techniques/4.other-techniques/1.tarot-reading","i-heroicons-rectangle-stack",{"title":185,"path":186,"stem":187,"icon":188},"Astrology Applications","/techniques/other-techniques/astrology-applications","2.techniques/4.other-techniques/2.astrology-applications","i-heroicons-star",{"title":190,"path":191,"stem":192,"icon":193},"Numerology Methods","/techniques/other-techniques/numerology-methods","2.techniques/4.other-techniques/3.numerology-methods","i-heroicons-calculator",{"title":195,"path":196,"stem":197,"icon":198},"Scrying Practices","/techniques/other-techniques/scrying-practices","2.techniques/4.other-techniques/4.scrying-practices","i-heroicons-globe-americas",{"title":200,"path":201,"stem":202,"icon":203},"Meditation & Focus","/techniques/other-techniques/meditation-focus","2.techniques/4.other-techniques/5.meditation-focus","i-heroicons-sun",{"title":205,"icon":206,"path":207,"stem":208,"children":209},"Use Cases","i-lucide-briefcase","/use-cases","3.use-cases",[210,213,218,223,228,233,239,244,249,253,258,263,269,274,280,286],{"title":205,"path":207,"stem":211,"icon":212},"3.use-cases/index","i-heroicons-briefcase",{"title":214,"path":215,"stem":216,"icon":217,"parent":208,"order":82},"Missing Persons Applications","/use-cases/missing-persons","3.use-cases/1.missing-persons","i-heroicons-user-group",{"title":219,"path":220,"stem":221,"icon":41,"parent":208,"order":222},"Market Intelligence","/use-cases/market-intelligence","3.use-cases/10.market-intelligence",10,{"title":224,"path":225,"stem":226,"icon":21,"parent":208,"order":227},"Investment Opportunities","/use-cases/investment-opportunities","3.use-cases/11.investment-opportunities",11,{"title":229,"path":230,"stem":231,"icon":65,"parent":208,"order":232},"Competitive Analysis","/use-cases/competitive-analysis","3.use-cases/12.competitive-analysis",12,{"title":234,"path":235,"stem":236,"icon":237,"parent":208,"order":238},"Personal Guidance","/use-cases/personal-guidance","3.use-cases/13.personal-guidance","i-heroicons-heart",13,{"title":240,"path":241,"stem":242,"icon":74,"parent":208,"order":243},"Skill Development","/use-cases/skill-development","3.use-cases/14.skill-development",14,{"title":245,"path":246,"stem":247,"icon":60,"parent":208,"order":248},"Life Decisions","/use-cases/life-decisions","3.use-cases/15.life-decisions",15,{"title":250,"path":251,"stem":252,"icon":21,"parent":208,"order":114},"FBI Reward Cases","/use-cases/fbi-reward-cases","3.use-cases/2.fbi-reward-cases",{"title":254,"path":255,"stem":256,"icon":257,"parent":208,"order":146},"Success Stories","/use-cases/success-stories","3.use-cases/3.success-stories","i-heroicons-trophy",{"title":259,"path":260,"stem":261,"icon":262,"parent":208,"order":178},"Most Wanted Fugitives","/use-cases/most-wanted-fugitives","3.use-cases/4.most-wanted-fugitives","i-heroicons-finger-print",{"title":264,"path":265,"stem":266,"icon":267,"parent":208,"order":268},"Criminal Investigations","/use-cases/criminal-investigations","3.use-cases/5.criminal-investigations","i-heroicons-shield-check",5,{"title":270,"path":271,"stem":272,"icon":119,"parent":208,"order":273},"Cold Case Solutions","/use-cases/cold-case-solutions","3.use-cases/6.cold-case-solutions",6,{"title":275,"path":276,"stem":277,"icon":278,"parent":208,"order":279},"Archaeological Discoveries","/use-cases/archaeological-discoveries","3.use-cases/7.archaeological-discoveries","i-heroicons-building-library",7,{"title":281,"path":282,"stem":283,"icon":284,"parent":208,"order":285},"Historical Site Location","/use-cases/historical-site-location","3.use-cases/8.historical-site-location","i-heroicons-map-pin",8,{"title":287,"path":288,"stem":289,"icon":290,"parent":208,"order":291},"Ancient Artifact Finding","/use-cases/ancient-artifact-finding","3.use-cases/9.ancient-artifact-finding","i-heroicons-gift",9,{"title":293,"icon":294,"path":295,"stem":296,"children":297},"Investors","i-lucide-dollar-sign","/investors","4.investors",[298,300,304,307,311,316,321,325,330,335],{"title":293,"path":295,"stem":299,"icon":21},"4.investors/index",{"title":301,"path":302,"stem":303,"icon":41,"parent":296,"order":82},"Investment Overview","/investors/investment-overview","4.investors/1.investment-overview",{"title":38,"path":305,"stem":306,"icon":198,"parent":296,"order":114},"/investors/market-opportunity","4.investors/2.market-opportunity",{"title":308,"path":309,"stem":310,"icon":267,"parent":296,"order":146},"Competitive Advantage","/investors/competitive-advantage","4.investors/3.competitive-advantage",{"title":312,"path":313,"stem":314,"icon":315,"parent":296,"order":178},"Financial Projections","/investors/financial-projections","4.investors/4.financial-projections","i-lucide-trending-up",{"title":317,"path":318,"stem":319,"icon":320,"parent":296,"order":268},"Key Metrics","/investors/key-metrics","4.investors/5.key-metrics","i-heroicons-chart-pie",{"title":322,"path":323,"stem":324,"icon":21,"parent":296,"order":273},"Use of Funds","/investors/use-of-funds","4.investors/6.use-of-funds",{"title":326,"path":327,"stem":328,"icon":329,"parent":296,"order":279},"Investment Process","/investors/investment-process","4.investors/7.investment-process","i-heroicons-arrow-path",{"title":331,"path":332,"stem":333,"icon":334,"parent":296,"order":285},"Partnership Opportunities","/investors/partnership-opportunities","4.investors/8.partnership-opportunities","i-lucide-handshake",{"title":336,"path":337,"stem":338,"icon":138,"parent":296,"order":291},"Frequently Asked Questions","/investors/faq","4.investors/9.faq",{"title":340,"icon":341,"path":342,"stem":343,"children":344},"Developers","i-lucide-code","/developers","5.developers",[345,348,352,357,361,366,371,376,380,384,389,394,398],{"title":340,"path":342,"stem":346,"icon":347},"5.developers/index","i-heroicons-code-bracket",{"title":349,"path":350,"stem":351,"icon":55,"parent":343,"order":82},"Getting Started","/developers/getting-started","5.developers/1.getting-started",{"title":353,"path":354,"stem":355,"icon":356,"order":222},"Troubleshooting","/developers/troubleshooting","5.developers/10.troubleshooting","i-heroicons-wrench-screwdriver",{"title":358,"path":359,"stem":360,"icon":12,"order":227},"Changelog","/developers/changelog","5.developers/11.changelog",{"title":362,"path":363,"stem":364,"icon":365,"order":232},"Support","/developers/support","5.developers/12.support","i-heroicons-lifebuoy",{"title":367,"path":368,"stem":369,"icon":370,"parent":343,"order":114},"Platform Overview","/developers/platform-overview","5.developers/2.platform-overview","i-heroicons-cube",{"title":372,"path":373,"stem":374,"icon":375,"parent":343,"order":146},"Authentication","/developers/authentication","5.developers/3.authentication","i-heroicons-key",{"title":377,"path":378,"stem":379,"icon":347,"order":178},"API Reference","/developers/api-reference","5.developers/4.api-reference",{"title":381,"path":382,"stem":383,"icon":370,"order":268},"SDKs & Libraries","/developers/sdks","5.developers/5.sdks",{"title":385,"path":386,"stem":387,"icon":388,"order":273},"Webhooks","/developers/webhooks","5.developers/6.webhooks","i-heroicons-bell",{"title":390,"path":391,"stem":392,"icon":393,"order":279},"Integration Guides","/developers/integration-guides","5.developers/7.integration-guides","i-heroicons-puzzle-piece",{"title":395,"path":396,"stem":397,"icon":356,"order":285},"Developer Tools","/developers/developer-tools","5.developers/8.developer-tools",{"title":399,"path":400,"stem":401,"icon":36,"order":291},"Best Practices","/developers/best-practices","5.developers/9.best-practices",{"title":403,"icon":404,"path":405,"stem":406,"children":407},"Research","i-lucide-search","/research","6.research",[408,410,414,419,423,428,432,437,441,446],{"title":403,"path":405,"stem":409,"icon":92},"6.research/index",{"title":411,"path":412,"stem":413,"icon":92,"parent":406,"order":82},"Research Overview","/research/research-overview","6.research/1.research-overview",{"title":415,"path":416,"stem":417,"icon":418,"parent":406,"order":114},"Methodology Validation","/research/methodology-validation","6.research/2.methodology-validation","i-heroicons-check-circle",{"title":420,"path":421,"stem":422,"icon":55,"order":146},"Stargate Project Research","/research/stargate-project","6.research/3.stargate-project",{"title":424,"path":425,"stem":426,"icon":427,"order":178},"Government Programs Research","/research/government-programs","6.research/4.government-programs","i-heroicons-building-office",{"title":429,"path":430,"stem":431,"icon":257,"order":268},"Historical Success Cases","/research/historical-success-cases","6.research/5.historical-success-cases",{"title":433,"path":434,"stem":435,"icon":436,"order":273},"Ongoing Research","/research/ongoing-research","6.research/6.ongoing-research","i-heroicons-beaker",{"title":438,"path":439,"stem":440,"icon":74,"order":279},"Academic Partnerships","/research/academic-partnerships","6.research/7.academic-partnerships",{"title":442,"path":443,"stem":444,"icon":445,"order":285},"Future Research Directions","/research/future-research","6.research/8.future-research","i-heroicons-sparkles",{"title":447,"path":448,"stem":449,"icon":12,"order":291},"Publications","/research/publications","6.research/9.publications",{"title":451,"icon":452,"path":453,"stem":454,"children":455},"Specifications","i-lucide-settings","/specifications","7.specifications",[456,458,462,466,470,474,478],{"title":451,"path":453,"stem":457,"icon":97},"7.specifications/index",{"title":459,"path":460,"stem":461},"Technical Specifications","/specifications/technical-specifications","7.specifications/1.technical-specifications",{"title":463,"path":464,"stem":465},"API Endpoints Reference","/specifications/api-endpoints","7.specifications/2.api-endpoints",{"title":467,"path":468,"stem":469},"Data Models & Schemas","/specifications/data-models","7.specifications/3.data-models",{"title":471,"path":472,"stem":473},"Integration Requirements","/specifications/integration-requirements","7.specifications/4.integration-requirements",{"title":475,"path":476,"stem":477},"Compliance & Standards","/specifications/compliance-standards","7.specifications/5.compliance-standards",{"title":479,"path":480,"stem":481},"Dir","/specifications/_dir","7.specifications/_dir",{"title":483,"icon":484,"path":485,"stem":486,"children":487},"Resources","i-lucide-book-open","/resources","8.resources",[488,491,495,498,502],{"title":483,"path":485,"stem":489,"icon":490},"8.resources/index","i-heroicons-book-open",{"title":492,"path":493,"stem":494},"Glossary","/resources/glossary","8.resources/1.glossary",{"title":336,"path":496,"stem":497},"/resources/faqs","8.resources/2.faqs",{"title":499,"path":500,"stem":501},"Downloads & Resources","/resources/downloads","8.resources/3.downloads",{"title":503,"path":504,"stem":505},"Community & Support","/resources/community","8.resources/4.community",{"id":507,"title":353,"body":508,"description":3819,"extension":3820,"links":3821,"meta":3822,"navigation":3823,"path":354,"seo":3824,"stem":355,"__hash__":3825},"docs/5.developers/10.troubleshooting.md",{"type":509,"value":510,"toc":3783},"minimark",[511,516,520,524,529,535,546,551,560,582,589,611,618,638,645,690,694,698,704,708,715,789,796,853,860,896,900,904,908,914,918,925,960,967,1108,1115,1176,1180,1184,1190,1194,1201,1245,1252,1436,1440,1444,1448,1454,1458,1465,1504,1511,1594,1601,1654,1658,1662,1668,1672,1679,1750,1757,1841,1845,1849,1853,1859,1863,1870,1988,1995,2122,2129,2227,2231,2235,2241,2245,2252,2397,2404,2504,2508,2512,2516,2522,2526,2533,2612,2619,2782,2786,2790,2796,2800,2807,2902,2909,3061,3065,3069,3122,3126,3330,3334,3338,3392,3396,3399,3406,3458,3465,3533,3540,3555,3559,3610,3614,3618,3652,3656,3779],[512,513,515],"h2",{"id":514},"overview","Overview",[517,518,519],"p",{},"This guide covers common issues, error scenarios, and their solutions when working with the MindPeeker platform. Use this as your first resource when encountering problems during development and integration.",[512,521,523],{"id":522},"common-authentication-issues","Common Authentication Issues",[525,526,528],"h3",{"id":527},"invalid-api-key-error","Invalid API Key Error",[517,530,531],{},[532,533,534],"strong",{},"Symptoms:",[536,537,542],"pre",{"className":538,"code":540,"language":541},[539],"language-text","Error: 401 Unauthorized - Invalid API key\n","text",[543,544,540],"code",{"__ignoreMap":545},"",[517,547,548],{},[532,549,550],{},"Solutions:",[552,553,554],"ol",{},[555,556,557],"li",{},[532,558,559],{},"Verify API Key Format",[536,561,565],{"className":562,"code":563,"language":564,"meta":545,"style":545},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","mindpeeker auth status\n","bash",[543,566,567],{"__ignoreMap":545},[568,569,571,575,579],"span",{"class":570,"line":82},"line",[568,572,574],{"class":573},"sBMFI","mindpeeker",[568,576,578],{"class":577},"sfazB"," auth",[568,580,581],{"class":577}," status\n",[552,583,584],{"start":114},[555,585,586],{},[532,587,588],{},"Check Environment Variables",[536,590,594],{"className":591,"code":592,"language":593,"meta":545,"style":545},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","// Debug environment variables\nconsole.log('API Key present:', !!process.env.MINDPEEKER_API_KEY);\nconsole.log('API Key format:', process.env.MINDPEEKER_API_KEY?.substring(0, 10) + '...');\n","javascript",[543,595,596,601,606],{"__ignoreMap":545},[568,597,598],{"class":570,"line":82},[568,599,600],{},"// Debug environment variables\n",[568,602,603],{"class":570,"line":114},[568,604,605],{},"console.log('API Key present:', !!process.env.MINDPEEKER_API_KEY);\n",[568,607,608],{"class":570,"line":146},[568,609,610],{},"console.log('API Key format:', process.env.MINDPEEKER_API_KEY?.substring(0, 10) + '...');\n",[552,612,613],{"start":146},[555,614,615],{},[532,616,617],{},"Regenerate API Key",[536,619,621],{"className":562,"code":620,"language":564,"meta":545,"style":545},"mindpeeker auth regenerate --type production\n",[543,622,623],{"__ignoreMap":545},[568,624,625,627,629,632,635],{"class":570,"line":82},[568,626,574],{"class":573},[568,628,578],{"class":577},[568,630,631],{"class":577}," regenerate",[568,633,634],{"class":577}," --type",[568,636,637],{"class":577}," production\n",[552,639,640],{"start":178},[555,641,642],{},[532,643,644],{},"Check Key Permissions",[536,646,648],{"className":591,"code":647,"language":593,"meta":545,"style":545},"// Verify key has required permissions\nconst client = new MindPeekerClient({ apiKey: 'your_key' });\ntry {\n  await client.sessions.list({ limit: 1 });\n  console.log('Key has sessions:read permission');\n} catch (error) {\n  console.log('Missing sessions:read permission');\n}\n",[543,649,650,655,660,665,670,675,680,685],{"__ignoreMap":545},[568,651,652],{"class":570,"line":82},[568,653,654],{},"// Verify key has required permissions\n",[568,656,657],{"class":570,"line":114},[568,658,659],{},"const client = new MindPeekerClient({ apiKey: 'your_key' });\n",[568,661,662],{"class":570,"line":146},[568,663,664],{},"try {\n",[568,666,667],{"class":570,"line":178},[568,668,669],{},"  await client.sessions.list({ limit: 1 });\n",[568,671,672],{"class":570,"line":268},[568,673,674],{},"  console.log('Key has sessions:read permission');\n",[568,676,677],{"class":570,"line":273},[568,678,679],{},"} catch (error) {\n",[568,681,682],{"class":570,"line":279},[568,683,684],{},"  console.log('Missing sessions:read permission');\n",[568,686,687],{"class":570,"line":285},[568,688,689],{},"}\n",[525,691,693],{"id":692},"rate-limiting-issues","Rate Limiting Issues",[517,695,696],{},[532,697,534],{},[536,699,702],{"className":700,"code":701,"language":541},[539],"Error: 429 Too Many Requests - Rate limit exceeded\n",[543,703,701],{"__ignoreMap":545},[517,705,706],{},[532,707,550],{},[552,709,710],{},[555,711,712],{},[532,713,714],{},"Implement Exponential Backoff",[536,716,718],{"className":591,"code":717,"language":593,"meta":545,"style":545},"async function createSessionWithRetry(sessionData, maxRetries = 3) {\n  for (let attempt = 1; attempt \u003C= maxRetries; attempt++) {\n    try {\n      return await client.sessions.create(sessionData);\n    } catch (error) {\n      if (error.status === 429 && attempt \u003C maxRetries) {\n        const retryAfter = error.headers['retry-after'] || Math.pow(2, attempt);\n        await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));\n        continue;\n      }\n      throw error;\n    }\n  }\n}\n",[543,719,720,725,730,735,740,745,750,755,760,765,770,775,780,785],{"__ignoreMap":545},[568,721,722],{"class":570,"line":82},[568,723,724],{},"async function createSessionWithRetry(sessionData, maxRetries = 3) {\n",[568,726,727],{"class":570,"line":114},[568,728,729],{},"  for (let attempt = 1; attempt \u003C= maxRetries; attempt++) {\n",[568,731,732],{"class":570,"line":146},[568,733,734],{},"    try {\n",[568,736,737],{"class":570,"line":178},[568,738,739],{},"      return await client.sessions.create(sessionData);\n",[568,741,742],{"class":570,"line":268},[568,743,744],{},"    } catch (error) {\n",[568,746,747],{"class":570,"line":273},[568,748,749],{},"      if (error.status === 429 && attempt \u003C maxRetries) {\n",[568,751,752],{"class":570,"line":279},[568,753,754],{},"        const retryAfter = error.headers['retry-after'] || Math.pow(2, attempt);\n",[568,756,757],{"class":570,"line":285},[568,758,759],{},"        await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));\n",[568,761,762],{"class":570,"line":291},[568,763,764],{},"        continue;\n",[568,766,767],{"class":570,"line":222},[568,768,769],{},"      }\n",[568,771,772],{"class":570,"line":227},[568,773,774],{},"      throw error;\n",[568,776,777],{"class":570,"line":232},[568,778,779],{},"    }\n",[568,781,782],{"class":570,"line":238},[568,783,784],{},"  }\n",[568,786,787],{"class":570,"line":243},[568,788,689],{},[552,790,791],{"start":114},[555,792,793],{},[532,794,795],{},"Monitor Rate Limits",[536,797,799],{"className":591,"code":798,"language":593,"meta":545,"style":545},"function checkRateLimits(response) {\n  const limit = response.headers['x-ratelimit-limit'];\n  const remaining = response.headers['x-ratelimit-remaining'];\n  const reset = response.headers['x-ratelimit-reset'];\n  \n  console.log(`Rate limit: ${remaining}/${limit} (resets at ${new Date(reset * 1000)})`);\n  \n  if (remaining \u003C 10) {\n    console.warn('Approaching rate limit - consider implementing backoff');\n  }\n}\n",[543,800,801,806,811,816,821,826,831,835,840,845,849],{"__ignoreMap":545},[568,802,803],{"class":570,"line":82},[568,804,805],{},"function checkRateLimits(response) {\n",[568,807,808],{"class":570,"line":114},[568,809,810],{},"  const limit = response.headers['x-ratelimit-limit'];\n",[568,812,813],{"class":570,"line":146},[568,814,815],{},"  const remaining = response.headers['x-ratelimit-remaining'];\n",[568,817,818],{"class":570,"line":178},[568,819,820],{},"  const reset = response.headers['x-ratelimit-reset'];\n",[568,822,823],{"class":570,"line":268},[568,824,825],{},"  \n",[568,827,828],{"class":570,"line":273},[568,829,830],{},"  console.log(`Rate limit: ${remaining}/${limit} (resets at ${new Date(reset * 1000)})`);\n",[568,832,833],{"class":570,"line":279},[568,834,825],{},[568,836,837],{"class":570,"line":285},[568,838,839],{},"  if (remaining \u003C 10) {\n",[568,841,842],{"class":570,"line":291},[568,843,844],{},"    console.warn('Approaching rate limit - consider implementing backoff');\n",[568,846,847],{"class":570,"line":222},[568,848,784],{},[568,850,851],{"class":570,"line":227},[568,852,689],{},[552,854,855],{"start":146},[555,856,857],{},[532,858,859],{},"Upgrade Plan if Needed",[536,861,863],{"className":562,"code":862,"language":564,"meta":545,"style":545},"mindpeeker account limits\n\nmindpeeker account upgrade --plan professional\n",[543,864,865,875,881],{"__ignoreMap":545},[568,866,867,869,872],{"class":570,"line":82},[568,868,574],{"class":573},[568,870,871],{"class":577}," account",[568,873,874],{"class":577}," limits\n",[568,876,877],{"class":570,"line":114},[568,878,880],{"emptyLinePlaceholder":879},true,"\n",[568,882,883,885,887,890,893],{"class":570,"line":146},[568,884,574],{"class":573},[568,886,871],{"class":577},[568,888,889],{"class":577}," upgrade",[568,891,892],{"class":577}," --plan",[568,894,895],{"class":577}," professional\n",[512,897,899],{"id":898},"session-management-issues","Session Management Issues",[525,901,903],{"id":902},"session-timeout","Session Timeout",[517,905,906],{},[532,907,534],{},[536,909,912],{"className":910,"code":911,"language":541},[539],"Error: Session timeout after 30 minutes\n",[543,913,911],{"__ignoreMap":545},[517,915,916],{},[532,917,550],{},[552,919,920],{},[555,921,922],{},[532,923,924],{},"Adjust Session Duration",[536,926,928],{"className":591,"code":927,"language":593,"meta":545,"style":545},"// Set appropriate duration for your use case\nconst session = await client.sessions.create({\n  type: 'remote_viewing',\n  target: 'Complex investigation',\n  duration_minutes: 60 // Increase from default 30\n});\n",[543,929,930,935,940,945,950,955],{"__ignoreMap":545},[568,931,932],{"class":570,"line":82},[568,933,934],{},"// Set appropriate duration for your use case\n",[568,936,937],{"class":570,"line":114},[568,938,939],{},"const session = await client.sessions.create({\n",[568,941,942],{"class":570,"line":146},[568,943,944],{},"  type: 'remote_viewing',\n",[568,946,947],{"class":570,"line":178},[568,948,949],{},"  target: 'Complex investigation',\n",[568,951,952],{"class":570,"line":268},[568,953,954],{},"  duration_minutes: 60 // Increase from default 30\n",[568,956,957],{"class":570,"line":273},[568,958,959],{},"});\n",[552,961,962],{"start":114},[555,963,964],{},[532,965,966],{},"Implement Session Monitoring",[536,968,970],{"className":591,"code":969,"language":593,"meta":545,"style":545},"async function monitorSession(sessionId, callback) {\n  const pollInterval = 30000; // 30 seconds\n  \n  const poll = async () => {\n    try {\n      const status = await client.sessions.getStatus(sessionId);\n      \n      if (status.status === 'completed') {\n        const results = await client.sessions.getResults(sessionId);\n        callback(null, results);\n        return;\n      }\n      \n      if (status.status === 'failed') {\n        callback(new Error('Session failed'), null);\n        return;\n      }\n      \n      // Continue polling\n      setTimeout(poll, pollInterval);\n    } catch (error) {\n      callback(error, null);\n    }\n  };\n  \n  poll();\n}\n",[543,971,972,977,982,986,991,995,1000,1005,1010,1015,1020,1025,1029,1033,1038,1043,1048,1053,1058,1064,1070,1075,1081,1086,1092,1097,1103],{"__ignoreMap":545},[568,973,974],{"class":570,"line":82},[568,975,976],{},"async function monitorSession(sessionId, callback) {\n",[568,978,979],{"class":570,"line":114},[568,980,981],{},"  const pollInterval = 30000; // 30 seconds\n",[568,983,984],{"class":570,"line":146},[568,985,825],{},[568,987,988],{"class":570,"line":178},[568,989,990],{},"  const poll = async () => {\n",[568,992,993],{"class":570,"line":268},[568,994,734],{},[568,996,997],{"class":570,"line":273},[568,998,999],{},"      const status = await client.sessions.getStatus(sessionId);\n",[568,1001,1002],{"class":570,"line":279},[568,1003,1004],{},"      \n",[568,1006,1007],{"class":570,"line":285},[568,1008,1009],{},"      if (status.status === 'completed') {\n",[568,1011,1012],{"class":570,"line":291},[568,1013,1014],{},"        const results = await client.sessions.getResults(sessionId);\n",[568,1016,1017],{"class":570,"line":222},[568,1018,1019],{},"        callback(null, results);\n",[568,1021,1022],{"class":570,"line":227},[568,1023,1024],{},"        return;\n",[568,1026,1027],{"class":570,"line":232},[568,1028,769],{},[568,1030,1031],{"class":570,"line":238},[568,1032,1004],{},[568,1034,1035],{"class":570,"line":243},[568,1036,1037],{},"      if (status.status === 'failed') {\n",[568,1039,1040],{"class":570,"line":248},[568,1041,1042],{},"        callback(new Error('Session failed'), null);\n",[568,1044,1046],{"class":570,"line":1045},16,[568,1047,1024],{},[568,1049,1051],{"class":570,"line":1050},17,[568,1052,769],{},[568,1054,1056],{"class":570,"line":1055},18,[568,1057,1004],{},[568,1059,1061],{"class":570,"line":1060},19,[568,1062,1063],{},"      // Continue polling\n",[568,1065,1067],{"class":570,"line":1066},20,[568,1068,1069],{},"      setTimeout(poll, pollInterval);\n",[568,1071,1073],{"class":570,"line":1072},21,[568,1074,744],{},[568,1076,1078],{"class":570,"line":1077},22,[568,1079,1080],{},"      callback(error, null);\n",[568,1082,1084],{"class":570,"line":1083},23,[568,1085,779],{},[568,1087,1089],{"class":570,"line":1088},24,[568,1090,1091],{},"  };\n",[568,1093,1095],{"class":570,"line":1094},25,[568,1096,825],{},[568,1098,1100],{"class":570,"line":1099},26,[568,1101,1102],{},"  poll();\n",[568,1104,1106],{"class":570,"line":1105},27,[568,1107,689],{},[552,1109,1110],{"start":146},[555,1111,1112],{},[532,1113,1114],{},"Use Webhooks for Real-time Updates",[536,1116,1118],{"className":591,"code":1117,"language":593,"meta":545,"style":545},"// Instead of polling, use webhooks\napp.post('/webhook', (req, res) => {\n  const event = req.body;\n  \n  if (event.type === 'session.completed') {\n    handleSessionCompleted(event.data);\n  } else if (event.type === 'session.failed') {\n    handleSessionFailed(event.data);\n  }\n  \n  res.status(200).send('OK');\n});\n",[543,1119,1120,1125,1130,1135,1139,1144,1149,1154,1159,1163,1167,1172],{"__ignoreMap":545},[568,1121,1122],{"class":570,"line":82},[568,1123,1124],{},"// Instead of polling, use webhooks\n",[568,1126,1127],{"class":570,"line":114},[568,1128,1129],{},"app.post('/webhook', (req, res) => {\n",[568,1131,1132],{"class":570,"line":146},[568,1133,1134],{},"  const event = req.body;\n",[568,1136,1137],{"class":570,"line":178},[568,1138,825],{},[568,1140,1141],{"class":570,"line":268},[568,1142,1143],{},"  if (event.type === 'session.completed') {\n",[568,1145,1146],{"class":570,"line":273},[568,1147,1148],{},"    handleSessionCompleted(event.data);\n",[568,1150,1151],{"class":570,"line":279},[568,1152,1153],{},"  } else if (event.type === 'session.failed') {\n",[568,1155,1156],{"class":570,"line":285},[568,1157,1158],{},"    handleSessionFailed(event.data);\n",[568,1160,1161],{"class":570,"line":291},[568,1162,784],{},[568,1164,1165],{"class":570,"line":222},[568,1166,825],{},[568,1168,1169],{"class":570,"line":227},[568,1170,1171],{},"  res.status(200).send('OK');\n",[568,1173,1174],{"class":570,"line":232},[568,1175,959],{},[525,1177,1179],{"id":1178},"inconsistent-results","Inconsistent Results",[517,1181,1182],{},[532,1183,534],{},[536,1185,1188],{"className":1186,"code":1187,"language":541},[539],"Same query returns different results on multiple attempts\n",[543,1189,1187],{"__ignoreMap":545},[517,1191,1192],{},[532,1193,550],{},[552,1195,1196],{},[555,1197,1198],{},[532,1199,1200],{},"Use Consistent Parameters",[536,1202,1204],{"className":591,"code":1203,"language":593,"meta":545,"style":545},"// Ensure consistent session parameters\nconst sessionConfig = {\n  type: 'remote_viewing',\n  target: 'Specific target description',\n  modality: 'visual',\n  precision_level: 'high', // Use high precision for consistency\n  random_seed: 12345 // Use same seed for reproducible results\n};\n",[543,1205,1206,1211,1216,1220,1225,1230,1235,1240],{"__ignoreMap":545},[568,1207,1208],{"class":570,"line":82},[568,1209,1210],{},"// Ensure consistent session parameters\n",[568,1212,1213],{"class":570,"line":114},[568,1214,1215],{},"const sessionConfig = {\n",[568,1217,1218],{"class":570,"line":146},[568,1219,944],{},[568,1221,1222],{"class":570,"line":178},[568,1223,1224],{},"  target: 'Specific target description',\n",[568,1226,1227],{"class":570,"line":268},[568,1228,1229],{},"  modality: 'visual',\n",[568,1231,1232],{"class":570,"line":273},[568,1233,1234],{},"  precision_level: 'high', // Use high precision for consistency\n",[568,1236,1237],{"class":570,"line":279},[568,1238,1239],{},"  random_seed: 12345 // Use same seed for reproducible results\n",[568,1241,1242],{"class":570,"line":285},[568,1243,1244],{},"};\n",[552,1246,1247],{"start":114},[555,1248,1249],{},[532,1250,1251],{},"Aggregate Multiple Sessions",[536,1253,1255],{"className":591,"code":1254,"language":593,"meta":545,"style":545},"async function getConsensusResult(target, numSessions = 3) {\n  const sessions = [];\n  \n  for (let i = 0; i \u003C numSessions; i++) {\n    const session = await client.sessions.create({\n      type: 'remote_viewing',\n      target,\n      modality: 'visual'\n    });\n    \n    const results = await client.sessions.waitForCompletion(session.sessionId);\n    sessions.push(results);\n  }\n  \n  return aggregateResults(sessions);\n}\n\nfunction aggregateResults(sessions) {\n  // Find common elements across sessions\n  const allDescriptors = sessions.flatMap(s => s.results.descriptors);\n  const descriptorCounts = {};\n  \n  allDescriptors.forEach(desc => {\n    descriptorCounts[desc] = (descriptorCounts[desc] || 0) + 1;\n  });\n  \n  // Return descriptors that appear in multiple sessions\n  const consensusDescriptors = Object.entries(descriptorCounts)\n    .filter(([_, count]) => count >= 2)\n    .map(([desc, _]) => desc);\n  \n  return {\n    consensusDescriptors,\n    confidence: Math.max(...sessions.map(s => s.confidenceScore))\n  };\n}\n",[543,1256,1257,1262,1267,1271,1276,1281,1286,1291,1296,1301,1306,1311,1316,1320,1324,1329,1333,1337,1342,1347,1352,1357,1361,1366,1371,1376,1380,1385,1391,1397,1403,1408,1414,1420,1426,1431],{"__ignoreMap":545},[568,1258,1259],{"class":570,"line":82},[568,1260,1261],{},"async function getConsensusResult(target, numSessions = 3) {\n",[568,1263,1264],{"class":570,"line":114},[568,1265,1266],{},"  const sessions = [];\n",[568,1268,1269],{"class":570,"line":146},[568,1270,825],{},[568,1272,1273],{"class":570,"line":178},[568,1274,1275],{},"  for (let i = 0; i \u003C numSessions; i++) {\n",[568,1277,1278],{"class":570,"line":268},[568,1279,1280],{},"    const session = await client.sessions.create({\n",[568,1282,1283],{"class":570,"line":273},[568,1284,1285],{},"      type: 'remote_viewing',\n",[568,1287,1288],{"class":570,"line":279},[568,1289,1290],{},"      target,\n",[568,1292,1293],{"class":570,"line":285},[568,1294,1295],{},"      modality: 'visual'\n",[568,1297,1298],{"class":570,"line":291},[568,1299,1300],{},"    });\n",[568,1302,1303],{"class":570,"line":222},[568,1304,1305],{},"    \n",[568,1307,1308],{"class":570,"line":227},[568,1309,1310],{},"    const results = await client.sessions.waitForCompletion(session.sessionId);\n",[568,1312,1313],{"class":570,"line":232},[568,1314,1315],{},"    sessions.push(results);\n",[568,1317,1318],{"class":570,"line":238},[568,1319,784],{},[568,1321,1322],{"class":570,"line":243},[568,1323,825],{},[568,1325,1326],{"class":570,"line":248},[568,1327,1328],{},"  return aggregateResults(sessions);\n",[568,1330,1331],{"class":570,"line":1045},[568,1332,689],{},[568,1334,1335],{"class":570,"line":1050},[568,1336,880],{"emptyLinePlaceholder":879},[568,1338,1339],{"class":570,"line":1055},[568,1340,1341],{},"function aggregateResults(sessions) {\n",[568,1343,1344],{"class":570,"line":1060},[568,1345,1346],{},"  // Find common elements across sessions\n",[568,1348,1349],{"class":570,"line":1066},[568,1350,1351],{},"  const allDescriptors = sessions.flatMap(s => s.results.descriptors);\n",[568,1353,1354],{"class":570,"line":1072},[568,1355,1356],{},"  const descriptorCounts = {};\n",[568,1358,1359],{"class":570,"line":1077},[568,1360,825],{},[568,1362,1363],{"class":570,"line":1083},[568,1364,1365],{},"  allDescriptors.forEach(desc => {\n",[568,1367,1368],{"class":570,"line":1088},[568,1369,1370],{},"    descriptorCounts[desc] = (descriptorCounts[desc] || 0) + 1;\n",[568,1372,1373],{"class":570,"line":1094},[568,1374,1375],{},"  });\n",[568,1377,1378],{"class":570,"line":1099},[568,1379,825],{},[568,1381,1382],{"class":570,"line":1105},[568,1383,1384],{},"  // Return descriptors that appear in multiple sessions\n",[568,1386,1388],{"class":570,"line":1387},28,[568,1389,1390],{},"  const consensusDescriptors = Object.entries(descriptorCounts)\n",[568,1392,1394],{"class":570,"line":1393},29,[568,1395,1396],{},"    .filter(([_, count]) => count >= 2)\n",[568,1398,1400],{"class":570,"line":1399},30,[568,1401,1402],{},"    .map(([desc, _]) => desc);\n",[568,1404,1406],{"class":570,"line":1405},31,[568,1407,825],{},[568,1409,1411],{"class":570,"line":1410},32,[568,1412,1413],{},"  return {\n",[568,1415,1417],{"class":570,"line":1416},33,[568,1418,1419],{},"    consensusDescriptors,\n",[568,1421,1423],{"class":570,"line":1422},34,[568,1424,1425],{},"    confidence: Math.max(...sessions.map(s => s.confidenceScore))\n",[568,1427,1429],{"class":570,"line":1428},35,[568,1430,1091],{},[568,1432,1434],{"class":570,"line":1433},36,[568,1435,689],{},[512,1437,1439],{"id":1438},"api-response-issues","API Response Issues",[525,1441,1443],{"id":1442},"slow-response-times","Slow Response Times",[517,1445,1446],{},[532,1447,534],{},[536,1449,1452],{"className":1450,"code":1451,"language":541},[539],"API requests taking > 30 seconds to respond\n",[543,1453,1451],{"__ignoreMap":545},[517,1455,1456],{},[532,1457,550],{},[552,1459,1460],{},[555,1461,1462],{},[532,1463,1464],{},"Optimize Request Parameters",[536,1466,1468],{"className":591,"code":1467,"language":593,"meta":545,"style":545},"// Use focused analysis instead of comprehensive when possible\nconst analysis = await client.analysis.submitTarget({\n  target_type: 'location',\n  reference_material: minimalData, // Send only essential data\n  analysis_type: 'focused', // Faster than comprehensive\n  priority: 'high' // Get faster processing\n});\n",[543,1469,1470,1475,1480,1485,1490,1495,1500],{"__ignoreMap":545},[568,1471,1472],{"class":570,"line":82},[568,1473,1474],{},"// Use focused analysis instead of comprehensive when possible\n",[568,1476,1477],{"class":570,"line":114},[568,1478,1479],{},"const analysis = await client.analysis.submitTarget({\n",[568,1481,1482],{"class":570,"line":146},[568,1483,1484],{},"  target_type: 'location',\n",[568,1486,1487],{"class":570,"line":178},[568,1488,1489],{},"  reference_material: minimalData, // Send only essential data\n",[568,1491,1492],{"class":570,"line":268},[568,1493,1494],{},"  analysis_type: 'focused', // Faster than comprehensive\n",[568,1496,1497],{"class":570,"line":273},[568,1498,1499],{},"  priority: 'high' // Get faster processing\n",[568,1501,1502],{"class":570,"line":279},[568,1503,959],{},[552,1505,1506],{"start":114},[555,1507,1508],{},[532,1509,1510],{},"Implement Request Caching",[536,1512,1514],{"className":591,"code":1513,"language":593,"meta":545,"style":545},"const cache = new Map();\n\nasync function getCachedAnalysis(analysisId) {\n  const cacheKey = `analysis:${analysisId}`;\n  \n  if (cache.has(cacheKey)) {\n    const cached = cache.get(cacheKey);\n    if (Date.now() - cached.timestamp \u003C 300000) { // 5 minutes\n      return cached.data;\n    }\n  }\n  \n  const results = await client.analysis.getResults(analysisId);\n  cache.set(cacheKey, { data: results, timestamp: Date.now() });\n  \n  return results;\n}\n",[543,1515,1516,1521,1525,1530,1535,1539,1544,1549,1554,1559,1563,1567,1571,1576,1581,1585,1590],{"__ignoreMap":545},[568,1517,1518],{"class":570,"line":82},[568,1519,1520],{},"const cache = new Map();\n",[568,1522,1523],{"class":570,"line":114},[568,1524,880],{"emptyLinePlaceholder":879},[568,1526,1527],{"class":570,"line":146},[568,1528,1529],{},"async function getCachedAnalysis(analysisId) {\n",[568,1531,1532],{"class":570,"line":178},[568,1533,1534],{},"  const cacheKey = `analysis:${analysisId}`;\n",[568,1536,1537],{"class":570,"line":268},[568,1538,825],{},[568,1540,1541],{"class":570,"line":273},[568,1542,1543],{},"  if (cache.has(cacheKey)) {\n",[568,1545,1546],{"class":570,"line":279},[568,1547,1548],{},"    const cached = cache.get(cacheKey);\n",[568,1550,1551],{"class":570,"line":285},[568,1552,1553],{},"    if (Date.now() - cached.timestamp \u003C 300000) { // 5 minutes\n",[568,1555,1556],{"class":570,"line":291},[568,1557,1558],{},"      return cached.data;\n",[568,1560,1561],{"class":570,"line":222},[568,1562,779],{},[568,1564,1565],{"class":570,"line":227},[568,1566,784],{},[568,1568,1569],{"class":570,"line":232},[568,1570,825],{},[568,1572,1573],{"class":570,"line":238},[568,1574,1575],{},"  const results = await client.analysis.getResults(analysisId);\n",[568,1577,1578],{"class":570,"line":243},[568,1579,1580],{},"  cache.set(cacheKey, { data: results, timestamp: Date.now() });\n",[568,1582,1583],{"class":570,"line":248},[568,1584,825],{},[568,1586,1587],{"class":570,"line":1045},[568,1588,1589],{},"  return results;\n",[568,1591,1592],{"class":570,"line":1050},[568,1593,689],{},[552,1595,1596],{"start":146},[555,1597,1598],{},[532,1599,1600],{},"Use Connection Pooling",[536,1602,1604],{"className":591,"code":1603,"language":593,"meta":545,"style":545},"const { MindPeekerClient } = require('@mindpeeker/javascript');\n\n// Configure client for performance\nconst client = new MindPeekerClient({\n  apiKey: process.env.MINDPEEKER_API_KEY,\n  timeout: 60000, // Increase timeout\n  retryAttempts: 2,\n  keepAlive: true, // Enable connection reuse\n  maxConcurrent: 5 // Limit concurrent requests\n});\n",[543,1605,1606,1611,1615,1620,1625,1630,1635,1640,1645,1650],{"__ignoreMap":545},[568,1607,1608],{"class":570,"line":82},[568,1609,1610],{},"const { MindPeekerClient } = require('@mindpeeker/javascript');\n",[568,1612,1613],{"class":570,"line":114},[568,1614,880],{"emptyLinePlaceholder":879},[568,1616,1617],{"class":570,"line":146},[568,1618,1619],{},"// Configure client for performance\n",[568,1621,1622],{"class":570,"line":178},[568,1623,1624],{},"const client = new MindPeekerClient({\n",[568,1626,1627],{"class":570,"line":268},[568,1628,1629],{},"  apiKey: process.env.MINDPEEKER_API_KEY,\n",[568,1631,1632],{"class":570,"line":273},[568,1633,1634],{},"  timeout: 60000, // Increase timeout\n",[568,1636,1637],{"class":570,"line":279},[568,1638,1639],{},"  retryAttempts: 2,\n",[568,1641,1642],{"class":570,"line":285},[568,1643,1644],{},"  keepAlive: true, // Enable connection reuse\n",[568,1646,1647],{"class":570,"line":291},[568,1648,1649],{},"  maxConcurrent: 5 // Limit concurrent requests\n",[568,1651,1652],{"class":570,"line":222},[568,1653,959],{},[525,1655,1657],{"id":1656},"malformed-json-responses","Malformed JSON Responses",[517,1659,1660],{},[532,1661,534],{},[536,1663,1666],{"className":1664,"code":1665,"language":541},[539],"SyntaxError: Unexpected token in JSON at position X\n",[543,1667,1665],{"__ignoreMap":545},[517,1669,1670],{},[532,1671,550],{},[552,1673,1674],{},[555,1675,1676],{},[532,1677,1678],{},"Validate Response Before Parsing",[536,1680,1682],{"className":591,"code":1681,"language":593,"meta":545,"style":545},"async function safeJsonParse(response) {\n  const text = await response.text();\n  \n  try {\n    return JSON.parse(text);\n  } catch (error) {\n    console.error('Invalid JSON response:', text.substring(0, 200));\n    throw new Error(`Invalid JSON from API: ${error.message}`);\n  }\n}\n\n// Usage\nconst response = await fetch('/api/sessions');\nconst data = await safeJsonParse(response);\n",[543,1683,1684,1689,1694,1698,1703,1708,1713,1718,1723,1727,1731,1735,1740,1745],{"__ignoreMap":545},[568,1685,1686],{"class":570,"line":82},[568,1687,1688],{},"async function safeJsonParse(response) {\n",[568,1690,1691],{"class":570,"line":114},[568,1692,1693],{},"  const text = await response.text();\n",[568,1695,1696],{"class":570,"line":146},[568,1697,825],{},[568,1699,1700],{"class":570,"line":178},[568,1701,1702],{},"  try {\n",[568,1704,1705],{"class":570,"line":268},[568,1706,1707],{},"    return JSON.parse(text);\n",[568,1709,1710],{"class":570,"line":273},[568,1711,1712],{},"  } catch (error) {\n",[568,1714,1715],{"class":570,"line":279},[568,1716,1717],{},"    console.error('Invalid JSON response:', text.substring(0, 200));\n",[568,1719,1720],{"class":570,"line":285},[568,1721,1722],{},"    throw new Error(`Invalid JSON from API: ${error.message}`);\n",[568,1724,1725],{"class":570,"line":291},[568,1726,784],{},[568,1728,1729],{"class":570,"line":222},[568,1730,689],{},[568,1732,1733],{"class":570,"line":227},[568,1734,880],{"emptyLinePlaceholder":879},[568,1736,1737],{"class":570,"line":232},[568,1738,1739],{},"// Usage\n",[568,1741,1742],{"class":570,"line":238},[568,1743,1744],{},"const response = await fetch('/api/sessions');\n",[568,1746,1747],{"class":570,"line":243},[568,1748,1749],{},"const data = await safeJsonParse(response);\n",[552,1751,1752],{"start":114},[555,1753,1754],{},[532,1755,1756],{},"Check Response Headers",[536,1758,1760],{"className":591,"code":1759,"language":593,"meta":545,"style":545},"async function makeApiRequest(url, options = {}) {\n  const response = await fetch(url, options);\n  \n  // Check content type\n  const contentType = response.headers.get('content-type');\n  if (!contentType.includes('application/json')) {\n    throw new Error(`Expected JSON response, got ${contentType}`);\n  }\n  \n  // Check response status\n  if (!response.ok) {\n    const errorText = await response.text();\n    throw new Error(`API Error ${response.status}: ${errorText}`);\n  }\n  \n  return response.json();\n}\n",[543,1761,1762,1767,1772,1776,1781,1786,1791,1796,1800,1804,1809,1814,1819,1824,1828,1832,1837],{"__ignoreMap":545},[568,1763,1764],{"class":570,"line":82},[568,1765,1766],{},"async function makeApiRequest(url, options = {}) {\n",[568,1768,1769],{"class":570,"line":114},[568,1770,1771],{},"  const response = await fetch(url, options);\n",[568,1773,1774],{"class":570,"line":146},[568,1775,825],{},[568,1777,1778],{"class":570,"line":178},[568,1779,1780],{},"  // Check content type\n",[568,1782,1783],{"class":570,"line":268},[568,1784,1785],{},"  const contentType = response.headers.get('content-type');\n",[568,1787,1788],{"class":570,"line":273},[568,1789,1790],{},"  if (!contentType.includes('application/json')) {\n",[568,1792,1793],{"class":570,"line":279},[568,1794,1795],{},"    throw new Error(`Expected JSON response, got ${contentType}`);\n",[568,1797,1798],{"class":570,"line":285},[568,1799,784],{},[568,1801,1802],{"class":570,"line":291},[568,1803,825],{},[568,1805,1806],{"class":570,"line":222},[568,1807,1808],{},"  // Check response status\n",[568,1810,1811],{"class":570,"line":227},[568,1812,1813],{},"  if (!response.ok) {\n",[568,1815,1816],{"class":570,"line":232},[568,1817,1818],{},"    const errorText = await response.text();\n",[568,1820,1821],{"class":570,"line":238},[568,1822,1823],{},"    throw new Error(`API Error ${response.status}: ${errorText}`);\n",[568,1825,1826],{"class":570,"line":243},[568,1827,784],{},[568,1829,1830],{"class":570,"line":248},[568,1831,825],{},[568,1833,1834],{"class":570,"line":1045},[568,1835,1836],{},"  return response.json();\n",[568,1838,1839],{"class":570,"line":1050},[568,1840,689],{},[512,1842,1844],{"id":1843},"integration-issues","Integration Issues",[525,1846,1848],{"id":1847},"webhook-delivery-failures","Webhook Delivery Failures",[517,1850,1851],{},[532,1852,534],{},[536,1854,1857],{"className":1855,"code":1856,"language":541},[539],"Webhook events not being received or delayed\n",[543,1858,1856],{"__ignoreMap":545},[517,1860,1861],{},[532,1862,550],{},[552,1864,1865],{},[555,1866,1867],{},[532,1868,1869],{},"Verify Webhook Endpoint",[536,1871,1873],{"className":591,"code":1872,"language":593,"meta":545,"style":545},"// Test webhook endpoint locally\nconst ngrok = require('ngrok');\n\nasync function testWebhook() {\n  // Start local server\n  const server = express();\n  server.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {\n    console.log('Webhook received:', req.body.toString());\n    res.status(200).send('OK');\n  });\n  \n  server.listen(3000);\n  \n  // Create tunnel\n  const url = await ngrok.connect(3000);\n  console.log('Webhook URL:', url);\n  \n  // Register webhook with MindPeeker\n  await client.webhooks.create({\n    url: `${url}/webhook`,\n    events: ['session.completed'],\n    secret: 'test_secret'\n  });\n}\n",[543,1874,1875,1880,1885,1889,1894,1899,1904,1909,1914,1919,1923,1927,1932,1936,1941,1946,1951,1955,1960,1965,1970,1975,1980,1984],{"__ignoreMap":545},[568,1876,1877],{"class":570,"line":82},[568,1878,1879],{},"// Test webhook endpoint locally\n",[568,1881,1882],{"class":570,"line":114},[568,1883,1884],{},"const ngrok = require('ngrok');\n",[568,1886,1887],{"class":570,"line":146},[568,1888,880],{"emptyLinePlaceholder":879},[568,1890,1891],{"class":570,"line":178},[568,1892,1893],{},"async function testWebhook() {\n",[568,1895,1896],{"class":570,"line":268},[568,1897,1898],{},"  // Start local server\n",[568,1900,1901],{"class":570,"line":273},[568,1902,1903],{},"  const server = express();\n",[568,1905,1906],{"class":570,"line":279},[568,1907,1908],{},"  server.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {\n",[568,1910,1911],{"class":570,"line":285},[568,1912,1913],{},"    console.log('Webhook received:', req.body.toString());\n",[568,1915,1916],{"class":570,"line":291},[568,1917,1918],{},"    res.status(200).send('OK');\n",[568,1920,1921],{"class":570,"line":222},[568,1922,1375],{},[568,1924,1925],{"class":570,"line":227},[568,1926,825],{},[568,1928,1929],{"class":570,"line":232},[568,1930,1931],{},"  server.listen(3000);\n",[568,1933,1934],{"class":570,"line":238},[568,1935,825],{},[568,1937,1938],{"class":570,"line":243},[568,1939,1940],{},"  // Create tunnel\n",[568,1942,1943],{"class":570,"line":248},[568,1944,1945],{},"  const url = await ngrok.connect(3000);\n",[568,1947,1948],{"class":570,"line":1045},[568,1949,1950],{},"  console.log('Webhook URL:', url);\n",[568,1952,1953],{"class":570,"line":1050},[568,1954,825],{},[568,1956,1957],{"class":570,"line":1055},[568,1958,1959],{},"  // Register webhook with MindPeeker\n",[568,1961,1962],{"class":570,"line":1060},[568,1963,1964],{},"  await client.webhooks.create({\n",[568,1966,1967],{"class":570,"line":1066},[568,1968,1969],{},"    url: `${url}/webhook`,\n",[568,1971,1972],{"class":570,"line":1072},[568,1973,1974],{},"    events: ['session.completed'],\n",[568,1976,1977],{"class":570,"line":1077},[568,1978,1979],{},"    secret: 'test_secret'\n",[568,1981,1982],{"class":570,"line":1083},[568,1983,1375],{},[568,1985,1986],{"class":570,"line":1088},[568,1987,689],{},[552,1989,1990],{"start":114},[555,1991,1992],{},[532,1993,1994],{},"Implement Signature Verification",[536,1996,1998],{"className":591,"code":1997,"language":593,"meta":545,"style":545},"const crypto = require('crypto');\n\nfunction verifyWebhookSignature(payload, signature, secret) {\n  if (!signature) {\n    console.error('Missing webhook signature');\n    return false;\n  }\n  \n  const expectedSignature = crypto\n    .createHmac('sha256', secret)\n    .update(payload)\n    .digest('hex');\n  \n  const isValid = crypto.timingSafeEqual(\n    Buffer.from(`sha256=${expectedSignature}`),\n    Buffer.from(signature)\n  );\n  \n  if (!isValid) {\n    console.error('Invalid webhook signature');\n    console.log('Expected:', `sha256=${expectedSignature}`);\n    console.log('Received:', signature);\n  }\n  \n  return isValid;\n}\n",[543,1999,2000,2005,2009,2014,2019,2024,2029,2033,2037,2042,2047,2052,2057,2061,2066,2071,2076,2081,2085,2090,2095,2100,2105,2109,2113,2118],{"__ignoreMap":545},[568,2001,2002],{"class":570,"line":82},[568,2003,2004],{},"const crypto = require('crypto');\n",[568,2006,2007],{"class":570,"line":114},[568,2008,880],{"emptyLinePlaceholder":879},[568,2010,2011],{"class":570,"line":146},[568,2012,2013],{},"function verifyWebhookSignature(payload, signature, secret) {\n",[568,2015,2016],{"class":570,"line":178},[568,2017,2018],{},"  if (!signature) {\n",[568,2020,2021],{"class":570,"line":268},[568,2022,2023],{},"    console.error('Missing webhook signature');\n",[568,2025,2026],{"class":570,"line":273},[568,2027,2028],{},"    return false;\n",[568,2030,2031],{"class":570,"line":279},[568,2032,784],{},[568,2034,2035],{"class":570,"line":285},[568,2036,825],{},[568,2038,2039],{"class":570,"line":291},[568,2040,2041],{},"  const expectedSignature = crypto\n",[568,2043,2044],{"class":570,"line":222},[568,2045,2046],{},"    .createHmac('sha256', secret)\n",[568,2048,2049],{"class":570,"line":227},[568,2050,2051],{},"    .update(payload)\n",[568,2053,2054],{"class":570,"line":232},[568,2055,2056],{},"    .digest('hex');\n",[568,2058,2059],{"class":570,"line":238},[568,2060,825],{},[568,2062,2063],{"class":570,"line":243},[568,2064,2065],{},"  const isValid = crypto.timingSafeEqual(\n",[568,2067,2068],{"class":570,"line":248},[568,2069,2070],{},"    Buffer.from(`sha256=${expectedSignature}`),\n",[568,2072,2073],{"class":570,"line":1045},[568,2074,2075],{},"    Buffer.from(signature)\n",[568,2077,2078],{"class":570,"line":1050},[568,2079,2080],{},"  );\n",[568,2082,2083],{"class":570,"line":1055},[568,2084,825],{},[568,2086,2087],{"class":570,"line":1060},[568,2088,2089],{},"  if (!isValid) {\n",[568,2091,2092],{"class":570,"line":1066},[568,2093,2094],{},"    console.error('Invalid webhook signature');\n",[568,2096,2097],{"class":570,"line":1072},[568,2098,2099],{},"    console.log('Expected:', `sha256=${expectedSignature}`);\n",[568,2101,2102],{"class":570,"line":1077},[568,2103,2104],{},"    console.log('Received:', signature);\n",[568,2106,2107],{"class":570,"line":1083},[568,2108,784],{},[568,2110,2111],{"class":570,"line":1088},[568,2112,825],{},[568,2114,2115],{"class":570,"line":1094},[568,2116,2117],{},"  return isValid;\n",[568,2119,2120],{"class":570,"line":1099},[568,2121,689],{},[552,2123,2124],{"start":146},[555,2125,2126],{},[532,2127,2128],{},"Monitor Webhook Delivery",[536,2130,2132],{"className":591,"code":2131,"language":593,"meta":545,"style":545},"// Log webhook delivery attempts\nconst webhookAttempts = new Map();\n\nfunction logWebhookAttempt(eventId, status, responseTime) {\n  webhookAttempts.set(eventId, {\n    status,\n    responseTime,\n    timestamp: new Date().toISOString()\n  });\n  \n  // Clean old entries\n  const oneHourAgo = Date.now() - 3600000;\n  for (const [id, attempt] of webhookAttempts.entries()) {\n    if (new Date(attempt.timestamp).getTime() \u003C oneHourAgo) {\n      webhookAttempts.delete(id);\n    }\n  }\n  \n  console.log(`Webhook delivery stats: ${webhookAttempts.size} events in last hour`);\n}\n",[543,2133,2134,2139,2144,2148,2153,2158,2163,2168,2173,2177,2181,2186,2191,2196,2201,2206,2210,2214,2218,2223],{"__ignoreMap":545},[568,2135,2136],{"class":570,"line":82},[568,2137,2138],{},"// Log webhook delivery attempts\n",[568,2140,2141],{"class":570,"line":114},[568,2142,2143],{},"const webhookAttempts = new Map();\n",[568,2145,2146],{"class":570,"line":146},[568,2147,880],{"emptyLinePlaceholder":879},[568,2149,2150],{"class":570,"line":178},[568,2151,2152],{},"function logWebhookAttempt(eventId, status, responseTime) {\n",[568,2154,2155],{"class":570,"line":268},[568,2156,2157],{},"  webhookAttempts.set(eventId, {\n",[568,2159,2160],{"class":570,"line":273},[568,2161,2162],{},"    status,\n",[568,2164,2165],{"class":570,"line":279},[568,2166,2167],{},"    responseTime,\n",[568,2169,2170],{"class":570,"line":285},[568,2171,2172],{},"    timestamp: new Date().toISOString()\n",[568,2174,2175],{"class":570,"line":291},[568,2176,1375],{},[568,2178,2179],{"class":570,"line":222},[568,2180,825],{},[568,2182,2183],{"class":570,"line":227},[568,2184,2185],{},"  // Clean old entries\n",[568,2187,2188],{"class":570,"line":232},[568,2189,2190],{},"  const oneHourAgo = Date.now() - 3600000;\n",[568,2192,2193],{"class":570,"line":238},[568,2194,2195],{},"  for (const [id, attempt] of webhookAttempts.entries()) {\n",[568,2197,2198],{"class":570,"line":243},[568,2199,2200],{},"    if (new Date(attempt.timestamp).getTime() \u003C oneHourAgo) {\n",[568,2202,2203],{"class":570,"line":248},[568,2204,2205],{},"      webhookAttempts.delete(id);\n",[568,2207,2208],{"class":570,"line":1045},[568,2209,779],{},[568,2211,2212],{"class":570,"line":1050},[568,2213,784],{},[568,2215,2216],{"class":570,"line":1055},[568,2217,825],{},[568,2219,2220],{"class":570,"line":1060},[568,2221,2222],{},"  console.log(`Webhook delivery stats: ${webhookAttempts.size} events in last hour`);\n",[568,2224,2225],{"class":570,"line":1066},[568,2226,689],{},[525,2228,2230],{"id":2229},"database-integration-issues","Database Integration Issues",[517,2232,2233],{},[532,2234,534],{},[536,2236,2239],{"className":2237,"code":2238,"language":541},[539],"Data not being saved correctly or database errors\n",[543,2240,2238],{"__ignoreMap":545},[517,2242,2243],{},[532,2244,550],{},[552,2246,2247],{},[555,2248,2249],{},[532,2250,2251],{},"Implement Transaction Handling",[536,2253,2255],{"className":591,"code":2254,"language":593,"meta":545,"style":545},"async function saveSessionWithTransaction(sessionData) {\n  const connection = await db.getConnection();\n  \n  try {\n    await connection.beginTransaction();\n    \n    // Save session\n    const [sessionResult] = await connection.execute(\n      'INSERT INTO sessions (id, type, target, status) VALUES (?, ?, ?, ?)',\n      [sessionData.sessionId, sessionData.type, sessionData.target, sessionData.status]\n    );\n    \n    // Save metadata\n    if (sessionData.metadata) {\n      await connection.execute(\n        'INSERT INTO session_metadata (session_id, key, value) VALUES (?, ?, ?)',\n        [sessionData.sessionId, 'metadata', JSON.stringify(sessionData.metadata)]\n      );\n    }\n    \n    await connection.commit();\n    return sessionResult.insertId;\n    \n  } catch (error) {\n    await connection.rollback();\n    throw error;\n  } finally {\n    connection.release();\n  }\n}\n",[543,2256,2257,2262,2267,2271,2275,2280,2284,2289,2294,2299,2304,2309,2313,2318,2323,2328,2333,2338,2343,2347,2351,2356,2361,2365,2369,2374,2379,2384,2389,2393],{"__ignoreMap":545},[568,2258,2259],{"class":570,"line":82},[568,2260,2261],{},"async function saveSessionWithTransaction(sessionData) {\n",[568,2263,2264],{"class":570,"line":114},[568,2265,2266],{},"  const connection = await db.getConnection();\n",[568,2268,2269],{"class":570,"line":146},[568,2270,825],{},[568,2272,2273],{"class":570,"line":178},[568,2274,1702],{},[568,2276,2277],{"class":570,"line":268},[568,2278,2279],{},"    await connection.beginTransaction();\n",[568,2281,2282],{"class":570,"line":273},[568,2283,1305],{},[568,2285,2286],{"class":570,"line":279},[568,2287,2288],{},"    // Save session\n",[568,2290,2291],{"class":570,"line":285},[568,2292,2293],{},"    const [sessionResult] = await connection.execute(\n",[568,2295,2296],{"class":570,"line":291},[568,2297,2298],{},"      'INSERT INTO sessions (id, type, target, status) VALUES (?, ?, ?, ?)',\n",[568,2300,2301],{"class":570,"line":222},[568,2302,2303],{},"      [sessionData.sessionId, sessionData.type, sessionData.target, sessionData.status]\n",[568,2305,2306],{"class":570,"line":227},[568,2307,2308],{},"    );\n",[568,2310,2311],{"class":570,"line":232},[568,2312,1305],{},[568,2314,2315],{"class":570,"line":238},[568,2316,2317],{},"    // Save metadata\n",[568,2319,2320],{"class":570,"line":243},[568,2321,2322],{},"    if (sessionData.metadata) {\n",[568,2324,2325],{"class":570,"line":248},[568,2326,2327],{},"      await connection.execute(\n",[568,2329,2330],{"class":570,"line":1045},[568,2331,2332],{},"        'INSERT INTO session_metadata (session_id, key, value) VALUES (?, ?, ?)',\n",[568,2334,2335],{"class":570,"line":1050},[568,2336,2337],{},"        [sessionData.sessionId, 'metadata', JSON.stringify(sessionData.metadata)]\n",[568,2339,2340],{"class":570,"line":1055},[568,2341,2342],{},"      );\n",[568,2344,2345],{"class":570,"line":1060},[568,2346,779],{},[568,2348,2349],{"class":570,"line":1066},[568,2350,1305],{},[568,2352,2353],{"class":570,"line":1072},[568,2354,2355],{},"    await connection.commit();\n",[568,2357,2358],{"class":570,"line":1077},[568,2359,2360],{},"    return sessionResult.insertId;\n",[568,2362,2363],{"class":570,"line":1083},[568,2364,1305],{},[568,2366,2367],{"class":570,"line":1088},[568,2368,1712],{},[568,2370,2371],{"class":570,"line":1094},[568,2372,2373],{},"    await connection.rollback();\n",[568,2375,2376],{"class":570,"line":1099},[568,2377,2378],{},"    throw error;\n",[568,2380,2381],{"class":570,"line":1105},[568,2382,2383],{},"  } finally {\n",[568,2385,2386],{"class":570,"line":1387},[568,2387,2388],{},"    connection.release();\n",[568,2390,2391],{"class":570,"line":1393},[568,2392,784],{},[568,2394,2395],{"class":570,"line":1399},[568,2396,689],{},[552,2398,2399],{"start":114},[555,2400,2401],{},[532,2402,2403],{},"Handle Data Validation",[536,2405,2407],{"className":591,"code":2406,"language":593,"meta":545,"style":545},"function validateSessionData(data) {\n  const errors = [];\n  \n  if (!data.sessionId || typeof data.sessionId !== 'string') {\n    errors.push('Invalid session ID');\n  }\n  \n  if (!data.type || !['remote_viewing', 'dowsing', 'automatic_writing'].includes(data.type)) {\n    errors.push('Invalid session type');\n  }\n  \n  if (data.confidenceScore && (data.confidenceScore \u003C 0 || data.confidenceScore > 1)) {\n    errors.push('Confidence score must be between 0 and 1');\n  }\n  \n  if (errors.length > 0) {\n    throw new Error(`Validation failed: ${errors.join(', ')}`);\n  }\n  \n  return true;\n}\n",[543,2408,2409,2414,2419,2423,2428,2433,2437,2441,2446,2451,2455,2459,2464,2469,2473,2477,2482,2487,2491,2495,2500],{"__ignoreMap":545},[568,2410,2411],{"class":570,"line":82},[568,2412,2413],{},"function validateSessionData(data) {\n",[568,2415,2416],{"class":570,"line":114},[568,2417,2418],{},"  const errors = [];\n",[568,2420,2421],{"class":570,"line":146},[568,2422,825],{},[568,2424,2425],{"class":570,"line":178},[568,2426,2427],{},"  if (!data.sessionId || typeof data.sessionId !== 'string') {\n",[568,2429,2430],{"class":570,"line":268},[568,2431,2432],{},"    errors.push('Invalid session ID');\n",[568,2434,2435],{"class":570,"line":273},[568,2436,784],{},[568,2438,2439],{"class":570,"line":279},[568,2440,825],{},[568,2442,2443],{"class":570,"line":285},[568,2444,2445],{},"  if (!data.type || !['remote_viewing', 'dowsing', 'automatic_writing'].includes(data.type)) {\n",[568,2447,2448],{"class":570,"line":291},[568,2449,2450],{},"    errors.push('Invalid session type');\n",[568,2452,2453],{"class":570,"line":222},[568,2454,784],{},[568,2456,2457],{"class":570,"line":227},[568,2458,825],{},[568,2460,2461],{"class":570,"line":232},[568,2462,2463],{},"  if (data.confidenceScore && (data.confidenceScore \u003C 0 || data.confidenceScore > 1)) {\n",[568,2465,2466],{"class":570,"line":238},[568,2467,2468],{},"    errors.push('Confidence score must be between 0 and 1');\n",[568,2470,2471],{"class":570,"line":243},[568,2472,784],{},[568,2474,2475],{"class":570,"line":248},[568,2476,825],{},[568,2478,2479],{"class":570,"line":1045},[568,2480,2481],{},"  if (errors.length > 0) {\n",[568,2483,2484],{"class":570,"line":1050},[568,2485,2486],{},"    throw new Error(`Validation failed: ${errors.join(', ')}`);\n",[568,2488,2489],{"class":570,"line":1055},[568,2490,784],{},[568,2492,2493],{"class":570,"line":1060},[568,2494,825],{},[568,2496,2497],{"class":570,"line":1066},[568,2498,2499],{},"  return true;\n",[568,2501,2502],{"class":570,"line":1072},[568,2503,689],{},[512,2505,2507],{"id":2506},"performance-issues","Performance Issues",[525,2509,2511],{"id":2510},"memory-leaks","Memory Leaks",[517,2513,2514],{},[532,2515,534],{},[536,2517,2520],{"className":2518,"code":2519,"language":541},[539],"Application memory usage continuously increasing\n",[543,2521,2519],{"__ignoreMap":545},[517,2523,2524],{},[532,2525,550],{},[552,2527,2528],{},[555,2529,2530],{},[532,2531,2532],{},"Monitor Memory Usage",[536,2534,2536],{"className":591,"code":2535,"language":593,"meta":545,"style":545},"function monitorMemory() {\n  const used = process.memoryUsage();\n  \n  console.log('Memory Usage:');\n  for (let key in used) {\n    console.log(`${key}: ${Math.round(used[key] / 1024 / 1024 * 100) / 100} MB`);\n  }\n  \n  // Check for memory leaks\n  if (used.heapUsed > 500 * 1024 * 1024) { // 500MB\n    console.warn('High memory usage detected');\n  }\n}\n\n// Run every 5 minutes\nsetInterval(monitorMemory, 300000);\n",[543,2537,2538,2543,2548,2552,2557,2562,2567,2571,2575,2580,2585,2590,2594,2598,2602,2607],{"__ignoreMap":545},[568,2539,2540],{"class":570,"line":82},[568,2541,2542],{},"function monitorMemory() {\n",[568,2544,2545],{"class":570,"line":114},[568,2546,2547],{},"  const used = process.memoryUsage();\n",[568,2549,2550],{"class":570,"line":146},[568,2551,825],{},[568,2553,2554],{"class":570,"line":178},[568,2555,2556],{},"  console.log('Memory Usage:');\n",[568,2558,2559],{"class":570,"line":268},[568,2560,2561],{},"  for (let key in used) {\n",[568,2563,2564],{"class":570,"line":273},[568,2565,2566],{},"    console.log(`${key}: ${Math.round(used[key] / 1024 / 1024 * 100) / 100} MB`);\n",[568,2568,2569],{"class":570,"line":279},[568,2570,784],{},[568,2572,2573],{"class":570,"line":285},[568,2574,825],{},[568,2576,2577],{"class":570,"line":291},[568,2578,2579],{},"  // Check for memory leaks\n",[568,2581,2582],{"class":570,"line":222},[568,2583,2584],{},"  if (used.heapUsed > 500 * 1024 * 1024) { // 500MB\n",[568,2586,2587],{"class":570,"line":227},[568,2588,2589],{},"    console.warn('High memory usage detected');\n",[568,2591,2592],{"class":570,"line":232},[568,2593,784],{},[568,2595,2596],{"class":570,"line":238},[568,2597,689],{},[568,2599,2600],{"class":570,"line":243},[568,2601,880],{"emptyLinePlaceholder":879},[568,2603,2604],{"class":570,"line":248},[568,2605,2606],{},"// Run every 5 minutes\n",[568,2608,2609],{"class":570,"line":1045},[568,2610,2611],{},"setInterval(monitorMemory, 300000);\n",[552,2613,2614],{"start":114},[555,2615,2616],{},[532,2617,2618],{},"Clean Up Resources",[536,2620,2622],{"className":591,"code":2621,"language":593,"meta":545,"style":545},"class SessionManager {\n  constructor() {\n    this.activeSessions = new Map();\n    this.cleanupInterval = setInterval(() => this.cleanup(), 60000);\n  }\n  \n  createSession(sessionData) {\n    const session = {\n      ...sessionData,\n      createdAt: Date.now(),\n      lastActivity: Date.now()\n    };\n    \n    this.activeSessions.set(session.sessionId, session);\n    return session;\n  }\n  \n  cleanup() {\n    const now = Date.now();\n    const oneHourAgo = now - 3600000;\n    \n    for (const [sessionId, session] of this.activeSessions.entries()) {\n      if (session.lastActivity \u003C oneHourAgo) {\n        this.activeSessions.delete(sessionId);\n        console.log(`Cleaned up stale session: ${sessionId}`);\n      }\n    }\n  }\n  \n  destroy() {\n    clearInterval(this.cleanupInterval);\n    this.activeSessions.clear();\n  }\n}\n",[543,2623,2624,2629,2634,2639,2644,2648,2652,2657,2662,2667,2672,2677,2682,2686,2691,2696,2700,2704,2709,2714,2719,2723,2728,2733,2738,2743,2747,2751,2755,2759,2764,2769,2774,2778],{"__ignoreMap":545},[568,2625,2626],{"class":570,"line":82},[568,2627,2628],{},"class SessionManager {\n",[568,2630,2631],{"class":570,"line":114},[568,2632,2633],{},"  constructor() {\n",[568,2635,2636],{"class":570,"line":146},[568,2637,2638],{},"    this.activeSessions = new Map();\n",[568,2640,2641],{"class":570,"line":178},[568,2642,2643],{},"    this.cleanupInterval = setInterval(() => this.cleanup(), 60000);\n",[568,2645,2646],{"class":570,"line":268},[568,2647,784],{},[568,2649,2650],{"class":570,"line":273},[568,2651,825],{},[568,2653,2654],{"class":570,"line":279},[568,2655,2656],{},"  createSession(sessionData) {\n",[568,2658,2659],{"class":570,"line":285},[568,2660,2661],{},"    const session = {\n",[568,2663,2664],{"class":570,"line":291},[568,2665,2666],{},"      ...sessionData,\n",[568,2668,2669],{"class":570,"line":222},[568,2670,2671],{},"      createdAt: Date.now(),\n",[568,2673,2674],{"class":570,"line":227},[568,2675,2676],{},"      lastActivity: Date.now()\n",[568,2678,2679],{"class":570,"line":232},[568,2680,2681],{},"    };\n",[568,2683,2684],{"class":570,"line":238},[568,2685,1305],{},[568,2687,2688],{"class":570,"line":243},[568,2689,2690],{},"    this.activeSessions.set(session.sessionId, session);\n",[568,2692,2693],{"class":570,"line":248},[568,2694,2695],{},"    return session;\n",[568,2697,2698],{"class":570,"line":1045},[568,2699,784],{},[568,2701,2702],{"class":570,"line":1050},[568,2703,825],{},[568,2705,2706],{"class":570,"line":1055},[568,2707,2708],{},"  cleanup() {\n",[568,2710,2711],{"class":570,"line":1060},[568,2712,2713],{},"    const now = Date.now();\n",[568,2715,2716],{"class":570,"line":1066},[568,2717,2718],{},"    const oneHourAgo = now - 3600000;\n",[568,2720,2721],{"class":570,"line":1072},[568,2722,1305],{},[568,2724,2725],{"class":570,"line":1077},[568,2726,2727],{},"    for (const [sessionId, session] of this.activeSessions.entries()) {\n",[568,2729,2730],{"class":570,"line":1083},[568,2731,2732],{},"      if (session.lastActivity \u003C oneHourAgo) {\n",[568,2734,2735],{"class":570,"line":1088},[568,2736,2737],{},"        this.activeSessions.delete(sessionId);\n",[568,2739,2740],{"class":570,"line":1094},[568,2741,2742],{},"        console.log(`Cleaned up stale session: ${sessionId}`);\n",[568,2744,2745],{"class":570,"line":1099},[568,2746,769],{},[568,2748,2749],{"class":570,"line":1105},[568,2750,779],{},[568,2752,2753],{"class":570,"line":1387},[568,2754,784],{},[568,2756,2757],{"class":570,"line":1393},[568,2758,825],{},[568,2760,2761],{"class":570,"line":1399},[568,2762,2763],{},"  destroy() {\n",[568,2765,2766],{"class":570,"line":1405},[568,2767,2768],{},"    clearInterval(this.cleanupInterval);\n",[568,2770,2771],{"class":570,"line":1410},[568,2772,2773],{},"    this.activeSessions.clear();\n",[568,2775,2776],{"class":570,"line":1416},[568,2777,784],{},[568,2779,2780],{"class":570,"line":1422},[568,2781,689],{},[525,2783,2785],{"id":2784},"cpu-high-usage","CPU High Usage",[517,2787,2788],{},[532,2789,534],{},[536,2791,2794],{"className":2792,"code":2793,"language":541},[539],"CPU usage consistently above 80%\n",[543,2795,2793],{"__ignoreMap":545},[517,2797,2798],{},[532,2799,550],{},[552,2801,2802],{},[555,2803,2804],{},[532,2805,2806],{},"Optimize Heavy Operations",[536,2808,2810],{"className":591,"code":2809,"language":593,"meta":545,"style":545},"// Use worker threads for CPU-intensive tasks\nconst { Worker, isMainThread, parentPort, workerData } = require('worker_threads');\n\nif (isMainThread) {\n  async function processLargeDataset(data) {\n    return new Promise((resolve, reject) => {\n      const worker = new Worker(__filename, {\n        workerData: data\n      });\n      \n      worker.on('message', resolve);\n      worker.on('error', reject);\n    });\n  }\n} else {\n  // Process data in worker thread\n  const result = processData(workerData);\n  parentPort.postMessage(result);\n}\n",[543,2811,2812,2817,2822,2826,2831,2836,2841,2846,2851,2856,2860,2865,2870,2874,2878,2883,2888,2893,2898],{"__ignoreMap":545},[568,2813,2814],{"class":570,"line":82},[568,2815,2816],{},"// Use worker threads for CPU-intensive tasks\n",[568,2818,2819],{"class":570,"line":114},[568,2820,2821],{},"const { Worker, isMainThread, parentPort, workerData } = require('worker_threads');\n",[568,2823,2824],{"class":570,"line":146},[568,2825,880],{"emptyLinePlaceholder":879},[568,2827,2828],{"class":570,"line":178},[568,2829,2830],{},"if (isMainThread) {\n",[568,2832,2833],{"class":570,"line":268},[568,2834,2835],{},"  async function processLargeDataset(data) {\n",[568,2837,2838],{"class":570,"line":273},[568,2839,2840],{},"    return new Promise((resolve, reject) => {\n",[568,2842,2843],{"class":570,"line":279},[568,2844,2845],{},"      const worker = new Worker(__filename, {\n",[568,2847,2848],{"class":570,"line":285},[568,2849,2850],{},"        workerData: data\n",[568,2852,2853],{"class":570,"line":291},[568,2854,2855],{},"      });\n",[568,2857,2858],{"class":570,"line":222},[568,2859,1004],{},[568,2861,2862],{"class":570,"line":227},[568,2863,2864],{},"      worker.on('message', resolve);\n",[568,2866,2867],{"class":570,"line":232},[568,2868,2869],{},"      worker.on('error', reject);\n",[568,2871,2872],{"class":570,"line":238},[568,2873,1300],{},[568,2875,2876],{"class":570,"line":243},[568,2877,784],{},[568,2879,2880],{"class":570,"line":248},[568,2881,2882],{},"} else {\n",[568,2884,2885],{"class":570,"line":1045},[568,2886,2887],{},"  // Process data in worker thread\n",[568,2889,2890],{"class":570,"line":1050},[568,2891,2892],{},"  const result = processData(workerData);\n",[568,2894,2895],{"class":570,"line":1055},[568,2896,2897],{},"  parentPort.postMessage(result);\n",[568,2899,2900],{"class":570,"line":1060},[568,2901,689],{},[552,2903,2904],{"start":114},[555,2905,2906],{},[532,2907,2908],{},"Implement Request Queuing",[536,2910,2912],{"className":591,"code":2911,"language":593,"meta":545,"style":545},"const Queue = require('bull');\nconst redis = require('redis');\n\nconst sessionQueue = new Queue('session processing', {\n  redis: { port: 6379, host: 'localhost' }\n});\n\n// Process jobs in background\nsessionQueue.process(async (job) => {\n  const { sessionId, sessionData } = job.data;\n  \n  try {\n    const results = await client.sessions.getResults(sessionId);\n    await saveResultsToDatabase(sessionId, results);\n    \n    return { success: true, sessionId };\n  } catch (error) {\n    console.error(`Failed to process session ${sessionId}:`, error);\n    throw error;\n  }\n});\n\n// Add job to queue\nasync function queueSessionProcessing(sessionId, sessionData) {\n  await sessionQueue.add('process', {\n    sessionId,\n    sessionData\n  }, {\n    attempts: 3,\n    backoff: 'exponential'\n  });\n}\n",[543,2913,2914,2919,2924,2928,2933,2938,2942,2946,2951,2956,2961,2965,2969,2974,2979,2983,2988,2992,2997,3001,3005,3009,3013,3018,3023,3028,3033,3038,3043,3048,3053,3057],{"__ignoreMap":545},[568,2915,2916],{"class":570,"line":82},[568,2917,2918],{},"const Queue = require('bull');\n",[568,2920,2921],{"class":570,"line":114},[568,2922,2923],{},"const redis = require('redis');\n",[568,2925,2926],{"class":570,"line":146},[568,2927,880],{"emptyLinePlaceholder":879},[568,2929,2930],{"class":570,"line":178},[568,2931,2932],{},"const sessionQueue = new Queue('session processing', {\n",[568,2934,2935],{"class":570,"line":268},[568,2936,2937],{},"  redis: { port: 6379, host: 'localhost' }\n",[568,2939,2940],{"class":570,"line":273},[568,2941,959],{},[568,2943,2944],{"class":570,"line":279},[568,2945,880],{"emptyLinePlaceholder":879},[568,2947,2948],{"class":570,"line":285},[568,2949,2950],{},"// Process jobs in background\n",[568,2952,2953],{"class":570,"line":291},[568,2954,2955],{},"sessionQueue.process(async (job) => {\n",[568,2957,2958],{"class":570,"line":222},[568,2959,2960],{},"  const { sessionId, sessionData } = job.data;\n",[568,2962,2963],{"class":570,"line":227},[568,2964,825],{},[568,2966,2967],{"class":570,"line":232},[568,2968,1702],{},[568,2970,2971],{"class":570,"line":238},[568,2972,2973],{},"    const results = await client.sessions.getResults(sessionId);\n",[568,2975,2976],{"class":570,"line":243},[568,2977,2978],{},"    await saveResultsToDatabase(sessionId, results);\n",[568,2980,2981],{"class":570,"line":248},[568,2982,1305],{},[568,2984,2985],{"class":570,"line":1045},[568,2986,2987],{},"    return { success: true, sessionId };\n",[568,2989,2990],{"class":570,"line":1050},[568,2991,1712],{},[568,2993,2994],{"class":570,"line":1055},[568,2995,2996],{},"    console.error(`Failed to process session ${sessionId}:`, error);\n",[568,2998,2999],{"class":570,"line":1060},[568,3000,2378],{},[568,3002,3003],{"class":570,"line":1066},[568,3004,784],{},[568,3006,3007],{"class":570,"line":1072},[568,3008,959],{},[568,3010,3011],{"class":570,"line":1077},[568,3012,880],{"emptyLinePlaceholder":879},[568,3014,3015],{"class":570,"line":1083},[568,3016,3017],{},"// Add job to queue\n",[568,3019,3020],{"class":570,"line":1088},[568,3021,3022],{},"async function queueSessionProcessing(sessionId, sessionData) {\n",[568,3024,3025],{"class":570,"line":1094},[568,3026,3027],{},"  await sessionQueue.add('process', {\n",[568,3029,3030],{"class":570,"line":1099},[568,3031,3032],{},"    sessionId,\n",[568,3034,3035],{"class":570,"line":1105},[568,3036,3037],{},"    sessionData\n",[568,3039,3040],{"class":570,"line":1387},[568,3041,3042],{},"  }, {\n",[568,3044,3045],{"class":570,"line":1393},[568,3046,3047],{},"    attempts: 3,\n",[568,3049,3050],{"class":570,"line":1399},[568,3051,3052],{},"    backoff: 'exponential'\n",[568,3054,3055],{"class":570,"line":1405},[568,3056,1375],{},[568,3058,3059],{"class":570,"line":1410},[568,3060,689],{},[512,3062,3064],{"id":3063},"debugging-tools","Debugging Tools",[525,3066,3068],{"id":3067},"enable-debug-logging","Enable Debug Logging",[536,3070,3072],{"className":591,"code":3071,"language":593,"meta":545,"style":545},"// Enable detailed logging\nconst debug = require('debug')('mindpeeker:integration');\n\n// Add debug statements\ndebug('Creating session with data:', sessionData);\ndebug('API response:', response.data);\ndebug('Error occurred:', error);\n\n// Set debug environment variable\n// DEBUG=mindpeeker:* node app.js\n",[543,3073,3074,3079,3084,3088,3093,3098,3103,3108,3112,3117],{"__ignoreMap":545},[568,3075,3076],{"class":570,"line":82},[568,3077,3078],{},"// Enable detailed logging\n",[568,3080,3081],{"class":570,"line":114},[568,3082,3083],{},"const debug = require('debug')('mindpeeker:integration');\n",[568,3085,3086],{"class":570,"line":146},[568,3087,880],{"emptyLinePlaceholder":879},[568,3089,3090],{"class":570,"line":178},[568,3091,3092],{},"// Add debug statements\n",[568,3094,3095],{"class":570,"line":268},[568,3096,3097],{},"debug('Creating session with data:', sessionData);\n",[568,3099,3100],{"class":570,"line":273},[568,3101,3102],{},"debug('API response:', response.data);\n",[568,3104,3105],{"class":570,"line":279},[568,3106,3107],{},"debug('Error occurred:', error);\n",[568,3109,3110],{"class":570,"line":285},[568,3111,880],{"emptyLinePlaceholder":879},[568,3113,3114],{"class":570,"line":291},[568,3115,3116],{},"// Set debug environment variable\n",[568,3118,3119],{"class":570,"line":222},[568,3120,3121],{},"// DEBUG=mindpeeker:* node app.js\n",[525,3123,3125],{"id":3124},"api-request-tracing","API Request Tracing",[536,3127,3129],{"className":591,"code":3128,"language":593,"meta":545,"style":545},"class APITracer {\n  constructor() {\n    this.requests = [];\n  }\n  \n  traceRequest(method, url, options) {\n    const requestId = this.generateRequestId();\n    const startTime = Date.now();\n    \n    console.log(`[${requestId}] ${method} ${url}`);\n    \n    return {\n      requestId,\n      startTime,\n      log: (message) => console.log(`[${requestId}] ${message}`)\n    };\n  }\n  \n  traceResponse(trace, response) {\n    const duration = Date.now() - trace.startTime;\n    console.log(`[${trace.requestId}] Response ${response.status} (${duration}ms)`);\n    \n    this.requests.push({\n      requestId: trace.requestId,\n      duration,\n      status: response.status,\n      timestamp: new Date().toISOString()\n    });\n  }\n  \n  generateRequestId() {\n    return Math.random().toString(36).substr(2, 9);\n  }\n  \n  getStats() {\n    const total = this.requests.length;\n    const avgDuration = this.requests.reduce((sum, r) => sum + r.duration, 0) / total;\n    const successRate = this.requests.filter(r => r.status \u003C 400).length / total * 100;\n    \n    return { total, avgDuration, successRate };\n  }\n}\n",[543,3130,3131,3136,3140,3145,3149,3153,3158,3163,3168,3172,3177,3181,3186,3191,3196,3201,3205,3209,3213,3218,3223,3228,3232,3237,3242,3247,3252,3257,3261,3265,3269,3274,3279,3283,3287,3292,3297,3303,3309,3314,3320,3325],{"__ignoreMap":545},[568,3132,3133],{"class":570,"line":82},[568,3134,3135],{},"class APITracer {\n",[568,3137,3138],{"class":570,"line":114},[568,3139,2633],{},[568,3141,3142],{"class":570,"line":146},[568,3143,3144],{},"    this.requests = [];\n",[568,3146,3147],{"class":570,"line":178},[568,3148,784],{},[568,3150,3151],{"class":570,"line":268},[568,3152,825],{},[568,3154,3155],{"class":570,"line":273},[568,3156,3157],{},"  traceRequest(method, url, options) {\n",[568,3159,3160],{"class":570,"line":279},[568,3161,3162],{},"    const requestId = this.generateRequestId();\n",[568,3164,3165],{"class":570,"line":285},[568,3166,3167],{},"    const startTime = Date.now();\n",[568,3169,3170],{"class":570,"line":291},[568,3171,1305],{},[568,3173,3174],{"class":570,"line":222},[568,3175,3176],{},"    console.log(`[${requestId}] ${method} ${url}`);\n",[568,3178,3179],{"class":570,"line":227},[568,3180,1305],{},[568,3182,3183],{"class":570,"line":232},[568,3184,3185],{},"    return {\n",[568,3187,3188],{"class":570,"line":238},[568,3189,3190],{},"      requestId,\n",[568,3192,3193],{"class":570,"line":243},[568,3194,3195],{},"      startTime,\n",[568,3197,3198],{"class":570,"line":248},[568,3199,3200],{},"      log: (message) => console.log(`[${requestId}] ${message}`)\n",[568,3202,3203],{"class":570,"line":1045},[568,3204,2681],{},[568,3206,3207],{"class":570,"line":1050},[568,3208,784],{},[568,3210,3211],{"class":570,"line":1055},[568,3212,825],{},[568,3214,3215],{"class":570,"line":1060},[568,3216,3217],{},"  traceResponse(trace, response) {\n",[568,3219,3220],{"class":570,"line":1066},[568,3221,3222],{},"    const duration = Date.now() - trace.startTime;\n",[568,3224,3225],{"class":570,"line":1072},[568,3226,3227],{},"    console.log(`[${trace.requestId}] Response ${response.status} (${duration}ms)`);\n",[568,3229,3230],{"class":570,"line":1077},[568,3231,1305],{},[568,3233,3234],{"class":570,"line":1083},[568,3235,3236],{},"    this.requests.push({\n",[568,3238,3239],{"class":570,"line":1088},[568,3240,3241],{},"      requestId: trace.requestId,\n",[568,3243,3244],{"class":570,"line":1094},[568,3245,3246],{},"      duration,\n",[568,3248,3249],{"class":570,"line":1099},[568,3250,3251],{},"      status: response.status,\n",[568,3253,3254],{"class":570,"line":1105},[568,3255,3256],{},"      timestamp: new Date().toISOString()\n",[568,3258,3259],{"class":570,"line":1387},[568,3260,1300],{},[568,3262,3263],{"class":570,"line":1393},[568,3264,784],{},[568,3266,3267],{"class":570,"line":1399},[568,3268,825],{},[568,3270,3271],{"class":570,"line":1405},[568,3272,3273],{},"  generateRequestId() {\n",[568,3275,3276],{"class":570,"line":1410},[568,3277,3278],{},"    return Math.random().toString(36).substr(2, 9);\n",[568,3280,3281],{"class":570,"line":1416},[568,3282,784],{},[568,3284,3285],{"class":570,"line":1422},[568,3286,825],{},[568,3288,3289],{"class":570,"line":1428},[568,3290,3291],{},"  getStats() {\n",[568,3293,3294],{"class":570,"line":1433},[568,3295,3296],{},"    const total = this.requests.length;\n",[568,3298,3300],{"class":570,"line":3299},37,[568,3301,3302],{},"    const avgDuration = this.requests.reduce((sum, r) => sum + r.duration, 0) / total;\n",[568,3304,3306],{"class":570,"line":3305},38,[568,3307,3308],{},"    const successRate = this.requests.filter(r => r.status \u003C 400).length / total * 100;\n",[568,3310,3312],{"class":570,"line":3311},39,[568,3313,1305],{},[568,3315,3317],{"class":570,"line":3316},40,[568,3318,3319],{},"    return { total, avgDuration, successRate };\n",[568,3321,3323],{"class":570,"line":3322},41,[568,3324,784],{},[568,3326,3328],{"class":570,"line":3327},42,[568,3329,689],{},[512,3331,3333],{"id":3332},"getting-help","Getting Help",[525,3335,3337],{"id":3336},"support-channels","Support Channels",[552,3339,3340,3353,3363,3373,3382],{},[555,3341,3342,3345,3346],{},[532,3343,3344],{},"Documentation",": ",[3347,3348,3352],"a",{"href":3349,"rel":3350},"https://docs.mindpeeker.com",[3351],"nofollow","docs.mindpeeker.com",[555,3354,3355,3345,3358],{},[532,3356,3357],{},"API Status",[3347,3359,3362],{"href":3360,"rel":3361},"https://status.mindpeeker.com",[3351],"status.mindpeeker.com",[555,3364,3365,3345,3368],{},[532,3366,3367],{},"Community Forum",[3347,3369,3372],{"href":3370,"rel":3371},"https://community.mindpeeker.com",[3351],"community.mindpeeker.com",[555,3374,3375,3345,3378],{},[532,3376,3377],{},"Email Support",[3347,3379,3381],{"href":3380},"mailto:support@mindpeeker.com","support@mindpeeker.com",[555,3383,3384,3345,3387,3391],{},[532,3385,3386],{},"Emergency Support",[3347,3388,3390],{"href":3389},"mailto:emergency@mindpeeker.com","emergency@mindpeeker.com"," (for production outages)",[525,3393,3395],{"id":3394},"reporting-issues","Reporting Issues",[517,3397,3398],{},"When reporting issues, include:",[552,3400,3401],{},[555,3402,3403],{},[532,3404,3405],{},"Environment Information",[536,3407,3409],{"className":562,"code":3408,"language":564,"meta":545,"style":545},"node --version\nnpm --version\nuname -a\n\nmindpeeker --version\n\nmindpeeker config list\n",[543,3410,3411,3419,3426,3434,3438,3444,3448],{"__ignoreMap":545},[568,3412,3413,3416],{"class":570,"line":82},[568,3414,3415],{"class":573},"node",[568,3417,3418],{"class":577}," --version\n",[568,3420,3421,3424],{"class":570,"line":114},[568,3422,3423],{"class":573},"npm",[568,3425,3418],{"class":577},[568,3427,3428,3431],{"class":570,"line":146},[568,3429,3430],{"class":573},"uname",[568,3432,3433],{"class":577}," -a\n",[568,3435,3436],{"class":570,"line":178},[568,3437,880],{"emptyLinePlaceholder":879},[568,3439,3440,3442],{"class":570,"line":268},[568,3441,574],{"class":573},[568,3443,3418],{"class":577},[568,3445,3446],{"class":570,"line":273},[568,3447,880],{"emptyLinePlaceholder":879},[568,3449,3450,3452,3455],{"class":570,"line":279},[568,3451,574],{"class":573},[568,3453,3454],{"class":577}," config",[568,3456,3457],{"class":577}," list\n",[552,3459,3460],{"start":114},[555,3461,3462],{},[532,3463,3464],{},"Error Details",[536,3466,3468],{"className":591,"code":3467,"language":593,"meta":545,"style":545},"// Capture full error context\nconst errorContext = {\n  message: error.message,\n  stack: error.stack,\n  code: error.code,\n  status: error.status,\n  requestId: error.requestId,\n  timestamp: new Date().toISOString(),\n  userAgent: navigator.userAgent,\n  sessionId: currentSessionId\n};\n\nconsole.error('Error context:', JSON.stringify(errorContext, null, 2));\n",[543,3469,3470,3475,3480,3485,3490,3495,3500,3505,3510,3515,3520,3524,3528],{"__ignoreMap":545},[568,3471,3472],{"class":570,"line":82},[568,3473,3474],{},"// Capture full error context\n",[568,3476,3477],{"class":570,"line":114},[568,3478,3479],{},"const errorContext = {\n",[568,3481,3482],{"class":570,"line":146},[568,3483,3484],{},"  message: error.message,\n",[568,3486,3487],{"class":570,"line":178},[568,3488,3489],{},"  stack: error.stack,\n",[568,3491,3492],{"class":570,"line":268},[568,3493,3494],{},"  code: error.code,\n",[568,3496,3497],{"class":570,"line":273},[568,3498,3499],{},"  status: error.status,\n",[568,3501,3502],{"class":570,"line":279},[568,3503,3504],{},"  requestId: error.requestId,\n",[568,3506,3507],{"class":570,"line":285},[568,3508,3509],{},"  timestamp: new Date().toISOString(),\n",[568,3511,3512],{"class":570,"line":291},[568,3513,3514],{},"  userAgent: navigator.userAgent,\n",[568,3516,3517],{"class":570,"line":222},[568,3518,3519],{},"  sessionId: currentSessionId\n",[568,3521,3522],{"class":570,"line":227},[568,3523,1244],{},[568,3525,3526],{"class":570,"line":232},[568,3527,880],{"emptyLinePlaceholder":879},[568,3529,3530],{"class":570,"line":238},[568,3531,3532],{},"console.error('Error context:', JSON.stringify(errorContext, null, 2));\n",[552,3534,3535],{"start":146},[555,3536,3537],{},[532,3538,3539],{},"Reproduction Steps",[3541,3542,3543,3546,3549,3552],"ul",{},[555,3544,3545],{},"Clear steps to reproduce the issue",[555,3547,3548],{},"Sample code that demonstrates the problem",[555,3550,3551],{},"Expected vs actual behavior",[555,3553,3554],{},"Frequency and consistency of the issue",[525,3556,3558],{"id":3557},"diagnostic-tools","Diagnostic Tools",[536,3560,3562],{"className":562,"code":3561,"language":564,"meta":545,"style":545},"mindpeeker doctor\n\nmindpeeker test connection\n\nmindpeeker account limits\n\nmindpeeker config validate\n",[543,3563,3564,3571,3575,3585,3589,3597,3601],{"__ignoreMap":545},[568,3565,3566,3568],{"class":570,"line":82},[568,3567,574],{"class":573},[568,3569,3570],{"class":577}," doctor\n",[568,3572,3573],{"class":570,"line":114},[568,3574,880],{"emptyLinePlaceholder":879},[568,3576,3577,3579,3582],{"class":570,"line":146},[568,3578,574],{"class":573},[568,3580,3581],{"class":577}," test",[568,3583,3584],{"class":577}," connection\n",[568,3586,3587],{"class":570,"line":178},[568,3588,880],{"emptyLinePlaceholder":879},[568,3590,3591,3593,3595],{"class":570,"line":268},[568,3592,574],{"class":573},[568,3594,871],{"class":577},[568,3596,874],{"class":577},[568,3598,3599],{"class":570,"line":273},[568,3600,880],{"emptyLinePlaceholder":879},[568,3602,3603,3605,3607],{"class":570,"line":279},[568,3604,574],{"class":573},[568,3606,3454],{"class":577},[568,3608,3609],{"class":577}," validate\n",[512,3611,3613],{"id":3612},"emergency-procedures","Emergency Procedures",[525,3615,3617],{"id":3616},"service-outage-response","Service Outage Response",[552,3619,3620,3628,3634,3640,3646],{},[555,3621,3622,3345,3625],{},[532,3623,3624],{},"Check Status Page",[3347,3626,3362],{"href":3360,"rel":3627},[3351],[555,3629,3630,3633],{},[532,3631,3632],{},"Enable Fallback Mode",": Switch to cached responses or degraded functionality",[555,3635,3636,3639],{},[532,3637,3638],{},"Notify Users",": Communicate service status to users",[555,3641,3642,3645],{},[532,3643,3644],{},"Monitor Recovery",": Watch for service restoration",[555,3647,3648,3651],{},[532,3649,3650],{},"Post-Mortem",": Document incident and improvements",[525,3653,3655],{"id":3654},"data-recovery","Data Recovery",[536,3657,3659],{"className":591,"code":3658,"language":593,"meta":545,"style":545},"// Implement backup and recovery\nasync function backupSessionData() {\n  const sessions = await client.sessions.list({ limit: 1000 });\n  \n  const backup = {\n    timestamp: new Date().toISOString(),\n    sessions: sessions\n  };\n  \n  await fs.writeFile(\n    `backup/sessions-${Date.now()}.json`,\n    JSON.stringify(backup, null, 2)\n  );\n}\n\nasync function restoreSessionData(backupFile) {\n  const backup = JSON.parse(await fs.readFile(backupFile, 'utf8'));\n  \n  for (const session of backup.sessions) {\n    try {\n      await saveSessionToDatabase(session);\n    } catch (error) {\n      console.error(`Failed to restore session ${session.sessionId}:`, error);\n    }\n  }\n}\n",[543,3660,3661,3666,3671,3676,3680,3685,3690,3695,3699,3703,3708,3713,3718,3722,3726,3730,3735,3740,3744,3749,3753,3758,3762,3767,3771,3775],{"__ignoreMap":545},[568,3662,3663],{"class":570,"line":82},[568,3664,3665],{},"// Implement backup and recovery\n",[568,3667,3668],{"class":570,"line":114},[568,3669,3670],{},"async function backupSessionData() {\n",[568,3672,3673],{"class":570,"line":146},[568,3674,3675],{},"  const sessions = await client.sessions.list({ limit: 1000 });\n",[568,3677,3678],{"class":570,"line":178},[568,3679,825],{},[568,3681,3682],{"class":570,"line":268},[568,3683,3684],{},"  const backup = {\n",[568,3686,3687],{"class":570,"line":273},[568,3688,3689],{},"    timestamp: new Date().toISOString(),\n",[568,3691,3692],{"class":570,"line":279},[568,3693,3694],{},"    sessions: sessions\n",[568,3696,3697],{"class":570,"line":285},[568,3698,1091],{},[568,3700,3701],{"class":570,"line":291},[568,3702,825],{},[568,3704,3705],{"class":570,"line":222},[568,3706,3707],{},"  await fs.writeFile(\n",[568,3709,3710],{"class":570,"line":227},[568,3711,3712],{},"    `backup/sessions-${Date.now()}.json`,\n",[568,3714,3715],{"class":570,"line":232},[568,3716,3717],{},"    JSON.stringify(backup, null, 2)\n",[568,3719,3720],{"class":570,"line":238},[568,3721,2080],{},[568,3723,3724],{"class":570,"line":243},[568,3725,689],{},[568,3727,3728],{"class":570,"line":248},[568,3729,880],{"emptyLinePlaceholder":879},[568,3731,3732],{"class":570,"line":1045},[568,3733,3734],{},"async function restoreSessionData(backupFile) {\n",[568,3736,3737],{"class":570,"line":1050},[568,3738,3739],{},"  const backup = JSON.parse(await fs.readFile(backupFile, 'utf8'));\n",[568,3741,3742],{"class":570,"line":1055},[568,3743,825],{},[568,3745,3746],{"class":570,"line":1060},[568,3747,3748],{},"  for (const session of backup.sessions) {\n",[568,3750,3751],{"class":570,"line":1066},[568,3752,734],{},[568,3754,3755],{"class":570,"line":1072},[568,3756,3757],{},"      await saveSessionToDatabase(session);\n",[568,3759,3760],{"class":570,"line":1077},[568,3761,744],{},[568,3763,3764],{"class":570,"line":1083},[568,3765,3766],{},"      console.error(`Failed to restore session ${session.sessionId}:`, error);\n",[568,3768,3769],{"class":570,"line":1088},[568,3770,779],{},[568,3772,3773],{"class":570,"line":1094},[568,3774,784],{},[568,3776,3777],{"class":570,"line":1099},[568,3778,689],{},[3780,3781,3782],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":545,"searchDepth":82,"depth":114,"links":3784},[3785,3786,3790,3794,3798,3802,3806,3810,3815],{"id":514,"depth":114,"text":515},{"id":522,"depth":114,"text":523,"children":3787},[3788,3789],{"id":527,"depth":146,"text":528},{"id":692,"depth":146,"text":693},{"id":898,"depth":114,"text":899,"children":3791},[3792,3793],{"id":902,"depth":146,"text":903},{"id":1178,"depth":146,"text":1179},{"id":1438,"depth":114,"text":1439,"children":3795},[3796,3797],{"id":1442,"depth":146,"text":1443},{"id":1656,"depth":146,"text":1657},{"id":1843,"depth":114,"text":1844,"children":3799},[3800,3801],{"id":1847,"depth":146,"text":1848},{"id":2229,"depth":146,"text":2230},{"id":2506,"depth":114,"text":2507,"children":3803},[3804,3805],{"id":2510,"depth":146,"text":2511},{"id":2784,"depth":146,"text":2785},{"id":3063,"depth":114,"text":3064,"children":3807},[3808,3809],{"id":3067,"depth":146,"text":3068},{"id":3124,"depth":146,"text":3125},{"id":3332,"depth":114,"text":3333,"children":3811},[3812,3813,3814],{"id":3336,"depth":146,"text":3337},{"id":3394,"depth":146,"text":3395},{"id":3557,"depth":146,"text":3558},{"id":3612,"depth":114,"text":3613,"children":3816},[3817,3818],{"id":3616,"depth":146,"text":3617},{"id":3654,"depth":146,"text":3655},"Common issues and solutions for MindPeeker platform development","md",null,{"icon":356},{"icon":356,"order":222},{"title":353,"description":3819},"0oONksrcMou7nbtRtUVLGT-LDi4BM25y7bC_2Q70XYo",[3827,3829],{"title":349,"path":350,"stem":351,"description":3828,"icon":55,"parent":343,"order":82,"children":-1},"Quick start guide for integrating with MindPeeker's psychic intelligence platform",{"title":358,"path":359,"stem":360,"description":3830,"icon":12,"order":227,"children":-1},"Version history and updates for MindPeeker developer platform",1776312208450]