* fix(telemetry): track sdk harness name in SessionCreatedEvent
SDK sessions (claude-sdk, openai-agents, codex, etc.) previously emitted
`harness: null` on the SessionCreatedEvent because only native agents have
a `native_agent.harness` attribute. Fall back to `_resolve_harness(conv)`,
which already handles harness_override and spec lookup, so every harness
kind is now represented in telemetry.
Signed-off-by: Tomu Hirata <tomu.hirata@gmail.com>
* deps(policies): migrate CEL evaluation from cel-expr-python to cel-python
cel-expr-python had no wheels for Linux aarch64 or macOS x86_64, requiring
a platform conditional in pyproject.toml and graceful degradation. cel-python
(cloud-custodian/cel-python) is pure Python and ships on all platforms.
- Replace cel-expr-python with cel-python>=0.5 (unconditional dependency)
- Rewrite omnigent/policies/builtins/cel.py to use the celpy API:
- celpy.Environment() + env.compile() + env.program() for compile phase
- prog.evaluate({"event": celpy.json_to_cel(event)}) for eval phase
- CELParseError / CELEvalError for specific exception handling
- Direct MapType key lookup (key in result / result[key]) rather than
converting the whole map to strings
- Remove platform restriction notes from deploy READMEs
- Update NOTICE attribution URL
Signed-off-by: Tomu Hirata <tomu.hirata@gmail.com>
* chore: update uv.lock and apply pre-commit fixes for cel-python migration
Signed-off-by: Tomu Hirata <tomu.hirata@gmail.com>
---------
Signed-off-by: Tomu Hirata <tomu.hirata@gmail.com>
Adds the dependencies missing from the first NOTICE: cel-expr-python
(Apache-2.0), modal (Apache-2.0), daytona (Apache-2.0), opentelemetry-distro
(Apache-2.0), tomlkit (MIT), and psutil (BSD-3) — the three core deps plus
the optional extras now covered.
Co-authored-by: Isaac
Add the NOTICE file attributing the third-party Python dependencies
distributed with the project, grouped by license (Apache-2.0 / MIT /
BSD-3 / ISC / LGPL-3.0). COPY LICENSE + NOTICE into the Docker builder
stage so the published host/runtime images carry the attribution (the
image redistributes the dependency bytes baked in at install time); the
PyPI wheel picks NOTICE up via setuptools' default license-files glob.
Co-authored-by: Isaac
CITATION.cff never advanced past unfilled placeholders; NOTICE was a
stale placeholder (Apache-2.0 requires none for first-party code). The
third-party attribution file is tracked separately. Scoped to just these
two removals for launch; other upstream changes sync later.