[agent-pipeline] pipe-20260329160157-3bqb round-1

This commit is contained in:
DDD1542
2026-03-30 02:26:40 +09:00
parent b9679856d7
commit 7529c3ff9e
190 changed files with 2292 additions and 2345 deletions
+7 -7
View File
@@ -74,7 +74,7 @@ function detectDisconnectedNodes(nodes: FlowNode[], edges: FlowEdge[]): FlowVali
nodeId: node.id,
severity: "warning",
type: "disconnected-node",
message: `"${node.data.displayName || node.type}" 노드가 다른 노드와 연결되어 있지 않습니다. 이 노드는 실행되지 않습니다.`,
message: `"${(node.data as any).displayName || node.type}" 노드가 다른 노드와 연결되어 있지 않습니다. 이 노드는 실행되지 않습니다.`,
});
}
@@ -163,7 +163,7 @@ function detectParallelConflicts(nodes: FlowNode[], edges: FlowEdge[]): FlowVali
const tableMap = new Map<string, FlowNode[]>();
for (const node of updateNodes) {
const tableName = node.data.targetTable || node.data.externalTargetTable;
const tableName = (node.data as any).targetTable || (node.data as any).externalTargetTable;
if (tableName) {
if (!tableMap.has(tableName)) {
tableMap.set(tableName, []);
@@ -179,7 +179,7 @@ function detectParallelConflicts(nodes: FlowNode[], edges: FlowEdge[]): FlowVali
const fieldMap = new Map<string, FlowNode[]>();
for (const node of conflictNodes) {
const fields = node.data.fieldMappings?.map((m: any) => m.targetField) || [];
const fields = (node.data as any).fieldMappings?.map((m: any) => m.targetField) || [];
for (const field of fields) {
if (!fieldMap.has(field)) {
fieldMap.set(field, []);
@@ -226,7 +226,7 @@ function detectMissingWhereConditions(nodes: FlowNode[]): FlowValidation[] {
for (const node of nodes) {
if (node.type === "updateAction" || node.type === "deleteAction") {
const whereConditions = node.data.whereConditions;
const whereConditions = (node.data as any).whereConditions;
if (!whereConditions || whereConditions.length === 0) {
validations.push({
@@ -293,7 +293,7 @@ function detectCircularReferences(nodes: FlowNode[], edges: FlowEdge[]): FlowVal
const nodeNames = cycle
.map((id) => {
const node = nodes.find((n) => n.id === id);
return node?.data.displayName || node?.type || id;
return (node?.data as any)?.displayName || node?.type || id;
})
.join(" → ");
@@ -321,7 +321,7 @@ function detectDataSourceMismatch(nodes: FlowNode[], edges: FlowEdge[]): FlowVal
// Source 노드들의 타입 수집
for (const node of nodes) {
if (node.type === "tableSource" || node.type === "externalDBSource") {
const dataSourceType = node.data.dataSourceType || "context-data";
const dataSourceType = (node.data as any).dataSourceType || "context-data";
nodeDataSourceTypes.set(node.id, dataSourceType);
}
}
@@ -341,7 +341,7 @@ function detectDataSourceMismatch(nodes: FlowNode[], edges: FlowEdge[]): FlowVal
// table-all 모드인데 WHERE에 특정 레코드 조건이 있는 경우
if (dataSourceType === "table-all") {
const whereConditions = node.data.whereConditions || [];
const whereConditions = (node.data as any).whereConditions || [];
const hasPrimaryKeyCondition = whereConditions.some((cond: any) => cond.field === "id");
if (hasPrimaryKeyCondition) {