Foreword¶
DeepSeek Harness (DSH) allows developers to extend agent capabilities through plugins. In some scenarios, an Agent needs to output structured ratings, choices, or probabilities rather than free-form text. dsh-jev is a DSH bundle that registers the jev_ask tool in a profile, enabling DSH Agents to send typed noul, choice, and score questions to TypeSafe’s Jev model.
Functional Scope¶
The core role of this plugin is to bridge DSH and TypeSafe Jev. It does not generate normal chat or code; instead, it focuses on returning structured JSON data. A single invocation request can mix multiple question types, and the Agent decides when to call the tool.
Environment Requirements¶
Before installing and using it, ensure the environment meets the following conditions:
* DSH version: DSH 0.1.5-rc.2 (npm next dist-tag) is required.
* Node version: Node.js 22.19 or higher (22.x series), or Node.js 24 or higher.
* API key: A valid TypeSafe API key is required. It can be set via the environment variable TYPESAFE_API_KEY or stored in DSH credentials.
Installation and Configuration¶
When installing, it is recommended to pin the commit SHA to ensure reproducibility.
dsh plugin --profile web add github:noetion/dsh-jev#<commit>
During first installation, pnpm may refuse to run the prepare script. In this case, add the allowBuilds field to pnpm-workspace.yaml in the profile directory. Usually you can use dsh-jev directly, but some pnpm versions print a full path such as dsh-jev@github:...; use the string shown in the error message.
allowBuilds:
dsh-jev: true
After adding it, rerun the installation command.
Configuration Options¶
The plugin supports configuring the connection to TypeSafe Jev via cordis.yml. Optional fields include:
model: Defaults tojev-latest.endpoint: Defaults tohttps://api.typesafe.ai/v1/systemone.apiKeyEnv: Defaults toTYPESAFE_API_KEY.
The plugin reads the key on each invocation and does not write it to the configuration file.
Usage¶
The Agent can be instructed to call the jev_ask tool, or it can directly invoke the bundled jev skill. The following is an example that mixes noul and choice types:
{
"state": "Help! My payouts have been failing for 3 days.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this convey urgency?"
},
"department": {
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {
"billing": "Payments, invoicing, refunds",
"technical": "Bugs, outages, integrations",
"sales": "Pricing, upgrades, new accounts"
}
}
}
}
In the JSON result returned by Jev:
* Answers of type noul include a noul field (usually a probability).
* Answers of type choice or score include probabilities and confidence.
Notes¶
- Not an LLM adapter: Jev does not support streaming output. It returns structured answers rather than a chat stream, so this plugin is not a traditional LLM adapter.
- Version pinning: The dependency on
@deepseek-ai/dsh-toolsis pinned to 0.1.5-rc.2. The npmlatestversion is too old and should not be replaced. - License and support: MIT license. The authors do not guarantee response times. It is recommended to ask questions through GitHub Issues or submit PRs that include
pnpm run check. - Security: Do not include keys or sensitive information in the
statefield.