mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
Replaces the patch round trip. An app's entrypoint resolves the command
line into a service, and the rows it configures read that service from
their own config — port: !!js ctx.get('webStartup')?.port ?? 3080 — so the
resolved value beats the value written beside it and nothing is written
back into a row or handed to the launcher.
A bundle names the entrypoint row in its manifest (dsh.bundle.entrypoint),
which is what lets the boot mount in two passes: entrypoints alone, then
the whole composition. That ordering is required, not cosmetic — a row's
config expressions are evaluated when the include applies the row, and a
strict ctx.get only answers for a service whose providing fiber is already
active.
What this removes: ctx.appPatches and the launcher-owned patch layer, the
disable/re-enable recycle and its in-flight-mount barrier, overrideConfig,
and the reload hazard they existed for. A live config edit now re-applies
the second pass against services that are still up, so a served port
survives by construction.
What it adds: ctx.appReady, because Loader settlement no longer means the
app is up — a row mounted in the second pass can observe a settled tree
while that pass is still running, or already rolling back. The web URL line
waits for it, so a boot that fails in the second pass announces nothing.
67 lines
2.0 KiB
JSON
67 lines
2.0 KiB
JSON
{
|
|
"name": "@deepseek-ai/dsh-headless",
|
|
"description": "The dsh one-shot bundle: a direct core Agent/Session runner over dsh-base with no Host, HTTP, or browser layer",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "lib/index.js",
|
|
"types": "lib/types/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./lib/types/index.d.ts",
|
|
"default": "./lib/index.js"
|
|
},
|
|
"./startup": {
|
|
"types": "./lib/types/startup.d.ts",
|
|
"default": "./lib/startup.js"
|
|
},
|
|
"./invariant": {
|
|
"types": "./lib/types/invariant.d.ts",
|
|
"default": "./lib/invariant.js"
|
|
},
|
|
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
"./src/*": "./src/*",
|
|
"./package.json": "./package.json"
|
|
},
|
|
"files": [
|
|
"lib/index.js",
|
|
"lib/invariant.js",
|
|
"lib/startup.js",
|
|
"cordis.patch.yml",
|
|
"lib/types/**/*.d.ts"
|
|
],
|
|
"license": "BSD-3-Clause",
|
|
"dsh": {
|
|
"bundle": {
|
|
"patch": "./cordis.patch.yml",
|
|
"entrypoint": "headless-startup"
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"@deepseek-ai/dsh-cmdline": "workspace:^",
|
|
"@deepseek-ai/dsh-code-runtime-worker": "workspace:^",
|
|
"@deepseek-ai/schemastery": "^3.18.0",
|
|
"commander": "^15.0.0"
|
|
},
|
|
"peerDependencies": {
|
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.0-rc.5",
|
|
"@deepseek-ai/dsh-agent": "^0.0.1",
|
|
"@deepseek-ai/dsh-agent-default-model": "^0.0.1",
|
|
"@deepseek-ai/dsh-invariants": "^0.0.1",
|
|
"@deepseek-ai/dsh-llm": "^0.0.1",
|
|
"@deepseek-ai/dsh-session": "^0.0.1",
|
|
"@deepseek-ai/dsh-web-app": "^0.0.1",
|
|
"@deepseek-ai/cordis": "^4.0.0-rc.7"
|
|
},
|
|
"devDependencies": {
|
|
"@deepseek-ai/cordis-plugin-loader": "workspace:^",
|
|
"@deepseek-ai/dsh-agent": "workspace:^",
|
|
"@deepseek-ai/dsh-agent-default-model": "workspace:^",
|
|
"@deepseek-ai/dsh-invariants": "workspace:^",
|
|
"@deepseek-ai/dsh-llm": "workspace:^",
|
|
"@deepseek-ai/dsh-session": "workspace:^",
|
|
"@deepseek-ai/dsh-web-app": "workspace:^",
|
|
"@deepseek-ai/cordis": "^4.0.0-rc.7"
|
|
}
|
|
}
|