Add azure.ai.loom CLI support for Foundry experiment tracking APIs
- Dominant language
- Go
- Stars
- 569
- Forks
- 364
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 136
Description
Add a standalone first-party `azure.ai.loom` extension for the Microsoft Foundry experiment-tracking data plane. The extension keeps the established `azure.ai.projects` surface unchanged and exposes all experiment operations under `azd ai loom run`.
## CLI surfaces
### Run inspection
- [x] `azd ai loom run list`
- [x] `azd ai loom run history-keys --run-id `
- [x] `azd ai loom run summary --run-id `
- [x] `azd ai loom run metrics --run-id `
- [x] `azd ai loom run system-metrics --run-id --name `
- [x] `azd ai loom run logs --run-id `
- [x] `azd ai loom run log-records --run-id `
- [x] `azd ai loom run compare --run-id --run-id --metric `
### Traces and spans
- [x] `azd ai loom run trace list --run-id `
- [x] `azd ai loom run trace show --run-id --trace-id `
- [x] `azd ai loom run trace chat --run-id --trace-id `
- [x] `azd ai loom run span query --run-id `
Span queries support inline filters (`--filter`), filter files (`--filter-file`), complete request bodies (`--request-file`), detailed results (`--include-details`), and result limits (`--limit`).
### OpenTelemetry ingestion
- [x] `azd ai loom run ingest metrics --run-id --file `
- [x] `azd ai loom run ingest logs --run-id --file `
- [x] `azd ai loom run ingest traces --run-id --file `
- [x] `azd ai loom run ingest agent-traces --run-id --file `
OTLP metrics, logs, and traces accept protobuf payloads. Agent traces accept JSON. All ingestion commands support `--file -` for stdin and reject empty payloads.
### W&B compatibility
- [x] `azd ai loom run wandb graphql --file `
- [x] `azd ai loom run wandb file-stream --run-id --file `
## Shared behavior
- [x] Resolve the project endpoint from `--project-endpoint`, the active azd environment, compatible `azure.ai.projects` context, or host environment variables.
- [x] Allow Loom to run independently of the `azure.ai.projects` extension.
- [x] Derive the project ID from `/api/projects/{projectId}`, with `--project-id` override support.
- [x] Default to Microsoft Entra bearer authentication using `https://ai.azure.com/.default`.
- [x] Support `AZURE_AI_PROJECT_API_KEY` as an explicit project data-plane authentication override.
- [x] Support `--api-version` overrides.
- [x] Emit complete JSON responses for automation.
- [x] Preserve escaped path identifiers and large JSON numbers in request files.
- [x] Include unit tests, extension build/release wiring, and usage documentation.
Implemented by #9795. Official extension-registry publication will follow the normal release handoff.
Contributor guide
Research direction
Start by reviewing the implementation referenced in #9795 and compare it with the listed `azd ai loom run` command surfaces and shared behaviors. Verify the mentioned unit tests, extension build and release wiring, and usage documentation; completion is represented by the checked CLI, ingestion, compatibility, authentication, and response requirements.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, go
- Domain
- ai, api, cli, cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 15/100