Merge remote-tracking branch 'origin/master' into worktree/provider-routed-llm-adapters
# Conflicts: # docs/config-catalog.md # docs/cordis-catalog/events.md # docs/cordis-catalog/services.md # docs/core-data-structures/core.md # docs/event-producer-consumer.md # docs/persistence-catalog.md # examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl # examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl # examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl # examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl # examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl # examples/acp-agent/tests/snapshots/skill-load/session.jsonl # examples/acp-agent/tests/snapshots/text-turn/session.jsonl # examples/sandbox-acp-agent/cordis.yml # examples/sandbox-acp-agent/tests/snapshots/escalation-approved/session.jsonl # examples/sandbox-acp-agent/tests/snapshots/escalation-rejected/session.jsonl # examples/sandbox-acp-agent/tests/snapshots/mode-switching/session.jsonl # packages/compact/compact-basic/README.md # packages/compact/compact-basic/src/index.ts # packages/compact/compact-basic/tests/compact-basic.spec.ts # packages/core/agent-loop/README.md # packages/core/agent-loop/src/loop.ts # packages/core/agent-loop/tests/properties.spec.ts # packages/core/session/README.md # packages/core/session/src/types.ts # packages/core/session/tests/derived-cache.spec.ts # packages/llm/llm-deepseek/src/index.ts # packages/llm/llm-pi-ai/README.md # packages/llm/llm-pi-ai/src/adapter.ts # packages/llm/llm-pi-ai/src/convert.ts # packages/llm/llm-pi-ai/tests/adapter.spec.ts # packages/llm/llm/README.md # packages/llm/llm/src/call-config.ts # packages/llm/llm/src/index.ts # packages/ui/acp-agent/src/index.ts # packages/ui/acp/tests/harness.ts # packages/ui/jsonrpc/README.md # packages/ui/jsonrpc/src/server.ts # packages/ui/stdio-agent/README.md # packages/ui/stdio-agent/src/index.ts # python/sdk/README.i18n.yaml
This commit is contained in:
@@ -1,12 +1,7 @@
|
||||
"""Manual keyless smoke: drive the repo-source jsonrpc-agent bin (node + tsx).
|
||||
"""Drive the repo-source JSON-RPC bin through the SDK and a keyless mock SSE server.
|
||||
|
||||
Runs the SDK against `packages/ui/jsonrpc-agent/src/bin.ts` executed from the
|
||||
repo checkout (requires `pnpm install`; no build, no API key — the model
|
||||
endpoint is a local mock SSE server). The bin only boots the supplied
|
||||
cordis.yml — the stdio JSON-RPC server itself comes from the config's
|
||||
`@deepseek-ai/dsh-jsonrpc` entry — so the runtime package's default cordis.yml
|
||||
is passed explicitly. Not collected by pytest; run it directly:
|
||||
`python tests/manual_sdk_agent_smoke.py`.
|
||||
Requires ``pnpm install`` but no build. This manual test is not collected by
|
||||
pytest; run ``python tests/manual_sdk_agent_smoke.py``.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
"""Smoke tests against the bundled dsh-jsonrpc-agent artifacts.
|
||||
"""Keyless boot tests for the production exe and development node carrier.
|
||||
|
||||
These boot the runtime the way an installed SDK does, once per bundled
|
||||
carrier: the platform single-file exe (production) and the dev-only node
|
||||
closure under ``runtime/node`` driven by system ``node``. Each carrier skips
|
||||
independently when its artifact is absent on this machine — build or fetch it
|
||||
per the FileNotFoundError guidance quoted in the skip reason. Keyless: the
|
||||
dummy DEEPSEEK_API_KEY only satisfies the adapter's load-time check;
|
||||
initialize/shutdown never call a model.
|
||||
Each carrier skips independently when absent. The dummy API key only satisfies
|
||||
adapter loading; initialize and shutdown do not call a model.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
@@ -21,8 +16,7 @@ from deepseek_harness_runtime import resolve_bundled_launch_args
|
||||
|
||||
_MODES = ("exe", "node")
|
||||
|
||||
# The serving surface is itself a plugin: without the dsh-jsonrpc entry the
|
||||
# runtime boots an agent nobody can talk to and exits 0 on stdin EOF.
|
||||
# The config must include the JSON-RPC serving plugin.
|
||||
_CORDIS_YML = """\
|
||||
- id: jsonrpc
|
||||
name: '@deepseek-ai/dsh-jsonrpc'
|
||||
@@ -57,9 +51,7 @@ def _client(tmp_path: Path, launch_args: tuple[str, ...]) -> HarnessClient:
|
||||
"DSH_CORDIS_CONFIG": "./cordis.yml",
|
||||
"DSH_SESSION_ROOT": str(tmp_path / "sessions"),
|
||||
"DSH_CWD": str(tmp_path),
|
||||
# initialize() lazily mounts the llm-deepseek adapter for the
|
||||
# requested model; a dummy key keeps the keyless boot green
|
||||
# (initialize/shutdown never call the model).
|
||||
# The lazily mounted adapter requires a key even without a model call.
|
||||
"DEEPSEEK_API_KEY": "sk-dummy-for-boot",
|
||||
"DEEPSEEK_BASE_URL": "http://127.0.0.1:9",
|
||||
},
|
||||
@@ -119,7 +111,4 @@ def test_zero_config_run_injects_bundled_default_cordis_config(
|
||||
request_timeout_seconds=120,
|
||||
)
|
||||
with harness:
|
||||
# __enter__ boots the runtime, which exits with a usage error unless
|
||||
# HarnessClient.start() injected the bundled default config over the
|
||||
# unset/empty DSH_CORDIS_CONFIG; __exit__ shuts it down.
|
||||
pass
|
||||
@@ -682,11 +682,9 @@ with open(os.environ["SEEN"], "w") as seen:
|
||||
def _install_fake_bundled_runtime(
|
||||
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
||||
) -> Path:
|
||||
"""Fake the deepseek-harness-runtime-bin package on sys.path.
|
||||
"""Install a fake runtime package that records config and serves lifecycle calls.
|
||||
|
||||
A stub exe that dumps DSH_CORDIS_CONFIG to $ENV_DUMP before serving
|
||||
initialize/shutdown, plus a module exposing the resolution surface the
|
||||
client consumes. Returns the fake bundled default config path.
|
||||
Returns the fake bundled default config path.
|
||||
"""
|
||||
runtime = tmp_path / "dsh-jsonrpc-agent"
|
||||
runtime.write_text(
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
"""Keyless tests for the deepseek_harness_runtime resolution API.
|
||||
|
||||
These never launch a runtime, so they run everywhere regardless of which
|
||||
bundled artifacts are present; the launch-and-boot coverage lives in
|
||||
``test_bundled_runtime.py``.
|
||||
"""
|
||||
"""Keyless runtime-resolution tests; launch coverage lives in test_bundled_runtime.py."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
Reference in New Issue
Block a user