Files
wehub-resource-sync 426e9eeabd
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
ci / test (push) Has been cancelled
ci / lint-and-format (push) Has been cancelled
ci / build (push) Has been cancelled
ci / dev-startup (push) Has been cancelled
gitleaks / gitleaks (push) Has been cancelled
Markdown Links / Relative Markdown Links (push) Has been cancelled
Quality (Extended) / Homepage Build (PR smoke) (push) Has been cancelled
Quality (Extended) / Comment-only diff guard (push) Has been cancelled
Quality (Extended) / Format + Type Safety Ratchet (push) Has been cancelled
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Has been cancelled
Quality (Extended) / Develop Gate (lint) (push) Has been cancelled
Chat shell gestures / Chat shell gesture + parity e2e (push) Has been cancelled
Cloud Gateway Discord / Test (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Has been cancelled
Build Agent Image / build-and-push (push) Has been cancelled
Dev Smoke / bun run dev onboarding chat (push) Has been cancelled
Dev Smoke / Vite HMR dependency-level smoke (push) Has been cancelled
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Has been cancelled
Publish @elizaos/example-code / check_npm (push) Has been cancelled
Publish @elizaos/example-code / publish_npm (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / verify_version (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / publish_npm (push) Has been cancelled
Sandbox Live Smoke / Sandbox live smoke (push) Has been cancelled
Snap Build & Test / Build Snap (amd64) (push) Has been cancelled
Snap Build & Test / Build Snap (arm64) (push) Has been cancelled
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Has been cancelled
Cloud Gateway Webhook / Test (push) Has been cancelled
Cloud Tests / lint-and-types (push) Has been cancelled
Cloud Tests / unit-tests (push) Has been cancelled
Cloud Tests / integration-tests (push) Has been cancelled
Cloud Tests / e2e-tests (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Apps Worker (Product 2) / Determine environment (push) Has been cancelled
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Has been cancelled
Deploy Eliza Provisioning Worker / Determine environment (push) Has been cancelled
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Has been cancelled
Dev Smoke / Classify changed paths (push) Has been cancelled
supply-chain / sbom (push) Has been cancelled
supply-chain / vulnerability-scan (push) Has been cancelled
Build, Push & Deploy to Phala Cloud / build-and-push (push) Has been cancelled
Test Packaging / Validate Packaging Configs (push) Has been cancelled
Test Packaging / Build & Test PyPI Package (push) Has been cancelled
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Has been cancelled
Test Packaging / Pack & Test JS Tarballs (push) Has been cancelled
UI Fixture E2E / ui-fixture-e2e (push) Has been cancelled
UI Fixture E2E / fixture-e2e (push) Has been cancelled
UI Story Gate / story-gate (push) Has been cancelled
vault-ci / test (macos-latest) (push) Has been cancelled
vault-ci / test (ubuntu-latest) (push) Has been cancelled
vault-ci / test (windows-latest) (push) Has been cancelled
vault-ci / app-core wiring tests (push) Has been cancelled
verify-patches / verify patches/CHECKSUMS.sha256 (push) Has been cancelled
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Has been cancelled
Voice Benchmark Smoke / voice bench smoke summary (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Has been cancelled
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

327 lines
9.5 KiB
Python

import pytest
from format_for_training import format_record
from privacy_filter_trajectories import PrivacyFilterError
def _attested(row, *, passed: bool = True):
metadata = row.setdefault("metadata", {})
metadata["privacy_attestation"] = {
"schema": "eliza.privacy_filter_attestation.v1",
"version": 1,
"source": "unit",
"redacted": True,
"reviewed": True,
"passed": passed,
}
return row
def test_format_record_renders_native_text_response():
row = _attested({
"format": "eliza_native_v1",
"boundary": "vercel_ai_sdk.generateText",
"request": {
"messages": [
{"role": "system", "content": "system prompt"},
{"role": "user", "content": "user prompt"},
]
},
"response": {
"text": '{"messageHandler":{"action":"RESPOND","contexts":[]}}'
},
"metadata": {"task_type": "should_respond"},
})
formatted = format_record(row)
assert formatted == {
"messages": [
{"role": "system", "content": "system prompt"},
{"role": "user", "content": "user prompt"},
{
"role": "assistant",
"content": '{"messageHandler":{"action":"RESPOND","contexts":[]}}',
},
]
}
def test_format_record_renders_native_tool_call_response():
row = _attested({
"format": "eliza_native_v1",
"boundary": "vercel_ai_sdk.generateText",
"request": {
"messages": [{"role": "user", "content": "send a reply"}],
"tools": {
"reply": {
"description": "Send a reply",
"parameters": {"type": "object", "properties": {}},
}
},
},
"response": {
"text": "",
"toolCalls": [
{
"toolCallId": "tc-1",
"toolName": "reply",
"input": {"text": "hi"},
}
],
},
"metadata": {"task_type": "action_planner"},
})
formatted = format_record(row)
assert formatted is not None
assert formatted["tools"] == row["request"]["tools"]
assert formatted["messages"][-1] == {
"role": "assistant",
"content": "",
"tool_calls": [
{
"id": "tc-1",
"type": "function",
"function": {
"name": "reply",
"arguments": '{"text": "hi"}',
},
}
],
}
def test_format_record_prepends_native_request_system():
row = _attested({
"format": "eliza_native_v1",
"boundary": "vercel_ai_sdk.generateText",
"request": {
"system": "system prompt",
"messages": [{"role": "user", "content": "user prompt"}],
},
"response": {"text": "assistant response"},
"metadata": {"task_type": "response"},
})
formatted = format_record(row)
assert formatted == {
"messages": [
{"role": "system", "content": "system prompt"},
{"role": "user", "content": "user prompt"},
{"role": "assistant", "content": "assistant response"},
]
}
def test_format_record_renders_native_system_prompt_request():
row = _attested({
"format": "eliza_native_v1",
"boundary": "vercel_ai_sdk.generateText",
"request": {
"system": "system prompt",
"prompt": "user prompt",
},
"response": {"text": "assistant response"},
"metadata": {"task_type": "response"},
})
formatted = format_record(row)
assert formatted == {
"messages": [
{"role": "system", "content": "system prompt"},
{"role": "user", "content": "user prompt"},
{"role": "assistant", "content": "assistant response"},
]
}
def test_format_record_rejects_prompt_only_native_rows():
row = {
"format": "eliza_native_v1",
"boundary": "vercel_ai_sdk.generateText",
"request": {
"messages": [
{"role": "system", "content": "system prompt"},
{"role": "user", "content": "user prompt"},
]
},
"response": {"text": ""},
"metadata": {"task_type": "response"},
}
assert format_record(row) is None
def test_format_record_rejects_native_rows_without_model_boundary():
row = {
"format": "eliza_native_v1",
"request": {
"messages": [{"role": "user", "content": "user prompt"}],
},
"response": {"text": "assistant response"},
"metadata": {"task_type": "response"},
}
assert format_record(row) is None
def test_format_record_rejects_unattested_native_rows():
row = {
"format": "eliza_native_v1",
"boundary": "vercel_ai_sdk.generateText",
"request": {"messages": [{"role": "user", "content": "hello"}]},
"response": {"text": "hi"},
"metadata": {"task_type": "response"},
}
with pytest.raises(PrivacyFilterError, match="lacks privacy attestation"):
format_record(row)
def test_format_record_rejects_failed_native_privacy_attestation():
row = _attested(
{
"format": "eliza_native_v1",
"boundary": "vercel_ai_sdk.generateText",
"request": {"messages": [{"role": "user", "content": "hello"}]},
"response": {"text": "hi"},
"metadata": {"task_type": "response"},
},
passed=False,
)
with pytest.raises(PrivacyFilterError, match="lacks privacy attestation"):
format_record(row)
def test_format_record_allows_unattested_native_rows_with_operator_override(
monkeypatch: pytest.MonkeyPatch,
):
row = {
"format": "eliza_native_v1",
"boundary": "vercel_ai_sdk.generateText",
"request": {"messages": [{"role": "user", "content": "hello"}]},
"response": {"text": "hi"},
"metadata": {"task_type": "response"},
}
monkeypatch.setenv("ELIZA_TRAINING_PRIVACY_OVERRIDE_REASON", "unit test raw fixture")
formatted = format_record(row)
assert formatted == {
"messages": [
{"role": "user", "content": "hello"},
{"role": "assistant", "content": "hi"},
]
}
def test_format_record_accepts_eliza1_trajectory_record():
row = {
"schema": "eliza.eliza1_trajectory_record.v1",
"id": "traj-1",
"split": "train",
"task": "action_planner",
"target": {"sftFormat": "messages"},
"messages": [
{"role": "user", "content": "send a reply"},
{
"role": "assistant",
"content": "",
"tool_calls": [
{
"id": "call-1",
"type": "function",
"function": {
"name": "reply",
"arguments": '{"text":"hi"}',
},
}
],
},
],
"tools": [
{
"type": "function",
"function": {
"name": "reply",
"description": "Send a reply",
"parameters": {"type": "object", "properties": {}},
},
}
],
"actions": [],
"quality": {"success": True},
"source": {"dataset": "unit"},
"metadata": {},
}
formatted = format_record(row)
assert formatted is not None
assert formatted["tools"] == row["tools"]
assert formatted["messages"][-1]["tool_calls"][0]["function"]["name"] == "reply"
def test_format_record_rejects_repair_eval_trajectory_record():
row = {
"schema": "eliza.eliza1_trajectory_record.v1",
"id": "repair-1",
"split": "repair_eval",
"task": "response",
"target": {"sftFormat": "messages"},
"messages": [
{"role": "user", "content": "hello"},
{"role": "assistant", "content": "failed answer"},
],
"tools": [],
"actions": [],
"quality": {"success": False},
"source": {"dataset": "unit"},
"metadata": {},
}
assert format_record(row) is None
def test_format_record_accepts_plain_chat_messages_row():
row = {
"messages": [
{"role": "system", "content": "system prompt"},
{"role": "user", "content": "hello"},
{"role": "assistant", "content": "hi"},
],
"metadata": {"source_dataset": "unit"},
}
assert format_record(row) == {"messages": row["messages"]}
def test_format_record_accepts_flat_eliza_record_compatibility():
row = {
"roomName": "room",
"agentId": "Eliza",
"memoryEntries": [],
"currentMessage": {
"role": "user",
"speaker": "u",
"content": "hello",
"channel": "dm",
},
"expectedResponse": "hi",
"availableActions": ["REPLY"],
"metadata": {"task_type": "reply", "source_dataset": "unit"},
}
formatted = format_record(row)
assert formatted is not None
assert formatted["messages"][0]["role"] == "system"
assert "Available actions: REPLY" in formatted["messages"][0]["content"]
assert formatted["messages"][-2] == {"role": "user", "content": "hello"}
assert formatted["messages"][-1] == {"role": "assistant", "content": "hi"}