import type { ToolInputDisplay } from '@moonshot-ai/agent-core-v2/tool/toolInputDisplay'; import type { ContentPart, Message } from '@moonshot-ai/kosong'; import type { BackgroundTaskStatus } from '#/task'; export type SkillSource = 'project' | 'user' | 'extra' | 'builtin'; export interface UserPromptOrigin { readonly kind: 'user'; } export const USER_PROMPT_ORIGIN: UserPromptOrigin = { kind: 'user' }; export interface SkillActivationOrigin { readonly kind: 'skill_activation'; readonly activationId: string; readonly skillName: string; readonly skillArgs?: string | undefined; readonly trigger: 'user-slash' | 'model-tool' | 'nested-skill'; readonly skillType?: string | undefined; readonly skillPath?: string | undefined; readonly skillSource?: SkillSource | undefined; } export interface PluginCommandOrigin { readonly kind: 'plugin_command'; readonly activationId: string; readonly pluginId: string; readonly commandName: string; readonly commandArgs?: string | undefined; readonly trigger: 'user-slash'; } export interface InjectionOrigin { readonly kind: 'injection'; readonly variant: string; } export interface ShellCommandOrigin { readonly kind: 'shell_command'; readonly phase: 'input' | 'output'; readonly isError?: boolean; } export interface CompactionSummaryOrigin { readonly kind: 'compaction_summary'; } export interface SystemTriggerOrigin { readonly kind: 'system_trigger'; readonly name: string; } export interface BackgroundTaskOrigin { readonly kind: 'background_task'; readonly taskId: string; readonly status: BackgroundTaskStatus; readonly notificationId: string; } export interface CronJobOrigin { readonly kind: 'cron_job'; readonly jobId: string; readonly cron: string; readonly recurring: boolean; readonly coalescedCount: number; readonly stale: boolean; } export interface CronMissedOrigin { readonly kind: 'cron_missed'; readonly count: number; } export interface HookResultOrigin { readonly kind: 'hook_result'; readonly event: string; readonly blocked?: boolean; } export interface RetryOrigin { readonly kind: 'retry'; readonly trigger?: string; } export type PromptOrigin = | UserPromptOrigin | SkillActivationOrigin | PluginCommandOrigin | InjectionOrigin | ShellCommandOrigin | CompactionSummaryOrigin | SystemTriggerOrigin | BackgroundTaskOrigin | CronJobOrigin | CronMissedOrigin | HookResultOrigin | RetryOrigin; export type ContextMessage = Message & { readonly origin?: PromptOrigin | undefined; readonly isError?: boolean; toolCallDisplays?: Record; readonly note?: string; }; export interface UserMessageRecord { content: readonly ContentPart[]; origin: PromptOrigin; } export interface SystemReminderRecord { content: string; origin: PromptOrigin; } export interface AgentContextData { history: readonly ContextMessage[]; tokenCount: number; }