import type { Runtime } from '../../runtime/base.ts'; import type { RouteDecision } from '../../runtime/routing/index.ts'; import { type ByteSource, IOResult } from '../../io/types.ts'; import type { Resource } from '../../resource/base.ts'; import type { CallStack } from '../../shell/call_stack.ts'; import { JobTable } from '../../shell/job_table/index.ts'; import { type ExecuteFn } from '../expand/node.ts'; import type { TSNodeLike } from '../../shell/types.ts'; import type { DispatchFn } from '../../runtime/types.ts'; import type { Namespace } from '../mount/namespace/namespace.ts'; import type { MountRegistry } from '../mount/registry.ts'; import type { Session } from '../session/session.ts'; import { ExecutionNode } from '../types.ts'; import { type JobConsole } from '../../shell/console/index.ts'; type Result = [ByteSource | null, IOResult, ExecutionNode]; export interface ExecuteNodeDeps { dispatch: DispatchFn; registry: MountRegistry; namespace: Namespace; jobTable: JobTable; executeFn: ExecuteFn; agentId: string; workspaceId: string; registerCloser: (fn: () => Promise) => void; ensureOpen?: (resource: Resource) => Promise; runtimeBindings?: Record; routingDecision?: RouteDecision; signal?: AbortSignal; /** * Parse one line into a tree. Only alias expansion needs it: an alias * rewrites the head word textually and the result is read as a fresh * line, so a value holding a pipe is a pipe. Absent (a unit test * driving the walker directly) means an alias definition is stored and * printed but never expanded. */ reparse?: (line: string) => TSNodeLike; /** * Console this node writes its output to as it is produced. * When set, the node emits and returns no stdout; when unset * it returns stdout as a value, which is what capture sites * (command substitution, pipe stages, redirects) rely on. */ sink?: JobConsole; } export declare function executeNode(deps: ExecuteNodeDeps, node: TSNodeLike, session: Session, stdin?: ByteSource | null, callStack?: CallStack | null): Promise; export {}; //# sourceMappingURL=execute_node.d.ts.map