Skip to content

feat: add OpenAI-compatible tool call contract - #15

Draft
Super-Sky wants to merge 1 commit into
codex/app-agent-run-api-issue-7from
codex/openai-tool-calls-issue-8
Draft

Super-Sky wants to merge 1 commit into
codex/app-agent-run-api-issue-7from
codex/openai-tool-calls-issue-8

Conversation

@Super-Sky

Copy link
Copy Markdown
Owner

Summary

  • convert OpenAI-compatible function schemas and tool_choice into Athena's provider-neutral runtime contract
  • capture ordered multi-round tool calls, stable IDs, correlated results, errors, and timing from the Eino graph-native loop
  • expose ordered assistant/tool messages plus compatibility tool_calls and tool_results
  • persist redacted call/result traces without raw arguments or tool output
  • publish typed OpenAPI schemas and synchronized bilingual documentation

Scope

This PR completes the Athena-side contract in issue #8 for tools already registered in Athena.

It deliberately does not add fund-specific objects or remote business tool execution. App-owned registration, HTTP callbacks, timeout/retry, and governance execution remain issue #9.

Stack

Validation

  • env -u APP_ENV go test ./...
  • go test -race ./internal/runtime ./internal/server
  • go vet ./internal/app ./internal/server
  • go test ./internal/runtime -run '^$' -bench '^BenchmarkToolCallTranscriptRegisterAndCorrelate$' -benchmem -count=3
  • PATH=$HOME/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/bin:$PATH npm run build
  • python3 scripts/check_no_absolute_paths.py
  • local health, typed OpenAPI, and invalid-schema HTTP smoke on port 8091
  • Codex in-app Browser confirmed the local Swagger UI loaded; the large Swagger DOM inspection timed out, so contract fields were verified from the live OpenAPI JSON endpoint

go vet ./internal/runtime still reports the pre-existing EinoGraphFoundation contains sync.Mutex value-copy warnings; the same warnings reproduce on the base branch.

Refs #8

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.

1 participant