@bastani/atomic 0.8.1-1 → 0.8.2-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 +13 -0
- package/dist/builtin/intercom/config.ts +3 -4
- package/dist/builtin/intercom/index.ts +6 -6
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/agent-dir.ts +11 -2
- package/dist/builtin/mcp/cli.js +12 -6
- package/dist/builtin/mcp/config.ts +31 -22
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/src/agents/agents.ts +63 -23
- package/dist/builtin/subagents/src/agents/skills.ts +21 -21
- package/dist/builtin/subagents/src/extension/index.ts +9 -8
- package/dist/builtin/subagents/src/runs/shared/run-history.ts +13 -10
- package/dist/builtin/subagents/src/runs/shared/subagent-prompt-runtime.ts +3 -3
- package/dist/builtin/subagents/src/shared/artifacts.ts +18 -17
- package/dist/builtin/subagents/src/shared/types.ts +4 -4
- package/dist/builtin/web-access/config-paths.ts +11 -0
- package/dist/builtin/web-access/exa.ts +3 -2
- package/dist/builtin/web-access/gemini-api.ts +2 -1
- package/dist/builtin/web-access/gemini-search.ts +2 -1
- package/dist/builtin/web-access/gemini-web-config.ts +2 -1
- package/dist/builtin/web-access/github-extract.ts +2 -1
- package/dist/builtin/web-access/index.ts +11 -8
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/web-access/perplexity.ts +2 -1
- package/dist/builtin/web-access/video-extract.ts +2 -1
- package/dist/builtin/web-access/youtube-extract.ts +2 -1
- package/dist/builtin/workflows/builtin/deep-research-codebase.ts +4 -0
- package/dist/builtin/workflows/builtin/open-claude-design.ts +39 -22
- package/dist/builtin/workflows/builtin/ralph.ts +7 -0
- package/dist/builtin/workflows/package.json +1 -1
- package/dist/builtin/workflows/skills/workflow/SKILL.md +28 -20
- package/dist/builtin/workflows/skills/workflow/references/design-checklist.md +8 -4
- package/dist/builtin/workflows/skills/workflow/references/running-workflows.md +52 -23
- package/dist/builtin/workflows/skills/workflow/references/sdk-authoring.md +41 -12
- package/dist/builtin/workflows/src/extension/config-loader.ts +13 -14
- package/dist/builtin/workflows/src/extension/discovery.ts +4 -6
- package/dist/builtin/workflows/src/extension/index.ts +675 -524
- package/dist/builtin/workflows/src/extension/runtime.ts +40 -16
- package/dist/builtin/workflows/src/extension/wiring.ts +3 -0
- package/dist/builtin/workflows/src/extension/workflow-schema.ts +43 -33
- package/dist/builtin/workflows/src/runs/foreground/executor.ts +34 -10
- package/dist/builtin/workflows/src/shared/types.ts +1 -5
- package/dist/builtin/workflows/src/tui/graph-view.ts +245 -75
- package/dist/builtin/workflows/src/tui/overlay-adapter.ts +23 -0
- package/dist/builtin/workflows/src/tui/stage-chat-view.ts +259 -149
- package/dist/builtin/workflows/src/tui/status-helpers.ts +3 -3
- package/dist/builtin/workflows/src/tui/store-widget-installer.ts +99 -10
- package/dist/builtin/workflows/src/tui/switcher.ts +4 -5
- package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +29 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +11 -8
- package/dist/cli/args.js.map +1 -1
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +59 -4
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +2 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +3 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +31 -8
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +9 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +11 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-registry.d.ts +3 -2
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +25 -8
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/package-manager.d.ts +3 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +97 -58
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/resource-loader.d.ts +1 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +37 -36
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +5 -4
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +2 -2
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +7 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +29 -8
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js +2 -2
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js +2 -2
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/index.d.ts +1 -0
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +8 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/todos.d.ts.map +1 -1
- package/dist/core/tools/todos.js +3 -3
- package/dist/core/tools/todos.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +6 -6
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/atomic-banner.d.ts +4 -0
- package/dist/modes/interactive/components/atomic-banner.d.ts.map +1 -0
- package/dist/modes/interactive/components/atomic-banner.js +34 -0
- package/dist/modes/interactive/components/atomic-banner.js.map +1 -0
- package/dist/modes/interactive/components/chat-message-renderer.d.ts +99 -0
- package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -0
- package/dist/modes/interactive/components/chat-message-renderer.js +450 -0
- package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -0
- package/dist/modes/interactive/components/chat-transcript.d.ts +69 -0
- package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -0
- package/dist/modes/interactive/components/chat-transcript.js +183 -0
- package/dist/modes/interactive/components/chat-transcript.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +16 -4
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +110 -137
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +2 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +2 -0
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +9 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +192 -137
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/catppuccin-mocha.json +5 -5
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +11 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +2 -2
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +2 -2
- package/dist/utils/version-check.js.map +1 -1
- package/package.json +1 -1
|
@@ -153,23 +153,47 @@ export function createExtensionRuntime(opts: ExtensionRuntimeOpts = {}): Extensi
|
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
+
function withoutUndefinedProperties<T extends object>(value: T): Partial<T> {
|
|
157
|
+
return Object.fromEntries(
|
|
158
|
+
Object.entries(value).filter(([, field]) => field !== undefined),
|
|
159
|
+
) as Partial<T>;
|
|
160
|
+
}
|
|
161
|
+
|
|
156
162
|
function directOptions(args: WorkflowToolArgs): WorkflowDirectOptions {
|
|
163
|
+
const {
|
|
164
|
+
workflow: _workflow,
|
|
165
|
+
inputs: _inputs,
|
|
166
|
+
action: _action,
|
|
167
|
+
runId: _runId,
|
|
168
|
+
task,
|
|
169
|
+
tasks: _tasks,
|
|
170
|
+
chain: _chain,
|
|
171
|
+
chainName,
|
|
172
|
+
concurrency,
|
|
173
|
+
async: _async,
|
|
174
|
+
intercom: _intercom,
|
|
175
|
+
output,
|
|
176
|
+
outputMode,
|
|
177
|
+
chainDir,
|
|
178
|
+
maxOutput,
|
|
179
|
+
artifacts,
|
|
180
|
+
progress,
|
|
181
|
+
worktree,
|
|
182
|
+
...stageOptions
|
|
183
|
+
} = args;
|
|
184
|
+
|
|
157
185
|
return {
|
|
158
|
-
...(
|
|
159
|
-
...(typeof
|
|
160
|
-
...(
|
|
161
|
-
...(typeof
|
|
162
|
-
...(typeof
|
|
163
|
-
...(
|
|
164
|
-
...(
|
|
165
|
-
...(
|
|
166
|
-
...(
|
|
167
|
-
...(
|
|
168
|
-
...(typeof
|
|
169
|
-
...(typeof args.sessionDir === "string" ? { sessionDir: args.sessionDir } : {}),
|
|
170
|
-
...(typeof args.progress === "boolean" ? { progress: args.progress } : {}),
|
|
171
|
-
...(typeof args.worktree === "boolean" ? { worktree: args.worktree } : {}),
|
|
172
|
-
...(Array.isArray(args.fallbackModels) ? { fallbackModels: args.fallbackModels } : {}),
|
|
186
|
+
...withoutUndefinedProperties(stageOptions),
|
|
187
|
+
...(typeof task === "string" ? { task } : {}),
|
|
188
|
+
...(typeof chainName === "string" ? { chainName } : {}),
|
|
189
|
+
...(typeof concurrency === "number" ? { concurrency } : {}),
|
|
190
|
+
...(typeof chainDir === "string" ? { chainDir } : {}),
|
|
191
|
+
...(output !== undefined ? { output } : {}),
|
|
192
|
+
...(outputMode !== undefined ? { outputMode } : {}),
|
|
193
|
+
...(maxOutput !== undefined ? { maxOutput } : {}),
|
|
194
|
+
...(typeof artifacts === "boolean" ? { artifacts } : {}),
|
|
195
|
+
...(typeof progress === "boolean" ? { progress } : {}),
|
|
196
|
+
...(typeof worktree === "boolean" ? { worktree } : {}),
|
|
173
197
|
};
|
|
174
198
|
}
|
|
175
199
|
|
|
@@ -182,7 +206,7 @@ export function createExtensionRuntime(opts: ExtensionRuntimeOpts = {}): Extensi
|
|
|
182
206
|
function directModelRequests(args: WorkflowToolArgs): Array<{ readonly model?: WorkflowDirectTaskItem["model"]; readonly fallbackModels?: readonly string[] }> {
|
|
183
207
|
const options = directOptions(args);
|
|
184
208
|
const withFallbackDefault = (item: WorkflowDirectTaskItem) => ({
|
|
185
|
-
model: item.model,
|
|
209
|
+
model: item.model ?? options.model,
|
|
186
210
|
fallbackModels: item.fallbackModels ?? options.fallbackModels,
|
|
187
211
|
});
|
|
188
212
|
if (args.task !== undefined && typeof args.task === "object") return [withFallbackDefault(args.task)];
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import type { CreateAgentSessionOptions } from "@earendil-works/pi-coding-agent";
|
|
25
|
+
import type { ChatMessageRenderOptions } from "@bastani/atomic";
|
|
25
26
|
import type { StageAdapters, StageSessionRuntime } from "../runs/foreground/stage-runner.js";
|
|
26
27
|
import type { StageExecutionMeta, StageOptions } from "../shared/types.js";
|
|
27
28
|
|
|
@@ -233,6 +234,7 @@ function makeStageExtensionUiContext(ui: PiUISurface) {
|
|
|
233
234
|
setTheme: ui.setTheme ?? (() => ({ success: false, error: "pi-workflows: theme UI is unavailable" })),
|
|
234
235
|
getToolsExpanded: ui.getToolsExpanded ?? (() => false),
|
|
235
236
|
setToolsExpanded: ui.setToolsExpanded ?? (() => undefined),
|
|
237
|
+
getChatRenderSettings: ui.getChatRenderSettings ?? (() => undefined),
|
|
236
238
|
};
|
|
237
239
|
}
|
|
238
240
|
|
|
@@ -539,6 +541,7 @@ export interface PiUISurface {
|
|
|
539
541
|
setTheme?: (theme: string | unknown) => { success: boolean; error?: string };
|
|
540
542
|
getToolsExpanded?: () => boolean;
|
|
541
543
|
setToolsExpanded?: (expanded: boolean) => void;
|
|
544
|
+
getChatRenderSettings?: () => Partial<Omit<ChatMessageRenderOptions, "ui" | "cwd" | "markdownTheme">> | undefined;
|
|
542
545
|
}
|
|
543
546
|
|
|
544
547
|
/**
|
|
@@ -17,33 +17,54 @@ const IntercomOptionsSchema = Type.Object({
|
|
|
17
17
|
]))),
|
|
18
18
|
});
|
|
19
19
|
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
const MaxOutputSchema = Type.Object({
|
|
21
|
+
bytes: Type.Optional(Type.Number()),
|
|
22
|
+
lines: Type.Optional(Type.Number()),
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const McpOptionsSchema = Type.Object({
|
|
26
|
+
allow: Type.Optional(Type.Array(Type.String())),
|
|
27
|
+
deny: Type.Optional(Type.Array(Type.String())),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const StageSessionOptionProperties = {
|
|
25
31
|
cwd: Type.Optional(Type.String()),
|
|
32
|
+
agentDir: Type.Optional(Type.String()),
|
|
33
|
+
authStorage: Type.Optional(Type.Any()),
|
|
34
|
+
modelRegistry: Type.Optional(Type.Any()),
|
|
35
|
+
model: Type.Optional(Type.Any()),
|
|
36
|
+
thinkingLevel: Type.Optional(Type.String()),
|
|
37
|
+
scopedModels: Type.Optional(Type.Array(Type.Any())),
|
|
38
|
+
noTools: Type.Optional(Type.Union([Type.Literal("all"), Type.Literal("builtin")])),
|
|
39
|
+
tools: Type.Optional(Type.Array(Type.String())),
|
|
40
|
+
customTools: Type.Optional(Type.Array(Type.Any())),
|
|
41
|
+
resourceLoader: Type.Optional(Type.Any()),
|
|
42
|
+
sessionManager: Type.Optional(Type.Any()),
|
|
43
|
+
settingsManager: Type.Optional(Type.Any()),
|
|
44
|
+
sessionStartEvent: Type.Optional(Type.Any()),
|
|
45
|
+
fallbackModels: Type.Optional(Type.Array(Type.String())),
|
|
46
|
+
mcp: Type.Optional(McpOptionsSchema),
|
|
47
|
+
sessionDir: Type.Optional(Type.String()),
|
|
48
|
+
context: Type.Optional(Type.Union([Type.Literal("fresh"), Type.Literal("fork")])),
|
|
49
|
+
forkFromSessionFile: Type.Optional(Type.String()),
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const WorkflowTaskOptionProperties = {
|
|
26
53
|
output: Type.Optional(Type.Union([Type.String(), Type.Literal(false)])),
|
|
27
54
|
outputMode: Type.Optional(Type.Union([Type.Literal("inline"), Type.Literal("file-only")])),
|
|
28
55
|
reads: Type.Optional(Type.Union([Type.Array(Type.String()), Type.Literal(false)])),
|
|
29
56
|
progress: Type.Optional(Type.Boolean()),
|
|
30
57
|
worktree: Type.Optional(Type.Boolean()),
|
|
31
|
-
maxOutput: Type.Optional(
|
|
32
|
-
bytes: Type.Optional(Type.Number()),
|
|
33
|
-
lines: Type.Optional(Type.Number()),
|
|
34
|
-
})),
|
|
58
|
+
maxOutput: Type.Optional(MaxOutputSchema),
|
|
35
59
|
artifacts: Type.Optional(Type.Boolean()),
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
allow: Type.Optional(Type.Array(Type.String())),
|
|
45
|
-
deny: Type.Optional(Type.Array(Type.String())),
|
|
46
|
-
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const DirectTaskSchema = Type.Object({
|
|
63
|
+
name: Type.String({ description: "Task/stage label." }),
|
|
64
|
+
prompt: Type.Optional(Type.String({ description: "Prompt text for this task." })),
|
|
65
|
+
task: Type.Optional(Type.String({ description: "Task text for this task." })),
|
|
66
|
+
...StageSessionOptionProperties,
|
|
67
|
+
...WorkflowTaskOptionProperties,
|
|
47
68
|
});
|
|
48
69
|
|
|
49
70
|
const ParallelChainStepSchema = Type.Object({
|
|
@@ -83,20 +104,9 @@ export const WorkflowParametersSchema = Type.Object({
|
|
|
83
104
|
concurrency: Type.Optional(Type.Number()),
|
|
84
105
|
async: Type.Optional(Type.Boolean()),
|
|
85
106
|
intercom: Type.Optional(IntercomOptionsSchema),
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
output: Type.Optional(Type.Union([Type.String(), Type.Literal(false)])),
|
|
89
|
-
outputMode: Type.Optional(Type.Union([Type.Literal("inline"), Type.Literal("file-only")])),
|
|
107
|
+
...StageSessionOptionProperties,
|
|
108
|
+
...WorkflowTaskOptionProperties,
|
|
90
109
|
chainDir: Type.Optional(Type.String()),
|
|
91
|
-
maxOutput: Type.Optional(Type.Object({
|
|
92
|
-
bytes: Type.Optional(Type.Number()),
|
|
93
|
-
lines: Type.Optional(Type.Number()),
|
|
94
|
-
})),
|
|
95
|
-
artifacts: Type.Optional(Type.Boolean()),
|
|
96
|
-
sessionDir: Type.Optional(Type.String()),
|
|
97
|
-
progress: Type.Optional(Type.Boolean()),
|
|
98
|
-
worktree: Type.Optional(Type.Boolean()),
|
|
99
|
-
fallbackModels: Type.Optional(Type.Array(Type.String())),
|
|
100
110
|
});
|
|
101
111
|
|
|
102
112
|
export type WorkflowParameters = Static<typeof WorkflowParametersSchema>;
|
|
@@ -376,21 +376,45 @@ function truncateTaskOutput(text: string, maxOutput: WorkflowMaxOutput | undefin
|
|
|
376
376
|
return `${byBytes.text}\n\n[workflow output truncated; limits: ${limits.bytes} bytes, ${limits.lines} lines]`;
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
+
function withoutUndefinedProperties<T extends object>(value: T): Partial<T> {
|
|
380
|
+
return Object.fromEntries(
|
|
381
|
+
Object.entries(value).filter(([, field]) => field !== undefined),
|
|
382
|
+
) as Partial<T>;
|
|
383
|
+
}
|
|
384
|
+
|
|
379
385
|
function directTaskWithDefaults(
|
|
380
386
|
item: WorkflowDirectTaskItem,
|
|
381
387
|
options: WorkflowDirectOptions,
|
|
382
388
|
): WorkflowDirectTaskItem {
|
|
389
|
+
const {
|
|
390
|
+
task: _task,
|
|
391
|
+
chainName: _chainName,
|
|
392
|
+
concurrency: _concurrency,
|
|
393
|
+
failFast: _failFast,
|
|
394
|
+
chainDir: _chainDir,
|
|
395
|
+
output,
|
|
396
|
+
outputMode,
|
|
397
|
+
progress,
|
|
398
|
+
worktree,
|
|
399
|
+
maxOutput,
|
|
400
|
+
artifacts,
|
|
401
|
+
...stageDefaults
|
|
402
|
+
} = options;
|
|
403
|
+
|
|
404
|
+
const taskWithStageDefaults = {
|
|
405
|
+
...withoutUndefinedProperties(stageDefaults),
|
|
406
|
+
...withoutUndefinedProperties(item),
|
|
407
|
+
name: item.name,
|
|
408
|
+
} as WorkflowDirectTaskItem;
|
|
409
|
+
|
|
383
410
|
return {
|
|
384
|
-
...
|
|
385
|
-
...(item.
|
|
386
|
-
...(item.
|
|
387
|
-
...(item.
|
|
388
|
-
...(item.
|
|
389
|
-
...(item.
|
|
390
|
-
...(item.
|
|
391
|
-
...(item.artifacts === undefined && options.artifacts !== undefined ? { artifacts: options.artifacts } : {}),
|
|
392
|
-
...(item.sessionDir === undefined && options.sessionDir !== undefined ? { sessionDir: options.sessionDir } : {}),
|
|
393
|
-
...(item.fallbackModels === undefined && options.fallbackModels !== undefined ? { fallbackModels: options.fallbackModels } : {}),
|
|
411
|
+
...taskWithStageDefaults,
|
|
412
|
+
...(item.output === undefined && output !== undefined ? { output } : {}),
|
|
413
|
+
...(item.outputMode === undefined && outputMode !== undefined ? { outputMode } : {}),
|
|
414
|
+
...(item.progress === undefined && progress !== undefined ? { progress } : {}),
|
|
415
|
+
...(item.worktree === undefined && worktree !== undefined ? { worktree } : {}),
|
|
416
|
+
...(item.maxOutput === undefined && maxOutput !== undefined ? { maxOutput } : {}),
|
|
417
|
+
...(item.artifacts === undefined && artifacts !== undefined ? { artifacts } : {}),
|
|
394
418
|
};
|
|
395
419
|
}
|
|
396
420
|
|
|
@@ -405,24 +405,20 @@ export interface WorkflowParallelChainStep {
|
|
|
405
405
|
|
|
406
406
|
export type WorkflowChainStep = WorkflowDirectTaskItem | WorkflowParallelChainStep;
|
|
407
407
|
|
|
408
|
-
export interface WorkflowDirectOptions extends
|
|
408
|
+
export interface WorkflowDirectOptions extends StageOptions {
|
|
409
409
|
/** Shared/root task used for `{task}` in direct parallel or chain steps. */
|
|
410
410
|
task?: string;
|
|
411
411
|
/** Optional named chain identifier for status/artifact grouping. */
|
|
412
412
|
chainName?: string;
|
|
413
|
-
context?: "fresh" | "fork";
|
|
414
|
-
forkFromSessionFile?: string;
|
|
415
413
|
concurrency?: number;
|
|
416
414
|
failFast?: boolean;
|
|
417
415
|
chainDir?: string;
|
|
418
|
-
cwd?: string;
|
|
419
416
|
output?: string | false;
|
|
420
417
|
outputMode?: WorkflowOutputMode;
|
|
421
418
|
progress?: boolean;
|
|
422
419
|
worktree?: boolean;
|
|
423
420
|
maxOutput?: WorkflowMaxOutput;
|
|
424
421
|
artifacts?: boolean;
|
|
425
|
-
sessionDir?: string;
|
|
426
422
|
}
|
|
427
423
|
|
|
428
424
|
// ---------------------------------------------------------------------------
|