Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/1250237215_robinhoodwallet.json
T

1 line
14 KiB
JSON

{"repo": "1250237215/robinhoodwallet", "files": {"test/deployConfig.test.js": {"366e07829b4721631506a5a189a09206fb5e1be6": {"t": 1785746703.878345, "n": 6690, "h": "d5455d6284efbb14", "c": "import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport test from 'node:test';\nimport assert from 'node:assert/strict';\n\nimport { loadDebotCookies } from '../src/cookieStore.js';\nimport { DebotBrowserClient } from '../src/debotBrowserClient.js';\nimport { createAnalysisServiceFromEnv, fetchSignalPayloadWithDeps, sanitizeAnalysisForPublic } from '../src/server.js';\n\ntest('loads Debot cookies from a JSON file for Linux deployment', () => {\n const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'debot-cookie-test-'));\n const cookiePath = path.join(tempDir, 'cookies.json');\n const cookies = [\n {\n name: 'session',\n value: 'secret',\n domain: '.debot.ai',\n path: '/',\n expires: -1,\n httpOnly: true,\n secure: true,\n sameSite: 'None'\n }\n ];\n fs.writeFileSync(cookiePath, JSON.stringify(cookies));\n\n try {\n assert.deepEqual(\n loadDebotCookies({\n cookiesPath: cookiePath,\n sourcePath: path.join(tempDir, 'missing-codex-cookies.sqlite')\n }),\n cookies\n );\n } finally {\n fs.rmSync(tempDir, { recursive: true, force: true });\n }\n});\n\ntest('uses Playwright bundled Chromium in headless deployment unless a browser channel is set', () => {\n const previous = process.env.DEBOT_BROWSER_CHANNEL;\n delete process.env.DEBOT_BROWSER_CHANNEL;\n\n try {\n const client = new DebotBrowserClient({ headless: true });\n assert.equal(client.channel, undefined);\n } finally {\n if (previous === undefined) {\n delete process.env.DEBOT_BROWSER_CHANNEL;\n } else {\n process.env.DEBOT_BROWSER_CHANNEL = previous;\n }\n }\n});\n\ntest('server enables DeepSeek pro narrative generator from environment', () => {\n const service = createAnalysisServiceFromEnv({\n NARRATIVE_PROVIDER: 'deepseek',\n DEEPSEEK_API_KEY: 'test-key',\n DEEPSEEK_MODEL: 'deepseek-v4-pro',\n ANALYSIS_CACHE_TTL_MS: '3600000'\n });\n\n assert.equal(service.ttlMs, 3600000);\n assert.equal(service.narrativeGenerator.model, 'deepseek-v4-pro');\n assert.equal(service.narrativeGenerator.baseUrl, 'https://api.deepseek.com');\n});\n\ntest('server enables Grok primary narrative generator with DeepSeek fallback', () => {\n const service = createAnalysisServiceFromEnv({\n NARRATIVE_PROVIDER: 'grok',\n GROK_API_KEY: 'grok-key',\n GROK_BASE_URL: 'https://api.vip.crond.dev/v1',\n GROK_MODEL: 'grok-4.3',\n GROK_REASONING_EFFORT: 'expert',\n DEEPSEEK_API_KEY: 'deepseek-key',\n DEEPSEEK_MODEL: 'deepseek-v4-pro',\n ANALYSIS_CACHE_TTL_MS: '3600000'\n });\n\n assert.equal(service.ttlMs, 3600000);\n assert.equal(service.narrativeGenerator.provider, 'grok');\n assert.equal(service.narrativeGenerator.model, 'grok-4.3');\n assert.equal(service.narrativeGenerator.primary.baseUrl, 'https://api.vip.crond.dev/v1');\n assert.equal(service.narrativeGenerator.primary.reasoningEffort, 'expert');\n assert.equal(service.narrativeGenerator.primary.rawFormatter.model, 'deepseek-v4-flash');\n assert.equal(service.narrativeGenerator.fallback.provider, 'deepseek');\n assert.equal(service.narrativeGenerator.fallback.model, 'deepseek-v4-pro');\n assert.equal(service.devTweetAttitudeAnalyzer.model, 'deepseek-v4-flash');\n assert.equal(service.devTweetAttitudeAnalyzer.searchPostFetcher.baseUrl, 'https://api.vip.crond.dev/v1');\n assert.equal(service.devTweetAttitudeAnalyzer.searchPostFetcher.model, 'grok-4.3');\n});\n\ntest('server can disable dev tweet attitude analysis separately', () => {\n const service = createAnalysisServiceFromEnv({\n NARRATIVE_PROVIDER: 'grok',\n GROK_API_KEY: 'grok-key',\n GROK_MODEL: 'grok-4.3',\n DEEPSEEK_API_KEY: 'deepseek-key',\n DEEPSEEK_MODEL: 'deepseek-v4-pro',\n DEV_TWEET_ATTITUDE_ENABLED: '0'\n });\n\n assert.equal(service.narrativeGenerator.provider, 'grok');\n assert.equal(service.devTweetAttitudeAnalyzer, null);\n});\n\ntest('server can override the fast DeepSeek model used only for raw text formatting', () => {\n const service = createAnalysisServiceFromEnv({\n NARRATIVE_PROVIDER: 'grok',\n GROK_API_KEY: 'grok-key',\n GROK_MODEL: 'grok-4.3',\n DEEPSEEK_API_KEY: 'deepseek-key',\n DEEPSEEK_MODEL: 'deepseek-v4-pro',\n DEEPSEEK_FORMAT_MODEL: 'deepseek-v4-flash'\n });\n\n assert.equal(service.narrativeGenerator.primary.rawFormatter.model, 'deepseek-v4-flash');\n assert.equal(service.narrativeGenerator.fallback.model, 'deepseek-v4-pro');\n});\n\ntest('analysis route can refresh signal rows without starting background prefetch', async () => {\n let prefetchCalls = 0;\n const result = await fetchSignalPayloadWithDeps({\n limit: 10,\n prefetch: false,\n client: {\n async fetchSignals() {\n return {\n ok: true,\n rows: [{ address: '0xabc', symbol: 'AAA' }]\n };\n }\n },\n analysisService: {\n async enrichRowsWithRealtime(rows) {\n return rows;\n },\n decorateRows(rows) {\n return rows;\n },\n prefetchRows() {\n prefetchCalls += 1;\n }\n }\n });\n\n assert.equal(prefetchCalls, 0);\n assert.deepEqual(result.rows, [{ address: '0xabc', symbol: 'AAA' }]);\n});\n\ntest('signal list refresh starts background analysis prefetch by default', async () => {\n let prefetchCalls = 0;\n const result = await fetchSignalPayloadWithDeps({\n limit: 10,\n client: {\n async fetchSignals() {\n return {\n ok: true,\n rows: [{ address: '0xabc', symbol: 'AAA' }]\n };\n }\n },\n analysisService: {\n async enrichRowsWithRealtime(rows) {\n return rows;\n },\n decorateRows(rows) {\n return rows;\n },\n prefetchRows() {\n prefetchCalls += 1;\n }\n }\n });\n\n assert.equal(prefetchCalls, 1);\n assert.deepEqual(result.rows, [{ address: '0xabc', symbol: 'AAA' }]);\n});\n\ntest('public analysis payload hides internal narrative provider metadata', () => {\n const analysis = {\n address: '0xabc',\n symbol: 'AAA',\n narrative: {\n thesis: '原文已整理,完整内容在下方。',\n details: [{ label: '叙事原文', value: '这个 CA 是 Base 链上的 $AAA。' }],\n llmProvider: 'grok',\n llmModel: 'grok-4.3',\n llmFallbackFrom: 'deepseek',\n llmUpdatedAt: '2026-05-27T00:00:00.000Z'\n }\n };\n\n const result = sanitizeAnalysisForPublic(analysis);\n const serialized = JSON.stringify(result);\n\n assert.equal(result.narrative.llmProvider, undefined);\n assert.equal(result.narrative.llmModel, undefined);\n assert.equal(result.narrative.llmFallbackFrom, undefined);\n assert.equal(result.narrative.llmUpdatedAt, undefined);\n assert.equal(analysis.narrative.llmProvider, 'grok');\n assert.doesNotMatch(serialized, /llmProvider|llmModel|llmFallbackFrom|llmUpdatedAt|grok-4\\.3/i);\n});\n"}, "d0a84f483304422c1a12b1f53dc5148cd8ca07d4": {"t": 1785767098.2331862, "n": 6690, "h": "d5455d6284efbb14", "c": "import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\nimport test from 'node:test';\nimport assert from 'node:assert/strict';\n\nimport { loadDebotCookies } from '../src/cookieStore.js';\nimport { DebotBrowserClient } from '../src/debotBrowserClient.js';\nimport { createAnalysisServiceFromEnv, fetchSignalPayloadWithDeps, sanitizeAnalysisForPublic } from '../src/server.js';\n\ntest('loads Debot cookies from a JSON file for Linux deployment', () => {\n const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'debot-cookie-test-'));\n const cookiePath = path.join(tempDir, 'cookies.json');\n const cookies = [\n {\n name: 'session',\n value: 'secret',\n domain: '.debot.ai',\n path: '/',\n expires: -1,\n httpOnly: true,\n secure: true,\n sameSite: 'None'\n }\n ];\n fs.writeFileSync(cookiePath, JSON.stringify(cookies));\n\n try {\n assert.deepEqual(\n loadDebotCookies({\n cookiesPath: cookiePath,\n sourcePath: path.join(tempDir, 'missing-codex-cookies.sqlite')\n }),\n cookies\n );\n } finally {\n fs.rmSync(tempDir, { recursive: true, force: true });\n }\n});\n\ntest('uses Playwright bundled Chromium in headless deployment unless a browser channel is set', () => {\n const previous = process.env.DEBOT_BROWSER_CHANNEL;\n delete process.env.DEBOT_BROWSER_CHANNEL;\n\n try {\n const client = new DebotBrowserClient({ headless: true });\n assert.equal(client.channel, undefined);\n } finally {\n if (previous === undefined) {\n delete process.env.DEBOT_BROWSER_CHANNEL;\n } else {\n process.env.DEBOT_BROWSER_CHANNEL = previous;\n }\n }\n});\n\ntest('server enables DeepSeek pro narrative generator from environment', () => {\n const service = createAnalysisServiceFromEnv({\n NARRATIVE_PROVIDER: 'deepseek',\n DEEPSEEK_API_KEY: 'test-key',\n DEEPSEEK_MODEL: 'deepseek-v4-pro',\n ANALYSIS_CACHE_TTL_MS: '3600000'\n });\n\n assert.equal(service.ttlMs, 3600000);\n assert.equal(service.narrativeGenerator.model, 'deepseek-v4-pro');\n assert.equal(service.narrativeGenerator.baseUrl, 'https://api.deepseek.com');\n});\n\ntest('server enables Grok primary narrative generator with DeepSeek fallback', () => {\n const service = createAnalysisServiceFromEnv({\n NARRATIVE_PROVIDER: 'grok',\n GROK_API_KEY: 'grok-key',\n GROK_BASE_URL: 'https://api.vip.crond.dev/v1',\n GROK_MODEL: 'grok-4.3',\n GROK_REASONING_EFFORT: 'expert',\n DEEPSEEK_API_KEY: 'deepseek-key',\n DEEPSEEK_MODEL: 'deepseek-v4-pro',\n ANALYSIS_CACHE_TTL_MS: '3600000'\n });\n\n assert.equal(service.ttlMs, 3600000);\n assert.equal(service.narrativeGenerator.provider, 'grok');\n assert.equal(service.narrativeGenerator.model, 'grok-4.3');\n assert.equal(service.narrativeGenerator.primary.baseUrl, 'https://api.vip.crond.dev/v1');\n assert.equal(service.narrativeGenerator.primary.reasoningEffort, 'expert');\n assert.equal(service.narrativeGenerator.primary.rawFormatter.model, 'deepseek-v4-flash');\n assert.equal(service.narrativeGenerator.fallback.provider, 'deepseek');\n assert.equal(service.narrativeGenerator.fallback.model, 'deepseek-v4-pro');\n assert.equal(service.devTweetAttitudeAnalyzer.model, 'deepseek-v4-flash');\n assert.equal(service.devTweetAttitudeAnalyzer.searchPostFetcher.baseUrl, 'https://api.vip.crond.dev/v1');\n assert.equal(service.devTweetAttitudeAnalyzer.searchPostFetcher.model, 'grok-4.3');\n});\n\ntest('server can disable dev tweet attitude analysis separately', () => {\n const service = createAnalysisServiceFromEnv({\n NARRATIVE_PROVIDER: 'grok',\n GROK_API_KEY: 'grok-key',\n GROK_MODEL: 'grok-4.3',\n DEEPSEEK_API_KEY: 'deepseek-key',\n DEEPSEEK_MODEL: 'deepseek-v4-pro',\n DEV_TWEET_ATTITUDE_ENABLED: '0'\n });\n\n assert.equal(service.narrativeGenerator.provider, 'grok');\n assert.equal(service.devTweetAttitudeAnalyzer, null);\n});\n\ntest('server can override the fast DeepSeek model used only for raw text formatting', () => {\n const service = createAnalysisServiceFromEnv({\n NARRATIVE_PROVIDER: 'grok',\n GROK_API_KEY: 'grok-key',\n GROK_MODEL: 'grok-4.3',\n DEEPSEEK_API_KEY: 'deepseek-key',\n DEEPSEEK_MODEL: 'deepseek-v4-pro',\n DEEPSEEK_FORMAT_MODEL: 'deepseek-v4-flash'\n });\n\n assert.equal(service.narrativeGenerator.primary.rawFormatter.model, 'deepseek-v4-flash');\n assert.equal(service.narrativeGenerator.fallback.model, 'deepseek-v4-pro');\n});\n\ntest('analysis route can refresh signal rows without starting background prefetch', async () => {\n let prefetchCalls = 0;\n const result = await fetchSignalPayloadWithDeps({\n limit: 10,\n prefetch: false,\n client: {\n async fetchSignals() {\n return {\n ok: true,\n rows: [{ address: '0xabc', symbol: 'AAA' }]\n };\n }\n },\n analysisService: {\n async enrichRowsWithRealtime(rows) {\n return rows;\n },\n decorateRows(rows) {\n return rows;\n },\n prefetchRows() {\n prefetchCalls += 1;\n }\n }\n });\n\n assert.equal(prefetchCalls, 0);\n assert.deepEqual(result.rows, [{ address: '0xabc', symbol: 'AAA' }]);\n});\n\ntest('signal list refresh starts background analysis prefetch by default', async () => {\n let prefetchCalls = 0;\n const result = await fetchSignalPayloadWithDeps({\n limit: 10,\n client: {\n async fetchSignals() {\n return {\n ok: true,\n rows: [{ address: '0xabc', symbol: 'AAA' }]\n };\n }\n },\n analysisService: {\n async enrichRowsWithRealtime(rows) {\n return rows;\n },\n decorateRows(rows) {\n return rows;\n },\n prefetchRows() {\n prefetchCalls += 1;\n }\n }\n });\n\n assert.equal(prefetchCalls, 1);\n assert.deepEqual(result.rows, [{ address: '0xabc', symbol: 'AAA' }]);\n});\n\ntest('public analysis payload hides internal narrative provider metadata', () => {\n const analysis = {\n address: '0xabc',\n symbol: 'AAA',\n narrative: {\n thesis: '原文已整理,完整内容在下方。',\n details: [{ label: '叙事原文', value: '这个 CA 是 Base 链上的 $AAA。' }],\n llmProvider: 'grok',\n llmModel: 'grok-4.3',\n llmFallbackFrom: 'deepseek',\n llmUpdatedAt: '2026-05-27T00:00:00.000Z'\n }\n };\n\n const result = sanitizeAnalysisForPublic(analysis);\n const serialized = JSON.stringify(result);\n\n assert.equal(result.narrative.llmProvider, undefined);\n assert.equal(result.narrative.llmModel, undefined);\n assert.equal(result.narrative.llmFallbackFrom, undefined);\n assert.equal(result.narrative.llmUpdatedAt, undefined);\n assert.equal(analysis.narrative.llmProvider, 'grok');\n assert.doesNotMatch(serialized, /llmProvider|llmModel|llmFallbackFrom|llmUpdatedAt|grok-4\\.3/i);\n});\n"}}}}