@roarpeng/graphflow 1.15.5 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +60 -60
- package/README.zh.md +51 -51
- package/dist/config/discover-workspace.d.ts +18 -1
- package/dist/config/discover-workspace.d.ts.map +1 -1
- package/dist/config/discover-workspace.js +30 -3
- package/dist/config/discover-workspace.js.map +1 -1
- package/dist/core/orchestrator-phases.d.ts +70 -0
- package/dist/core/orchestrator-phases.d.ts.map +1 -0
- package/dist/core/orchestrator-phases.js +344 -0
- package/dist/core/orchestrator-phases.js.map +1 -0
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +47 -266
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/graph/client-factory.d.ts.map +1 -1
- package/dist/graph/client-factory.js +7 -0
- package/dist/graph/client-factory.js.map +1 -1
- package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
- package/dist/integrations/agent-mcp-installer.js +12 -1
- package/dist/integrations/agent-mcp-installer.js.map +1 -1
- package/dist/integrations/host-adapter-install.d.ts +17 -5
- package/dist/integrations/host-adapter-install.d.ts.map +1 -1
- package/dist/integrations/host-adapter-install.js +60 -6
- package/dist/integrations/host-adapter-install.js.map +1 -1
- package/dist/integrations/host-adapter.d.ts +6 -2
- package/dist/integrations/host-adapter.d.ts.map +1 -1
- package/dist/integrations/host-adapter.js +61 -0
- package/dist/integrations/host-adapter.js.map +1 -1
- package/dist/integrations/profile-host-installer.d.ts +63 -0
- package/dist/integrations/profile-host-installer.d.ts.map +1 -0
- package/dist/integrations/profile-host-installer.js +223 -0
- package/dist/integrations/profile-host-installer.js.map +1 -0
- package/dist/integrations/skill-installer.d.ts +19 -0
- package/dist/integrations/skill-installer.d.ts.map +1 -1
- package/dist/integrations/skill-installer.js +90 -3
- package/dist/integrations/skill-installer.js.map +1 -1
- package/dist/surfaces/cli/init.d.ts.map +1 -1
- package/dist/surfaces/cli/init.js +77 -68
- package/dist/surfaces/cli/init.js.map +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
|
@@ -6,6 +6,7 @@ exports.hasProjectWorkspaceMarkers = hasProjectWorkspaceMarkers;
|
|
|
6
6
|
exports.hasDevProjectMarkers = hasDevProjectMarkers;
|
|
7
7
|
exports.isUnsafeWorkspaceFallback = isUnsafeWorkspaceFallback;
|
|
8
8
|
exports.isUsableWorkspaceFallback = isUsableWorkspaceFallback;
|
|
9
|
+
exports.isSystemTempDirectory = isSystemTempDirectory;
|
|
9
10
|
exports.discoverWorkspaceRoot = discoverWorkspaceRoot;
|
|
10
11
|
exports.ensureMcpWorkspaceEnv = ensureMcpWorkspaceEnv;
|
|
11
12
|
exports.tryResolveIdeWorkspaceHint = tryResolveIdeWorkspaceHint;
|
|
@@ -164,6 +165,22 @@ function isUsableWorkspaceFallback(dir) {
|
|
|
164
165
|
}
|
|
165
166
|
return hasProjectWorkspaceMarkers(root) || hasDevProjectMarkers(root);
|
|
166
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* True when `dir` is an OS temp root (e.g. `%TEMP%` / `/tmp`).
|
|
170
|
+
*
|
|
171
|
+
* A temp root must never be an implicit workspace: an MCP server started with
|
|
172
|
+
* cwd inside the temp directory writes `graphflow-out/graphflow-graph.json`
|
|
173
|
+
* there, and `hasProjectWorkspaceMarkers()` would then treat the temp root as a
|
|
174
|
+
* project — capturing upward discovery for every project created beneath it
|
|
175
|
+
* (observed as the m49 workspace-isolation failure).
|
|
176
|
+
*/
|
|
177
|
+
function isSystemTempDirectory(dir) {
|
|
178
|
+
const normalize = (value) => (0, node_path_1.resolve)(value).replace(/\\/g, "/").toLowerCase().replace(/\/+$/, "");
|
|
179
|
+
const target = normalize(dir);
|
|
180
|
+
return [(0, node_os_1.tmpdir)(), process.env.TEMP, process.env.TMP]
|
|
181
|
+
.filter((value) => Boolean(value && value.trim()))
|
|
182
|
+
.some((value) => normalize(value) === target);
|
|
183
|
+
}
|
|
167
184
|
function resolveIdeWorkspaceHint() {
|
|
168
185
|
const wsl = isWsl();
|
|
169
186
|
for (const key of IDE_WORKSPACE_ENV_KEYS) {
|
|
@@ -209,16 +226,26 @@ function wslUncToPath(uncPath) {
|
|
|
209
226
|
* Walk upward from `fromDir` to find the nearest user project root.
|
|
210
227
|
* Skips GraphFlow runtime directories (extension vendor, global npm package).
|
|
211
228
|
*
|
|
229
|
+
* The walk stops at unsafe boundaries (home / AppData) and at OS temp roots,
|
|
230
|
+
* so a stray graph store in `%TEMP%` cannot capture unrelated projects.
|
|
231
|
+
* `extraBoundaries` is a test hook for exercising the same rule without writing
|
|
232
|
+
* to the real temp directory.
|
|
233
|
+
*
|
|
212
234
|
* IDE env hints (CURSOR_PROJECT_DIR, etc.) are only used when `fromDir` is a
|
|
213
235
|
* GraphFlow runtime directory — e.g. extension vendor — where upward walk cannot
|
|
214
236
|
* reach the user's opened workspace.
|
|
215
237
|
*/
|
|
216
|
-
function discoverWorkspaceRoot(fromDir = process.cwd()) {
|
|
238
|
+
function discoverWorkspaceRoot(fromDir = process.cwd(), options = {}) {
|
|
217
239
|
const resolvedFrom = (0, node_path_1.resolve)(fromDir);
|
|
240
|
+
const extraBoundaries = new Set((options.extraBoundaries ?? []).map((dir) => (0, node_path_1.resolve)(dir)));
|
|
218
241
|
let current = resolvedFrom;
|
|
219
242
|
for (let depth = 0; depth < MAX_WALK_DEPTH; depth += 1) {
|
|
220
|
-
if (isUnsafeWorkspaceFallback(current)) {
|
|
221
|
-
// Stop walking upward at unsafe boundaries (e.g. Windows AppData, home dir)
|
|
243
|
+
if (isUnsafeWorkspaceFallback(current) || isSystemTempDirectory(current)) {
|
|
244
|
+
// Stop walking upward at unsafe boundaries (e.g. Windows AppData, home dir)
|
|
245
|
+
// and at the OS temp root.
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
if (extraBoundaries.has(current)) {
|
|
222
249
|
break;
|
|
223
250
|
}
|
|
224
251
|
if (hasProjectWorkspaceMarkers(current) && !isGraphFlowRuntimeDirectory(current)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover-workspace.js","sourceRoot":"","sources":["../../src/config/discover-workspace.ts"],"names":[],"mappings":";;AA0BA,4EAMC;AAiDD,kEAGC;AAGD,gEAoBC;AAaD,oDAGC;AAMD,8DA6BC;AAED,8DAMC;
|
|
1
|
+
{"version":3,"file":"discover-workspace.js","sourceRoot":"","sources":["../../src/config/discover-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type AgentDelegatedPlanInsight } from "./agent-delegation.js";
|
|
2
|
+
import type { buildPromptContext, maybeBuildNearLosslessContext, maybeBuildSkillHints } from "./orchestrator-context.js";
|
|
3
|
+
import type { maybeFindSimilarEpisodes } from "./orchestrator-episode.js";
|
|
4
|
+
import { decisionToSelection } from "./orchestrator-route.js";
|
|
5
|
+
import type { buildRouteDecisions } from "./orchestrator-route.js";
|
|
6
|
+
import type { OrchestrateOptions, OrchestrationInput, TaskNode, TaskRunResult } from "./types.js";
|
|
7
|
+
export type RouteDecisionSet = ReturnType<typeof buildRouteDecisions>;
|
|
8
|
+
export type SkillHintSet = Awaited<ReturnType<typeof maybeBuildSkillHints>>;
|
|
9
|
+
export type BuiltPromptContext = ReturnType<typeof buildPromptContext>;
|
|
10
|
+
export type NearLosslessContext = Awaited<ReturnType<typeof maybeBuildNearLosslessContext>>;
|
|
11
|
+
export type SimilarEpisodeSet = Awaited<ReturnType<typeof maybeFindSimilarEpisodes>>;
|
|
12
|
+
export type PlannerSelection = ReturnType<typeof decisionToSelection>;
|
|
13
|
+
export interface OrchestrationShared {
|
|
14
|
+
input: OrchestrationInput;
|
|
15
|
+
effectiveOptions: OrchestrateOptions;
|
|
16
|
+
contextPackage: NearLosslessContext;
|
|
17
|
+
routeDecisions: RouteDecisionSet;
|
|
18
|
+
skillHints: SkillHintSet;
|
|
19
|
+
similarEpisodes: SimilarEpisodeSet;
|
|
20
|
+
promptContext: BuiltPromptContext;
|
|
21
|
+
promptContextLines: number;
|
|
22
|
+
retryOptions: {
|
|
23
|
+
maxRetries?: number;
|
|
24
|
+
};
|
|
25
|
+
plannerSelection: PlannerSelection;
|
|
26
|
+
triageId?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface PlanPhaseResult {
|
|
29
|
+
plan: TaskNode[];
|
|
30
|
+
plannerDraft: string;
|
|
31
|
+
brainstormIdeas?: string[];
|
|
32
|
+
planInsightBundle?: AgentDelegatedPlanInsight;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build the per-node runner used by both the local LLM DAG and the bridge+DAG
|
|
36
|
+
* hybrid. `forceLlm` pins `executionMode: "llm"` for hybrid runs, matching the
|
|
37
|
+
* previous inline closure.
|
|
38
|
+
*/
|
|
39
|
+
export declare function makeDagNodeRunner(params: {
|
|
40
|
+
routeDecisions: RouteDecisionSet;
|
|
41
|
+
providerHealth: OrchestrateOptions["providerHealth"];
|
|
42
|
+
retryOptions: {
|
|
43
|
+
maxRetries?: number;
|
|
44
|
+
};
|
|
45
|
+
promptContext: BuiltPromptContext;
|
|
46
|
+
executionMode?: OrchestrateOptions["executionMode"];
|
|
47
|
+
forceLlm?: boolean;
|
|
48
|
+
logMessage: string;
|
|
49
|
+
}): (node: TaskNode) => Promise<boolean>;
|
|
50
|
+
/** Simple-mode phase: one worker/validator round, then feedback + graph sync. */
|
|
51
|
+
export declare function runSimplePhase(shared: OrchestrationShared): Promise<TaskRunResult>;
|
|
52
|
+
/** Planning phase: plan-insight bridge, LLM planner, or heuristic planner. */
|
|
53
|
+
export declare function resolvePlanPhase(params: {
|
|
54
|
+
task: string;
|
|
55
|
+
skillHints: SkillHintSet;
|
|
56
|
+
effectiveOptions: OrchestrateOptions;
|
|
57
|
+
hasExternalLlm: boolean;
|
|
58
|
+
plannerSelection: PlannerSelection;
|
|
59
|
+
promptContext: BuiltPromptContext;
|
|
60
|
+
}): Promise<PlanPhaseResult>;
|
|
61
|
+
/**
|
|
62
|
+
* Bridge phase: package the plan for the external agent. `enableBridgeDagExecution`
|
|
63
|
+
* additionally runs the DAG locally (hybrid) before returning the descriptor.
|
|
64
|
+
*/
|
|
65
|
+
export declare function runBridgePhase(shared: OrchestrationShared & PlanPhaseResult): Promise<TaskRunResult>;
|
|
66
|
+
/** Local LLM DAG phase: execute, optionally drift-replan, then report. */
|
|
67
|
+
export declare function runLlmDagPhase(shared: OrchestrationShared & PlanPhaseResult): Promise<TaskRunResult>;
|
|
68
|
+
export declare function projectPlan(plan: TaskNode[]): string;
|
|
69
|
+
export declare function shorten(text: string): string;
|
|
70
|
+
//# sourceMappingURL=orchestrator-phases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-phases.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator-phases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeDagNodeRunner = makeDagNodeRunner;
|
|
4
|
+
exports.runSimplePhase = runSimplePhase;
|
|
5
|
+
exports.resolvePlanPhase = resolvePlanPhase;
|
|
6
|
+
exports.runBridgePhase = runBridgePhase;
|
|
7
|
+
exports.runLlmDagPhase = runLlmDagPhase;
|
|
8
|
+
exports.projectPlan = projectPlan;
|
|
9
|
+
exports.shorten = shorten;
|
|
10
|
+
/**
|
|
11
|
+
* Orchestration phase handlers (R4 decomposition of `runOrchestration`).
|
|
12
|
+
*
|
|
13
|
+
* `orchestrator.ts` used to hold one ~360-line function with five interleaved
|
|
14
|
+
* concerns: mode resolution, triage, planning, bridge packaging, and local DAG
|
|
15
|
+
* execution. Each concern now lives here as a named phase that receives an
|
|
16
|
+
* explicit parameter bundle and returns a finalized `TaskRunResult`, so the
|
|
17
|
+
* coordinator in `orchestrator.ts` only wires the phases together.
|
|
18
|
+
*
|
|
19
|
+
* Behaviour is intentionally unchanged: the same logging, the same graph /
|
|
20
|
+
* skill sync calls in the same order, and the same `triageId` propagation
|
|
21
|
+
* (including the LLM-failure path that intentionally omits it).
|
|
22
|
+
*/
|
|
23
|
+
const planner_js_1 = require("../agents/planner.js");
|
|
24
|
+
const brainstormer_js_1 = require("../agents/brainstormer.js");
|
|
25
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
26
|
+
const provider_executor_js_1 = require("../routing/provider-executor.js");
|
|
27
|
+
const dag_engine_js_1 = require("./dag-engine.js");
|
|
28
|
+
const agent_delegation_js_1 = require("./agent-delegation.js");
|
|
29
|
+
const state_machine_js_1 = require("./state-machine.js");
|
|
30
|
+
const agent_assignment_js_1 = require("./agent-assignment.js");
|
|
31
|
+
const orchestrator_context_js_1 = require("./orchestrator-context.js");
|
|
32
|
+
const orchestrator_episode_js_1 = require("./orchestrator-episode.js");
|
|
33
|
+
const orchestrator_route_js_1 = require("./orchestrator-route.js");
|
|
34
|
+
function promptContextSpread(promptContext) {
|
|
35
|
+
if (!promptContext)
|
|
36
|
+
return {};
|
|
37
|
+
return { workerContext: promptContext, validatorContext: promptContext };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build the per-node runner used by both the local LLM DAG and the bridge+DAG
|
|
41
|
+
* hybrid. `forceLlm` pins `executionMode: "llm"` for hybrid runs, matching the
|
|
42
|
+
* previous inline closure.
|
|
43
|
+
*/
|
|
44
|
+
function makeDagNodeRunner(params) {
|
|
45
|
+
return async (node) => {
|
|
46
|
+
logger_js_1.logger.info({ nodeId: node.id, description: node.description }, params.logMessage);
|
|
47
|
+
const workerSelection = (0, orchestrator_route_js_1.selectionIfHealthy)((0, orchestrator_route_js_1.decisionToSelection)(params.routeDecisions.worker), params.providerHealth);
|
|
48
|
+
const validatorSelection = (0, orchestrator_route_js_1.selectionIfHealthy)((0, orchestrator_route_js_1.decisionToSelection)(params.routeDecisions.validator), params.providerHealth);
|
|
49
|
+
const executionModeSpread = params.forceLlm
|
|
50
|
+
? { executionMode: "llm" }
|
|
51
|
+
: params.executionMode
|
|
52
|
+
? { executionMode: params.executionMode }
|
|
53
|
+
: {};
|
|
54
|
+
const run = await (0, state_machine_js_1.runSimpleTask)({
|
|
55
|
+
task: node.description,
|
|
56
|
+
...params.retryOptions,
|
|
57
|
+
...(workerSelection ? { workerSelection } : {}),
|
|
58
|
+
...(validatorSelection ? { validatorSelection } : {}),
|
|
59
|
+
...promptContextSpread(params.promptContext),
|
|
60
|
+
...executionModeSpread,
|
|
61
|
+
});
|
|
62
|
+
return run.status === "COMPLETED";
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/** Simple-mode phase: one worker/validator round, then feedback + graph sync. */
|
|
66
|
+
async function runSimplePhase(shared) {
|
|
67
|
+
const { input, effectiveOptions, contextPackage, routeDecisions, skillHints, similarEpisodes } = shared;
|
|
68
|
+
const { promptContext, promptContextLines, retryOptions, triageId } = shared;
|
|
69
|
+
const workerSelection = (0, orchestrator_route_js_1.selectionIfHealthy)((0, orchestrator_route_js_1.decisionToSelection)(routeDecisions.worker), effectiveOptions?.providerHealth);
|
|
70
|
+
const validatorSelection = (0, orchestrator_route_js_1.selectionIfHealthy)((0, orchestrator_route_js_1.decisionToSelection)(routeDecisions.validator), effectiveOptions?.providerHealth);
|
|
71
|
+
const run = await (0, state_machine_js_1.runSimpleTask)({
|
|
72
|
+
task: input.task,
|
|
73
|
+
...retryOptions,
|
|
74
|
+
...(workerSelection ? { workerSelection } : {}),
|
|
75
|
+
...(validatorSelection ? { validatorSelection } : {}),
|
|
76
|
+
...promptContextSpread(promptContext),
|
|
77
|
+
...(effectiveOptions?.executionMode ? { executionMode: effectiveOptions.executionMode } : {}),
|
|
78
|
+
});
|
|
79
|
+
const finalRun = (0, orchestrator_context_js_1.appendContextFeedback)(run, contextPackage, promptContextLines, effectiveOptions);
|
|
80
|
+
const withRoute = (0, orchestrator_route_js_1.appendRouteFeedback)(finalRun, routeDecisions, skillHints);
|
|
81
|
+
await (0, orchestrator_episode_js_1.maybeSyncGraph)(input.task, withRoute, effectiveOptions);
|
|
82
|
+
await (0, orchestrator_episode_js_1.maybeSyncSkillGraph)(input.task, withRoute, effectiveOptions);
|
|
83
|
+
logger_js_1.logger.info({ status: withRoute.status, task: input.task }, "Orchestration task finished (simple mode)");
|
|
84
|
+
return (0, orchestrator_episode_js_1.finalizeEpisode)(input.task, [], withRoute, similarEpisodes, skillHints, effectiveOptions, triageId);
|
|
85
|
+
}
|
|
86
|
+
/** Planning phase: plan-insight bridge, LLM planner, or heuristic planner. */
|
|
87
|
+
async function resolvePlanPhase(params) {
|
|
88
|
+
const { task, skillHints, effectiveOptions, hasExternalLlm, plannerSelection, promptContext } = params;
|
|
89
|
+
let brainstormIdeas;
|
|
90
|
+
let plan;
|
|
91
|
+
let planInsightBundle;
|
|
92
|
+
const autoPlanInsight = effectiveOptions?.enablePlanInsight === true ||
|
|
93
|
+
(effectiveOptions?.enablePlanInsight !== false &&
|
|
94
|
+
!hasExternalLlm &&
|
|
95
|
+
effectiveOptions?.enableLlmAgents !== true &&
|
|
96
|
+
effectiveOptions?.executionMode === "bridge");
|
|
97
|
+
if (autoPlanInsight) {
|
|
98
|
+
planInsightBundle = await (0, orchestrator_context_js_1.maybeRunPlanInsightForComplex)(task, effectiveOptions);
|
|
99
|
+
}
|
|
100
|
+
if (planInsightBundle) {
|
|
101
|
+
if (!planInsightBundle.plan || planInsightBundle.plan.length === 0) {
|
|
102
|
+
logger_js_1.logger.warn({ task }, "Plan insight returned empty or null plan, falling back to heuristic planning");
|
|
103
|
+
plan = (0, planner_js_1.planTasks)(task, skillHints);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
plan = planInsightBundle.plan;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else if (effectiveOptions?.enableLlmAgents) {
|
|
110
|
+
brainstormIdeas = await (0, brainstormer_js_1.brainstormTaskLlm)(task, plannerSelection, promptContext);
|
|
111
|
+
plan = await (0, planner_js_1.planTasksLlm)(task, {
|
|
112
|
+
selection: plannerSelection,
|
|
113
|
+
skillHints,
|
|
114
|
+
brainstormIdeas,
|
|
115
|
+
...(promptContext ? { context: promptContext } : {}),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
plan = (0, planner_js_1.planTasks)(task, skillHints);
|
|
120
|
+
}
|
|
121
|
+
const plannerDraft = planInsightBundle
|
|
122
|
+
? `[plan-insight:${planInsightBundle.mode}] ${(0, agent_delegation_js_1.summarizeInsightForContext)(planInsightBundle.insight)}`
|
|
123
|
+
: effectiveOptions?.executionMode === "bridge"
|
|
124
|
+
// Bridge mode delegates execution to the external agent; burning a real
|
|
125
|
+
// LLM call here only to decorate the feedback string is pure cost and
|
|
126
|
+
// makes bridge flows hang on machines with slow/unreachable providers.
|
|
127
|
+
? `[bridge] planned ${plan.length} task(s) for external agent execution`
|
|
128
|
+
: await (0, provider_executor_js_1.executeRolePrompt)("planner", `plan task: ${task}`, plannerSelection, promptContext);
|
|
129
|
+
return {
|
|
130
|
+
plan,
|
|
131
|
+
plannerDraft,
|
|
132
|
+
...(brainstormIdeas ? { brainstormIdeas } : {}),
|
|
133
|
+
...(planInsightBundle ? { planInsightBundle } : {}),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function buildExecutionDescriptor(params) {
|
|
137
|
+
const { task, planProjection, agentAssignments, contextStr, insightSummary, retryHints, delegatedExtras } = params;
|
|
138
|
+
return {
|
|
139
|
+
action: "execute",
|
|
140
|
+
task,
|
|
141
|
+
context: `plan=${JSON.stringify(planProjection)}${insightSummary ? `; insight=${insightSummary}` : ""}${contextStr ? `; ${contextStr}` : ""}`,
|
|
142
|
+
retryHints,
|
|
143
|
+
...(agentAssignments.length > 0 ? { agentAssignments } : {}),
|
|
144
|
+
...delegatedExtras,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Bridge phase: package the plan for the external agent. `enableBridgeDagExecution`
|
|
149
|
+
* additionally runs the DAG locally (hybrid) before returning the descriptor.
|
|
150
|
+
*/
|
|
151
|
+
async function runBridgePhase(shared) {
|
|
152
|
+
const { input, effectiveOptions, contextPackage, routeDecisions, skillHints, similarEpisodes } = shared;
|
|
153
|
+
const { promptContext, promptContextLines, retryOptions, triageId, plan, plannerDraft } = shared;
|
|
154
|
+
const brainstormIdeas = shared.brainstormIdeas;
|
|
155
|
+
const planInsightBundle = shared.planInsightBundle;
|
|
156
|
+
// 多 Agent 协作编排:为每个任务节点标注建议的 agent 专业领域
|
|
157
|
+
const assignedPlan = (0, agent_assignment_js_1.assignAgentsToTasks)(plan);
|
|
158
|
+
const agentAssignments = (0, agent_assignment_js_1.buildAgentAssignments)(assignedPlan);
|
|
159
|
+
const planProjection = assignedPlan.map((node) => ({
|
|
160
|
+
id: node.id,
|
|
161
|
+
description: node.description,
|
|
162
|
+
dependencies: node.dependencies,
|
|
163
|
+
...(node.assignedAgent ? { assignedAgent: node.assignedAgent } : {}),
|
|
164
|
+
}));
|
|
165
|
+
const contextStr = promptContext
|
|
166
|
+
? Object.entries(promptContext)
|
|
167
|
+
.map(([k, v]) => `${k}: ${typeof v === "string" ? v : JSON.stringify(v)}`)
|
|
168
|
+
.join("; ")
|
|
169
|
+
: "";
|
|
170
|
+
const insightSummary = planInsightBundle
|
|
171
|
+
? (0, agent_delegation_js_1.summarizeInsightForContext)(planInsightBundle.insight)
|
|
172
|
+
: undefined;
|
|
173
|
+
const delegatedExtras = planInsightBundle?.mode === "agent-delegated" && planInsightBundle.agentWorkItems
|
|
174
|
+
? {
|
|
175
|
+
agentMode: "delegated-llm",
|
|
176
|
+
agentWorkItems: planInsightBundle.agentWorkItems,
|
|
177
|
+
...(planInsightBundle.agentInstructions
|
|
178
|
+
? { agentInstructions: planInsightBundle.agentInstructions }
|
|
179
|
+
: {}),
|
|
180
|
+
...(insightSummary ? { insightSummary } : {}),
|
|
181
|
+
requiresAgentBridge: true,
|
|
182
|
+
status: "awaiting-agent",
|
|
183
|
+
}
|
|
184
|
+
: insightSummary
|
|
185
|
+
? { insightSummary }
|
|
186
|
+
: {};
|
|
187
|
+
// ── Bridge + DAG 混合模式:同时本地执行 DAG ──
|
|
188
|
+
if (effectiveOptions?.enableBridgeDagExecution) {
|
|
189
|
+
const runner = makeDagNodeRunner({
|
|
190
|
+
routeDecisions,
|
|
191
|
+
providerHealth: effectiveOptions?.providerHealth,
|
|
192
|
+
retryOptions,
|
|
193
|
+
promptContext,
|
|
194
|
+
forceLlm: true,
|
|
195
|
+
logMessage: "Executing task node (bridge+DAG)",
|
|
196
|
+
});
|
|
197
|
+
const dagResult = await (0, dag_engine_js_1.executeDag)(plan, runner);
|
|
198
|
+
const allSucceeded = dagResult.failed.length === 0 && dagResult.blocked.length === 0;
|
|
199
|
+
const bridgeRun = {
|
|
200
|
+
status: allSucceeded ? "DELEGATED" : "HUMAN_REVIEW_REQUIRED",
|
|
201
|
+
attempts: plan.length,
|
|
202
|
+
feedback: allSucceeded
|
|
203
|
+
? `[DELEGATED+LOCAL-DAG] Planned ${plan.length} task(s); local DAG completed ${dagResult.completed.length}/${plan.length} tasks`
|
|
204
|
+
: `[DELEGATED+LOCAL-DAG] Planned ${plan.length} task(s); local DAG failed ${dagResult.failed.length}, blocked ${dagResult.blocked.length}; external agent retry recommended`,
|
|
205
|
+
...(brainstormIdeas ? { brainstormIdeas } : {}),
|
|
206
|
+
executionDescriptor: buildExecutionDescriptor({
|
|
207
|
+
task: input.task,
|
|
208
|
+
planProjection,
|
|
209
|
+
agentAssignments,
|
|
210
|
+
contextStr,
|
|
211
|
+
...(insightSummary ? { insightSummary } : {}),
|
|
212
|
+
retryHints: dagResult.failed.length > 0 ? dagResult.failed.map((id) => `local-exec-failed:${id}`) : [],
|
|
213
|
+
delegatedExtras,
|
|
214
|
+
}),
|
|
215
|
+
localExecution: {
|
|
216
|
+
completed: dagResult.completed,
|
|
217
|
+
failed: dagResult.failed,
|
|
218
|
+
blocked: dagResult.blocked,
|
|
219
|
+
rounds: dagResult.rounds,
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
const finalRun = (0, orchestrator_context_js_1.appendContextFeedback)(bridgeRun, contextPackage, promptContextLines, effectiveOptions);
|
|
223
|
+
const withRoute = (0, orchestrator_route_js_1.appendRouteFeedback)(finalRun, routeDecisions, skillHints);
|
|
224
|
+
await (0, orchestrator_episode_js_1.maybeSyncGraph)(input.task, withRoute, effectiveOptions);
|
|
225
|
+
await (0, orchestrator_episode_js_1.maybeSyncSkillGraph)(input.task, withRoute, effectiveOptions);
|
|
226
|
+
logger_js_1.logger.info({
|
|
227
|
+
status: withRoute.status,
|
|
228
|
+
task: input.task,
|
|
229
|
+
localCompleted: dagResult.completed.length,
|
|
230
|
+
localFailed: dagResult.failed.length,
|
|
231
|
+
}, "Orchestration task delegated with local DAG execution (bridge+DAG mode)");
|
|
232
|
+
return (0, orchestrator_episode_js_1.finalizeEpisode)(input.task, plan, withRoute, similarEpisodes, skillHints, effectiveOptions, triageId);
|
|
233
|
+
}
|
|
234
|
+
// ── 纯 Bridge 模式(无本地 DAG 执行)──
|
|
235
|
+
const bridgeRun = {
|
|
236
|
+
status: "DELEGATED",
|
|
237
|
+
attempts: 0,
|
|
238
|
+
feedback: planInsightBundle?.mode === "agent-delegated"
|
|
239
|
+
? `[DELEGATED][AGENT-BRIDGE] No GraphFlow LLM — complete agentWorkItems via graphflow_insight submit/merge before treating the plan as final. provisionalPlan=${plan.length}; plannerDraft=${shorten(plannerDraft)}`
|
|
240
|
+
: `[DELEGATED] Planned ${plan.length} task(s) for external agent execution; plannerDraft=${shorten(plannerDraft)}`,
|
|
241
|
+
...(brainstormIdeas ? { brainstormIdeas } : {}),
|
|
242
|
+
executionDescriptor: buildExecutionDescriptor({
|
|
243
|
+
task: input.task,
|
|
244
|
+
planProjection,
|
|
245
|
+
agentAssignments,
|
|
246
|
+
contextStr,
|
|
247
|
+
...(insightSummary ? { insightSummary } : {}),
|
|
248
|
+
retryHints: [],
|
|
249
|
+
delegatedExtras,
|
|
250
|
+
}),
|
|
251
|
+
};
|
|
252
|
+
const finalRun = (0, orchestrator_context_js_1.appendContextFeedback)(bridgeRun, contextPackage, promptContextLines, effectiveOptions);
|
|
253
|
+
const withRoute = (0, orchestrator_route_js_1.appendRouteFeedback)(finalRun, routeDecisions, skillHints);
|
|
254
|
+
await (0, orchestrator_episode_js_1.maybeSyncSkillGraph)(input.task, withRoute, effectiveOptions);
|
|
255
|
+
logger_js_1.logger.info({ status: withRoute.status, task: input.task }, "Orchestration task delegated (bridge mode)");
|
|
256
|
+
return (0, orchestrator_episode_js_1.finalizeEpisode)(input.task, plan, withRoute, similarEpisodes, skillHints, effectiveOptions, triageId);
|
|
257
|
+
}
|
|
258
|
+
/** Local LLM DAG phase: execute, optionally drift-replan, then report. */
|
|
259
|
+
async function runLlmDagPhase(shared) {
|
|
260
|
+
const { input, effectiveOptions, contextPackage, routeDecisions, skillHints, similarEpisodes } = shared;
|
|
261
|
+
const { promptContext, promptContextLines, retryOptions, plannerSelection, triageId } = shared;
|
|
262
|
+
const brainstormIdeas = shared.brainstormIdeas;
|
|
263
|
+
let plan = shared.plan;
|
|
264
|
+
const plannerDraft = shared.plannerDraft;
|
|
265
|
+
const runner = makeDagNodeRunner({
|
|
266
|
+
routeDecisions,
|
|
267
|
+
providerHealth: effectiveOptions?.providerHealth,
|
|
268
|
+
retryOptions,
|
|
269
|
+
promptContext,
|
|
270
|
+
...(effectiveOptions?.executionMode ? { executionMode: effectiveOptions.executionMode } : {}),
|
|
271
|
+
logMessage: "Executing task node",
|
|
272
|
+
});
|
|
273
|
+
let result = await (0, dag_engine_js_1.executeDag)(plan, runner);
|
|
274
|
+
let replanRounds = 0;
|
|
275
|
+
const maxReplanRounds = effectiveOptions?.maxReplanRounds ?? 1;
|
|
276
|
+
const canReplan = effectiveOptions?.enableDriftReplan === true && effectiveOptions.enableLlmAgents === true;
|
|
277
|
+
while (canReplan && result.failed.length > 0 && replanRounds < maxReplanRounds) {
|
|
278
|
+
const failureFeedback = result.failed
|
|
279
|
+
.map((id) => {
|
|
280
|
+
const failedNode = plan.find((node) => node.id === id);
|
|
281
|
+
return `${id}: ${failedNode?.description ?? ""}`;
|
|
282
|
+
})
|
|
283
|
+
.join("; ");
|
|
284
|
+
const newPlan = await (0, planner_js_1.planTasksLlm)(input.task, {
|
|
285
|
+
selection: plannerSelection,
|
|
286
|
+
skillHints,
|
|
287
|
+
previousPlan: plan,
|
|
288
|
+
failureFeedback,
|
|
289
|
+
...(brainstormIdeas ? { brainstormIdeas } : {}),
|
|
290
|
+
...(promptContext ? { context: promptContext } : {}),
|
|
291
|
+
});
|
|
292
|
+
if (projectPlan(newPlan) === projectPlan(plan)) {
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
replanRounds += 1;
|
|
296
|
+
plan = newPlan;
|
|
297
|
+
result = await (0, dag_engine_js_1.executeDag)(plan, runner);
|
|
298
|
+
}
|
|
299
|
+
if (result.failed.length > 0) {
|
|
300
|
+
const run = {
|
|
301
|
+
status: "HUMAN_REVIEW_REQUIRED",
|
|
302
|
+
attempts: plan.length,
|
|
303
|
+
feedback: `Failed tasks: ${result.failed.join(", ")}; plannerDraft=${shorten(plannerDraft)}`,
|
|
304
|
+
executionRounds: result.rounds,
|
|
305
|
+
replanRounds,
|
|
306
|
+
...(brainstormIdeas ? { brainstormIdeas } : {}),
|
|
307
|
+
};
|
|
308
|
+
const finalRun = (0, orchestrator_context_js_1.appendContextFeedback)(run, contextPackage, promptContextLines, effectiveOptions);
|
|
309
|
+
const withRoute = (0, orchestrator_route_js_1.appendRouteFeedback)(finalRun, routeDecisions, skillHints);
|
|
310
|
+
await (0, orchestrator_episode_js_1.maybeSyncGraph)(input.task, withRoute, effectiveOptions);
|
|
311
|
+
await (0, orchestrator_episode_js_1.maybeSyncSkillGraph)(input.task, withRoute, effectiveOptions);
|
|
312
|
+
logger_js_1.logger.error({ status: withRoute.status, failed: result.failed }, "Orchestration task failed or needs human review");
|
|
313
|
+
// Intentional: the failure path has never carried triageId.
|
|
314
|
+
return (0, orchestrator_episode_js_1.finalizeEpisode)(input.task, plan, withRoute, similarEpisodes, skillHints, effectiveOptions);
|
|
315
|
+
}
|
|
316
|
+
const run = {
|
|
317
|
+
status: "COMPLETED",
|
|
318
|
+
attempts: plan.length,
|
|
319
|
+
feedback: `Completed tasks: ${result.completed.join(", ")}; plannerDraft=${shorten(plannerDraft)}`,
|
|
320
|
+
executionRounds: result.rounds,
|
|
321
|
+
replanRounds,
|
|
322
|
+
...(brainstormIdeas ? { brainstormIdeas } : {}),
|
|
323
|
+
};
|
|
324
|
+
const finalRun = (0, orchestrator_context_js_1.appendContextFeedback)(run, contextPackage, promptContextLines, effectiveOptions);
|
|
325
|
+
const withRoute = (0, orchestrator_route_js_1.appendRouteFeedback)(finalRun, routeDecisions, skillHints);
|
|
326
|
+
await (0, orchestrator_episode_js_1.maybeSyncGraph)(input.task, withRoute, effectiveOptions);
|
|
327
|
+
await (0, orchestrator_episode_js_1.maybeSyncSkillGraph)(input.task, withRoute, effectiveOptions);
|
|
328
|
+
logger_js_1.logger.info({ status: withRoute.status, task: input.task, rounds: result.rounds }, "Orchestration task completed successfully");
|
|
329
|
+
return (0, orchestrator_episode_js_1.finalizeEpisode)(input.task, plan, withRoute, similarEpisodes, skillHints, effectiveOptions, triageId);
|
|
330
|
+
}
|
|
331
|
+
function projectPlan(plan) {
|
|
332
|
+
return JSON.stringify(plan.map((node) => ({
|
|
333
|
+
id: node.id,
|
|
334
|
+
description: node.description,
|
|
335
|
+
dependencies: node.dependencies,
|
|
336
|
+
})));
|
|
337
|
+
}
|
|
338
|
+
function shorten(text) {
|
|
339
|
+
if (text.length <= 60) {
|
|
340
|
+
return text;
|
|
341
|
+
}
|
|
342
|
+
return `${text.slice(0, 57)}...`;
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=orchestrator-phases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator-phases.js","sourceRoot":"","sources":["../../src/core/orchestrator-phases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,kBAAkB,EACzB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAcxB"}
|