@mickorz/opencode-agentic-workflow 0.4.0 → 0.5.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.
- package/README.md +306 -5
- package/dist/cli/config.d.ts +121 -0
- package/dist/cli/config.js +331 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/doctor.d.ts +5 -0
- package/dist/cli/doctor.js +141 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/index.d.ts +18 -0
- package/dist/cli/index.js +120 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/install.d.ts +19 -0
- package/dist/cli/install.js +135 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/uninstall.d.ts +16 -0
- package/dist/cli/uninstall.js +110 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/cli/update.d.ts +15 -0
- package/dist/cli/update.js +86 -0
- package/dist/cli/update.js.map +1 -0
- package/dist/core/index.d.ts +39 -0
- package/dist/core/index.js +38 -0
- package/dist/core/index.js.map +1 -0
- package/dist/observability/events.d.ts +43 -0
- package/dist/observability/events.js.map +1 -1
- package/dist/plugin/checkpoint-override.d.ts +7 -9
- package/dist/plugin/checkpoint-override.js +8 -14
- package/dist/plugin/checkpoint-override.js.map +1 -1
- package/dist/plugin/define-workflow.d.ts +33 -0
- package/dist/plugin/define-workflow.js +103 -0
- package/dist/plugin/define-workflow.js.map +1 -0
- package/dist/plugin/index.js +406 -26
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/opencode-v2-executor.js +58 -46
- package/dist/plugin/opencode-v2-executor.js.map +1 -1
- package/dist/plugin/progress-board.d.ts +64 -0
- package/dist/plugin/progress-board.js +150 -0
- package/dist/plugin/progress-board.js.map +1 -0
- package/dist/plugin/progress-rpc.d.ts +390 -0
- package/dist/plugin/progress-rpc.js +318 -0
- package/dist/plugin/progress-rpc.js.map +1 -0
- package/dist/plugin/progress-view.d.ts +82 -0
- package/dist/plugin/progress-view.js +244 -0
- package/dist/plugin/progress-view.js.map +1 -0
- package/dist/plugin/run-sessions.d.ts +28 -0
- package/dist/plugin/run-sessions.js +46 -0
- package/dist/plugin/run-sessions.js.map +1 -0
- package/dist/plugin/tool-args.d.ts +15 -0
- package/dist/plugin/tool-args.js +28 -0
- package/dist/plugin/tool-args.js.map +1 -0
- package/dist/plugin/tui.d.ts +11 -4
- package/dist/plugin/tui.js +160 -5
- package/dist/plugin/tui.js.map +1 -1
- package/dist/plugin/workflow-control.d.ts +16 -0
- package/dist/plugin/workflow-control.js +85 -0
- package/dist/plugin/workflow-control.js.map +1 -0
- package/dist/plugin/workflow-schedule.d.ts +24 -0
- package/dist/plugin/workflow-schedule.js +97 -0
- package/dist/plugin/workflow-schedule.js.map +1 -0
- package/dist/quality/checkpoint.d.ts +5 -2
- package/dist/quality/checkpoint.js +11 -6
- package/dist/quality/checkpoint.js.map +1 -1
- package/dist/quality/verify.d.ts +21 -2
- package/dist/quality/verify.js +36 -14
- package/dist/quality/verify.js.map +1 -1
- package/dist/registry/definition.d.ts +12 -0
- package/dist/registry/definition.js.map +1 -1
- package/dist/registry/registry.d.ts +4 -0
- package/dist/registry/registry.js +20 -1
- package/dist/registry/registry.js.map +1 -1
- package/dist/registry/run-control.d.ts +27 -0
- package/dist/registry/run-control.js +51 -0
- package/dist/registry/run-control.js.map +1 -0
- package/dist/registry/runner.d.ts +29 -6
- package/dist/registry/runner.js +153 -35
- package/dist/registry/runner.js.map +1 -1
- package/dist/runtime/errors.d.ts +26 -0
- package/dist/runtime/errors.js +30 -0
- package/dist/runtime/errors.js.map +1 -1
- package/dist/runtime/executor.d.ts +22 -0
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/run-context.d.ts +44 -0
- package/dist/runtime/run-context.js +32 -0
- package/dist/runtime/run-context.js.map +1 -0
- package/dist/scheduler/cron.d.ts +29 -0
- package/dist/scheduler/cron.js +171 -0
- package/dist/scheduler/cron.js.map +1 -0
- package/dist/scheduler/service.d.ts +78 -0
- package/dist/scheduler/service.js +215 -0
- package/dist/scheduler/service.js.map +1 -0
- package/dist/scheduler/store.d.ts +26 -0
- package/dist/scheduler/store.js +94 -0
- package/dist/scheduler/store.js.map +1 -0
- package/dist/scheduler/types.d.ts +53 -0
- package/dist/scheduler/types.js +12 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/state/journal.d.ts +23 -0
- package/dist/state/journal.js +2 -0
- package/dist/state/journal.js.map +1 -1
- package/dist/state/recorder.d.ts +67 -0
- package/dist/state/recorder.js +148 -2
- package/dist/state/recorder.js.map +1 -1
- package/dist/workflow/agent.d.ts +42 -1
- package/dist/workflow/agent.js +116 -6
- package/dist/workflow/agent.js.map +1 -1
- package/dist/workflow/judge-panel.d.ts +37 -0
- package/dist/workflow/judge-panel.js +66 -0
- package/dist/workflow/judge-panel.js.map +1 -0
- package/dist/workflow/pipeline.d.ts +21 -0
- package/dist/workflow/pipeline.js +71 -0
- package/dist/workflow/pipeline.js.map +1 -0
- package/dist/workflow/race.d.ts +16 -0
- package/dist/workflow/race.js +46 -0
- package/dist/workflow/race.js.map +1 -0
- package/dist/workflow/sequence.js +6 -0
- package/dist/workflow/sequence.js.map +1 -1
- package/dist/workflows/loader.d.ts +124 -0
- package/dist/workflows/loader.js +500 -0
- package/dist/workflows/loader.js.map +1 -0
- package/dist/workspace/ambient.d.ts +6 -4
- package/dist/workspace/ambient.js +10 -4
- package/dist/workspace/ambient.js.map +1 -1
- package/package.json +21 -6
- package/skills/workflow-authoring/SKILL.md +111 -0
- package/skills/workflow-optimize/SKILL.md +70 -0
- package/dist/workflows/index.d.ts +0 -19
- package/dist/workflows/index.js +0 -40
- package/dist/workflows/index.js.map +0 -1
package/dist/plugin/index.js
CHANGED
|
@@ -27,19 +27,28 @@ import { withConcurrencyLimit } from "../runtime/semaphore.js";
|
|
|
27
27
|
import { createFileTraceSink } from "../observability/trace.js";
|
|
28
28
|
import { MetricsCollector, formatMetrics } from "../metrics/collector.js";
|
|
29
29
|
import { WorkflowRegistry } from "../registry/registry.js";
|
|
30
|
-
import { startWorkflow, resumeWorkflow, runWorkflowInline } from "../registry/runner.js";
|
|
30
|
+
import { startWorkflow, startWorkflowDetached, resumeWorkflow, runWorkflowInline, } from "../registry/runner.js";
|
|
31
31
|
import { WorkflowExecutionError } from "../registry/errors.js";
|
|
32
|
+
import { buildWorkflowArgs } from "./tool-args.js";
|
|
33
|
+
import { defineWorkflow } from "./define-workflow.js";
|
|
34
|
+
import { SchedulerService, ScheduleSkipError } from "../scheduler/service.js";
|
|
35
|
+
import { anyLive } from "../registry/run-control.js";
|
|
36
|
+
import { scheduleToolExecute } from "./workflow-schedule.js";
|
|
37
|
+
import { controlStatus, controlStop } from "./workflow-control.js";
|
|
32
38
|
import { FileExecutionStore } from "../state/file-store.js";
|
|
33
39
|
import { reliableWorkflow } from "../workflows/reliable.js";
|
|
34
40
|
import { smokeWorkflow } from "../workflows/smoke.js";
|
|
35
41
|
import { artifactWorkflow } from "../workflows/artifact.js";
|
|
36
42
|
import { featureDevelopmentWorkflow } from "../workflows/feature-development.js";
|
|
43
|
+
import { loadCustomWorkflows } from "../workflows/loader.js";
|
|
37
44
|
import { GitWorktreeProvider, InPlaceWorkspaceProvider } from "../workspace/index.js";
|
|
38
45
|
import { InteractiveCheckpointGate, } from "./interactive-checkpoint-gate.js";
|
|
39
|
-
import { applyCheckpointModeOverride, parseCheckpointModeOverride, } from "./checkpoint-override.js";
|
|
40
46
|
import { OpenCodeV2Executor } from "./opencode-v2-executor.js";
|
|
41
47
|
import { buildPriceTable, estimateCostUSD } from "./price-table.js";
|
|
42
48
|
import { PolicyCheckpointGate } from "./policy-checkpoint-gate.js";
|
|
49
|
+
import { bindProgressBoard } from "./progress-board.js";
|
|
50
|
+
import { buildCheckpointGate, parseCheckpointModeOverride } from "./checkpoint-override.js";
|
|
51
|
+
import { isInsideRunSession } from "./run-sessions.js";
|
|
43
52
|
export default Plugin.define({
|
|
44
53
|
id: "agentic-workflow",
|
|
45
54
|
async setup(ctx) {
|
|
@@ -119,6 +128,45 @@ export default Plugin.define({
|
|
|
119
128
|
.register(reliableWorkflow({ checkCommand: options.checkCommand }))
|
|
120
129
|
.register(artifactWorkflow())
|
|
121
130
|
.register(featureDevelopmentWorkflow({ checkCommand: options.checkCommand }));
|
|
131
|
+
// P4 自定义 workflow(声明式 JSON):options.workflows 路径(.json 文件
|
|
132
|
+
// 或目录,相对项目目录)→ 装载注册。文件级错误 warn+跳过(观测/装载
|
|
133
|
+
// 不能成为主链路故障源);必须在工具注册前完成(流程清单进工具描述)
|
|
134
|
+
const builtinIds = ["smoke", "reliable", "artifact", "feature-development"];
|
|
135
|
+
const projectDir = ctx.location.directory;
|
|
136
|
+
if (options.workflows && options.workflows.length > 0) {
|
|
137
|
+
const loaded = await loadCustomWorkflows(options.workflows, projectDir, builtinIds);
|
|
138
|
+
for (const error of loaded.errors) {
|
|
139
|
+
console.log(`[agentic-workflow] custom workflow file skipped: ${error}`);
|
|
140
|
+
}
|
|
141
|
+
let registered = 0;
|
|
142
|
+
for (const definition of loaded.definitions) {
|
|
143
|
+
try {
|
|
144
|
+
registry.register(definition);
|
|
145
|
+
registered += 1;
|
|
146
|
+
console.log(`[agentic-workflow] custom workflow registered: ${definition.id}@${definition.version} ` +
|
|
147
|
+
`(${(definition.stepNames ?? []).join(" -> ")})`);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.log(`[agentic-workflow] custom workflow rejected ${definition.id}@${definition.version}: ` +
|
|
151
|
+
`${error instanceof Error ? error.message : String(error)}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (registered === 0 && loaded.errors.length > 0) {
|
|
155
|
+
console.log("[agentic-workflow] note: no custom workflows were registered; " +
|
|
156
|
+
"built-in workflows remain fully available");
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// P0-2 workflow_define 的落盘目标:从 options.workflows 推导候选目录
|
|
160
|
+
// (.json/.js/.mjs/.cjs 文件条目取其父目录;其余条目视为目录本身——
|
|
161
|
+
// 不要求已存在,define 时 mkdir -p)。相对路径同装载器基准 = 项目目录。
|
|
162
|
+
const flowsDirs = [];
|
|
163
|
+
for (const entry of options.workflows ?? []) {
|
|
164
|
+
const resolved = path.isAbsolute(entry) ? entry : path.join(projectDir, entry);
|
|
165
|
+
const isFileEntry = /\.(json|js|mjs|cjs)$/.test(resolved);
|
|
166
|
+
const dir = isFileEntry ? path.dirname(resolved) : resolved;
|
|
167
|
+
if (!flowsDirs.includes(dir))
|
|
168
|
+
flowsDirs.push(dir);
|
|
169
|
+
}
|
|
122
170
|
// P2.5 durable journal:配置 journalDir 后,run 经 startWorkflow/resumeWorkflow
|
|
123
171
|
// 走持久化链路(journal 记录 workflow {id, version} + args + steps,可恢复)
|
|
124
172
|
let store;
|
|
@@ -129,6 +177,41 @@ export default Plugin.define({
|
|
|
129
177
|
store = new FileExecutionStore(journalDir);
|
|
130
178
|
console.log(`[agentic-workflow] journal store: ${journalDir}`);
|
|
131
179
|
}
|
|
180
|
+
// P2-8 TUI 进度树数据面:订阅 run.progress 事件 + 注册 snapshot/detail/
|
|
181
|
+
// session RPC。无条件启用——无 TUI 监听时 RPC 转发是 no-op 成本;journal
|
|
182
|
+
// 未配置时 board 仍实时(只是没有历史种子)。
|
|
183
|
+
try {
|
|
184
|
+
await bindProgressBoard({
|
|
185
|
+
rpc: ctx.rpc,
|
|
186
|
+
...(store ? { store } : {}),
|
|
187
|
+
// Open Session 回放数据源:宿主会话消息(user 扁平 text;assistant
|
|
188
|
+
// 取 content 的 text part 合并;其余类型不进回放)
|
|
189
|
+
fetchSessionMessages: async (sessionID) => {
|
|
190
|
+
const messages = await ctx.session.context({ sessionID });
|
|
191
|
+
return messages.flatMap((message) => {
|
|
192
|
+
if (message.type === "user") {
|
|
193
|
+
const text = message.text.trim();
|
|
194
|
+
return text.length > 0 ? [{ type: message.type, text }] : [];
|
|
195
|
+
}
|
|
196
|
+
if (message.type === "assistant") {
|
|
197
|
+
const text = message.content
|
|
198
|
+
.filter((part) => part.type === "text")
|
|
199
|
+
.map((part) => part.text)
|
|
200
|
+
.join("\n")
|
|
201
|
+
.trim();
|
|
202
|
+
return text.length > 0 ? [{ type: message.type, text }] : [];
|
|
203
|
+
}
|
|
204
|
+
return [];
|
|
205
|
+
});
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
console.log("[agentic-workflow] progress board: live (TUI /workflow panel)");
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
// 注册失败不阻断插件(RPC 域不可用等极端情况)
|
|
212
|
+
console.log(`[agentic-workflow] progress board disabled: ` +
|
|
213
|
+
`${error instanceof Error ? error.message : String(error)}`);
|
|
214
|
+
}
|
|
132
215
|
// P2.7 workspace 隔离:GitWorktreeProvider(startDir = 项目目录,
|
|
133
216
|
// 内部解析到 git 仓库根;worktree 落在仓库同级目录,不污染仓库)。
|
|
134
217
|
// P3 Blocker 修复:无隔离时绑定 InPlaceWorkspaceProvider——
|
|
@@ -157,10 +240,23 @@ export default Plugin.define({
|
|
|
157
240
|
};
|
|
158
241
|
console.log(`[agentic-workflow] workspace: in-place (project dir, no isolation)`);
|
|
159
242
|
}
|
|
160
|
-
//
|
|
161
|
-
//
|
|
162
|
-
//
|
|
163
|
-
|
|
243
|
+
// 递归防护(并发 run 时代重构):原先「任一 run 在飞即拒绝一切调用」的
|
|
244
|
+
// 计数器同时挡掉了合法的顶层并发(P2-9 已消除 gate/workspace 单例根因)。
|
|
245
|
+
// 现在按调用来源判别:executor 登记的 run 会话(及其派生子会话,经
|
|
246
|
+
// 祖先链)内的调用 = 嵌套递归,拒绝(信号量自饿死);顶层会话放行,
|
|
247
|
+
// 受 maxConcurrentRuns 上限约束。
|
|
248
|
+
const maxConcurrentRuns = Math.max(1, options.maxConcurrentRuns ?? 3);
|
|
249
|
+
let activeRuns = 0;
|
|
250
|
+
/** 调用会话的父级(session.get 的 parentID;查询失败按无父处理) */
|
|
251
|
+
const parentOfSession = async (id) => {
|
|
252
|
+
try {
|
|
253
|
+
const info = await ctx.session.get({ sessionID: id });
|
|
254
|
+
return info?.parentID;
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
return undefined;
|
|
258
|
+
}
|
|
259
|
+
};
|
|
164
260
|
ctx.tool.transform((editor) => {
|
|
165
261
|
editor.add({
|
|
166
262
|
name: "workflow",
|
|
@@ -175,10 +271,18 @@ export default Plugin.define({
|
|
|
175
271
|
type: "string",
|
|
176
272
|
description: "The topic to analyze (not needed when resuming)",
|
|
177
273
|
},
|
|
274
|
+
args: {
|
|
275
|
+
type: "object",
|
|
276
|
+
description: "Flow-specific parameters declared by the flow, beyond topic - " +
|
|
277
|
+
"see each flow's [args: ...] hint in the description above. " +
|
|
278
|
+
"Pass every declared parameter as a key/value pair; missing required " +
|
|
279
|
+
"or wrongly-typed parameters fail the run with the exact problem listed",
|
|
280
|
+
},
|
|
178
281
|
flow: {
|
|
179
282
|
type: "string",
|
|
180
|
-
|
|
181
|
-
|
|
283
|
+
description: "Workflow id from the Available workflows list above, or an id " +
|
|
284
|
+
"just defined via workflow_define (default smoke). Unknown ids " +
|
|
285
|
+
"fail with the list of available ids",
|
|
182
286
|
},
|
|
183
287
|
resumeRunId: {
|
|
184
288
|
type: "string",
|
|
@@ -192,6 +296,15 @@ export default Plugin.define({
|
|
|
192
296
|
"Pass auto-approve for headless/opencode-run executions unless the user " +
|
|
193
297
|
"explicitly wants auto-reject. Ignored for flows without a checkpoint step",
|
|
194
298
|
},
|
|
299
|
+
background: {
|
|
300
|
+
type: "boolean",
|
|
301
|
+
description: "Start the run in the background and return the runId immediately " +
|
|
302
|
+
"(requires journalDir; ignored when resuming). Poll it with " +
|
|
303
|
+
"workflow_control action=status until completed/failed and read the " +
|
|
304
|
+
"output there. Multiple top-level runs may run concurrently " +
|
|
305
|
+
"(up to maxConcurrentRuns, default 3); calls from inside a running " +
|
|
306
|
+
"workflow are rejected",
|
|
307
|
+
},
|
|
195
308
|
},
|
|
196
309
|
},
|
|
197
310
|
// V2 强校验:Tool.Result 使用 output 字段必须声明 output schema,
|
|
@@ -199,18 +312,74 @@ export default Plugin.define({
|
|
|
199
312
|
output: {
|
|
200
313
|
type: "string",
|
|
201
314
|
},
|
|
202
|
-
async execute(input) {
|
|
315
|
+
async execute(input, context) {
|
|
203
316
|
const parsed = input ?? {};
|
|
204
|
-
|
|
317
|
+
// 递归防护:来自 run 内部(executor 登记会话自身或其祖先)→ 拒绝;
|
|
318
|
+
// 会话身份缺失(宿主异常)时保守退回旧单飞语义
|
|
319
|
+
const callerSessionID = context?.sessionID;
|
|
320
|
+
const nested = callerSessionID === undefined
|
|
321
|
+
? activeRuns > 0
|
|
322
|
+
: await isInsideRunSession(callerSessionID, parentOfSession);
|
|
323
|
+
if (nested) {
|
|
205
324
|
return {
|
|
206
325
|
output: "[agentic-workflow] nested workflow calls are not allowed: " +
|
|
207
|
-
"
|
|
326
|
+
"this call comes from inside a running workflow. Complete the task directly yourself. " +
|
|
327
|
+
"(Workflow authors who need composition should use a subflow step " +
|
|
328
|
+
"or ctx.subflow() inside the workflow definition instead.)",
|
|
208
329
|
};
|
|
209
330
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
331
|
+
// 并发上限:顶层 run 并行数(默认 3);超出给可读失败与处置提示
|
|
332
|
+
if (activeRuns >= maxConcurrentRuns) {
|
|
333
|
+
return {
|
|
334
|
+
output: `[agentic-workflow] concurrency limit reached: ${activeRuns} top-level ` +
|
|
335
|
+
`runs are already live (max ${maxConcurrentRuns}). Poll them with ` +
|
|
336
|
+
"workflow_control action=status, or stop one with action=stop, then retry",
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
activeRuns += 1;
|
|
340
|
+
// P3 Blocker 修复 + P2-9:调用级 checkpoint 覆盖——为本次 run 构建
|
|
341
|
+
// 策略门经 RunLaunchOptions.gate 注入(run 级,无换装/恢复竞态;
|
|
342
|
+
// 守护进程宿主下 init 配置可能来自别的项目,显式参数免疫)
|
|
343
|
+
const overrideGate = buildCheckpointGate(parseCheckpointModeOverride(parsed.checkpointMode));
|
|
344
|
+
const gateOptions = overrideGate ? { gate: overrideGate } : {};
|
|
345
|
+
const workflowId = typeof parsed.flow === "string" && parsed.flow.length > 0
|
|
346
|
+
? parsed.flow
|
|
347
|
+
: "smoke";
|
|
348
|
+
// P0-1:args 透传——topic 恒在顶层,其余 flow 声明参数经 args 对象
|
|
349
|
+
// 合并转发(引擎按 argsSchema 校验,required/类型不符即报具体问题)
|
|
350
|
+
const workflowArgs = buildWorkflowArgs(parsed.topic, parsed.args);
|
|
351
|
+
// P1-3 后台分支:depth/gate 生命周期移交给 completion(外层 try/finally
|
|
352
|
+
// 的立即恢复会提前放锁)。要求 journalDir;resume 一律走阻塞路径。
|
|
353
|
+
if (parsed.background === true &&
|
|
354
|
+
store &&
|
|
355
|
+
!(typeof parsed.resumeRunId === "string" && parsed.resumeRunId.length > 0)) {
|
|
356
|
+
try {
|
|
357
|
+
const detached = await startWorkflowDetached(registry, store, workflowId, workflowArgs, { workspace: workspaceBinding, ...gateOptions });
|
|
358
|
+
detached.completion
|
|
359
|
+
.then((result) => console.log(`[agentic-workflow] background run ${result.runId} completed (${result.workflow.id})`))
|
|
360
|
+
.catch((error) => console.log(`[agentic-workflow] background run ${detached.runId} ended: ` +
|
|
361
|
+
`${error instanceof Error ? error.message : String(error)}`))
|
|
362
|
+
.finally(() => {
|
|
363
|
+
activeRuns -= 1;
|
|
364
|
+
});
|
|
365
|
+
return {
|
|
366
|
+
output: `[background] ${detached.workflow.id}@${detached.workflow.version} ` +
|
|
367
|
+
`runId=${detached.runId} started\n` +
|
|
368
|
+
`poll: workflow_control action=status runId=${detached.runId} ` +
|
|
369
|
+
"(status transitions to completed/failed/aborted; detail includes the output once completed)\n" +
|
|
370
|
+
"stop: workflow_control action=stop runId=" +
|
|
371
|
+
detached.runId +
|
|
372
|
+
" (cooperative - takes effect at the next step boundary)",
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
catch (error) {
|
|
376
|
+
activeRuns -= 1;
|
|
377
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
378
|
+
return {
|
|
379
|
+
output: `[agentic-workflow] background start failed: ${message}`,
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
}
|
|
214
383
|
try {
|
|
215
384
|
// resume 分支:journal -> registry 精确版本解析 -> 续跑
|
|
216
385
|
if (typeof parsed.resumeRunId === "string" && parsed.resumeRunId.length > 0) {
|
|
@@ -221,28 +390,25 @@ export default Plugin.define({
|
|
|
221
390
|
}
|
|
222
391
|
const resumed = await resumeWorkflow(registry, store, parsed.resumeRunId, {
|
|
223
392
|
workspace: workspaceBinding,
|
|
393
|
+
...gateOptions,
|
|
224
394
|
});
|
|
225
395
|
return {
|
|
226
396
|
output: `[resumed ${resumed.workflow.id}@${resumed.workflow.version} ` +
|
|
227
397
|
`runId=${resumed.runId}]\n${resumed.output}`,
|
|
228
398
|
};
|
|
229
399
|
}
|
|
230
|
-
const workflowId = typeof parsed.flow === "string" && parsed.flow.length > 0
|
|
231
|
-
? parsed.flow
|
|
232
|
-
: "smoke";
|
|
233
400
|
if (store) {
|
|
234
|
-
const started = await startWorkflow(registry, store, workflowId, {
|
|
235
|
-
|
|
236
|
-
|
|
401
|
+
const started = await startWorkflow(registry, store, workflowId, workflowArgs, {
|
|
402
|
+
workspace: workspaceBinding,
|
|
403
|
+
...gateOptions,
|
|
404
|
+
});
|
|
237
405
|
return {
|
|
238
406
|
output: `[${started.workflow.id}@${started.workflow.version} ` +
|
|
239
407
|
`runId=${started.runId}]\n${started.output}`,
|
|
240
408
|
};
|
|
241
409
|
}
|
|
242
410
|
// 未配置 journalDir:直跑(不持久化、不可恢复)
|
|
243
|
-
const inline = await runWorkflowInline(registry, workflowId,
|
|
244
|
-
topic: parsed.topic,
|
|
245
|
-
});
|
|
411
|
+
const inline = await runWorkflowInline(registry, workflowId, workflowArgs);
|
|
246
412
|
return { output: inline.output };
|
|
247
413
|
}
|
|
248
414
|
catch (error) {
|
|
@@ -257,8 +423,132 @@ export default Plugin.define({
|
|
|
257
423
|
};
|
|
258
424
|
}
|
|
259
425
|
finally {
|
|
260
|
-
|
|
261
|
-
|
|
426
|
+
activeRuns -= 1;
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
});
|
|
430
|
+
// P1-3 run 控制工具:status(全量列表/单 run 详情)+ stop(协作式取消/
|
|
431
|
+
// 孤儿收口)。journal 是唯一事实源;未配置 journalDir 时明确报错。
|
|
432
|
+
editor.add({
|
|
433
|
+
name: "workflow_control",
|
|
434
|
+
description: "Inspect and control workflow runs (requires the journalDir plugin option):\n" +
|
|
435
|
+
"- action=status: without runId lists all runs (newest first); with runId " +
|
|
436
|
+
"shows one run's detail - step statuses, args, failure reason, and the " +
|
|
437
|
+
"final output once completed. Use this to poll background runs.\n" +
|
|
438
|
+
"- action=stop: request a cooperative stop of a running run - it takes " +
|
|
439
|
+
"effect at the next step boundary (in-flight agent calls are not killed) " +
|
|
440
|
+
"and the journal ends as aborted (distinct from failed; aborted runs can " +
|
|
441
|
+
"be resumed). Also finalizes orphaned runs left 'running' by a restart.",
|
|
442
|
+
input: {
|
|
443
|
+
type: "object",
|
|
444
|
+
properties: {
|
|
445
|
+
action: {
|
|
446
|
+
type: "string",
|
|
447
|
+
enum: ["status", "stop"],
|
|
448
|
+
description: "status = inspect, stop = cooperative cancel",
|
|
449
|
+
},
|
|
450
|
+
runId: {
|
|
451
|
+
type: "string",
|
|
452
|
+
description: "Run id (from the workflow tool result or a status listing)",
|
|
453
|
+
},
|
|
454
|
+
},
|
|
455
|
+
required: ["action"],
|
|
456
|
+
},
|
|
457
|
+
output: {
|
|
458
|
+
type: "string",
|
|
459
|
+
},
|
|
460
|
+
async execute(input) {
|
|
461
|
+
const parsed = input ?? {};
|
|
462
|
+
if (!store) {
|
|
463
|
+
return {
|
|
464
|
+
output: "[agentic-workflow] workflow_control requires the journalDir plugin option to be configured",
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
const action = parsed.action === "stop" ? "stop" : "status";
|
|
468
|
+
const runId = typeof parsed.runId === "string" ? parsed.runId : undefined;
|
|
469
|
+
if (action === "stop" && (!runId || runId.length === 0)) {
|
|
470
|
+
return { output: "[agentic-workflow] stop requires a runId" };
|
|
471
|
+
}
|
|
472
|
+
try {
|
|
473
|
+
const output = action === "stop" ? await controlStop(store, runId) : await controlStatus(store, runId);
|
|
474
|
+
return { output };
|
|
475
|
+
}
|
|
476
|
+
catch (error) {
|
|
477
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
478
|
+
return { output: `[agentic-workflow] workflow_control failed: ${message}` };
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
});
|
|
482
|
+
// P0-2 workflow_define 工具:主 agent 对话中直接定义声明式流程——
|
|
483
|
+
// 校验→注册→落盘,无需人工编辑文件(自然语言 → JSON 生成链路的落点)
|
|
484
|
+
editor.add({
|
|
485
|
+
name: "workflow_define",
|
|
486
|
+
description: "Define a custom workflow as a declarative JSON object - validated, " +
|
|
487
|
+
"persisted to the configured flows directory, and registered " +
|
|
488
|
+
"IMMEDIATELY (callable via the workflow tool right away, auto-loaded " +
|
|
489
|
+
"on every future start). Use this when the user asks for a new " +
|
|
490
|
+
"workflow/pipeline instead of editing files by hand.\n" +
|
|
491
|
+
"Format (all keys optional except id and steps):\n" +
|
|
492
|
+
'{ id: "kebab-case", version?: "1.0.0", description?: string, ' +
|
|
493
|
+
"args?: JSON-Schema (default: only topic), steps: [...], output?: template }\n" +
|
|
494
|
+
"Each step = { name: kebab-case, <exactly one step key> }:\n" +
|
|
495
|
+
'- agent: prompt string. ALWAYS append the recursion guard sentence ' +
|
|
496
|
+
"禁止调用 workflow / workflow_metrics 工具. Templates {{topic}}, " +
|
|
497
|
+
"{{args.x}}, earlier {{steps.<name>}} are available\n" +
|
|
498
|
+
"- checkpoint: approval-gate message template\n" +
|
|
499
|
+
"- verify: { artifact: \"{{steps.<name>}}\", criteria?: string } semantic review\n" +
|
|
500
|
+
"- fileExists: relative path assertion (workspace root)\n" +
|
|
501
|
+
"- subflow: \"flow-id\" to nest another registered workflow as a step " +
|
|
502
|
+
"(optional args: object of primitives/templates; requires journalDir; " +
|
|
503
|
+
"max nesting depth 3; the subflow output feeds {{steps.<name>}})\n" +
|
|
504
|
+
"- pipeline: per-item prompt template ({{item}} = entry; keep the " +
|
|
505
|
+
"recursion guard sentence) + items: non-empty array of templates; " +
|
|
506
|
+
"optional outputAs/onFailure(\"fail-fast\"|\"continue\")/model/timeoutMs/" +
|
|
507
|
+
"retries; results = array aligned with items (JSON string in " +
|
|
508
|
+
"{{steps.<name>}}); whole step is one resume unit\n" +
|
|
509
|
+
"- race: array of >=2 prompt templates, first success wins (optional " +
|
|
510
|
+
"outputAs); all-fail = step failure\n" +
|
|
511
|
+
"Rules: unknown template variable = step failure; changing steps " +
|
|
512
|
+
"requires bumping version; built-in ids (smoke/reliable/artifact/" +
|
|
513
|
+
"feature-development) are reserved.",
|
|
514
|
+
input: {
|
|
515
|
+
type: "object",
|
|
516
|
+
properties: {
|
|
517
|
+
workflow: {
|
|
518
|
+
type: "object",
|
|
519
|
+
description: "The declarative workflow JSON (see format above)",
|
|
520
|
+
},
|
|
521
|
+
dir: {
|
|
522
|
+
type: "string",
|
|
523
|
+
description: "Optional target directory for the .json file (default: the " +
|
|
524
|
+
"first configured flows directory)",
|
|
525
|
+
},
|
|
526
|
+
},
|
|
527
|
+
required: ["workflow"],
|
|
528
|
+
},
|
|
529
|
+
output: {
|
|
530
|
+
type: "string",
|
|
531
|
+
},
|
|
532
|
+
async execute(input) {
|
|
533
|
+
const parsed = input ?? {};
|
|
534
|
+
const dir = typeof parsed.dir === "string" && parsed.dir.length > 0
|
|
535
|
+
? path.isAbsolute(parsed.dir)
|
|
536
|
+
? parsed.dir
|
|
537
|
+
: path.join(projectDir, parsed.dir)
|
|
538
|
+
: undefined;
|
|
539
|
+
try {
|
|
540
|
+
const outcome = await defineWorkflow({
|
|
541
|
+
registry,
|
|
542
|
+
reservedIds: builtinIds,
|
|
543
|
+
raw: parsed.workflow,
|
|
544
|
+
flowsDirs,
|
|
545
|
+
dir,
|
|
546
|
+
});
|
|
547
|
+
return { output: outcome.message };
|
|
548
|
+
}
|
|
549
|
+
catch (error) {
|
|
550
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
551
|
+
return { output: `[agentic-workflow] workflow_define failed: ${message}` };
|
|
262
552
|
}
|
|
263
553
|
},
|
|
264
554
|
});
|
|
@@ -290,6 +580,96 @@ export default Plugin.define({
|
|
|
290
580
|
return { output };
|
|
291
581
|
},
|
|
292
582
|
});
|
|
583
|
+
// P2-7 定时任务子系统(可选;schedulesDir + journalDir 同时配置启用)。
|
|
584
|
+
// 调度器随宿主进程存活(timer unref 不阻止退出);停机错过的 slot
|
|
585
|
+
// 重启后合并为最近一个补跑;scheduled run 无人值守 -> 强制
|
|
586
|
+
// auto-approve 策略门(run 落定后恢复原门);单飞冲突(anyLive,
|
|
587
|
+
// 含 inline run)-> 该 slot 记录 skipped(是跳过不是延迟)。
|
|
588
|
+
if (options.schedulesDir) {
|
|
589
|
+
if (!store) {
|
|
590
|
+
console.log("[agentic-workflow] scheduler disabled: schedulesDir requires journalDir " +
|
|
591
|
+
"(scheduled runs go through the journal-persisted path)");
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
const journalStore = store;
|
|
595
|
+
const schedulesDir = path.isAbsolute(options.schedulesDir)
|
|
596
|
+
? options.schedulesDir
|
|
597
|
+
: path.join(projectDir, options.schedulesDir);
|
|
598
|
+
const scheduler = new SchedulerService({
|
|
599
|
+
dir: schedulesDir,
|
|
600
|
+
flowExists: (flow) => registry.get(flow) !== undefined,
|
|
601
|
+
knownFlows: () => registry.ids(),
|
|
602
|
+
trigger: async (schedule) => {
|
|
603
|
+
if (anyLive()) {
|
|
604
|
+
throw new ScheduleSkipError("another workflow run is live in this process (single-flight)");
|
|
605
|
+
}
|
|
606
|
+
// 无人值守:P2-9 起经 RunLaunchOptions.gate 给本次 run 注入
|
|
607
|
+
// auto-approve 策略门(run 级,无换装/恢复竞态)
|
|
608
|
+
const detached = await startWorkflowDetached(registry, journalStore, schedule.flow, schedule.args ?? {}, { gate: new PolicyCheckpointGate("auto-approve") });
|
|
609
|
+
// 终态映射:completion 成功 -> success;失败/中止 -> journal 权威状态
|
|
610
|
+
const completion = detached.completion.then(() => "success", async () => {
|
|
611
|
+
const run = await journalStore.getRun(detached.runId);
|
|
612
|
+
return run?.status === "aborted" ? "aborted" : "failed";
|
|
613
|
+
});
|
|
614
|
+
return { runId: detached.runId, completion };
|
|
615
|
+
},
|
|
616
|
+
});
|
|
617
|
+
scheduler.start();
|
|
618
|
+
editor.add({
|
|
619
|
+
name: "workflow_schedule",
|
|
620
|
+
description: "Manage scheduled workflow runs (requires the schedulesDir AND journalDir " +
|
|
621
|
+
"plugin options). The scheduler lives inside this opencode process - " +
|
|
622
|
+
"schedules only fire while the process runs; slots missed while it was " +
|
|
623
|
+
"down are coalesced into ONE catch-up run (the latest missed slot) on " +
|
|
624
|
+
"restart. Cron supports exactly four modes (local timezone):\n" +
|
|
625
|
+
" * * * * * (every minute) or */n * * * * (every n minutes, n 1-59)\n" +
|
|
626
|
+
" m * * * * (every hour at minute m)\n" +
|
|
627
|
+
" m h * * * (daily at h:m)\n" +
|
|
628
|
+
" m h * * W (weekly; W = 0-6 or comma list, 0=Sunday)\n" +
|
|
629
|
+
"Actions:\n" +
|
|
630
|
+
"- create: needs id (kebab-case), flow, cron; optional name, args " +
|
|
631
|
+
"{topic, ...} (validated against the flow schema at fire time), " +
|
|
632
|
+
"enabled (default true). Cursor baselines to creation time - earlier " +
|
|
633
|
+
"slots never fire; use runNow to fire immediately. Fires the latest " +
|
|
634
|
+
"registered version at fire time.\n" +
|
|
635
|
+
"- list / get(id) / delete(id): views include next/last run; delete also " +
|
|
636
|
+
"removes cursor and run history\n" +
|
|
637
|
+
"- runNow(id): manual trigger regardless of cron/cursor\n" +
|
|
638
|
+
"- enable(id) / disable(id)\n" +
|
|
639
|
+
"Scheduled runs are unattended: checkpoints auto-approve and no worktree " +
|
|
640
|
+
"isolation. If another run is live at fire time the slot is SKIPPED " +
|
|
641
|
+
"(recorded as skipped, not delayed).",
|
|
642
|
+
input: {
|
|
643
|
+
type: "object",
|
|
644
|
+
properties: {
|
|
645
|
+
action: {
|
|
646
|
+
type: "string",
|
|
647
|
+
enum: ["create", "list", "get", "delete", "runNow", "enable", "disable"],
|
|
648
|
+
description: "create/list/get/delete/runNow/enable/disable",
|
|
649
|
+
},
|
|
650
|
+
id: { type: "string", description: "schedule id (kebab-case)" },
|
|
651
|
+
flow: { type: "string", description: "workflow id (create only)" },
|
|
652
|
+
cron: { type: "string", description: "four-mode cron subset (create only)" },
|
|
653
|
+
name: { type: "string", description: "display name (create only)" },
|
|
654
|
+
args: {
|
|
655
|
+
type: "object",
|
|
656
|
+
description: "workflow args incl. topic, passed at fire time (create only)",
|
|
657
|
+
},
|
|
658
|
+
enabled: { type: "boolean", description: "initial enabled state (create only)" },
|
|
659
|
+
},
|
|
660
|
+
required: ["action"],
|
|
661
|
+
},
|
|
662
|
+
output: {
|
|
663
|
+
type: "string",
|
|
664
|
+
},
|
|
665
|
+
async execute(input) {
|
|
666
|
+
return {
|
|
667
|
+
output: await scheduleToolExecute(scheduler, (input ?? {})),
|
|
668
|
+
};
|
|
669
|
+
},
|
|
670
|
+
});
|
|
671
|
+
}
|
|
672
|
+
}
|
|
293
673
|
});
|
|
294
674
|
},
|
|
295
675
|
});
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|