refactor: relocate demo app bundles to packages/examples/*-demo

Move the agent-spine bundle and the stdio/ACP/JSON-RPC app packages out of
core/ and ui/ into a new packages/examples/ group, renamed with a -demo
suffix so the npm name marks them as non-product surface:

  core/agent-core   -> examples/agent-spine-demo  (dsh-agent-spine-demo)
  ui/stdio-agent    -> examples/stdio-demo        (dsh-stdio-demo)
  ui/acp-agent      -> examples/acp-demo          (dsh-acp-demo)
  ui/jsonrpc-agent  -> examples/jsonrpc-demo      (dsh-jsonrpc-demo)

Update every code/config/test reference and reference-only doc mentions, and
regenerate module-graph, config-catalog, and doc-graphs. The jsonrpc bin
(dsh-jsonrpc-agent) and single-file exe (dsh-jsonrpc-agent-pkg) keep their
names; the SDK runtime-startup surface is reconciled separately.
This commit is contained in:
imccyu
2026-07-15 16:46:05 +08:00
parent c2a0ca1927
commit 6f77da4c8c
118 changed files with 492 additions and 490 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ class MockCompletionHandler(BaseHTTPRequestHandler):
def run_smoke(repo_root: Path, keep_sessions: bool) -> None:
session_root = Path(tempfile.mkdtemp(prefix="dsh-sdk-smoke-sessions-"))
runtime_entry = repo_root / "packages/ui/jsonrpc-agent/src/bin.ts"
runtime_entry = repo_root / "packages/examples/jsonrpc-demo/src/bin.ts"
server = ThreadingHTTPServer(("127.0.0.1", 0), MockCompletionHandler)
thread = threading.Thread(target=server.serve_forever, name="mock-openai-compatible-server", daemon=True)
thread.start()
+1 -1
View File
@@ -21,7 +21,7 @@ _CORDIS_YML = """\
- id: jsonrpc
name: '@deepseek-ai/dsh-jsonrpc'
- id: agent-core
name: '@deepseek-ai/dsh-agent-core'
name: '@deepseek-ai/dsh-agent-spine-demo'
- id: sessions
name: '@deepseek-ai/dsh-session-persistence-jsonl'
config:
+1 -1
View File
@@ -15,7 +15,7 @@ from deepseek_harness_runtime import (
def test_default_config_is_shipped_with_the_package() -> None:
path = bundled_default_config_path()
assert path == bundled_package_dir() / "runtime" / "cordis.yml"
assert "@deepseek-ai/dsh-agent-core" in path.read_text()
assert "@deepseek-ai/dsh-agent-spine-demo" in path.read_text()
def test_unknown_explicit_mode_fails_loud() -> None: