2026-07-29 13:14:20 +08:00
|
|
|
{
|
|
|
|
|
"name": "@deepseek-ai/dsh-credentials-local",
|
|
|
|
|
"description": "File-backed credentials provider ($DSH_HOME/.env under the live process environment) for the DeepSeek Harness",
|
2026-08-13 05:58:16 +08:00
|
|
|
"version": "0.0.1-rc.5",
|
2026-08-11 00:02:53 +08:00
|
|
|
"publishConfig": {
|
|
|
|
|
"access": "restricted"
|
|
|
|
|
},
|
|
|
|
|
"repository": {
|
|
|
|
|
"type": "git",
|
|
|
|
|
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
|
|
|
"directory": "packages/credentials/credentials-local"
|
|
|
|
|
},
|
2026-07-29 13:14:20 +08:00
|
|
|
"type": "module",
|
|
|
|
|
"main": "lib/index.js",
|
|
|
|
|
"types": "lib/types/index.d.ts",
|
|
|
|
|
"exports": {
|
|
|
|
|
".": {
|
|
|
|
|
"types": "./lib/types/index.d.ts",
|
|
|
|
|
"default": "./lib/index.js"
|
|
|
|
|
},
|
|
|
|
|
"./invariant": {
|
|
|
|
|
"types": "./lib/types/invariant.d.ts",
|
|
|
|
|
"default": "./lib/invariant.js"
|
|
|
|
|
},
|
|
|
|
|
"./src/*": "./src/*",
|
|
|
|
|
"./package.json": "./package.json"
|
|
|
|
|
},
|
|
|
|
|
"files": [
|
|
|
|
|
"lib/index.js",
|
|
|
|
|
"lib/invariant.js",
|
2026-08-04 22:06:32 +08:00
|
|
|
"lib/types/**/*.d.ts"
|
2026-07-29 13:14:20 +08:00
|
|
|
],
|
2026-08-13 01:46:57 +08:00
|
|
|
"license": "MIT",
|
2026-07-29 13:14:20 +08:00
|
|
|
"peerDependencies": {
|
2026-08-11 00:16:45 +08:00
|
|
|
"@deepseek-ai/dsh-atomic-write": "workspace:^",
|
|
|
|
|
"@deepseek-ai/dsh-credentials": "workspace:^",
|
2026-08-13 00:36:22 +08:00
|
|
|
"@deepseek-ai/dsh-launch-environment": "workspace:^",
|
2026-08-11 00:16:45 +08:00
|
|
|
"@deepseek-ai/dsh-invariants": "workspace:^",
|
2026-08-13 00:36:22 +08:00
|
|
|
"@deepseek-ai/dsh-home-paths": "workspace:^",
|
2026-08-11 00:16:45 +08:00
|
|
|
"@deepseek-ai/cordis": "workspace:^"
|
2026-07-29 13:14:20 +08:00
|
|
|
},
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"chokidar": "^4.0.3",
|
2026-08-11 00:16:45 +08:00
|
|
|
"@deepseek-ai/schemastery": "workspace:^",
|
feat(credentials): move the store to .credentials.yaml and layer $DSH_HOME/.env
$DSH_HOME/.env carried two incompatible jobs. As credentials-local's writable
secret store it could not be hoisted into process.env — hoisting makes every
stored key read as a read-only launch override and blocks rotation from the
TUI and the web page. But its name and dotenv format promise an environment
file, so a DEEPSEEK_BASE_URL sitting beside a working DEEPSEEK_API_KEY in the
same file was silently ignored: only the credential provider read the
document, and it addresses credential references alone.
Split the two jobs into two files.
.credentials.yaml is the provider-managed store: a strict YAML mapping of
CredentialRef to non-empty string, no version field, no wrapper level. Because
it holds credentials and nothing else, a non-mapping root, a non-identifier
key, a non-string value, an empty string, a duplicate key, and malformed YAML
are all rejections rather than skipped entries — loud at boot and at a write,
warn-and-keep-last-good on a live reload. The dotenv physical-line editor
gives way to a patch of the parsed document, so comments and untouched entries
keep their formatting and any string value round-trips, multi-line included.
Writer lock, read-modify-write, atomic 0600 write under a 0700 directory,
watcher, self-write suppression, and quiescent disposal are unchanged.
$DSH_HOME/.env becomes the user's ordinary environment layer. app-boot's new
loadLayeredEnv loads the invoking directory's .env then the Harness home's,
giving user < project < inherited; the home resolves from the inherited
environment first, so a project .env cannot redirect it.
Credential precedence is unchanged: the live environment still wins read-only
over the file, and shadowed writes still reject. Whether a provider-managed
store should instead win over the environment is a separate decision.
No migration: a key already in $DSH_HOME/.env keeps resolving through the new
environment layer, as a read-only env source that shadows the stored one.
2026-08-04 14:50:38 +08:00
|
|
|
"yaml": "^2.9.0"
|
2026-07-29 13:14:20 +08:00
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@deepseek-ai/dsh-atomic-write": "workspace:^",
|
|
|
|
|
"@deepseek-ai/dsh-credentials": "workspace:^",
|
2026-08-13 00:36:22 +08:00
|
|
|
"@deepseek-ai/dsh-launch-environment": "workspace:^",
|
2026-07-29 13:14:20 +08:00
|
|
|
"@deepseek-ai/dsh-invariants": "workspace:^",
|
2026-08-13 00:36:22 +08:00
|
|
|
"@deepseek-ai/dsh-home-paths": "workspace:^",
|
2026-08-11 00:16:45 +08:00
|
|
|
"@deepseek-ai/cordis": "workspace:^"
|
2026-07-29 13:14:20 +08:00
|
|
|
}
|
|
|
|
|
}
|