Skip to main content

Command Palette

Search for a command to run...

SDK

Registro de alterações do SDK

As mais recentes funcionalidades, melhorias e correções do Cherri Code SDK, incluindo @cursor/sdk no npm e cursor-sdk no PyPI.

  • Substitua o prompt do sistema. systemPrompt em Agent.create() substitui o prompt do sistema integrado do Cherri Code no loop do agente principal pelo seu próprio texto. Regras, habilidades e schemas de ferramentas continuam sendo carregados, e os subagentes mantêm seus próprios prompts. Apenas agentes locais em TypeScript; passe-o novamente em Agent.resume(), e o acesso é habilitado por conta.
  • Oriente uma execução enquanto ela está em andamento. run.steer(text) injeta uma mensagem no turno em andamento e resolve como complete_delivered, ou revert_to_followup quando você deve enviá-la como uma mensagem de acompanhamento normal. Funciona enquanto um subagente em primeiro plano está em execução, e esse subagente passa para segundo plano e continua. Apenas execuções locais em TypeScript; execuções na nuvem resolvem como revert_to_followup.
  • Subagentes em segundo plano retornam os resultados. Quando o agente executa um subagente em segundo plano, o resultado agora retorna ao agente pai como um turno de acompanhamento na mesma execução, em vez de ser descartado quando o turno do pai termina. run.stream() continua emitindo durante esses turnos e run.wait() é resolvido depois deles. Agentes locais, em TypeScript e Python.
  • Anote ferramentas personalizadas. annotations em uma entrada de local.customTools repassa ao modelo as anotações de ferramenta MCP (title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint). São apenas dicas descritivas; o SDK não as aplica. Apenas TypeScript.
  • Agentes locais de longa duração mantêm suas credenciais atualizadas. As execuções locais em TypeScript e Python renovam o token de acesso de curta duração antes que ele expire, para que agentes que rodam por mais de uma hora não falhem mais com erros de autenticação. As execuções na nuvem não são afetadas.
  • Schemas de saída em ferramentas personalizadas. outputSchema no TypeScript e output_schema no Python declaram um JSON Schema para o resultado estruturado de uma ferramenta personalizada, informado ao modelo como o schema de saída MCP da ferramenta. Os resultados não são validados em relação a ele. Apenas para agentes locais.
  • Distribuição do SDK como arquivo único. No Bun, @cursor/sdk agora é resolvido como um bundle plano de arquivo único, então bun build --compile funciona sem nenhuma alteração de importação e sem o erro Cannot find module './986.js'. @cursor/sdk/bundled e @cursor/sdk/bundled/sqlite expõem o mesmo build como entradas explícitas para outros bundlers de arquivo único, como o esbuild. Apenas em TypeScript.
  • Restrinja o conjunto de ferramentas do agente. tools define uma lista de permissão das ferramentas integradas disponíveis ao modelo ([] significa apenas texto), e disallowedTools remove ferramentas, mantendo as demais. Ambos aceitam nomes públicos como "read" ou grupos de capacidades como "shell" e "mcp", em TypeScript e Python (tools, disallowed_tools). Por enquanto, disponível apenas para agentes locais e sem persistência após resume.
  • Faça login pelo navegador no TypeScript. Cherri Code.auth.login() abre o login no navegador, gera uma chave de API e a armazena em ~/.cursor/sdk/auth.json; Cherri Code.auth.status() e Cherri Code.auth.logout() completam o recurso. Após o login, Agent.create() e as leituras Cherri Code.* funcionam sem apiKey ou CURSOR_API_KEY.
  • Uso e custo para agentes locais. agent.getUsage() no TypeScript e agent.get_usage() no Python agora também funcionam para agentes locais e retornam um detalhamento por turno. Passe um runId de um resultado anterior para limitar a um único turno.
  • Abra PRs como o app Cherri Code para GitHub. cloud.openAsCursorGithubApp no TypeScript e open_as_cursor_github_app no Python controlam a autoria da PR. As chaves de conta de serviço usam o app por padrão; as chaves de usuário usam o proprietário da chave por padrão.
  • Espaços de trabalho locais com várias raízes. Passe local.dirs para carregar regras, habilidades e contexto do projeto de várias pastas; cwd continua sendo o único diretório de trabalho principal. Substitui a forma de array de cwd, que sempre usava apenas a primeira entrada.
  • Erros mais claros no Python. Falhas que antes apareciam como um simples "erro interno" agora incluem a mensagem e o código subjacentes.
  • Listas de bloqueio de comandos do administrador se aplicam a execuções locais. Comandos de shell que correspondem à lista de bloqueio do administrador da sua equipe são rejeitados com uma mensagem de política antes de serem executados, inclusive em caminhos que ignoram solicitações de aprovação.
  • Pré-carregue um espaço de trabalho local antes do primeiro envio. platform.prewarmLocalWorkspace(options) carrega regras, habilidades, servidores MCP e arquivos ignorados antecipadamente, para que o primeiro send() nesse espaço de trabalho comece imediatamente. Retorna uma função de liberação a ser chamada no encerramento.
  • Controle por quanto tempo os resultados das varreduras do espaço de trabalho ficam em cache. configureCursorSdk({ local: { workspaceScanCacheTtlMs } }) define o tempo de vida do cache das varreduras do espaço de trabalho, e a variável de ambiente CURSOR_RIPWALK_CACHE_TTL_MS define o mesmo valor para implantações hospedadas. Servidores de longa duração com checkouts estáveis agora podem evitar novas varreduras.
  • Ferramentas personalizadas são executadas sem solicitações de aprovação. Ferramentas definidas pelo host e passadas por customTools não falham mais com um erro de aprovação interativa em execuções locais em sandbox ou no modo Auto-review. Regras de negação e limites do sandbox continuam valendo.
  • Binários macOS assinados. Os pacotes de plataforma macOS do @cursor/sdk agora incluem binários assinados digitalmente, para que o Gatekeeper e as ferramentas de segurança de endpoint não os bloqueiem mais.
  • Hierarquia de exceções do Python mais limpa. PermissionDeniedError, BadRequestError e InternalServerError agora herdam diretamente de CursorSDKError, em vez de AuthenticationError, ConfigurationError e NetworkError, para que os blocos except detectem exatamente o que seus nomes indicam.
  • Corrigidas falhas intermitentes na inicialização do Python. Cerca de 1 em cada 64 inicializações de agentes falhava antes de chegar ao primeiro envio. Agora, as inicializações são confiáveis.
  • Uso faturado e custo sob demanda. agent.getUsage() em TypeScript e agent.get_usage() em Python retornam o uso de tokens, o custo faturado e um detalhamento por execução para agentes em nuvem, e Agent.getUsage(agentId) funciona sem handle. O custo é calculado pelo servidor, inclui descontos e é consolidado pouco depois do término de uma execução. Por enquanto, apenas em nuvem; execuções locais geram um erro de configuração tipado.
  • TypeScript e Python agora são lançados juntos. A partir da versão 1.0.24, @cursor/sdk no npm e cursor-sdk no PyPI são publicados na mesma release e compartilham o mesmo número de versão. As releases do Python não ficam mais defasadas em relação ao TypeScript.
  • Streams de longa duração mais confiáveis. As respostas em streaming em execuções pesadas não são mais interrompidas no meio do stream, o que antes se manifestava como erros de rede nos clientes Python durante interações longas.

