refactor(agent): remove message metadata channel
This commit is contained in:
@@ -9,7 +9,7 @@ import { Context, Service } from 'cordis'
|
||||
import z from 'schemastery'
|
||||
import type { Agent, HookContext } from '@deepseek-ai/dsh-agent'
|
||||
import type { ContentBlock } from '@deepseek-ai/dsh-llm'
|
||||
import type { JsonValue, SessionId } from '@deepseek-ai/dsh-session'
|
||||
import type { SessionId } from '@deepseek-ai/dsh-session'
|
||||
import type { SessionSurfaceSnapshot } from '@deepseek-ai/dsh-session-query'
|
||||
import {
|
||||
DEFAULT_CANDIDATE_LIMIT,
|
||||
@@ -20,7 +20,7 @@ import {
|
||||
} from './config.ts'
|
||||
import { retainReferencedSession, type ReferenceRetentionStats, type ReferencedSessionData } from './projection.ts'
|
||||
import { stringifyTagSafeJson } from './serialization.ts'
|
||||
import type { PreparedReferencedMessage, SessionReferenceCandidate, SessionReferenceInput } from './types.ts'
|
||||
import type { PreparedReferencedMessage, SessionReferenceCandidate, SessionReferenceInput, SessionReferenceSource } from './types.ts'
|
||||
|
||||
export type * from './types.ts'
|
||||
export type { Config, SessionReferenceErrorCode } from './config.ts'
|
||||
@@ -181,7 +181,7 @@ export class SessionReferenceService extends Service {
|
||||
|
||||
const rendered = this.renderSources(prepared)
|
||||
const prompt = renderPrompt(rendered.map(source => source.data))
|
||||
const meta = {
|
||||
const source: SessionReferenceSource = {
|
||||
kind: 'session-reference',
|
||||
version: 1,
|
||||
references: rendered.map((source, index) => ({
|
||||
@@ -191,12 +191,11 @@ export class SessionReferenceService extends Service {
|
||||
...source.stats,
|
||||
inputIndex: index,
|
||||
})),
|
||||
} satisfies JsonValue
|
||||
}
|
||||
const context: HookContext = {
|
||||
source: { kind: 'plugin', plugin: 'session-reference' },
|
||||
source,
|
||||
content: [{ type: 'text', text: prompt }],
|
||||
placement: 'prompt-prefix',
|
||||
meta,
|
||||
}
|
||||
return { content: acceptedContent, contexts: [context] }
|
||||
}
|
||||
|
||||
@@ -4,6 +4,30 @@ import type { HookContext } from '@deepseek-ai/dsh-agent'
|
||||
import type { ContentBlock } from '@deepseek-ai/dsh-llm'
|
||||
import type { SessionId } from '@deepseek-ai/dsh-session'
|
||||
|
||||
/** Durable provenance for one prepared cross-session context. */
|
||||
export interface SessionReferenceSource {
|
||||
kind: 'session-reference'
|
||||
version: 1
|
||||
references: {
|
||||
sessionId: string
|
||||
label: string
|
||||
capturedThroughSeq: number | null
|
||||
compacted: boolean
|
||||
originalMessages: number
|
||||
retainedMessages: number
|
||||
omittedMessages: number
|
||||
omittedBytes: number
|
||||
truncated: boolean
|
||||
inputIndex: number
|
||||
}[]
|
||||
}
|
||||
|
||||
declare module '@deepseek-ai/dsh-llm' {
|
||||
interface MessageSourceMap {
|
||||
'session-reference': SessionReferenceSource
|
||||
}
|
||||
}
|
||||
|
||||
/** One source session selected by a host. */
|
||||
export interface SessionReferenceInput {
|
||||
/** Opaque source session identity. */
|
||||
|
||||
Reference in New Issue
Block a user