import type { ToolCall } from "../types.js"; import type { TaskEvidence } from "../store/plan.js"; import { TaskWorkSignals, classifyTaskTitle, isEvidenceWorkTool, isPentestPlanKind, looksLikeInstallTaskTitle, looksLikeScaffoldTaskTitle, toolFitsTaskClass } from "./evidence/task-classification.js"; import { isScaffoldCreateCommand } from "./evidence/tool-budgets.js"; import { TaskWorkLedger } from "./evidence/task-selection.js"; export { canMarkTaskDone, isDevServerCall, isPackageInstallCommand, isRemoteObservationTask, isRuntimeObservationTask, pickPendingTaskForToolCall } from "./evidence/task-selection.js"; export type { CanMarkTaskDoneOpts, TaskWorkLedger } from "./evidence/task-selection.js"; export { DEFAULT_TOOL_TIMEOUT_MS, isLongQuietInstallOrScaffoldCommand, isLongRunningTestOrBuildCommand, toolHardBudgetMs, toolStallBudgetMs } from "./evidence/tool-budgets.js"; export { isScaffoldCreateCommand }; export { isMetaPlanTool } from "./evidence/task-classification.js"; export { classifyTaskTitle, isEvidenceWorkTool, isPentestPlanKind, looksLikeInstallTaskTitle, looksLikeScaffoldTaskTitle, toolFitsTaskClass }; export type { TaskClass, TaskWorkSignals } from "./evidence/task-classification.js"; export declare function ledgerFromTaskEvidence(taskId: string, evidence?: TaskEvidence | undefined): TaskWorkLedger; export declare function taskEvidenceFromLedger(ledger: TaskWorkLedger): TaskEvidence; export interface LooseWorkReceipt { readonly toolName: string; readonly signals?: TaskWorkSignals | undefined; } export declare function absorbLooseWorkIntoLedger(ledger: TaskWorkLedger | null, taskId: string, taskTitle: string, loose: readonly LooseWorkReceipt[], opts?: { planKind?: string | undefined; }): TaskWorkLedger | null; export declare function recordTaskWorkSuccess(ledger: TaskWorkLedger | null, taskId: string | undefined, toolName: string, signals?: TaskWorkSignals): TaskWorkLedger | null; export declare function openTaskLedger(taskId: string): TaskWorkLedger; export declare function hasLocalRuntimeProof(evidence?: Pick | null): boolean; export declare function hasRemoteWorkProof(evidence?: Pick | null): boolean; export declare function isServerReadyOutput(output: string): boolean; export declare function isPortListeningOutput(command: string, output: string): boolean; export declare function isRemoteReconToolCall(call: ToolCall): boolean; export declare function isRemoteActiveTestCall(call: ToolCall): boolean; export declare function isPlanPreflightTool(name: string): boolean; export declare function isReadOnlyReconTool(name: string): boolean; export declare function isBatchSoftFailTool(name: string): boolean; export declare function isBuildPrePlanAllowedTool(name: string): boolean; export declare const TOOL_ABORT_GRACE_MS = 2500; export declare function isReadOnlyVersionProbeCommand(cmd: string): boolean; export declare function codingBuildRequiresPlan(prompt: string, opts?: { informational?: boolean; idle?: boolean; pentest?: boolean; }): boolean; export declare function userAskedForFeatureApp(prompt: string): boolean; export declare function isAppSourcePath(path: string): boolean; export declare function extractWritePathsFromCall(call: ToolCall): string[]; export declare function looksLikeStarterBoilerplate(content: string): boolean; export declare function looksLikeFeatureProductCode(content: string): boolean; export declare function isFeatureImplementationCall(call: ToolCall): boolean; export declare function resolveUserDestinationHint(prompt: string, home?: string): string | undefined; export declare function applyDestinationCwd(call: ToolCall, destinationHint: string | undefined): ToolCall;