taskflow-hosts 0.1.8 → 0.2.1

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.
@@ -35,12 +35,30 @@
35
35
  * Process handling (idle watchdog, abort, signal-kill detection, stderr cap,
36
36
  * error sanitization) mirrors the other runners so behavior is uniform.
37
37
  */
38
- import { runSubagentProcess, num, unknownAgentResult, } from "taskflow-core";
38
+ import { runSubagentProcess, sanitizeErrorMessage, num, unknownAgentResult, } from "taskflow-core";
39
39
  import { emptyUsage } from "taskflow-core";
40
+ import { filteredChildEnv } from "./child-env.js";
40
41
  /** The permission policy injected (via OPENCODE_CONFIG_CONTENT) for a read-only
41
42
  * phase: deny every mutating capability so a listed-tools phase without
42
43
  * write/edit/bash cannot change the workspace. */
43
- const READ_ONLY_CONFIG = JSON.stringify({ permission: { bash: "deny", write: "deny", edit: "deny" } });
44
+ export const OPENCODE_READ_ONLY_CONFIG = JSON.stringify({
45
+ permission: {
46
+ "*": "deny",
47
+ read: "allow",
48
+ grep: "allow",
49
+ glob: "allow",
50
+ list: "allow",
51
+ },
52
+ });
53
+ /** Explicit operator acknowledgement required before OpenCode may use its
54
+ * unsandboxed `--auto` mode for mutating/default-capable phases. */
55
+ export const OPENCODE_UNSAFE_AUTO_ENV = "PI_TASKFLOW_OPENCODE_UNSAFE_AUTO";
56
+ export function opencodeUnsafeAutoEnabled(env = process.env) {
57
+ return env[OPENCODE_UNSAFE_AUTO_ENV] === "1";
58
+ }
59
+ export function opencodeChildEnv(source = process.env) {
60
+ return filteredChildEnv(source, ["OPENCODE_CONFIG", "OPENCODE_CONFIG_DIR"], ["OPENCODE_", "OPENAI_", "ANTHROPIC_", "GOOGLE_", "GEMINI_", "AWS_", "AZURE_", "XAI_", "GROQ_", "MISTRAL_", "COHERE_"]);
61
+ }
44
62
  export function newOpencodeAccumulator(model) {
45
63
  return { usage: emptyUsage(), model, finalText: "", lastActivity: "" };
46
64
  }
