fix(compact): complete master retarget integration
Declare the tool-result pruning plugin in the examples workspace so the repl Cordis configuration resolves through plain Node and the Loader metadata gate. Express the validated single-node surface rewrite without a non-null assertion or an unreachable defensive branch, preserving both the runtime contract and per-file 100% coverage.
This commit is contained in:
@@ -13,6 +13,7 @@
|
|||||||
"@deepseek-ai/dsh-cli-demo": "workspace:*",
|
"@deepseek-ai/dsh-cli-demo": "workspace:*",
|
||||||
"@deepseek-ai/dsh-code-runtime-worker": "workspace:*",
|
"@deepseek-ai/dsh-code-runtime-worker": "workspace:*",
|
||||||
"@deepseek-ai/dsh-compact-basic": "workspace:*",
|
"@deepseek-ai/dsh-compact-basic": "workspace:*",
|
||||||
|
"@deepseek-ai/dsh-compact-tool-result-prune": "workspace:*",
|
||||||
"@deepseek-ai/dsh-fs-local": "workspace:*",
|
"@deepseek-ai/dsh-fs-local": "workspace:*",
|
||||||
"@deepseek-ai/dsh-fs-policy": "workspace:*",
|
"@deepseek-ai/dsh-fs-policy": "workspace:*",
|
||||||
"@deepseek-ai/dsh-hooks-claude": "workspace:*",
|
"@deepseek-ai/dsh-hooks-claude": "workspace:*",
|
||||||
|
|||||||
@@ -198,20 +198,18 @@ function assertToolResultRewrite(
|
|||||||
if (shadowedSeqs.length !== 1) {
|
if (shadowedSeqs.length !== 1) {
|
||||||
throw new Error('tool/result surface replacement must rewrite exactly one current node')
|
throw new Error('tool/result surface replacement must rewrite exactly one current node')
|
||||||
}
|
}
|
||||||
const originalSeq = shadowedSeqs[0]
|
for (const originalSeq of shadowedSeqs) {
|
||||||
if (originalSeq === undefined) {
|
const original = events[originalSeq]
|
||||||
throw new Error('tool/result surface replacement must rewrite exactly one current node')
|
if (original?.type !== 'tool/result') {
|
||||||
}
|
throw new Error('tool/result surface replacement must target a current tool/result')
|
||||||
const original = events[originalSeq]
|
}
|
||||||
if (original?.type !== 'tool/result') {
|
const originalRest = { ...original.data } as Record<string, unknown>
|
||||||
throw new Error('tool/result surface replacement must target a current tool/result')
|
const replacementRest = { ...event.data } as Record<string, unknown>
|
||||||
}
|
delete originalRest['content']
|
||||||
const originalRest = { ...original.data } as Record<string, unknown>
|
delete replacementRest['content']
|
||||||
const replacementRest = { ...event.data } as Record<string, unknown>
|
if (!isDeepStrictEqual(originalRest, replacementRest)) {
|
||||||
delete originalRest['content']
|
throw new Error('tool/result surface replacement may change only content')
|
||||||
delete replacementRest['content']
|
}
|
||||||
if (!isDeepStrictEqual(originalRest, replacementRest)) {
|
|
||||||
throw new Error('tool/result surface replacement may change only content')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
15
pnpm-lock.yaml
generated
15
pnpm-lock.yaml
generated
@@ -116,6 +116,9 @@ importers:
|
|||||||
'@deepseek-ai/dsh-compact-basic':
|
'@deepseek-ai/dsh-compact-basic':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../packages/compact/compact-basic
|
version: link:../packages/compact/compact-basic
|
||||||
|
'@deepseek-ai/dsh-compact-tool-result-prune':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../packages/compact/compact-tool-result-prune
|
||||||
'@deepseek-ai/dsh-fs-local':
|
'@deepseek-ai/dsh-fs-local':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../packages/fs/fs-local
|
version: link:../packages/fs/fs-local
|
||||||
@@ -373,6 +376,9 @@ importers:
|
|||||||
'@deepseek-ai/dsh-compact':
|
'@deepseek-ai/dsh-compact':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../compact
|
version: link:../compact
|
||||||
|
'@deepseek-ai/dsh-compact-tool-result-prune':
|
||||||
|
specifier: workspace:^
|
||||||
|
version: link:../compact-tool-result-prune
|
||||||
'@deepseek-ai/dsh-invariants':
|
'@deepseek-ai/dsh-invariants':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../../support/invariants
|
version: link:../../support/invariants
|
||||||
@@ -385,9 +391,6 @@ importers:
|
|||||||
'@deepseek-ai/dsh-token-meter':
|
'@deepseek-ai/dsh-token-meter':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../../llm/token-meter
|
version: link:../../llm/token-meter
|
||||||
'@deepseek-ai/dsh-compact-tool-result-prune':
|
|
||||||
specifier: workspace:^
|
|
||||||
version: link:../compact-tool-result-prune
|
|
||||||
'@deepseek-ai/dsh-tools':
|
'@deepseek-ai/dsh-tools':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../../core/tools
|
version: link:../../core/tools
|
||||||
@@ -2492,6 +2495,9 @@ importers:
|
|||||||
'@deepseek-ai/dsh-compact-basic':
|
'@deepseek-ai/dsh-compact-basic':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../../packages/compact/compact-basic
|
version: link:../../packages/compact/compact-basic
|
||||||
|
'@deepseek-ai/dsh-compact-tool-result-prune':
|
||||||
|
specifier: workspace:^
|
||||||
|
version: link:../../packages/compact/compact-tool-result-prune
|
||||||
'@deepseek-ai/dsh-fs':
|
'@deepseek-ai/dsh-fs':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../../packages/fs/fs
|
version: link:../../packages/fs/fs
|
||||||
@@ -2609,9 +2615,6 @@ importers:
|
|||||||
'@deepseek-ai/dsh-tool-fs':
|
'@deepseek-ai/dsh-tool-fs':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../../packages/fs/tool-fs
|
version: link:../../packages/fs/tool-fs
|
||||||
'@deepseek-ai/dsh-compact-tool-result-prune':
|
|
||||||
specifier: workspace:^
|
|
||||||
version: link:../../packages/compact/compact-tool-result-prune
|
|
||||||
'@deepseek-ai/dsh-tool-skill':
|
'@deepseek-ai/dsh-tool-skill':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../../packages/skill/tool-skill
|
version: link:../../packages/skill/tool-skill
|
||||||
|
|||||||
Reference in New Issue
Block a user