Skip to content

docs(functions): sessão de agente da 0.3.0 no README e reexport dos tipos novos do Core (#74) - #75

Closed
JoaoLuisQuirino wants to merge 5 commits into
mainfrom
docs/74-session-docs-reexport
Closed

JoaoLuisQuirino wants to merge 5 commits into
mainfrom
docs/74-session-docs-reexport

Conversation

@JoaoLuisQuirino

@JoaoLuisQuirino JoaoLuisQuirino commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Closes #74

O que muda

  • Reexport: src/index.ts passa a reexportar cinco tipos novos do Core 0.3.0 que aparecem na superfície que o pacote já expõe: AgentBackgroundTask (session.backgroundTasks, sugestão do review no chore(release): functions-sdk 0.3.0 com o sdk-core 0.3.0 (#72) #73), AgentSubagent e AgentSubagentStatus (session.subagents), AgentSubagentFrame (o subagent do item tool do history) e AgentMessageListOptions (agentTasks.listMessages). Antes, para nomear esses tipos, a Function precisava importar do @mitralab.io/sdk-core.
  • README: seção "Sessão de agente" com o envio durante a resposta (sem mode o T3 decide; mode: "queue" | "steer"), a fila do T3 (queue, steerQueueItem, editQueueItem, removeQueueItem, clearQueue, resumeQueue), steered, backgroundTasks, subagents e stopSubagent, e o history que cresce ao vivo, com os kinds novos da 0.3.0 (reasoning, approval, userInputRequest e texto de subagente como agent com parentToolId). O mode só vale no canal da box; pelo Copilot a mensagem sai sem ele. Exemplo completo com sendAndWait e session.close().
  • Versão: 0.3.1-beta.0 com entrada no CHANGELOG, como no feat(functions): reexporta o uso do turno do sdk-core 0.2.11-beta.0 (#50) #51. Sem publicar. Os nomes foram conferidos no index.d.ts do @mitralab.io/sdk-core@0.3.0 publicado.

Só tipos, documentação e versão: nenhum comportamento muda, e quem usa a 0.3.0 não vê diferença em runtime.

O que ficou de fora, e por quê

Os outros tipos novos do Core 0.3.0 (AgentHistoryCursor, AgentPieceIdentity, AgentTimelineItemIdentity) são peças internas de tipos já reexportados (cursor do eventSource e mixins de identidade dos eventos e dos itens). AgentTaskRuntime e AgentCredentialScope, que já existiam antes e a platform-sdk 1.7.0 reexporta, ficaram para o #76. Quem escreve uma Function não precisa nomeá-los, e a platform-sdk 1.7.0 também não os reexporta.

Prova

scripts/check-declarations.mjs passa a exigir os cinco nomes no dist/index.d.ts e no dist/index.d.cts. Sem o reexport, com o src/index.ts da main:

Error: ...\dist\index.d.ts is missing required native declarations: AgentBackgroundTask, AgentMessageListOptions, AgentSubagent, AgentSubagentStatus

(a primeira rodada, antes do AgentSubagentFrame entrar no check). Com o reexport dos cinco: Declaration export checks passed for all 204 legacy symbols and 7 required native symbols in ESM and CommonJS. O npm run check inteiro passou local (142 testes).

🤖 Generated with Claude Code

JoaoLuisQuirino and others added 2 commits October 23, 2026 04:24
…ubagentStatus e AgentMessageListOptions do Core 0.3.0 (#74)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e, fila do T3, backgroundTasks, subagentes e history ao vivo (#74)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JoaoLuisQuirino
JoaoLuisQuirino requested a review from a team as a code owner October 23, 2026 07:26
Comment thread README.md Outdated
session.send("Inclua os cancelados", { mode: "queue" })
```

- `send(prompt, options?)` manda na hora e devolve o `clientMessageId` da mensagem, ou `undefined` para texto em branco, que não sai. Sem turno rodando, a mensagem abre um turno. Com turno rodando e sem `mode`, o T3 decide como no composer dele: entra no turno em andamento quando o provedor aceita steer, ou espera na fila do T3. `mode: "steer"` pede o turno em andamento (o T3 recusa enquanto ele ainda não está rodando) e `mode: "queue"` pede a fila. `sendAndWait` aceita as mesmas opções e resolve com o turno que respondeu a mensagem.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Major: qualifique a garantia de mode. O texto afirma que steer e queue escolhem o destino da mensagem, mas no Core 0.3.0 o fallback pelo Copilot monta a mensagem sem esse campo (src/agentSession.ts, linhas 1435-1472 da tag v0.3.0). Documente que a escolha não é garantida quando o canal direto está indisponível. Se a garantia for requisito, a mudança necessária é no Core, fora deste PR.

"AgentBackgroundTask",
"AgentMessageListOptions",
"AgentSubagent",
"AgentSubagentStatus",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: a checagem confirma que os quatro nomes aparecem nas declarações ESM e CommonJS, mas não prova que um consumidor TypeScript consiga importá-los do pacote instalado. A issue #74 pede que os tipos sejam consumíveis. Acrescente os imports ao smoke test TypeScript para demonstrar esse contrato nas duas modalidades. Isso é uma prova adicional, não evidência de que os reexports atuais estejam quebrados.

@gandalf-the-grey-bot

gandalf-the-grey-bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Gandalf, análise 1 · commit 3ae48df

Pega-rápido: a issue #74 pede tornar quatro tipos públicos do Core importáveis pelo SDK e documentar a sessão. O diff atende ao escopo sem alterar o comportamento de runtime.

Insights: o mérito está claro e a solução é pequena, sem duplicar implementação. A principal ressalva é a documentação prometer comportamento de mode que o fallback do Core não preserva.

Forma: os reexports, README e verificação de declarações estão nos pontos esperados. Qualidade boa, com dois ajustes delimitados; não identifiquei impacto novo em segurança ou escalabilidade.

Findings: 1 major na garantia documentada de mode; 1 minor para provar a importação dos tipos em um consumidor TypeScript. Detalhes e evidências estão nos comentários de linha.

Build & Test passou no SHA revisado. Confiança alta nos contratos de tipo e no fallback examinados.

Decisão: mergeável do ponto de vista de execução, sem mudança de runtime neste diff. Recomendo corrigir a ressalva da documentação antes de tratar o comportamento de mode como garantia.

Para uma nova análise depois de mudanças, comente /gandalf no PR ou me chame no Slack.

JoaoLuisQuirino and others added 3 commits October 23, 2026 06:22
…l do history (#74)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, kinds novos do history e stopSubagent so pela box (#74)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… README (#74)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JoaoLuisQuirino

Copy link
Copy Markdown
Contributor Author

Incluido no #80 (functions-sdk 0.3.1, publicada).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Documentar a sessão de agente da 0.3.0 e reexportar os tipos novos do Core

2 participants