Three tools capped the preview text they return with String.prototype.slice at a UTF-16 code-unit budget. A cut that lands inside a surrogate pair leaves a lone high surrogate, which is not well-formed text: a strict JSON reader rejects the durable Session log carrying it, and the preview shows a broken glyph. A lone surrogate retained in history has already blocked every later Messages request for one session. Centralize the cap in output-retention as truncateWithoutSplittingSurrogatePair, and use it from the persistent bash and pwsh shells and the string-replace editor. The cut drops the unpaired half instead of keeping it, so the retained text stays a prefix and is at most one code unit shorter than before. The new dependency edges and the shifted Config sources regenerate docs/module-graph and docs/config-catalog, including the committed translation pair. Refs #4817
59 lines
1.9 KiB
JSON
59 lines
1.9 KiB
JSON
{
|
|
"name": "@deepseek-ai/dsh-tool-bash-persistent",
|
|
"description": "Model-facing owner-scoped persistent Bash tool backed by the Harness PTY service",
|
|
"version": "0.1.6-alpha.2",
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
"directory": "packages/shell/tool-bash-persistent"
|
|
},
|
|
"type": "module",
|
|
"main": "lib/index.js",
|
|
"types": "lib/types/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./lib/types/index.d.ts",
|
|
"default": "./lib/index.js"
|
|
},
|
|
"./package.json": "./package.json"
|
|
},
|
|
"files": [
|
|
"lib/index.js",
|
|
"lib/types/**/*.d.ts"
|
|
],
|
|
"license": "MIT",
|
|
"peerDependencies": {
|
|
"@deepseek-ai/dsh-agent": "workspace:^",
|
|
"@deepseek-ai/dsh-output-retention": "workspace:^",
|
|
"@deepseek-ai/dsh-terminal": "workspace:^",
|
|
"@deepseek-ai/dsh-timeout": "workspace:^",
|
|
"@deepseek-ai/dsh-tools": "workspace:^",
|
|
"@deepseek-ai/cordis": "workspace:^"
|
|
},
|
|
"dependencies": {
|
|
"@deepseek-ai/schemastery": "workspace:^"
|
|
},
|
|
"devDependencies": {
|
|
"@deepseek-ai/cordis-plugin-include": "workspace:^",
|
|
"@deepseek-ai/cordis-plugin-loader": "workspace:^",
|
|
"@deepseek-ai/dsh-agent": "workspace:^",
|
|
"@deepseek-ai/dsh-agent-loop-testkit": "workspace:^",
|
|
"@deepseek-ai/dsh-llm": "workspace:^",
|
|
"@deepseek-ai/dsh-output-retention": "workspace:^",
|
|
"@deepseek-ai/dsh-terminal": "workspace:^",
|
|
"@deepseek-ai/dsh-terminal-bash": "workspace:^",
|
|
"@deepseek-ai/dsh-sandbox": "workspace:^",
|
|
"@deepseek-ai/dsh-sandbox-policy": "workspace:^",
|
|
"@deepseek-ai/dsh-session": "workspace:^",
|
|
"@deepseek-ai/dsh-subprocess-local": "workspace:^",
|
|
"@deepseek-ai/dsh-system-prompt": "workspace:^",
|
|
"@deepseek-ai/dsh-timeout": "workspace:^",
|
|
"@deepseek-ai/dsh-tools": "workspace:^",
|
|
"@deepseek-ai/cordis": "workspace:^",
|
|
"@deepseek-ai/dsh-session-projection": "workspace:^"
|
|
}
|
|
}
|