autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
54 lines (53 loc) • 1.63 kB
TypeScript
/**
* Bootstrap Event Types — 事件 payload 类型化
*
* 替代 BootstrapEventEmitter 中所有 `Record<string, unknown>` payload,
* 通过 discriminated union(`type` 字段)实现编译期事件校验。
*
* @module service/bootstrap/bootstrap-event-types
*/
export interface DimensionSkippedPayload {
type: 'skipped';
reason: string;
}
export interface DimensionRestoredPayload {
type: 'incremental-restored';
reason: string;
}
export interface DimensionCheckpointRestoredPayload {
type: 'checkpoint-restored';
[key: string]: unknown;
}
export interface DimensionErrorPayload {
type: 'error';
reason: string;
}
export interface DimensionPipelineCompletePayload {
type: 'candidate' | 'skill';
extracted: number;
created: number;
status: string;
degraded: boolean;
durationMs: number;
toolCallCount: number;
source: string;
}
export interface DimensionSkillPayload {
type: 'skill';
skillName: string;
sourceCount: number;
}
export interface DimensionExternalCompletePayload {
type: 'skill' | 'candidate';
extracted: number;
skillCreated: boolean;
recipesBound: number;
progress: string;
isBootstrapComplete: boolean;
source: string;
}
/** Discriminated union — 通过 `type` 字段区分 */
export type DimensionCompletePayload = DimensionSkippedPayload | DimensionRestoredPayload | DimensionCheckpointRestoredPayload | DimensionErrorPayload | DimensionPipelineCompletePayload | DimensionSkillPayload | DimensionExternalCompletePayload;
export interface ProgressPayload {
[key: string]: unknown;
}