@kairos.ai/studio-sdk
v1.0.0-mvp.1
Published
SDK cliente para emitir telemetria de execuções de IA da KairOS-Platform — roda em Node, Deno e Supabase Edge Functions
Maintainers
Readme
@kairos/studio-sdk
Validação End-to-End (Inclua + Platform local)
Pré-requisitos
- Platform local rodando:
cd ../KairOS-Platform supabase start supabase db reset supabase functions serve ingerir --no-verify-jwt - API key criada:
cd ../kairos-studio-sdk pnpm run integration:seed # anote idInquilino e apiKey do stdout - Inclua com SDK vendored (já feito via Task 17) +
.env.localpreenchido:# Em incluavt/supabase/.env.local, substituir: STUDIO_API_KEY=kp_live_<<apikey-da-seed>>
Execução
Subir Inclua local:
cd ../incluavt supabase start supabase functions serve nee-chat --no-verify-jwt --env-file supabase/.env.localDisparar uma chamada (nee-chat é chat; payload tem messages + student_context):
curl -N http://127.0.0.1:54321/functions/v1/nee-chat \ -H "Content-Type: application/json" \ -d '{ "messages": [{"role": "user", "content": "Sugira 3 estratégias para um aluno com TDAH."}], "nee_types": ["TDAH"], "student_context": { "name": "Teste", "grade": "5º ano", "nee_types": ["TDAH"] }, "tenant": { "redeId": "<<ID_INQUILINO_DA_SEED>>" } }'Esperado: stream de chunks SSE do Claude chegando progressivamente no terminal.
Após o stream fechar (2-5 segundos), inspecionar o Platform:
psql postgresql://postgres:[email protected]:54322/postgres \ -c "SELECT id_agente, modelo_llm, custo_tokens, duracao_ms, severidade FROM evento_execucao ORDER BY criado_em DESC LIMIT 1;"Esperado:
id_agente | modelo_llm | custo_tokens | duracao_ms | severidade ---------------+------------------------+---------------+------------+------------ nee-chat | anthropic/claude-sonnet-4 | ~500 | ~3000 | info
Critério de sucesso
- Stream SSE visível no terminal do
curl(UX preservada). - Um registro em
evento_execucaocomid_agente='nee-chat',custo_tokens > 0,duracao_ms > 0,severidade='info'. - Diff de latência vs. Inclua sem SDK: < 20ms medido em 5 execuções.
Troubleshooting
- Stream chega mas 0 rows no Platform: provavelmente o Platform não está rodando ou
STUDIO_ENDPOINTaponta pra URL errada. Verifiquesupabase statusem ambos os repos e confirme o endpoint em.env.local. - 401 do Platform: API key em
.env.localnão bate com o que foi gerado pela seed. Re-rodepnpm run integration:seede copie o valor novo pro.env.local. evento_execucaotem registro mascusto_tokens = 0: OpenRouter não emitiu o chunk de usage. Verifique questream_options: { include_usage: true }está na request (olhe o dados JSON do registro — deve tererrorCode: 'NO_USAGE_IN_STREAM'se ausente).- Latência > 100ms adicional: pode significar que
EdgeRuntime.waitUntilnão está sendo usado (o emit ficou síncrono). Olhe logs dosupabase functions serve nee-chatpra ver se há erro/warning do SDK.
