49 lines
2.2 KiB
TypeScript
49 lines
2.2 KiB
TypeScript
/**
|
|
* GENERATED by `scripts/gen-session-format-catalog.ts` — do not edit by hand.
|
|
* The direct imports make historical readability independent of mounted plugins.
|
|
*/
|
|
|
|
import { KNOWN_SESSION_EVENT_TYPES } from '@deepseek-ai/dsh-session'
|
|
import { createSessionFormatCatalog } from '@deepseek-ai/dsh-session-format'
|
|
import type { SessionFormatCatalogOptions } from '@deepseek-ai/dsh-session-format'
|
|
import { validateInstalledCurrentSessionArtifact, validateInstalledCurrentSessionHeader } from './current.ts'
|
|
import { releasedV0SessionFormatCodec, releasedV1SessionFormatCodec, sessionFormatV0ToV1 } from '@deepseek-ai/dsh-session-format-v0-to-v1'
|
|
import { releasedV2SessionFormatCodec, sessionFormatV1ToV2 } from '@deepseek-ai/dsh-session-format-v1-to-v2'
|
|
import { releasedV3SessionFormatCodec, sessionFormatV2ToV3 } from '@deepseek-ai/dsh-session-format-v2-to-v3'
|
|
import { assertReleasedV4Header, releasedV4SessionFormatCodec, restoreReleasedV4Artifact, sessionFormatV3ToV4 } from '@deepseek-ai/dsh-session-format-v3-to-v4'
|
|
|
|
/** Static assembly shared by current reads and parent-specific historical restoration. */
|
|
export const sessionFormatCatalogOptions: SessionFormatCatalogOptions = {
|
|
currentVersion: 4,
|
|
codecs: [
|
|
releasedV0SessionFormatCodec,
|
|
releasedV1SessionFormatCodec,
|
|
releasedV2SessionFormatCodec,
|
|
releasedV3SessionFormatCodec,
|
|
releasedV4SessionFormatCodec,
|
|
],
|
|
currentEncoder: releasedV4SessionFormatCodec,
|
|
migrations: [
|
|
sessionFormatV0ToV1,
|
|
sessionFormatV1ToV2,
|
|
sessionFormatV2ToV3,
|
|
sessionFormatV3ToV4,
|
|
],
|
|
restoreCurrent(artifact) {
|
|
const restored = restoreReleasedV4Artifact(artifact, KNOWN_SESSION_EVENT_TYPES)
|
|
validateInstalledCurrentSessionArtifact(restored)
|
|
return restored
|
|
},
|
|
restoreTransformedCurrent(artifact) {
|
|
return restoreReleasedV4Artifact(artifact, KNOWN_SESSION_EVENT_TYPES)
|
|
},
|
|
restoreCurrentHeader(header) {
|
|
assertReleasedV4Header(header)
|
|
validateInstalledCurrentSessionHeader(header)
|
|
return header
|
|
},
|
|
}
|
|
|
|
/** Physical codec dispatch and complete adjacent chain, independent of mounted plugins. */
|
|
export const sessionFormatCatalog = createSessionFormatCatalog(sessionFormatCatalogOptions)
|