refactor(client-runtime): home the snapshot-store engine in contract/
The store migration (#538) parked the engine in a store/ sibling domain; loader and sessions imported it directly, tripping verify-client-domain-graph (cross-domain shared surface must route through contract/). The engine is layer-0 shared infrastructure by definition, so it moves to contract/store.ts verbatim; the four importers and the spec follow mechanically.
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
import type { Context } from 'cordis'
|
import type { Context } from 'cordis'
|
||||||
import type { ConnectionHandle, SessionId } from '@deepseek-ai/dsh-client-connection/client'
|
import type { ConnectionHandle, SessionId } from '@deepseek-ai/dsh-client-connection/client'
|
||||||
import type { SnapshotSelectorHook } from '@deepseek-ai/dsh-client-ui-slots'
|
import type { SnapshotSelectorHook } from '@deepseek-ai/dsh-client-ui-slots'
|
||||||
import type { SnapshotStore } from './store/index.ts'
|
import type { SnapshotStore } from './contract/store.ts'
|
||||||
import { SlotsService } from './slots.ts'
|
import { SlotsService } from './slots.ts'
|
||||||
import { SessionsService } from './sessions/service.ts'
|
import { SessionsService } from './sessions/service.ts'
|
||||||
import type { SessionListState } from './sessions/service.ts'
|
import type { SessionListState } from './sessions/service.ts'
|
||||||
@@ -28,10 +28,10 @@ export type { SessionBinding, SessionListState, SessionSummary } from './session
|
|||||||
// The snapshot-store engine lives here since the store migration (the data
|
// The snapshot-store engine lives here since the store migration (the data
|
||||||
// layer owns its substrate; web-react is React glue only). The './client'
|
// layer owns its substrate; web-react is React glue only). The './client'
|
||||||
// main export is the single serving door — no store subpath.
|
// main export is the single serving door — no store subpath.
|
||||||
export { createSnapshotStore, defineStore, shallowEqual } from './store/index.ts'
|
export { createSnapshotStore, defineStore, shallowEqual } from './contract/store.ts'
|
||||||
export type {
|
export type {
|
||||||
EngineStoreHandle, EngineStoreInstance, ObservableSnapshot, SnapshotStore,
|
EngineStoreHandle, EngineStoreInstance, ObservableSnapshot, SnapshotStore,
|
||||||
} from './store/index.ts'
|
} from './contract/store.ts'
|
||||||
export type {
|
export type {
|
||||||
AssistantBlock, AssistantMessageNode, ContextMessageNode, ConversationNode, ConversationSnapshot,
|
AssistantBlock, AssistantMessageNode, ContextMessageNode, ConversationNode, ConversationSnapshot,
|
||||||
PendingInteraction, RunningToolCall, SteeringMessageNode,
|
PendingInteraction, RunningToolCall, SteeringMessageNode,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
* load one by one in inject topology.
|
* load one by one in inject topology.
|
||||||
*/
|
*/
|
||||||
import type { Context } from 'cordis'
|
import type { Context } from 'cordis'
|
||||||
import { createSnapshotStore } from '../store/index.ts'
|
import { createSnapshotStore } from '../contract/store.ts'
|
||||||
import type { BootPluginEntry, ClientLoader, LoaderStatus } from '../index.ts'
|
import type { BootPluginEntry, ClientLoader, LoaderStatus } from '../index.ts'
|
||||||
|
|
||||||
export type { BootPluginEntry, ClientLoader, LoaderStatus } from '../index.ts'
|
export type { BootPluginEntry, ClientLoader, LoaderStatus } from '../index.ts'
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
import type { Context, Fiber } from 'cordis'
|
import type { Context, Fiber } from 'cordis'
|
||||||
import type { IApiClient, SessionId } from '@deepseek-ai/dsh-client-connection/client'
|
import type { IApiClient, SessionId } from '@deepseek-ai/dsh-client-connection/client'
|
||||||
import type { SessionCell } from '@deepseek-ai/dsh-client-ui-slots'
|
import type { SessionCell } from '@deepseek-ai/dsh-client-ui-slots'
|
||||||
import type { SnapshotStore } from '../store/index.ts'
|
import type { SnapshotStore } from '../contract/store.ts'
|
||||||
import { createSnapshotStore } from '../store/index.ts'
|
import { createSnapshotStore } from '../contract/store.ts'
|
||||||
import { SessionManager } from './manager.ts'
|
import { SessionManager } from './manager.ts'
|
||||||
import type { Session } from './session.ts'
|
import type { Session } from './session.ts'
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import type { ContentBlock } from '@deepseek-ai/dsh-llm/types'
|
|||||||
import type { SessionEvent } from '@deepseek-ai/dsh-session/types'
|
import type { SessionEvent } from '@deepseek-ai/dsh-session/types'
|
||||||
import type { HistoryEntry, IApiClient, MuxFrame, RpcError, RpcId, RpcResult, SessionId, ToolEventView } from '@deepseek-ai/dsh-client-connection/client'
|
import type { HistoryEntry, IApiClient, MuxFrame, RpcError, RpcId, RpcResult, SessionId, ToolEventView } from '@deepseek-ai/dsh-client-connection/client'
|
||||||
import { transportError } from '@deepseek-ai/dsh-client-connection/client'
|
import { transportError } from '@deepseek-ai/dsh-client-connection/client'
|
||||||
import type { ObservableSnapshot } from '../store/index.ts'
|
import type { ObservableSnapshot } from '../contract/store.ts'
|
||||||
import type {
|
import type {
|
||||||
ConversationNode, ConversationSnapshot, OpenState, PendingInteraction, PromptError, RunningToolCall,
|
ConversationNode, ConversationSnapshot, OpenState, PendingInteraction, PromptError, RunningToolCall,
|
||||||
} from './conversation.ts'
|
} from './conversation.ts'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { afterEach, describe, expect, it, vi } from 'vitest'
|
import { afterEach, describe, expect, it, vi } from 'vitest'
|
||||||
import { createSnapshotStore, defineStore, shallowEqual } from '../src/client/store/index.ts'
|
import { createSnapshotStore, defineStore, shallowEqual } from '../src/client/contract/store.ts'
|
||||||
|
|
||||||
interface State {
|
interface State {
|
||||||
a: { n: number }
|
a: { n: number }
|
||||||
|
|||||||
Reference in New Issue
Block a user