---
name: alibaba-custom-engine-e2e-fixture
description: "This directory is a minimal skill-up fixture that exercises the **Custom"
license: "Apache-2.0"
metadata:
  decimalai-skill-id: "c537dbd6-805b-4d49-b2e7-8b3e65af3ff5"
  decimalai-version-id: "0e1de6bd-d5ac-4544-bf08-9570016e9c1a"
  decimalai-version: "2"
  decimalai-body-sha256: "d2f22eabae801caecc15a8a3ddba45b09c63ff6eb3c622096ffb45b3b6a9167c"
  decimalai-name: "alibaba/custom-engine-e2e-fixture"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-source: "https://app.decimal.ai/s/alibaba-custom-engine-e2e-fixture@2/SKILL.md"
---
# Custom Engine e2e fixture

This directory is a minimal skill-up fixture that exercises the **Custom
Engine** local and http transports end-to-end. It is consumed by
`e2e/custom_engine_test.go`.

`agent.sh` + `evals/eval.yaml` cover the **local** transport: `agent.sh` is a
deterministic stand-in for a real custom agent that reads the `SessionInput`
JSON the framework writes to `${input_file}` and emits a fixed `SessionResult`
on stdout. The case asserts that `final_message` flows from the agent's stdout
into the report.

`evals/eval-http.yaml` exercises the **http** transport against the same
`hello.yaml` case. `TestPipeline_CustomEngine_HTTPTransport` starts an
in-process `httptest` server, points `${CUSTOM_AGENT_ENDPOINT}` at it, and
asserts the posted `SessionInput` reaches the server and the returned
`SessionResult` flows into the report — so the http stand-in agent lives in the
test rather than in `agent.sh`.

The `eval-stateful-*.yaml` fixtures exercise opt-in stateful conversations for
both transports, including session-ID propagation, per-turn post-conditions,
capture, substitution, and a final response that needs no continuation ID.
