'use client'; import { useMemo, useState } from 'react'; import { DEFAULT_BEACON_URL, DEFAULT_GATEWAY_URL } from '../lib/constants'; const languages = ['TypeScript', 'Bash', 'Curl'] as const; type Language = (typeof languages)[number]; function buildSnippets(step: number) { const baseHeaders = 'Authorization: Bearer $DEMO_JWT'; return { TypeScript: `import fetch from 'node-fetch'; async function run() { const res = await fetch('${DEFAULT_GATEWAY_URL}/agents', { headers: { ${baseHeaders} } }); const data = await res.json(); console.log(data); } run();`, Bash: `GATEWAY_URL=${DEFAULT_GATEWAY_URL} \ BEACON_URL=${DEFAULT_BEACON_URL} \ node scripts/demo-step-${step + 1}.js # TODO(demo-next): wire live agent chat`, Curl: `curl -X POST ${DEFAULT_GATEWAY_URL}/graphql \ -H 'Content-Type: application/json' \ -H '${baseHeaders}' \ -d '{"query":"mutation { trigger(job: \"demo-${step}\") }"}'` } satisfies Record; } export default function CodeExample({ step }: { step: number }) { const [language, setLanguage] = useState('TypeScript'); const snippets = useMemo(() => buildSnippets(step), [step]); return (

Code samples

{languages.map((lang) => ( ))}
        {snippets[language]}
      
); }