You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 1f07d7c
Browse filesBrowse the repository at this point in the historyBrowse files
## Summary
- Add an optional `tools` argument to `@control` for static definitions
or a dynamic provider. Tool definitions are included only on LLM steps;
omitting `tools` preserves existing decorator behavior.
- Build canonical Galileo Core records from the complete Agent Control
`Step` tree. `Trace.children` map to spans, `Session.children` map to
traces, and tool/retriever children map to nested spans.
- Use `Step.children` as the only source of execution hierarchy. Reject
hierarchy fields in `Step.context` while preserving ordinary metadata.
- Have Luna send the legacy `inputs` together with a canonical `record`
when a supported runtime `Step` is available. Selector-selected values
are passed into the shared records factory; the existing
`ScorerInvokeRecord` request model and legacy request shape remain
unchanged.
- Normalize record fields with `galileo-core` models and cover
serialization, request-model validation, and Core-model revalidation in
tests.
## Scope
- User-facing/API changes: optional keyword-only `tools` on `@control`,
accepting static definitions or a `(args, kwargs)` provider; SDK
documentation updated. Existing calls without tools remain compatible.
- Internal changes: recursive Galileo record conversion from
`Step.children`; Luna structured-record dual-write alongside legacy
inputs; field-level normalization and request validation; regression
tests.
- Out of scope: calling Orbit's `execute_scorer`, `tool_calls`,
Agent/Workflow/Control nested spans, framework-specific integrations,
persistence, and changes to Orbit or Luna's public request/response
contracts. The scorer version remains caller-supplied; the client does
not infer one.
## Risk and Rollout
- Risk level: moderate. Luna requests continue to include legacy inputs,
and no database schema changes are included.
- Rollback plan: revert this PR. No data migration is required.
## Testing
- [x] Added or updated tests for `@control` tools, `Step.children`
record trees, context hierarchy rejection, Luna request serialization,
and Galileo Core serialization/revalidation.
- [x] Galileo package test suite: 187 passed using the existing package
virtual environment.
- [x] Ruff, mypy, and `git diff --check` passed for the changed package
files.
- [ ] Repo-wide `make check` could not start because the configured
Artifactory package index returned 403 while resolving `google-re2`.
- [ ] Fresh CI is pending for the updated PR head. The previous run was
against the pre-fix head and reported five Galileo test failures plus a
generated TypeScript client check failure.
- [ ] Manually verified behavior; validation is through automated tests
and code review.
## Checklist
- [x] Issue/spec: SAO-17516 (referenced in the PR title).
- [x] Updated SDK documentation for the decorator API and direct Step
construction.
- [x] Follow-up noted: wiring Luna to Orbit's `execute_scorer` path and
adding `tool_calls` are separate work.
0 commit comments