Skip to content

DEMOPhase 0 prototype. Stories, topics and numbers on this page are DEMO, made for visual review.

Eureka42
← Back to the documentation

Integrations · Version v0

SDK @eureka42/core

Estado do SDK TypeScript do Eureka42, o que o núcleo oferece e como será distribuído pelo npm.

This page is not translated into this language yet; showing it in Português.

Estado atual: o pacote @eureka42/core está na versão 0.1.0 e não foi publicado no npm (licença ainda não definida). Não tente instalá-lo; esta página descreve o código do repositório.

O que existe

O núcleo é TypeScript portável, sem dependências: não usa Cloudflare, React nem o portal.

  • Contexto de execução: createContext e childContext levam traceId, idioma, prazo e cancelamento por chamadas aninhadas. O prazo de um filho nunca passa o do pai, e os metadados recusam chaves como apiKey, token ou authorization.
  • Execução com prazo: run(ctx, nome, fn) aplica prazo e cancelamento, devolve um Result e emite eventos de início, fim e erro para a telemetria que você injetar.
  • Erros tipados: E42Error com code estável (INVALID_INPUT, TIMEOUT, ABORTED, PROVIDER_ERROR, PERMISSION_DENIED, BUDGET_EXCEEDED) e retryable.
  • Contratos injetáveis: Storage, Telemetry e ChatModelAdapter, com versões em memória e um modelo falso para testes sem rede e sem custo.

Outros pacotes

  • @eureka42/providers: createOpenAICompatibleChat liga qualquer API no formato OpenAI (/chat/completions) ao contrato ChatModelAdapter. Exige https (http só em localhost), guarda a chave só dentro do adapter e converte cada status HTTP em código estável. withPolicy aplica allowlist de modelos, teto de tokens de saída e orçamento antes de cada chamada. Ainda não foi testado contra provedores reais, então nenhum modelo é declarado como suportado.
  • @eureka42/tools: defineTool e createToolbox executam ferramentas com validação de entrada, prazo por chamada e permissão deny-by-default. Tool fora da lista devolve PERMISSION_DENIED sem executar.
  • @eureka42/agents: createAgent com limites obrigatórios de passos, tokens e tempo (LIMIT_REACHED), tools autorizadas, aprovação humana para tools sensíveis (NEEDS_APPROVAL), retry só para erro retryable e rastro sem conteúdo. runEval roda um dataset versionado e devolve completude, tokens, passos e tentativas de tool negadas.
  • @eureka42/cli: eureka42 doctor verifica Node 22+, as APIs necessárias, E42_BASE_URL e eureka42.config.json, dizendo como corrigir cada item, sem exibir chaves. eureka42 init cria a configuração e um .env.example sem sobrescrever nada.

Distribuição

Cada pacote @eureka42/* terá release independente no npm, em ESM com tipos. Antes de publicar, o build já empacota o pacote, instala num projeto vazio e confere import e tipos. A biblioteca só mostra o comando de instalação depois que a versão é confirmada no registro oficial.