@@ -76,6 +94,7 @@ export function foldOpencodeEventLine(acc, line) {
76
94
  const part = event.part;
77
95
  switch (event.type) {
78
96
  case "text":
97
+ acc.terminalSeen = false;
79
98
  if (part && typeof part.text === "string" && part.text) {
80
99
  // Text parts stream; concatenate within the current step. A tool call
81
100
  // (below) resets this, so only the LAST step's text is the answer.
@@ -84,6 +103,7 @@ export function foldOpencodeEventLine(acc, line) {
84
103
  }
85
104
  break;
86
105
  case "tool_use":
106
+ acc.terminalSeen = false;
87
107
  // A tool call means any text so far was intermediate reasoning, not the
88
108
  // final answer — drop it and keep only text that follows the last tool.
89
109
  acc.finalText = "";
@@ -91,6 +111,7 @@ export function foldOpencodeEventLine(acc, line) {
91
111
  activity = shortTool(part);
92
112
  break;
93
113
  case "step_finish": {
114
+ acc.terminalSeen = true;
94
115
  acc.usage.turns++;
95
116
  const tk = part?.tokens;
96
117
  if (tk) {
@@ -114,8 +135,11 @@ export function foldOpencodeEventLine(acc, line) {
114
135
  activity = `error: ${msg}`;
115
136
  break;
116
137
  }
138
+ case "step_start":
139
+ acc.terminalSeen = false;
140
+ return null;
117
141
  default:
118
- return null; // step_start / other — nothing to fold.
142
+ return null; // other — nothing to fold.
119
143
  }
120
144
  if (activity)
121
145
  acc.lastActivity = activity.replace(/\s+/g, " ").trim();
@@ -161,6 +185,19 @@ export function resolveOpencodeModel(model) {
161
185
  return undefined; // openrouter path (openrouter/vendor/model)
162
186
  return model;
163
187
  }
188
+ /** Normalize Taskflow aliases before OpenCode resolves the provider-specific variant. */
189
+ export function resolveOpencodeThinking(thinking) {
190
+ if (!thinking)
191
+ return undefined;
192
+ const normalized = thinking.trim().toLowerCase();
193
+ if (normalized === "off")
194
+ return "none";
195
+ if (normalized === "ultra")
196
+ return "max";
197
+ if (["none", "minimal", "low", "medium", "high", "xhigh", "max"].includes(normalized))
198
+ return normalized;
199
+ throw new Error(`Unsupported OpenCode thinking level '${thinking}'. Use off, none, minimal, low, medium, high, xhigh, max, or ultra.`);
200
+ }
164
201
  /**
165
202
  * Build the full `opencode run` argv from a phase's resolved context — PURE
166
203
  * (no process.env, no spawn). Extracted from `runOpencodeAgentTask` so the
@@ -176,11 +213,20 @@ export function buildOpencodeArgs(ctx) {
176
213
  const fullPrompt = ctx.systemPrompt.trim()
177
214
  ? `${ctx.systemPrompt.trim()}\n\n---\n\nTask: ${ctx.task}`
178
215
  : `Task: ${ctx.task}`;
179
- const args = ["run", fullPrompt, "--format", "json"];
216
+ if (!readOnly && !ctx.allowUnsafeAuto) {
217
+ throw new Error(`OpenCode mutating/default-capable phases require unsandboxed --auto permissions. ` +
218
+ `Set ${OPENCODE_UNSAFE_AUTO_ENV}=1 to explicitly allow this execution.`);
219
+ }
220
+ // --pure prevents user/project plugins from executing outside the tool
221
+ // permission policy. It is mandatory for both read-only and unsafe runs.
222
+ const args = ["run", fullPrompt, "--format", "json", "--pure"];
180
223
  if (ctx.cwd)
181
224
  args.push("--dir", ctx.cwd);
182
225
  if (opencodeModel)
183
226
  args.push("-m", opencodeModel);
227
+ const variant = resolveOpencodeThinking(ctx.thinking);
228
+ if (variant)
229
+ args.push("--variant", variant);
184
230
  if (!readOnly)
185
231
  args.push("--auto");
186
232
  return { args, readOnly };
@@ -195,16 +241,37 @@ export async function runOpencodeAgentTask(defaultCwd, agents, agentName, task,
195
241
  if (!agent)
196
242
  return unknownAgentResult(agentName, task, agents);
197
243
  const model = opts.model ?? agent.model;
244
+ const thinking = opts.thinking ?? agent.thinking ?? globalThinking;
198
245
  const tools = opts.tools ?? agent.tools;
199
- void globalThinking; // opencode's --variant is provider-specific; reserved.
200
246
  const cwd = opts.cwd ?? defaultCwd;
201
- const { args, readOnly } = buildOpencodeArgs({
202
- systemPrompt: agent.systemPrompt,
203
- task,
204
- model,
205
- tools,
206
- cwd,
207
- });
247
+ const childEnv = opencodeChildEnv();
248
+ let args;
249
+ let readOnly;
250
+ try {
251
+ ({ args, readOnly } = buildOpencodeArgs({
252
+ systemPrompt: agent.systemPrompt,
253
+ task,
254
+ model,
255
+ thinking,
256
+ tools,
257
+ cwd,
258
+ allowUnsafeAuto: opencodeUnsafeAutoEnabled(),
259
+ }));
260
+ }
261
+ catch (error) {
262
+ const message = sanitizeErrorMessage(error instanceof Error ? error.message : String(error));
263
+ return {
264
+ agent: agentName,
265
+ task,
266
+ exitCode: 1,
267
+ output: "",
268
+ stderr: message,
269
+ usage: emptyUsage(),
270
+ model,
271
+ errorMessage: message,
272
+ stopReason: "permission_denied",
273
+ };
274
+ }
208
275
  return runSubagentProcess({
209
276
  agent: agentName,
210
277
  task,
@@ -213,13 +280,15 @@ export async function runOpencodeAgentTask(defaultCwd, agents, agentName, task,
213
280
  args,
214
281
  // A read-only phase injects the deny-mutations permission policy; the
215
282
  // shared runner merges this over the parent env.
216
- env: readOnly ? { ...process.env, OPENCODE_CONFIG_CONTENT: READ_ONLY_CONFIG } : undefined,
283
+ env: readOnly ? { ...childEnv, OPENCODE_CONFIG_CONTENT: OPENCODE_READ_ONLY_CONFIG } : childEnv,
217
284
  cwd,
218
285
  idleTimeoutMs: opts.idleTimeoutMs,
219
286
  signal: opts.signal,
220
287
  onLive: opts.onLive,
221
288
  acc: newOpencodeAccumulator(model),
222
289
  foldLine: foldOpencodeEventLine,
290
+ requireTerminalEvent: true,
291
+ terminalEventLabel: "OpenCode step_finish",
223
292
  });
224
293
  }
225
294
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-runner.js","sourceRoot":"","sources":["../src/opencode-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-runner.js","sourceRoot":"","sources":["../src/opencode-runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,35 +1,43 @@
1
1
  {
2
2
  "name": "taskflow-hosts",
3
- "version": "0.1.8",
4
- "description": "Shared host-runner collection for taskflow — the codex, claude, and opencode SubagentRunner implementations + their argv builders and event-stream parsers. The per-host MCP servers, plugin scaffolds, and bins live in codex-taskflow / claude-taskflow / opencode-taskflow; this package holds just the runners so a new host can be added in one place.",
3
+ "version": "0.2.1",
4
+ "description": "Shared host-runner collection for taskflow — the codex, claude, opencode, and grok SubagentRunner implementations + their argv builders and event-stream parsers. The per-host MCP servers, plugin scaffolds, and bins live in codex-taskflow / claude-taskflow / opencode-taskflow / grok-taskflow; this package holds just the runners so a new host can be added in one place.",
5
5
  "homepage": "https://github.com/heggria/taskflow#readme",
6
+ "author": "heggria <bshengtao@gmail.com>",
7
+ "bugs": {
8
+ "url": "https://github.com/heggria/taskflow/issues"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/heggria/taskflow.git",
13
+ "directory": "packages/taskflow-hosts"
14
+ },
6
15
  "type": "module",
7
16
  "engines": {
8
17
  "node": ">=22.19.0"
9
18
  },
10
19
  "exports": {
11
20
  ".": {
12
- "development": "./src/index.ts",
13
21
  "types": "./dist/index.d.ts",
14
22
  "default": "./dist/index.js"
15
23
  },
16
24
  "./codex": {
17
- "development": "./src/codex-runner.ts",
18
25
  "types": "./dist/codex-runner.d.ts",
19
26
  "default": "./dist/codex-runner.js"
20
27
  },
21
28
  "./claude": {
22
- "development": "./src/claude-runner.ts",
23
29
  "types": "./dist/claude-runner.d.ts",
24
30
  "default": "./dist/claude-runner.js"
25
31
  },
26
32
  "./opencode": {
27
- "development": "./src/opencode-runner.ts",
28
33
  "types": "./dist/opencode-runner.d.ts",
29
34
  "default": "./dist/opencode-runner.js"
30
35
  },
36
+ "./grok": {
37
+ "types": "./dist/grok-runner.d.ts",
38
+ "default": "./dist/grok-runner.js"
39
+ },
31
40
  "./*": {
32
- "development": "./src/*.ts",
33
41
  "types": "./dist/*.d.ts",
34
42
  "default": "./dist/*.js"
35
43
  }
@@ -40,8 +48,11 @@
40
48
  "dist",
41
49
  "README.md"
42
50
  ],
51
+ "publishConfig": {
52
+ "access": "public"
53
+ },
43
54
  "dependencies": {
44
- "taskflow-core": "0.1.8"
55
+ "taskflow-core": "0.2.1"
45
56
  },
46
57
  "devDependencies": {
47
58
  "typescript": "^7.0.2"
@@ -52,10 +63,12 @@
52
63
  "codex",
53
64
  "claude",
54
65
  "opencode",
66
+ "grok",
67
+ "grok-build",
55
68
  "orchestration"
56
69
  ],
57
70
  "license": "MIT",
58
71
  "scripts": {
59
72
  "build": "rm -rf dist && tsc -p tsconfig.build.json"
60
73
  }
61
- }
74
+ }