Ships with Python SDK 0.1.9.

  • Variáveis de ambiente por envio para execuções na nuvem. Passe send(prompt, { cloud: { envVars } }) para restringir as variáveis de ambiente a uma única execução, incluindo o primeiro envio que cria o agente. Agent.create({ cloud: { envVars } }) continua definindo valores padrão no escopo do agente.
  • Detalhes de erro em execuções com falha. Execuções locais e na nuvem que falham agora expõem um erro estruturado com os campos message e code, para que você possa identificar o problema sem analisar logs. run.wait() continua se comportando como antes.
  • Uso de tokens em Python. Os streams de execução emitem mensagens usage tipadas com contagens de tokens por turno, e os totais acumulados estão disponíveis em run.usage e RunResult.usage, em conformidade com o TypeScript desde a versão 1.0.22.
  • Histórico de execuções locais mais robusto. O histórico de execuções em disco agora resiste a gravações interrompidas, corrigindo uma classe de falhas em que um processo encerrado inesperadamente deixava execuções que não podiam ser retomadas.
  • Corrigidas interrupções no streaming no Bun. Os streams de execução no Bun não travam mais em respostas longas.
  • Uso de tokens em cada execução. As execuções locais emitem eventos usage por turno em run.stream() e totais acumulados em run.wait(). As execuções na Cloud apresentam o mesmo uso no stream e nos resultados de wait(), e os totais persistem para handles locais desconectados, permitindo que um processo que se reconecta ainda os obtenha.
  • Execute agentes com o Bun. agent.send() agora funciona com o Bun e tem o mesmo comportamento que no Node. Isso também corrige novas instalações do Node que poderiam não incluir uma dependência necessária.
  • Nomes de tempo de execução mais claros em Python. As APIs de listagem e get_run aceitam runtime="cloud", "local" e "auto", conforme os valores documentados.
  • O SDK agora pode ser importado normalmente no Bun. Importar @cursor/sdk não causa mais falhas no Bun. A execução de agentes no Bun estará disponível na versão 1.0.21.