dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
DSH Lattice V1 protocol transports: JSON-RPC Content-Length stdio server, CLI, an exactly-one-tool MCP server, config validation, and experimental fail-loud ACP client and A2A HTTP/JSON-RPC client.
This package is an independent community project, part of the DSH Lattice facade. It is not affiliated with, endorsed by, or sponsored by DeepSeek AI.
| Surface | Entry | Notes |
|---|---|---|
| JSON-RPC stdio | dsh-lattice serve |
JSON-RPC 2.0 over Content-Length framing; methods lattice.ping, lattice.status, lattice.uto_run, lattice.shutdown |
| CLI | dsh-lattice run |
deterministic result envelope → stdout, trace ref → stderr (ECC-V1.0 §14.2) |
| MCP server | dsh-lattice mcp |
exactly one tool: lattice.uto_run (one-tool-per-caller) |
| Config validation | dsh-lattice validate <file> |
zod, .strict(): config is contract |
| ACP client | library | experimental, fail-loud, newline-framed JSON-RPC over stdio |
| A2A client | library | experimental, HTTP/JSON-RPC tasks/send\|get\|cancel, messages/send, Agent Card |
All surfaces funnel into the single orchestration entry
MemoryEngine.utoRun — the reference engine that implements the canonical
envelope, deterministic idempotency keys (§9.3), duplicate suppression,
capability preflight (fail loud), session modes with fingerprints and
override authorization (§16), audit events and metric counters.
pnpm build && node scripts/smoke.mjs # CLI + stdio + MCP smoke
dsh-lattice run \
--project review-pipeline \
--task '{"description":"review the pr"}' \
--members '{"planner":{"provider":"local"},"reviewer":{"provider":"local"}}' \
--mode coordinate --tenant tenant_1
# → { "status": "completed", "scope": "run", "scopeId": "run_...", ... }
# stderr: trace: trace_...
dsh-lattice mcp
tools/list returns exactly one tool, lattice.uto_run. tools/call with
any other tool name fails loud (-32602). Protocol version is pinned to
2024-11-05. Note: upstream DeepSeek Harness ships an MCP client,
not a public MCP server; this server is a Lattice-owned boundary.
validate accepts a JSON file with project and/or adapters:
{
"project": {
"slug": "review-pipeline", "version": "1.0.0", "charter": "...",
"members": { "planner": { "provider": "dsh-sdk" } }
},
"adapters": {
"codex": {
"name": "codex", "package": "@dsh-lattice/adapter-codex",
"adapterVersion": "1.0.0",
"requiredCapabilities": ["oneShot"], "observedCapabilities": ["oneShot"]
}
}
}
Defaults follow the spec: retentionDays: 90, maxHops: 16. Unknown keys
and inline credential values are rejected.
import { createAcpClient } from "@dsh-lattice/transports/acp-client";
const client = createAcpClient({ executable: "my-acp-agent", args: ["--stdio"] });
client.start();
await client.agentStart({ title: "t" });
const turn = await client.agentTurn({ prompt: "hi" });
client.close();
Fail-loud rules: unknown methods surface as errors, permission requests are
never auto-approved (PermissionRequiredError), protocol version
mismatches and malformed frames are errors, responses with unmatched ids
fail the session.
import { createA2aClient } from "@dsh-lattice/transports/a2a-client";
const client = createA2aClient({
endpoint: "https://example.com/a2a",
bearerToken: process.env.A2A_TOKEN, // credential ref; never logged
});
const task = await client.taskSend({ message: { role: "user", parts: [{ text: "hi" }] } });
const state = await client.taskGet(task.id);
Fail-loud: non-2xx status, non-JSON-RPC bodies, id mismatches and remote
errors all surface as A2aError.
MemoryEngine is a reference/demo engine for protocol
smoke tests; the production engine lives in the aggregator.\n-terminated line, malformed lines ignored (upstream
packages/sdk/protocol/README.md, @deepseek-ai/dsh-root 0.1.0-rc.5).pnpm install
pnpm build && pnpm typecheck && pnpm test && pnpm coverage
pnpm smoke
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。