2dcfadbf82
Tasks with no progress.lastUpdate were silently skipped in checkAndInterruptStaleTasks, causing them to hang forever when the model hangs before its first tool call. Now falls back to checking startedAt against a configurable messageStalenessTimeoutMs (default: 10 minutes). Closes #1769
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import type { PluginInput } from "@opencode-ai/plugin"
|
|
import type { BackgroundTask, LaunchInput } from "./types"
|
|
|
|
export const TASK_TTL_MS = 30 * 60 * 1000
|
|
export const MIN_STABILITY_TIME_MS = 10 * 1000
|
|
export const DEFAULT_STALE_TIMEOUT_MS = 180_000
|
|
export const DEFAULT_MESSAGE_STALENESS_TIMEOUT_MS = 600_000
|
|
export const MIN_RUNTIME_BEFORE_STALE_MS = 30_000
|
|
export const MIN_IDLE_TIME_MS = 5000
|
|
export const POLLING_INTERVAL_MS = 3000
|
|
export const TASK_CLEANUP_DELAY_MS = 10 * 60 * 1000
|
|
export const TMUX_CALLBACK_DELAY_MS = 200
|
|
|
|
export type ProcessCleanupEvent = NodeJS.Signals | "beforeExit" | "exit"
|
|
|
|
export type OpencodeClient = PluginInput["client"]
|
|
|
|
export interface MessagePartInfo {
|
|
sessionID?: string
|
|
type?: string
|
|
tool?: string
|
|
}
|
|
|
|
export interface EventProperties {
|
|
sessionID?: string
|
|
info?: { id?: string }
|
|
[key: string]: unknown
|
|
}
|
|
|
|
export interface BackgroundEvent {
|
|
type: string
|
|
properties?: EventProperties
|
|
}
|
|
|
|
export interface Todo {
|
|
content: string
|
|
status: string
|
|
priority: string
|
|
id: string
|
|
}
|
|
|
|
export interface QueueItem {
|
|
task: BackgroundTask
|
|
input: LaunchInput
|
|
}
|
|
|
|
export interface SubagentSessionCreatedEvent {
|
|
sessionID: string
|
|
parentID: string
|
|
title: string
|
|
}
|
|
|
|
export type OnSubagentSessionCreated = (event: SubagentSessionCreatedEvent) => Promise<void>
|