@enderfga/claw-orchestrator 7.12.1 → 7.14.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/README.md +14 -11
- package/configs/engines/README.md +20 -0
- package/configs/engines/dsh.json +17 -0
- package/configs/engines/kimi-code.json +17 -0
- package/dist/bin/cli.js +123 -34
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/acp-server.js +4 -2
- package/dist/src/acp-server.js.map +1 -1
- package/dist/src/autoloop/dispatcher.d.ts +19 -0
- package/dist/src/autoloop/dispatcher.js +57 -0
- package/dist/src/autoloop/dispatcher.js.map +1 -1
- package/dist/src/autoloop/runner.d.ts +102 -2
- package/dist/src/autoloop/runner.js +367 -44
- package/dist/src/autoloop/runner.js.map +1 -1
- package/dist/src/autoloop/types.d.ts +17 -0
- package/dist/src/autoloop/types.js.map +1 -1
- package/dist/src/dashboard/index.html +79 -73
- package/dist/src/embedded-server.js +35 -7
- package/dist/src/embedded-server.js.map +1 -1
- package/dist/src/engine-presets.d.ts +7 -3
- package/dist/src/engine-presets.js +39 -6
- package/dist/src/engine-presets.js.map +1 -1
- package/dist/src/engine-spawn.d.ts +8 -1
- package/dist/src/engine-spawn.js +13 -3
- package/dist/src/engine-spawn.js.map +1 -1
- package/dist/src/index.js +78 -71
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel/agent-step.d.ts +3 -0
- package/dist/src/kernel/agent-step.js.map +1 -1
- package/dist/src/kernel/engine.d.ts +5 -2
- package/dist/src/kernel/engine.js +11 -12
- package/dist/src/kernel/engine.js.map +1 -1
- package/dist/src/kernel/nodes/autoloop.d.ts +32 -2
- package/dist/src/kernel/nodes/autoloop.js +122 -15
- package/dist/src/kernel/nodes/autoloop.js.map +1 -1
- package/dist/src/kernel/nodes/goal.d.ts +94 -0
- package/dist/src/kernel/nodes/goal.js +386 -0
- package/dist/src/kernel/nodes/goal.js.map +1 -0
- package/dist/src/kernel/nodes/index.d.ts +2 -1
- package/dist/src/kernel/nodes/index.js +3 -1
- package/dist/src/kernel/nodes/index.js.map +1 -1
- package/dist/src/kernel/templates/index.d.ts +27 -3
- package/dist/src/kernel/templates/index.js +78 -1
- package/dist/src/kernel/templates/index.js.map +1 -1
- package/dist/src/kernel/types.d.ts +41 -2
- package/dist/src/kernel/types.js.map +1 -1
- package/dist/src/persistent-acp-session.d.ts +76 -0
- package/dist/src/persistent-acp-session.js +409 -0
- package/dist/src/persistent-acp-session.js.map +1 -0
- package/dist/src/persistent-agy-session.js +1 -0
- package/dist/src/persistent-agy-session.js.map +1 -1
- package/dist/src/persistent-codex-app-session.d.ts +55 -26
- package/dist/src/persistent-codex-app-session.js +109 -24
- package/dist/src/persistent-codex-app-session.js.map +1 -1
- package/dist/src/persistent-codex-session.js +1 -0
- package/dist/src/persistent-codex-session.js.map +1 -1
- package/dist/src/persistent-cursor-session.js +1 -0
- package/dist/src/persistent-cursor-session.js.map +1 -1
- package/dist/src/persistent-custom-session.js +2 -0
- package/dist/src/persistent-custom-session.js.map +1 -1
- package/dist/src/persistent-gemini-session.js +1 -0
- package/dist/src/persistent-gemini-session.js.map +1 -1
- package/dist/src/persistent-grok-session.js +1 -0
- package/dist/src/persistent-grok-session.js.map +1 -1
- package/dist/src/persistent-opencode-session.js +1 -0
- package/dist/src/persistent-opencode-session.js.map +1 -1
- package/dist/src/persistent-session.js +1 -0
- package/dist/src/persistent-session.js.map +1 -1
- package/dist/src/sanitize.d.ts +10 -0
- package/dist/src/sanitize.js +26 -0
- package/dist/src/sanitize.js.map +1 -1
- package/dist/src/session-manager.d.ts +25 -20
- package/dist/src/session-manager.js +92 -43
- package/dist/src/session-manager.js.map +1 -1
- package/dist/src/types.d.ts +35 -1
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
- package/skills/SKILL.md +8 -5
- package/skills/references/acp.md +4 -0
- package/skills/references/autoloop.md +27 -2
- package/skills/references/claude-cli-tracking.md +3 -1
- package/skills/references/cli.md +79 -39
- package/skills/references/dashboard.md +5 -1
- package/skills/references/multi-engine.md +39 -10
- package/skills/references/tools.md +77 -65
- package/skills/references/workflow.md +87 -13
|
@@ -16,8 +16,15 @@ export declare function killEngineTree(child: ChildProcess): void;
|
|
|
16
16
|
/**
|
|
17
17
|
* Streaming spawn for engine CLIs. Same signature and return type as
|
|
18
18
|
* `node:child_process` spawn, so call sites change by one import line.
|
|
19
|
+
*
|
|
20
|
+
* `launcher` is an argv prefix the engine runs under — `['sandbox.sh', 'task',
|
|
21
|
+
* '0 1']` spawns `sandbox.sh task '0 1' codex app-server …`. It is the
|
|
22
|
+
* caller's own command, at the trust level of a contract's command check. An
|
|
23
|
+
* empty or absent launcher spawns the engine directly.
|
|
19
24
|
*/
|
|
20
|
-
export declare function spawnEngine(bin: string, args: string[], options: SpawnOptions
|
|
25
|
+
export declare function spawnEngine(bin: string, args: string[], options: SpawnOptions & {
|
|
26
|
+
launcher?: readonly string[];
|
|
27
|
+
}): ChildProcess;
|
|
21
28
|
export interface ExecEngineOptions {
|
|
22
29
|
cwd?: string;
|
|
23
30
|
env?: NodeJS.ProcessEnv;
|
package/dist/src/engine-spawn.js
CHANGED
|
@@ -139,14 +139,24 @@ export function killEngineTree(child) {
|
|
|
139
139
|
/**
|
|
140
140
|
* Streaming spawn for engine CLIs. Same signature and return type as
|
|
141
141
|
* `node:child_process` spawn, so call sites change by one import line.
|
|
142
|
+
*
|
|
143
|
+
* `launcher` is an argv prefix the engine runs under — `['sandbox.sh', 'task',
|
|
144
|
+
* '0 1']` spawns `sandbox.sh task '0 1' codex app-server …`. It is the
|
|
145
|
+
* caller's own command, at the trust level of a contract's command check. An
|
|
146
|
+
* empty or absent launcher spawns the engine directly.
|
|
142
147
|
*/
|
|
143
148
|
export function spawnEngine(bin, args, options) {
|
|
144
|
-
const
|
|
149
|
+
const { launcher, ...spawnOptions } = options;
|
|
150
|
+
const cwd = typeof spawnOptions.cwd === 'string' ? spawnOptions.cwd : undefined;
|
|
145
151
|
// `cwd` moves the process but leaves the inherited PWD naming the parent's
|
|
146
152
|
// directory, and some engines trust PWD: opencode resolves its project from
|
|
147
153
|
// it, so a session started by a server ran in the server's directory.
|
|
148
|
-
const env = cwd ? { ...(
|
|
149
|
-
|
|
154
|
+
const env = cwd ? { ...(spawnOptions.env ?? process.env), PWD: resolvePath(cwd) } : (spawnOptions.env ?? process.env);
|
|
155
|
+
if (launcher && launcher.length > 0) {
|
|
156
|
+
const [head, ...rest] = launcher;
|
|
157
|
+
return crossSpawn(head, [...rest, bin, ...args], { ...spawnOptions, env });
|
|
158
|
+
}
|
|
159
|
+
return crossSpawn(bin, prepareArgs(bin, args, env, cwd), { ...spawnOptions, env });
|
|
150
160
|
}
|
|
151
161
|
/**
|
|
152
162
|
* execFile-style capture exec for engine CLIs (one-shot `codex` helpers).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-spawn.js","sourceRoot":"","sources":["../../src/engine-spawn.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"engine-spawn.js","sourceRoot":"","sources":["../../src/engine-spawn.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import { createProxyHandler } from './proxy/handler.js';
|
|
|
13
13
|
import { EmbeddedServer } from './embedded-server.js';
|
|
14
14
|
import { sanitizeCwd, validateRegex } from './validation.js';
|
|
15
15
|
import { ENGINE_TYPES, EFFORT_LEVELS, } from './types.js';
|
|
16
|
-
import { councilWorkflow, fanoutWorkflow, solveWorkflow } from './kernel/templates/index.js';
|
|
16
|
+
import { councilWorkflow, fanoutWorkflow, goalWorkflow, solveWorkflow, } from './kernel/templates/index.js';
|
|
17
17
|
import { readEvents as readKernelEvents } from './kernel/store.js';
|
|
18
18
|
import { resolveSecretRefs } from './kernel/secrets.js';
|
|
19
19
|
import { AUTOLOOP_TIMEOUT_SCHEMA, validateAutoloopTimeoutConfig } from './autoloop/types.js';
|
|
@@ -54,6 +54,23 @@ function normalizeToolResult(result) {
|
|
|
54
54
|
details: result,
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
+
const ACP_AGENT_SCHEMA = {
|
|
58
|
+
description: 'The ACP agent (required when engine is "acp"): the id of a bundled preset (`clawo engines`), or, from a local caller only, an inline config.',
|
|
59
|
+
oneOf: [
|
|
60
|
+
{ type: 'string', description: 'Preset id, e.g. "kimi-code"' },
|
|
61
|
+
{
|
|
62
|
+
type: 'object',
|
|
63
|
+
properties: {
|
|
64
|
+
name: { type: 'string', description: 'Display name' },
|
|
65
|
+
command: { type: 'string', description: 'Command that serves ACP on stdio' },
|
|
66
|
+
commandEnv: { type: 'string', description: 'Env var that overrides command' },
|
|
67
|
+
args: { type: 'array', items: { type: 'string' }, description: 'Arguments, e.g. ["acp"]' },
|
|
68
|
+
env: { type: 'object', additionalProperties: { type: 'string' } },
|
|
69
|
+
},
|
|
70
|
+
required: ['name', 'command'],
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
};
|
|
57
74
|
const CUSTOM_ENGINE_SCHEMA = {
|
|
58
75
|
type: 'object',
|
|
59
76
|
description: 'Custom engine config (required when the corresponding engine is "custom").',
|
|
@@ -190,7 +207,7 @@ const plugin = {
|
|
|
190
207
|
// ─── Tool: session_start ──────────────────────────────────────────────
|
|
191
208
|
registerTool({
|
|
192
209
|
name: 'session_start',
|
|
193
|
-
description: 'Start a persistent coding session. Engines: claude (default) for the Claude Code CLI, codex for the OpenAI Codex CLI, agy for the Google Antigravity CLI, grok for the xAI Grok Build CLI, opencode for the sst/opencode CLI, or custom for any user-configured coding agent CLI.',
|
|
210
|
+
description: 'Start a persistent coding session. Engines: claude (default) for the Claude Code CLI, codex for the OpenAI Codex CLI, agy for the Google Antigravity CLI, grok for the xAI Grok Build CLI, opencode for the sst/opencode CLI, acp for any Agent Client Protocol agent (Kimi Code, dsh, OpenCode, Claude Code via an ACP adapter), or custom for any user-configured coding agent CLI.',
|
|
194
211
|
parameters: {
|
|
195
212
|
type: 'object',
|
|
196
213
|
properties: {
|
|
@@ -199,7 +216,7 @@ const plugin = {
|
|
|
199
216
|
engine: {
|
|
200
217
|
type: 'string',
|
|
201
218
|
enum: ENGINE_TYPES,
|
|
202
|
-
description: 'Engine to use (default: claude). codex = `codex exec` per send (no /goal). codex-app = long-running `codex app-server` with /goal support. agy = Google Antigravity CLI (Gemini CLI successor; plain-text output, tokens estimated, conversation resume handled automatically). opencode = sst/opencode CLI (provider-agnostic; pass model as `provider/model`). Use "custom" with customEngine config for any CLI.',
|
|
219
|
+
description: 'Engine to use (default: claude). codex = `codex exec` per send (no /goal). codex-app = long-running `codex app-server` with /goal support. agy = Google Antigravity CLI (Gemini CLI successor; plain-text output, tokens estimated, conversation resume handled automatically). opencode = sst/opencode CLI (provider-agnostic; pass model as `provider/model`). acp = any Agent Client Protocol agent, chosen with acpAgent. Use "custom" with customEngine config for any CLI.',
|
|
203
220
|
},
|
|
204
221
|
model: { type: 'string', description: 'Model to use (opus, sonnet, haiku, gpt-5.5, agy-pro, etc.)' },
|
|
205
222
|
permissionMode: {
|
|
@@ -340,6 +357,7 @@ const plugin = {
|
|
|
340
357
|
description: 'AWS Bedrock service tier (sets ANTHROPIC_BEDROCK_SERVICE_TIER). Only effective when routing through Bedrock.',
|
|
341
358
|
},
|
|
342
359
|
customEngine: CUSTOM_ENGINE_SCHEMA,
|
|
360
|
+
acpAgent: ACP_AGENT_SCHEMA,
|
|
343
361
|
resumeSessionId: {
|
|
344
362
|
type: 'string',
|
|
345
363
|
description: 'Resume an existing Claude Code session by its ID (e.g. from ~/.claude/sessions/). Replays conversation history via session/load instead of starting fresh.',
|
|
@@ -802,16 +820,15 @@ const plugin = {
|
|
|
802
820
|
});
|
|
803
821
|
},
|
|
804
822
|
});
|
|
805
|
-
// ─── Tools: codex_goal_* (
|
|
823
|
+
// ─── Tools: codex_goal_* (codex-app thread/goal/* RPCs) ─────────────
|
|
806
824
|
//
|
|
807
|
-
//
|
|
808
|
-
//
|
|
809
|
-
//
|
|
810
|
-
|
|
811
|
-
// surface a clear error rather than silently no-op'ing.
|
|
825
|
+
// Thin wrappers over the app-server's typed goal RPCs, scoped to sessions
|
|
826
|
+
// started with engine: "codex-app". Calls against any other engine surface
|
|
827
|
+
// a clear error rather than silently no-op'ing.
|
|
828
|
+
const GOAL_SHAPE = 'Returns { ok, goal } where goal is { objective, status: "active"|"paused"|"blocked"|"usageLimited"|"budgetLimited"|"complete", tokenBudget, tokensUsed, timeUsedSeconds, ... } or null.';
|
|
812
829
|
registerTool({
|
|
813
830
|
name: 'codex_goal_set',
|
|
814
|
-
description:
|
|
831
|
+
description: `Set a long-horizon objective on a codex-app session (thread/goal/set). Codex then works turn after turn on its own until the goal leaves "active". Requires engine: "codex-app". ${GOAL_SHAPE}`,
|
|
815
832
|
parameters: {
|
|
816
833
|
type: 'object',
|
|
817
834
|
properties: {
|
|
@@ -820,71 +837,40 @@ const plugin = {
|
|
|
820
837
|
type: 'string',
|
|
821
838
|
description: 'The objective text. Codex will pursue this across turns until achieved, paused, or cleared.',
|
|
822
839
|
},
|
|
823
|
-
|
|
840
|
+
tokenBudget: {
|
|
841
|
+
type: 'number',
|
|
842
|
+
description: 'Optional token budget; the goal stops as "budgetLimited" once it is spent.',
|
|
843
|
+
},
|
|
824
844
|
},
|
|
825
845
|
required: ['name', 'objective'],
|
|
826
846
|
},
|
|
827
847
|
execute: async (_id, args) => {
|
|
828
|
-
return await getManager().
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
description: 'Read the cached goal state on a codex-app session (objective, status, tokensUsed, timeUsedSeconds, tokenBudget). Returns null if no goal is active. Pure read — does not send any turn.',
|
|
834
|
-
parameters: {
|
|
835
|
-
type: 'object',
|
|
836
|
-
properties: { name: { type: 'string', description: 'Session name (must be a codex-app session).' } },
|
|
837
|
-
required: ['name'],
|
|
838
|
-
},
|
|
839
|
-
execute: async (_id, args) => {
|
|
840
|
-
return getManager().codexGoalGet(args.name);
|
|
848
|
+
return await getManager().codexGoal(args.name, {
|
|
849
|
+
action: 'set',
|
|
850
|
+
objective: args.objective,
|
|
851
|
+
tokenBudget: args.tokenBudget,
|
|
852
|
+
});
|
|
841
853
|
},
|
|
842
854
|
});
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
855
|
+
for (const [action, description] of [
|
|
856
|
+
['get', 'Read the goal of a codex-app session from the app-server (thread/goal/get). Sends no turn.'],
|
|
857
|
+
['pause', 'Pause goal pursuit on a codex-app session (thread/goal/set status "paused").'],
|
|
858
|
+
['resume', 'Resume a paused or stopped goal on a codex-app session (thread/goal/set status "active").'],
|
|
859
|
+
['clear', 'Remove the goal from a codex-app session (thread/goal/clear).'],
|
|
860
|
+
]) {
|
|
861
|
+
registerTool({
|
|
862
|
+
name: `codex_goal_${action}`,
|
|
863
|
+
description: `${description} ${GOAL_SHAPE}`,
|
|
864
|
+
parameters: {
|
|
865
|
+
type: 'object',
|
|
866
|
+
properties: { name: { type: 'string', description: 'Session name (must be a codex-app session).' } },
|
|
867
|
+
required: ['name'],
|
|
851
868
|
},
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
execute: async (_id, args) => {
|
|
855
|
-
return await getManager().codexGoalCommand(args.name, 'pause', args.timeout);
|
|
856
|
-
},
|
|
857
|
-
});
|
|
858
|
-
registerTool({
|
|
859
|
-
name: 'codex_goal_resume',
|
|
860
|
-
description: 'Resume a paused goal on a codex-app session. Sends `/goal resume`.',
|
|
861
|
-
parameters: {
|
|
862
|
-
type: 'object',
|
|
863
|
-
properties: {
|
|
864
|
-
name: { type: 'string', description: 'Session name.' },
|
|
865
|
-
timeout: { type: 'number', description: 'Timeout in ms (default 120000).' },
|
|
869
|
+
execute: async (_id, args) => {
|
|
870
|
+
return await getManager().codexGoal(args.name, { action });
|
|
866
871
|
},
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
execute: async (_id, args) => {
|
|
870
|
-
return await getManager().codexGoalCommand(args.name, 'resume', args.timeout);
|
|
871
|
-
},
|
|
872
|
-
});
|
|
873
|
-
registerTool({
|
|
874
|
-
name: 'codex_goal_clear',
|
|
875
|
-
description: 'Clear the active goal on a codex-app session. Sends `/goal clear`.',
|
|
876
|
-
parameters: {
|
|
877
|
-
type: 'object',
|
|
878
|
-
properties: {
|
|
879
|
-
name: { type: 'string', description: 'Session name.' },
|
|
880
|
-
timeout: { type: 'number', description: 'Timeout in ms (default 120000).' },
|
|
881
|
-
},
|
|
882
|
-
required: ['name'],
|
|
883
|
-
},
|
|
884
|
-
execute: async (_id, args) => {
|
|
885
|
-
return await getManager().codexGoalCommand(args.name, 'clear', args.timeout);
|
|
886
|
-
},
|
|
887
|
-
});
|
|
872
|
+
});
|
|
873
|
+
}
|
|
888
874
|
// ─── Codex app-server v2 RPC tools (codex-app engine, Codex 0.137) ────
|
|
889
875
|
registerTool({
|
|
890
876
|
name: 'codex_interrupt',
|
|
@@ -1074,7 +1060,7 @@ const plugin = {
|
|
|
1074
1060
|
// ─── Tools: workflow_* (durable run kernel) ─────────────────────────
|
|
1075
1061
|
registerTool({
|
|
1076
1062
|
name: 'workflow_start',
|
|
1077
|
-
description: "Start a durable workflow run. Nodes: agent | fanout | council | verifier | human_gate | router | subflow. Every state transition is checkpointed to disk, so a run survives a process restart and can be resumed. When a contract is supplied the run cannot reach `completed` unless the runtime's own checks pass — without one it completes as `unverified`, which means nothing checked it. Runs in background; poll with workflow_status.",
|
|
1063
|
+
description: "Start a durable workflow run. Nodes: agent | fanout | council | goal | verifier | human_gate | router | subflow. Every state transition is checkpointed to disk, so a run survives a process restart and can be resumed. When a contract is supplied the run cannot reach `completed` unless the runtime's own checks pass — without one it completes as `unverified`, which means nothing checked it. Runs in background; poll with workflow_status.",
|
|
1078
1064
|
parameters: {
|
|
1079
1065
|
type: 'object',
|
|
1080
1066
|
properties: {
|
|
@@ -1084,8 +1070,8 @@ const plugin = {
|
|
|
1084
1070
|
},
|
|
1085
1071
|
template: {
|
|
1086
1072
|
type: 'string',
|
|
1087
|
-
enum: ['solve', 'council', 'fanout'],
|
|
1088
|
-
description: 'Build a built-in workflow instead of supplying `spec`. `solve` = triage → implement → verify → repair-until-green → review.',
|
|
1073
|
+
enum: ['solve', 'council', 'fanout', 'goal'],
|
|
1074
|
+
description: 'Build a built-in workflow instead of supplying `spec`. `solve` = triage → implement → verify → repair-until-green → review. `goal` = a Codex /goal on one codex-app thread (`task` is the objective) → verify → repair on the same thread.',
|
|
1089
1075
|
},
|
|
1090
1076
|
task: { type: 'string', description: 'Task text, when using `template`.' },
|
|
1091
1077
|
agents: {
|
|
@@ -1129,7 +1115,17 @@ const plugin = {
|
|
|
1129
1115
|
},
|
|
1130
1116
|
},
|
|
1131
1117
|
humanGate: { type: 'boolean', description: '`solve` only: park for approval before writing anything.' },
|
|
1132
|
-
maxRepairs: {
|
|
1118
|
+
maxRepairs: {
|
|
1119
|
+
type: 'number',
|
|
1120
|
+
description: '`solve` / `goal`: repair attempts allowed (default 3 for solve, 1 for goal).',
|
|
1121
|
+
},
|
|
1122
|
+
model: { type: 'string', description: "`goal` only: Codex model (default: codex's own)." },
|
|
1123
|
+
tokenBudget: { type: 'number', description: '`goal` only: tokens the goal may spend.' },
|
|
1124
|
+
launcher: {
|
|
1125
|
+
type: 'array',
|
|
1126
|
+
items: { type: 'string' },
|
|
1127
|
+
description: '`goal` only: argv prefix codex runs under, e.g. a sandbox wrapper. It runs with your authority, like a contract command check.',
|
|
1128
|
+
},
|
|
1133
1129
|
cwd: { type: 'string', description: 'Working directory for the run.' },
|
|
1134
1130
|
runId: { type: 'string', description: 'Explicit run id (defaults to a generated one).' },
|
|
1135
1131
|
contract: {
|
|
@@ -1216,6 +1212,17 @@ const plugin = {
|
|
|
1216
1212
|
else if (template === 'fanout') {
|
|
1217
1213
|
spec = fanoutWorkflow({ task, cwd, agents, synthesize: agents.length >= 2 });
|
|
1218
1214
|
}
|
|
1215
|
+
else if (template === 'goal') {
|
|
1216
|
+
spec = goalWorkflow({
|
|
1217
|
+
task,
|
|
1218
|
+
cwd,
|
|
1219
|
+
contract: args.contract,
|
|
1220
|
+
model: args.model,
|
|
1221
|
+
tokenBudget: args.tokenBudget,
|
|
1222
|
+
launcher: args.launcher,
|
|
1223
|
+
maxRepairs: args.maxRepairs,
|
|
1224
|
+
});
|
|
1225
|
+
}
|
|
1219
1226
|
else {
|
|
1220
1227
|
spec = solveWorkflow({
|
|
1221
1228
|
task,
|