/** * Pipeline node management — create, update, delete, and query individual * nodes within multi-node agent pipelines. * * Pipeline nodes represent individual steps in a pipeline DAG. Each node has * a type (prompt, command, connector_exec, checkpoint), an optional phase * (define, plan, build, verify, review, ship), and dependency declarations. */ import type { RequestOptions } from "../base-client"; import type { RequestBuilder } from "../request-builder"; /** Node type classification */ export type PipelineNodeType = "prompt" | "command" | "connector_exec" | "checkpoint"; /** Lifecycle phase for ISV portal workflow */ export type PipelineNodePhase = "define" | "plan" | "build" | "verify" | "review" | "ship"; /** Pipeline node response type */ export interface PipelineNode { id: string; pipeline_id: string; node_key: string; node_type: PipelineNodeType; label: string; description?: string | null; position_x: number; position_y: number; order: number; phase?: PipelineNodePhase | null; agent_id?: string | null; prompt_template?: string | null; model_id?: string | null; tool_grants?: string[] | null; action_type?: string | null; action_config?: Record | null; connector_type?: string | null; command_template?: string | null; slot_definitions?: Record | null; approval_message?: string | null; depends_on: string[]; inputs?: Record | null; output_schema?: Record | null; timeout_ms?: number | null; max_retries: number; condition?: Record | null; acceptance_criteria?: Array> | null; feedback_loop_acknowledged: boolean; inserted_at: string; updated_at: string; } /** Attributes for creating a pipeline node */ export interface CreatePipelineNodeAttributes { /** UUID of the parent pipeline (required) */ pipeline_id: string; /** Unique key within the pipeline, lowercase snake_case (required) */ node_key: string; /** Node type classification (required) */ node_type: PipelineNodeType; /** Human-readable label (required) */ label: string; /** Optional description */ description?: string; /** Canvas X position */ position_x?: number; /** Canvas Y position */ position_y?: number; /** Execution order within phase */ order?: number; /** Lifecycle phase */ phase?: PipelineNodePhase; /** Agent to execute (for prompt nodes) */ agent_id?: string; /** Prompt template (for prompt nodes without agent_id) */ prompt_template?: string; /** LLM model override */ model_id?: string; /** Tool grants for the agent */ tool_grants?: string[]; /** Action type (for command nodes) */ action_type?: string; /** Action configuration */ action_config?: Record; /** Connector type (for connector_exec nodes) */ connector_type?: string; /** Command template */ command_template?: string; /** Slot definitions for input/output mapping */ slot_definitions?: Record; /** Approval message (for checkpoint nodes) */ approval_message?: string; /** Node IDs this node depends on */ depends_on?: string[]; /** Input mappings (dot-path resolution) */ inputs?: Record; /** Expected output JSON Schema */ output_schema?: Record; /** Execution timeout in milliseconds */ timeout_ms?: number; /** Maximum retry attempts */ max_retries?: number; /** Conditional execution rule */ condition?: Record; /** Acceptance criteria for quality gating */ acceptance_criteria?: Array>; /** Acknowledge feedback loop in DAG */ feedback_loop_acknowledged?: boolean; } /** Attributes for updating a pipeline node (all optional) */ export interface UpdatePipelineNodeAttributes { label?: string; description?: string; position_x?: number; position_y?: number; order?: number; phase?: PipelineNodePhase; agent_id?: string; prompt_template?: string; model_id?: string; tool_grants?: string[]; action_type?: string; action_config?: Record; connector_type?: string; command_template?: string; slot_definitions?: Record; approval_message?: string; depends_on?: string[]; inputs?: Record; output_schema?: Record; timeout_ms?: number; max_retries?: number; condition?: Record; acceptance_criteria?: Array>; feedback_loop_acknowledged?: boolean; } /** * Creates the pipeline nodes namespace with typed CRUD operations. * * @example * ```typescript * const node = await admin.pipelineNodes.create({ * pipeline_id: pipelineId, * node_key: "clarify_intent", * node_type: "prompt", * label: "Clarify Intent", * agent_id: agentId, * phase: "define", * depends_on: [], * }); * * const nodes = await admin.pipelineNodes.listByPipeline(pipelineId); * ``` */ export declare function createPipelineNodesNamespace(rb: RequestBuilder): { /** * List all pipeline nodes across all pipelines (global index, policy-scoped). * For pipeline-specific listing, prefer {@link listByPipeline}. * * @param options - Request options (filters, pagination, includes) * @returns Array of pipeline nodes */ list(options?: RequestOptions): Promise; /** * Get a pipeline node by ID. * * @param id - Pipeline node UUID * @param options - Request options * @returns The pipeline node */ get(id: string, options?: RequestOptions): Promise; /** * List pipeline nodes for a specific pipeline. * * @param pipelineId - Pipeline UUID * @param options - Request options * @returns Array of pipeline nodes belonging to the pipeline */ listByPipeline(pipelineId: string, options?: RequestOptions): Promise; /** * Create a new pipeline node. * * @param attributes - Node attributes (pipeline_id, node_key, node_type, label required) * @param options - Request options * @returns The created pipeline node */ create(attributes: CreatePipelineNodeAttributes, options?: RequestOptions): Promise; /** * Update a pipeline node. * * @param id - Pipeline node UUID * @param attributes - Attributes to update * @param options - Request options * @returns The updated pipeline node */ update(id: string, attributes: UpdatePipelineNodeAttributes, options?: RequestOptions): Promise; /** * Delete a pipeline node. * * @param id - Pipeline node UUID * @param options - Request options */ delete(id: string, options?: RequestOptions): Promise; }; //# sourceMappingURL=pipeline-nodes.d.ts.map