refactor(session): unify event map augmentation entrypoint
This commit is contained in:
@@ -11,7 +11,7 @@ import type { ContentBlock, TokenUsage } from '@deepseek-ai/dsh-llm'
|
|||||||
import type { CommandId } from '@deepseek-ai/dsh-commands/brand'
|
import type { CommandId } from '@deepseek-ai/dsh-commands/brand'
|
||||||
import type { CompactionId } from './brand.ts'
|
import type { CompactionId } from './brand.ts'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* Marks the start of a compaction — log-only, holds the lock until
|
* Marks the start of a compaction — log-only, holds the lock until
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ declare module 'cordis' {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* One normalized mutation of an agent's durable pending-message lists.
|
* One normalized mutation of an agent's durable pending-message lists.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { createUserMessage, CallId , createMessage } from '@deepseek-ai/dsh-llm'
|
|||||||
import SessionStore, { Session, SessionForkError, SessionId } from '@deepseek-ai/dsh-session'
|
import SessionStore, { Session, SessionForkError, SessionId } from '@deepseek-ai/dsh-session'
|
||||||
import type { SessionEvent, TurnEndReason } from '@deepseek-ai/dsh-session'
|
import type { SessionEvent, TurnEndReason } from '@deepseek-ai/dsh-session'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
'test/log-only': { value: string }
|
'test/log-only': { value: string }
|
||||||
/** Stands in for a plugin's open/close bracket (`compact/start`). */
|
/** Stands in for a plugin's open/close bracket (`compact/start`). */
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ const make = (files: Record<string, string>): string => {
|
|||||||
|
|
||||||
/** A merge-form declaration file wrapping `members` in the session module. */
|
/** A merge-form declaration file wrapping `members` in the session module. */
|
||||||
const merge = (members: string): string =>
|
const merge = (members: string): string =>
|
||||||
`declare module '@deepseek-ai/dsh-session' {\n interface SessionEventMap {\n${members}\n }\n}\n`
|
`declare module '@deepseek-ai/dsh-session/types' {\n interface SessionEventMap {\n${members}\n }\n}\n`
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
while (roots.length) rmSync(roots.pop()!, { recursive: true, force: true })
|
while (roots.length) rmSync(roots.pop()!, { recursive: true, force: true })
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import { defineTool, parameterSchemaSpecToJsonSchema } from './schema.ts'
|
|||||||
import { TOOL_REGISTRY_SCHEDULER } from './index.ts'
|
import { TOOL_REGISTRY_SCHEDULER } from './index.ts'
|
||||||
import type { CodeDispatchLog, ToolDefinition, ToolExecutionResult, ToolRegistry, ToolRunContext } from './index.ts'
|
import type { CodeDispatchLog, ToolDefinition, ToolExecutionResult, ToolRegistry, ToolRunContext } from './index.ts'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* One sub-dispatch STARTING inside a `run_code` program: the parent
|
* One sub-dispatch STARTING inside a `run_code` program: the parent
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export const inject = ['commands']
|
|||||||
|
|
||||||
const USAGE = 'Usage: /feedback <text>'
|
const USAGE = 'Usage: /feedback <text>'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* One recorded human remark about this session. Log-only and independent
|
* One recorded human remark about this session. Log-only and independent
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ declare module '@deepseek-ai/dsh-llm' {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* Complete post-mutation goal state or clear tombstone.
|
* Complete post-mutation goal state or clear tombstone.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
* @module @deepseek-ai/dsh-hook-protocol/types
|
* @module @deepseek-ai/dsh-hook-protocol/types
|
||||||
*/
|
*/
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* A hook command was invoked at a hook point — a log-only record (like
|
* A hook command was invoked at a hook point — a log-only record (like
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ class CommandLayer implements ScopeLayer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* A resolved slash command entered its handler. Log-only (never model
|
* A resolved slash command entered its handler. Log-only (never model
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ declare module 'cordis' {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* Records the selected preset as durable, log-only user intent. The knob
|
* Records the selected preset as durable, log-only user intent. The knob
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ declare module 'cordis' {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* An approval question was put to the answerer chain — log-only audit
|
* An approval question was put to the answerer chain — log-only audit
|
||||||
|
|||||||
@@ -12,16 +12,7 @@ import type { Agent, RequestErrorAction } from '@deepseek-ai/dsh-agent'
|
|||||||
import type { LlmFailure, ResolvedRetryPolicy } from '@deepseek-ai/dsh-llm'
|
import type { LlmFailure, ResolvedRetryPolicy } from '@deepseek-ai/dsh-llm'
|
||||||
import type { SessionEvent } from '@deepseek-ai/dsh-session'
|
import type { SessionEvent } from '@deepseek-ai/dsh-session'
|
||||||
import { RetryId } from './brand.ts'
|
import { RetryId } from './brand.ts'
|
||||||
import type { LlmRetryEventData, LlmRetryStartedEventData } from './types.ts'
|
import type { LlmRetryEventData } from './types.ts'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
|
||||||
interface SessionEventMap {
|
|
||||||
/** Durable, non-surface record of one provider-routed retry scheduled after a failed request attempt. */
|
|
||||||
'llm/retry': LlmRetryEventData
|
|
||||||
/** Durable transition written after a retry wait succeeds and before the next request attempt starts. */
|
|
||||||
'llm/retry-started': LlmRetryStartedEventData
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export type { LlmRetryEventData, LlmRetryStartedEventData } from './types.ts'
|
export type { LlmRetryEventData, LlmRetryStartedEventData } from './types.ts'
|
||||||
export { RetryId } from './brand.ts'
|
export { RetryId } from './brand.ts'
|
||||||
@@ -132,7 +123,7 @@ export function apply(ctx: Context, config: Config = {}, internals: RetryInterna
|
|||||||
): Promise<RequestErrorAction> {
|
): Promise<RequestErrorAction> {
|
||||||
const fusedSignal = AbortSignal.any([signal, lifetime.signal])
|
const fusedSignal = AbortSignal.any([signal, lifetime.signal])
|
||||||
if (fusedSignal.aborted) return
|
if (fusedSignal.aborted) return
|
||||||
const eventData = policy.mode === 'normal'
|
const eventData: LlmRetryEventData = policy.mode === 'normal'
|
||||||
? {
|
? {
|
||||||
retryId,
|
retryId,
|
||||||
turn,
|
turn,
|
||||||
|
|||||||
@@ -1,6 +1,15 @@
|
|||||||
import type { LlmFailure } from '@deepseek-ai/dsh-llm/types'
|
import type { LlmFailure } from '@deepseek-ai/dsh-llm/types'
|
||||||
import type { RetryId } from './brand.ts'
|
import type { RetryId } from './brand.ts'
|
||||||
|
|
||||||
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
|
interface SessionEventMap {
|
||||||
|
/** Durable, non-surface record of one provider-routed retry scheduled after a failed request attempt. */
|
||||||
|
'llm/retry': LlmRetryEventData
|
||||||
|
/** Durable transition written after a retry wait succeeds and before the next request attempt starts. */
|
||||||
|
'llm/retry-started': LlmRetryStartedEventData
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Durable payload recorded before one provider-routed model-request retry wait. */
|
/** Durable payload recorded before one provider-routed model-request retry wait. */
|
||||||
export type LlmRetryEventData =
|
export type LlmRetryEventData =
|
||||||
| {
|
| {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ import type { PlanProjection } from './types.ts'
|
|||||||
// declarations still receive the SessionProjectionMap merge.
|
// declarations still receive the SessionProjectionMap merge.
|
||||||
export type * from './types.ts'
|
export type * from './types.ts'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* Whether plan mode is in force from this point on: log-only, non-surface,
|
* Whether plan mode is in force from this point on: log-only, non-surface,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
import type { Session, SessionEvent } from '@deepseek-ai/dsh-session'
|
import type { Session, SessionEvent } from '@deepseek-ai/dsh-session'
|
||||||
import type { SandboxMode } from '@deepseek-ai/dsh-sandbox'
|
import type { SandboxMode } from '@deepseek-ai/dsh-sandbox'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* The session's sandbox mode was switched — log-only (like `approval/*`;
|
* The session's sandbox mode was switched — log-only (like `approval/*`;
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ declare module '@deepseek-ai/dsh-session-projection/types' {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
'cache-test/mark': { marks: string[] }
|
'cache-test/mark': { marks: string[] }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ declare module '@deepseek-ai/dsh-session-projection/types' {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
'test/mark': { marks: string[] }
|
'test/mark': { marks: string[] }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import {
|
|||||||
type TelemetryRecord,
|
type TelemetryRecord,
|
||||||
} from '../src/index.ts'
|
} from '../src/index.ts'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* Test-only merged event proving unknown types flow through unchanged.
|
* Test-only merged event proving unknown types flow through unchanged.
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ export interface SessionTitleLlmRequestEventData {
|
|||||||
readonly maxTokens: number
|
readonly maxTokens: number
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/** Log-only pre-dispatch record of one session-title model request. */
|
/** Log-only pre-dispatch record of one session-title model request. */
|
||||||
'session/title-llm-request': SessionTitleLlmRequestEventData
|
'session/title-llm-request': SessionTitleLlmRequestEventData
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ declare module 'cordis' {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* Latest-wins session title snapshot. Log-only: it never enters the model
|
* Latest-wins session title snapshot. Log-only: it never enters the model
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import { snapshotJsonValue } from '@deepseek-ai/dsh-session'
|
|||||||
import type { SessionEvent } from '@deepseek-ai/dsh-session'
|
import type { SessionEvent } from '@deepseek-ai/dsh-session'
|
||||||
import type { ToolRestriction } from '@deepseek-ai/dsh-tools'
|
import type { ToolRestriction } from '@deepseek-ai/dsh-tools'
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/**
|
/**
|
||||||
* Durable identity and lifecycle mode of a session-backed subagent child,
|
* Durable identity and lifecycle mode of a session-backed subagent child,
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ export interface DeepSeekSearchLlmRequest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module '@deepseek-ai/dsh-session' {
|
declare module '@deepseek-ai/dsh-session/types' {
|
||||||
interface SessionEventMap {
|
interface SessionEventMap {
|
||||||
/** Secret-free auxiliary DeepSeek search request recorded before dispatch. */
|
/** Secret-free auxiliary DeepSeek search request recorded before dispatch. */
|
||||||
'web/deepseek-search-llm-request': DeepSeekSearchLlmRequest
|
'web/deepseek-search-llm-request': DeepSeekSearchLlmRequest
|
||||||
|
|||||||
Reference in New Issue
Block a user