test: update conversation assembly coverage and docs

This commit is contained in:
imccyu
2026-08-09 15:48:56 +08:00
parent 6d09b3168d
commit 522acc7432
101 changed files with 3970 additions and 2295 deletions

View File

@@ -4,6 +4,7 @@ import Loader from '@cordisjs/plugin-loader'
import type { Agent } from '@deepseek-ai/dsh-agent'
import CommandService, { type CommandResult } from '@deepseek-ai/dsh-commands'
import {
CompactionId,
CompactService,
ManualCompactionError,
type CompactAgentContext,
@@ -14,7 +15,10 @@ import {
import { Session, SessionId } from '@deepseek-ai/dsh-session'
import * as commandCompact from '@deepseek-ai/dsh-command-compact'
const COMPACTION_ID = CompactionId('command-compact-test')
const RESULT: CompactionResult = {
compactionId: COMPACTION_ID,
startSeq: 1,
summarySeq: 2,
endSeq: 3,
@@ -45,18 +49,28 @@ class StubCompactService extends CompactService {
override compactNow(
agent: ManualCompactAgentContext,
signal: AbortSignal,
sourceCommandId?: Parameters<CompactService['compactNow']>[2],
): Promise<CompactionResult | null> {
this.calls.push({ agent, signal })
if (this.operation !== undefined) return this.operation()
return this.failure === undefined
? Promise.resolve(this.result === null ? null : this.appendResult(agent, this.result))
? Promise.resolve(this.result === null ? null : this.appendResult(agent, this.result, sourceCommandId))
// oxlint-disable-next-line typescript/prefer-promise-reject-errors -- exercise arbitrary backend rejection values.
: Promise.reject(this.failure)
}
private appendResult(agent: ManualCompactAgentContext, result: CompactionResult): CompactionResult {
agent.session.append('compact/start', { turn: null })
private appendResult(
agent: ManualCompactAgentContext,
result: CompactionResult,
sourceCommandId: Parameters<CompactService['compactNow']>[2],
): CompactionResult {
const provenance = {
compactionId: result.compactionId,
...sourceCommandId === undefined ? {} : { sourceCommandId },
}
agent.session.append('compact/start', { ...provenance, turn: null })
agent.session.append('compact/summary', {
...provenance,
summary: result.summary,
shadowedRange: result.shadowedRange,
shadowedSeqs: result.shadowedSeqs,
@@ -64,8 +78,8 @@ class StubCompactService extends CompactService {
provider: 'command-test',
model: 'command-test',
})
agent.session.append('compact/end', { turn: null })
return result
agent.session.append('compact/end', { ...provenance, turn: null })
return { ...result, ...provenance }
}
}