agentic-forge 0.7.0 → 0.8.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 +21 -81
- package/dist/{claude → authoring}/.claude/skills/workflow-builder/SKILL.md +3 -3
- package/dist/{claude → authoring}/.claude/skills/workflow-builder/references/REFERENCE.md +25 -17
- package/dist/{claude → authoring}/.claude/skills/workflow-builder/references/workflow-example.yaml +29 -22
- package/dist/checkpoints/manager.d.ts +4 -4
- package/dist/checkpoints/manager.js +9 -10
- package/dist/checkpoints/manager.js.map +1 -1
- package/dist/claude/.claude/skills/orchestrate/SKILL.md +2 -2
- package/dist/cli.js +51 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/authoring-dir.d.ts +2 -0
- package/dist/commands/authoring-dir.js +9 -0
- package/dist/commands/authoring-dir.js.map +1 -0
- package/dist/commands/config-cmd.d.ts +1 -1
- package/dist/commands/config-cmd.js +2 -2
- package/dist/commands/config-cmd.js.map +1 -1
- package/dist/commands/index.d.ts +3 -1
- package/dist/commands/index.js +3 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts +8 -2
- package/dist/commands/init.js +64 -30
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/paths.d.ts +2 -0
- package/dist/commands/paths.js +36 -0
- package/dist/commands/paths.js.map +1 -0
- package/dist/commands/resume.js +8 -2
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/run.d.ts +14 -0
- package/dist/commands/run.js +81 -36
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/status.js +83 -22
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/workflows.js +14 -12
- package/dist/commands/workflows.js.map +1 -1
- package/dist/config.d.ts +19 -2
- package/dist/config.js +79 -15
- package/dist/config.js.map +1 -1
- package/dist/executor.d.ts +2 -1
- package/dist/executor.js +19 -9
- package/dist/executor.js.map +1 -1
- package/dist/logging/logger.d.ts +3 -3
- package/dist/logging/logger.js +6 -8
- package/dist/logging/logger.js.map +1 -1
- package/dist/orchestrator.js +35 -16
- package/dist/orchestrator.js.map +1 -1
- package/dist/paths.d.ts +64 -0
- package/dist/paths.js +167 -0
- package/dist/paths.js.map +1 -0
- package/dist/progress.d.ts +5 -5
- package/dist/progress.js +15 -9
- package/dist/progress.js.map +1 -1
- package/dist/ralph-loop.d.ts +6 -6
- package/dist/ralph-loop.js +16 -16
- package/dist/ralph-loop.js.map +1 -1
- package/dist/runner.d.ts +1 -0
- package/dist/runner.js +5 -1
- package/dist/runner.js.map +1 -1
- package/dist/steps/base.d.ts +1 -0
- package/dist/steps/base.js +1 -0
- package/dist/steps/base.js.map +1 -1
- package/dist/steps/prompt-step.js +2 -1
- package/dist/steps/prompt-step.js.map +1 -1
- package/dist/steps/ralph-loop-step.js +11 -8
- package/dist/steps/ralph-loop-step.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/workflows/plan-build-review.yaml +6 -6
- package/package.json +4 -1
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
/** Status, cancel, and list command handlers. */
|
|
2
2
|
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { loadConfig } from "../config.js";
|
|
5
|
+
import { findOutputDir, getGlobalRoot, slugifyCwdName } from "../paths.js";
|
|
4
6
|
import { WORKFLOW_STATUS, loadProgress, saveProgress } from "../progress.js";
|
|
7
|
+
/**
|
|
8
|
+
* Locates the output directory for a workflow by searching both local and global locations.
|
|
9
|
+
* If the progress.json contains a stored outputDir, that is used directly.
|
|
10
|
+
*/
|
|
11
|
+
function resolveWorkflowOutputDir(workflowId) {
|
|
12
|
+
return findOutputDir(workflowId, process.cwd());
|
|
13
|
+
}
|
|
5
14
|
export function cmdStatus(workflowId) {
|
|
6
|
-
const
|
|
15
|
+
const outputDir = resolveWorkflowOutputDir(workflowId);
|
|
16
|
+
if (outputDir === null) {
|
|
17
|
+
process.stderr.write(`Error: Workflow not found: ${workflowId}\n`);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const progress = loadProgress(workflowId, outputDir);
|
|
7
21
|
if (progress === null) {
|
|
8
22
|
process.stderr.write(`Error: Workflow not found: ${workflowId}\n`);
|
|
9
23
|
process.exit(1);
|
|
@@ -41,7 +55,12 @@ export function cmdStatus(workflowId) {
|
|
|
41
55
|
}
|
|
42
56
|
}
|
|
43
57
|
export function cmdCancel(workflowId) {
|
|
44
|
-
const
|
|
58
|
+
const outputDir = resolveWorkflowOutputDir(workflowId);
|
|
59
|
+
if (outputDir === null) {
|
|
60
|
+
process.stderr.write(`Error: Workflow not found: ${workflowId}\n`);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
const progress = loadProgress(workflowId, outputDir);
|
|
45
64
|
if (progress === null) {
|
|
46
65
|
process.stderr.write(`Error: Workflow not found: ${workflowId}\n`);
|
|
47
66
|
process.exit(1);
|
|
@@ -52,25 +71,23 @@ export function cmdCancel(workflowId) {
|
|
|
52
71
|
}
|
|
53
72
|
progress.status = WORKFLOW_STATUS.CANCELED;
|
|
54
73
|
progress.completedAt = new Date().toISOString();
|
|
55
|
-
saveProgress(progress);
|
|
74
|
+
saveProgress(progress, outputDir);
|
|
56
75
|
process.stdout.write(`Workflow canceled: ${workflowId}\n`);
|
|
57
76
|
}
|
|
58
|
-
|
|
59
|
-
const
|
|
77
|
+
function scanOutputsDir(outputsDir, location, statusFilter) {
|
|
78
|
+
const entries = [];
|
|
60
79
|
if (!existsSync(outputsDir)) {
|
|
61
|
-
|
|
62
|
-
return;
|
|
80
|
+
return entries;
|
|
63
81
|
}
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
for (const entry of entries) {
|
|
82
|
+
const dirs = readdirSync(outputsDir, { withFileTypes: true });
|
|
83
|
+
for (const entry of dirs) {
|
|
67
84
|
if (entry.isDirectory()) {
|
|
68
85
|
const progressFile = path.join(outputsDir, entry.name, "progress.json");
|
|
69
86
|
if (existsSync(progressFile)) {
|
|
70
87
|
try {
|
|
71
88
|
const data = JSON.parse(readFileSync(progressFile, "utf-8"));
|
|
72
89
|
if (statusFilter == null || data.status === statusFilter) {
|
|
73
|
-
|
|
90
|
+
entries.push({ data, location });
|
|
74
91
|
}
|
|
75
92
|
}
|
|
76
93
|
catch {
|
|
@@ -79,21 +96,65 @@ export function cmdList(statusFilter) {
|
|
|
79
96
|
}
|
|
80
97
|
}
|
|
81
98
|
}
|
|
82
|
-
|
|
99
|
+
return entries;
|
|
100
|
+
}
|
|
101
|
+
export function cmdList(statusFilter) {
|
|
102
|
+
const cwd = process.cwd();
|
|
103
|
+
const config = loadConfig(cwd);
|
|
104
|
+
const localOutputsDir = path.join(cwd, "agentic", "outputs");
|
|
105
|
+
const globalOutputsDir = path.join(getGlobalRoot(), "outputs", slugifyCwdName(cwd));
|
|
106
|
+
const localEntries = scanOutputsDir(localOutputsDir, "local", statusFilter);
|
|
107
|
+
const globalEntries = scanOutputsDir(globalOutputsDir, "global", statusFilter);
|
|
108
|
+
// Deduplicate: if same workflow_id appears in both, prefer local (already first)
|
|
109
|
+
const seenIds = new Set();
|
|
110
|
+
const allEntries = [];
|
|
111
|
+
for (const entry of [...localEntries, ...globalEntries]) {
|
|
112
|
+
const id = String(entry.data.workflow_id ?? "");
|
|
113
|
+
if (!seenIds.has(id)) {
|
|
114
|
+
seenIds.add(id);
|
|
115
|
+
allEntries.push(entry);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (allEntries.length === 0) {
|
|
83
119
|
const suffix = statusFilter ? ` (status=${statusFilter})` : "";
|
|
84
120
|
process.stdout.write(`No workflows found.${suffix}\n`);
|
|
85
121
|
return;
|
|
86
122
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
for (const
|
|
90
|
-
|
|
91
|
-
const name = String(wf.workflow_name ?? "")
|
|
92
|
-
.slice(0, 25)
|
|
93
|
-
.padEnd(25);
|
|
94
|
-
const status = String(wf.status ?? "").padEnd(12);
|
|
95
|
-
const started = wf.started_at ? String(wf.started_at).slice(0, 19).padEnd(20) : "".padEnd(20);
|
|
96
|
-
process.stdout.write(`${id} ${name} ${status} ${started}\n`);
|
|
123
|
+
// Group by location for display
|
|
124
|
+
const byLocation = { local: [], global: [] };
|
|
125
|
+
for (const entry of allEntries) {
|
|
126
|
+
byLocation[entry.location].push(entry);
|
|
97
127
|
}
|
|
128
|
+
const header = `${"ID".padEnd(32)} ${"Name".padEnd(25)} ${"Status".padEnd(12)} ${"Started".padEnd(20)}\n`;
|
|
129
|
+
const divider = `${"-".repeat(90)}\n`;
|
|
130
|
+
let hasOutput = false;
|
|
131
|
+
if (byLocation.local.length > 0) {
|
|
132
|
+
process.stdout.write("Local runs:\n");
|
|
133
|
+
process.stdout.write(header);
|
|
134
|
+
process.stdout.write(divider);
|
|
135
|
+
for (const { data: wf } of byLocation.local) {
|
|
136
|
+
writeWorkflowRow(wf);
|
|
137
|
+
}
|
|
138
|
+
hasOutput = true;
|
|
139
|
+
}
|
|
140
|
+
if (byLocation.global.length > 0) {
|
|
141
|
+
if (hasOutput)
|
|
142
|
+
process.stdout.write("\n");
|
|
143
|
+
process.stdout.write("Global runs:\n");
|
|
144
|
+
process.stdout.write(header);
|
|
145
|
+
process.stdout.write(divider);
|
|
146
|
+
for (const { data: wf } of byLocation.global) {
|
|
147
|
+
writeWorkflowRow(wf);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function writeWorkflowRow(wf) {
|
|
152
|
+
const id = String(wf.workflow_id ?? "").padEnd(32);
|
|
153
|
+
const name = String(wf.workflow_name ?? "")
|
|
154
|
+
.slice(0, 25)
|
|
155
|
+
.padEnd(25);
|
|
156
|
+
const status = String(wf.status ?? "").padEnd(12);
|
|
157
|
+
const started = wf.started_at ? String(wf.started_at).slice(0, 19).padEnd(20) : "".padEnd(20);
|
|
158
|
+
process.stdout.write(`${id} ${name} ${status} ${started}\n`);
|
|
98
159
|
}
|
|
99
160
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,13 +85,15 @@ export function cmdWorkflows(options) {
|
|
|
85
85
|
process.stdout.write(` ${name}\n`);
|
|
86
86
|
}
|
|
87
87
|
if (verbose && metadata.variables.length > 0) {
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
process.stdout.write(" Variables:\n");
|
|
89
|
+
for (const v of metadata.variables) {
|
|
90
|
+
const req = v.required ? "required" : "optional";
|
|
91
|
+
const def = v.default !== undefined ? `, default: ${v.default}` : "";
|
|
92
|
+
const typ = v.type ? ` (${v.type})` : "";
|
|
93
|
+
process.stdout.write(` ${v.name}${typ} [${req}${def}]\n`);
|
|
94
|
+
if (v.description) {
|
|
95
|
+
process.stdout.write(` ${v.description}\n`);
|
|
96
|
+
}
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
}
|
|
@@ -99,11 +101,11 @@ export function cmdWorkflows(options) {
|
|
|
99
101
|
}
|
|
100
102
|
process.stdout.write(`Total: ${workflows.length} workflow(s)\n\n`);
|
|
101
103
|
process.stdout.write("Usage:\n");
|
|
102
|
-
process.stdout.write(" agentic-forge run <workflow
|
|
103
|
-
process.stdout.write(" agentic-forge run <workflow
|
|
104
|
+
process.stdout.write(" agentic-forge run <workflow> key=value [key=value ...]\n");
|
|
105
|
+
process.stdout.write(" agentic-forge run <workflow> --var key=value\n\n");
|
|
104
106
|
process.stdout.write("Examples:\n");
|
|
105
|
-
process.stdout.write(' agentic-forge run one-shot
|
|
106
|
-
process.stdout.write(" agentic-forge run analyze-single
|
|
107
|
-
process.stdout.write(' agentic-forge run plan-build-review
|
|
107
|
+
process.stdout.write(' agentic-forge run one-shot task="Add login button"\n');
|
|
108
|
+
process.stdout.write(" agentic-forge run analyze-single analysis_type=bug\n");
|
|
109
|
+
process.stdout.write(' agentic-forge run plan-build-review task="Refactor auth"\n');
|
|
108
110
|
}
|
|
109
111
|
//# sourceMappingURL=workflows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/commands/workflows.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/commands/workflows.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
/** Configuration management for agentic-forge. */
|
|
2
2
|
export declare function getConfigPath(repoRoot?: string): string;
|
|
3
3
|
export declare function getDefaultConfig(): Record<string, unknown>;
|
|
4
|
+
/**
|
|
5
|
+
* Loads configuration with 3-layer merge: defaults -> global -> local.
|
|
6
|
+
* @param repoRoot - project root (for local config path)
|
|
7
|
+
*/
|
|
4
8
|
export declare function loadConfig(repoRoot?: string): Record<string, unknown>;
|
|
5
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Saves configuration to the specified scope.
|
|
11
|
+
* @param config - config object to write
|
|
12
|
+
* @param repoRoot - project root (for local writes)
|
|
13
|
+
* @param scope - "global" writes to global config; "local" or omitted writes locally
|
|
14
|
+
*/
|
|
15
|
+
export declare function saveConfig(config: Record<string, unknown>, repoRoot?: string, scope?: "global" | "local"): void;
|
|
6
16
|
export declare function getConfigValue(key: string, repoRoot?: string): unknown;
|
|
7
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Sets a configuration value in the specified scope.
|
|
19
|
+
* Reads only the target scope's config file, sets the key, and writes it back.
|
|
20
|
+
* This avoids writing merged values from other layers into a single scope.
|
|
21
|
+
*
|
|
22
|
+
* When no scope is specified: writes to local config if it exists, otherwise global.
|
|
23
|
+
*/
|
|
24
|
+
export declare function setConfigValue(key: string, value: string, scope?: "global" | "local", repoRoot?: string): void;
|
|
8
25
|
export declare function deepMerge(base: Record<string, unknown>, override: Record<string, unknown>): Record<string, unknown>;
|
package/dist/config.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/** Configuration management for agentic-forge. */
|
|
2
2
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
const DEFAULT_CONFIG = {
|
|
5
|
-
outputDirectory: "
|
|
6
|
+
outputDirectory: "global",
|
|
6
7
|
logging: {
|
|
7
8
|
enabled: true,
|
|
8
9
|
level: "Error",
|
|
@@ -24,6 +25,24 @@ const DEFAULT_CONFIG = {
|
|
|
24
25
|
pollingIntervalSeconds: 5,
|
|
25
26
|
},
|
|
26
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Returns the platform-native global config file path.
|
|
30
|
+
* Inlined here to avoid a circular dependency with paths.ts.
|
|
31
|
+
*/
|
|
32
|
+
function getGlobalConfigPath() {
|
|
33
|
+
const platform = process.platform;
|
|
34
|
+
let base;
|
|
35
|
+
if (platform === "win32") {
|
|
36
|
+
base = process.env.APPDATA ?? path.join(homedir(), "AppData", "Roaming");
|
|
37
|
+
}
|
|
38
|
+
else if (platform === "darwin") {
|
|
39
|
+
base = path.join(homedir(), "Library", "Application Support");
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
base = process.env.XDG_CONFIG_HOME ?? path.join(homedir(), ".config");
|
|
43
|
+
}
|
|
44
|
+
return path.join(base, "agentic-forge", "config.json");
|
|
45
|
+
}
|
|
27
46
|
export function getConfigPath(repoRoot) {
|
|
28
47
|
const root = repoRoot ?? process.cwd();
|
|
29
48
|
return path.join(root, "agentic", "config.json");
|
|
@@ -31,20 +50,43 @@ export function getConfigPath(repoRoot) {
|
|
|
31
50
|
export function getDefaultConfig() {
|
|
32
51
|
return deepCopy(DEFAULT_CONFIG);
|
|
33
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Loads configuration with 3-layer merge: defaults -> global -> local.
|
|
55
|
+
* @param repoRoot - project root (for local config path)
|
|
56
|
+
*/
|
|
34
57
|
export function loadConfig(repoRoot) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
58
|
+
let config = getDefaultConfig();
|
|
59
|
+
// Layer 2: global config
|
|
60
|
+
const globalConfigPath = getGlobalConfigPath();
|
|
61
|
+
if (existsSync(globalConfigPath)) {
|
|
62
|
+
const globalConfig = JSON.parse(readFileSync(globalConfigPath, "utf-8"));
|
|
63
|
+
config = deepMerge(config, globalConfig);
|
|
64
|
+
}
|
|
65
|
+
// Layer 3: local config
|
|
66
|
+
const localConfigPath = getConfigPath(repoRoot);
|
|
67
|
+
if (existsSync(localConfigPath)) {
|
|
68
|
+
const localConfig = JSON.parse(readFileSync(localConfigPath, "utf-8"));
|
|
69
|
+
config = deepMerge(config, localConfig);
|
|
40
70
|
}
|
|
41
|
-
return
|
|
71
|
+
return config;
|
|
42
72
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Saves configuration to the specified scope.
|
|
75
|
+
* @param config - config object to write
|
|
76
|
+
* @param repoRoot - project root (for local writes)
|
|
77
|
+
* @param scope - "global" writes to global config; "local" or omitted writes locally
|
|
78
|
+
*/
|
|
79
|
+
export function saveConfig(config, repoRoot, scope) {
|
|
80
|
+
if (scope === "global") {
|
|
81
|
+
const globalConfigPath = getGlobalConfigPath();
|
|
82
|
+
mkdirSync(path.dirname(globalConfigPath), { recursive: true });
|
|
83
|
+
writeFileSync(globalConfigPath, JSON.stringify(config, null, 2), "utf-8");
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const configPath = getConfigPath(repoRoot);
|
|
87
|
+
mkdirSync(path.dirname(configPath), { recursive: true });
|
|
88
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2), "utf-8");
|
|
89
|
+
}
|
|
48
90
|
}
|
|
49
91
|
export function getConfigValue(key, repoRoot) {
|
|
50
92
|
const config = loadConfig(repoRoot);
|
|
@@ -63,8 +105,30 @@ export function getConfigValue(key, repoRoot) {
|
|
|
63
105
|
}
|
|
64
106
|
return value;
|
|
65
107
|
}
|
|
66
|
-
|
|
67
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Sets a configuration value in the specified scope.
|
|
110
|
+
* Reads only the target scope's config file, sets the key, and writes it back.
|
|
111
|
+
* This avoids writing merged values from other layers into a single scope.
|
|
112
|
+
*
|
|
113
|
+
* When no scope is specified: writes to local config if it exists, otherwise global.
|
|
114
|
+
*/
|
|
115
|
+
export function setConfigValue(key, value, scope, repoRoot) {
|
|
116
|
+
// Auto-detect scope: local if local config exists, otherwise global
|
|
117
|
+
const effectiveScope = scope ?? (existsSync(getConfigPath(repoRoot)) ? "local" : "global");
|
|
118
|
+
// Load only the target scope's config (not the full merged config)
|
|
119
|
+
let config;
|
|
120
|
+
if (effectiveScope === "global") {
|
|
121
|
+
const globalConfigPath = getGlobalConfigPath();
|
|
122
|
+
config = existsSync(globalConfigPath)
|
|
123
|
+
? JSON.parse(readFileSync(globalConfigPath, "utf-8"))
|
|
124
|
+
: {};
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const localConfigPath = getConfigPath(repoRoot);
|
|
128
|
+
config = existsSync(localConfigPath)
|
|
129
|
+
? JSON.parse(readFileSync(localConfigPath, "utf-8"))
|
|
130
|
+
: {};
|
|
131
|
+
}
|
|
68
132
|
const parts = key.split(".");
|
|
69
133
|
let target = config;
|
|
70
134
|
for (const part of parts.slice(0, -1)) {
|
|
@@ -84,7 +148,7 @@ export function setConfigValue(key, value, repoRoot) {
|
|
|
84
148
|
parsedValue = Number.parseInt(value, 10);
|
|
85
149
|
}
|
|
86
150
|
target[parts[parts.length - 1]] = parsedValue;
|
|
87
|
-
saveConfig(config, repoRoot);
|
|
151
|
+
saveConfig(config, repoRoot, effectiveScope);
|
|
88
152
|
}
|
|
89
153
|
export function deepMerge(base, override) {
|
|
90
154
|
const result = { ...base };
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,cAAc,GAA4B;IAC/C,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/executor.d.ts
CHANGED
|
@@ -21,7 +21,8 @@ export declare class WorkflowExecutor {
|
|
|
21
21
|
serialExecutor: SerialStepExecutor;
|
|
22
22
|
conditionalExecutor: ConditionalStepExecutor;
|
|
23
23
|
constructor(repoRoot?: string, strictMode?: boolean);
|
|
24
|
-
run(workflow: WorkflowDefinition, variables?: Record<string, unknown>, fromStep?: string | null, terminalOutput?: string, workflowFile?: string, resumeProgress?: WorkflowProgress | null): Promise<WorkflowProgress>;
|
|
24
|
+
run(workflow: WorkflowDefinition, variables?: Record<string, unknown>, fromStep?: string | null, terminalOutput?: string, workflowFile?: string, resumeProgress?: WorkflowProgress | null, slug?: string): Promise<WorkflowProgress>;
|
|
25
25
|
private renderOutputs;
|
|
26
|
+
private resolveOutputDir;
|
|
26
27
|
executeStep(step: StepDefinition, progress: WorkflowProgress, variables: Record<string, unknown>, logger: WorkflowLogger, console: ConsoleOutput): Promise<void>;
|
|
27
28
|
}
|
package/dist/executor.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
import { loadConfig } from "./config.js";
|
|
5
5
|
import { ConsoleOutput, OutputLevel } from "./console.js";
|
|
6
6
|
import { WorkflowLogger } from "./logging/logger.js";
|
|
7
|
+
import { getOutputDir, resolveOutputDir } from "./paths.js";
|
|
7
8
|
import { STEP_STATUS, WORKFLOW_STATUS, createProgress, generateWorkflowId, saveProgress, updateStepFailed, updateStepStarted, } from "./progress.js";
|
|
8
9
|
import { TemplateRenderer, buildTemplateContext, renderWorkflowOutput } from "./renderer.js";
|
|
9
10
|
import { resolveModel } from "./steps/base.js";
|
|
@@ -75,7 +76,7 @@ export class WorkflowExecutor {
|
|
|
75
76
|
},
|
|
76
77
|
};
|
|
77
78
|
}
|
|
78
|
-
async run(workflow, variables, fromStep, terminalOutput = "base", workflowFile = "", resumeProgress) {
|
|
79
|
+
async run(workflow, variables, fromStep, terminalOutput = "base", workflowFile = "", resumeProgress, slug) {
|
|
79
80
|
let vars = variables ? { ...variables } : {};
|
|
80
81
|
this.workflowSettings = workflow.settings;
|
|
81
82
|
// Update renderer with workflow's strict_mode setting
|
|
@@ -106,12 +107,16 @@ export class WorkflowExecutor {
|
|
|
106
107
|
vars[v.name] = v.default;
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
|
-
workflowId = generateWorkflowId(workflow.name);
|
|
110
|
+
workflowId = generateWorkflowId(workflow.name, slug);
|
|
110
111
|
const stepNames = workflow.steps.map((s) => s.name);
|
|
111
112
|
progress = createProgress(workflowId, workflow.name, stepNames, vars, workflowFile);
|
|
112
113
|
}
|
|
113
|
-
|
|
114
|
-
const
|
|
114
|
+
// Resolve output dir, handling collisions with resolveOutputDir
|
|
115
|
+
const baseOutputDir = resumeProgress?.outputDir ?? getOutputDir(workflowId, this.config, this.repoRoot);
|
|
116
|
+
const outputDir = resumeProgress ? baseOutputDir : resolveOutputDir(baseOutputDir);
|
|
117
|
+
progress.outputDir = outputDir;
|
|
118
|
+
saveProgress(progress, outputDir);
|
|
119
|
+
const logger = new WorkflowLogger(workflowId, outputDir);
|
|
115
120
|
logger.info("workflow", `Started workflow: ${workflow.name}`);
|
|
116
121
|
console.workflowStart(workflow.name, workflowId);
|
|
117
122
|
// Build set of completed step names to skip on resume
|
|
@@ -136,7 +141,7 @@ export class WorkflowExecutor {
|
|
|
136
141
|
}
|
|
137
142
|
try {
|
|
138
143
|
await this.executeStep(step, progress, vars, logger, console);
|
|
139
|
-
saveProgress(progress,
|
|
144
|
+
saveProgress(progress, outputDir);
|
|
140
145
|
if (progress.status === WORKFLOW_STATUS.FAILED ||
|
|
141
146
|
progress.status === WORKFLOW_STATUS.PAUSED) {
|
|
142
147
|
break;
|
|
@@ -148,7 +153,7 @@ export class WorkflowExecutor {
|
|
|
148
153
|
console.stepFailed(step.name, errorMsg);
|
|
149
154
|
updateStepFailed(progress, step.name, errorMsg);
|
|
150
155
|
progress.status = WORKFLOW_STATUS.FAILED;
|
|
151
|
-
saveProgress(progress,
|
|
156
|
+
saveProgress(progress, outputDir);
|
|
152
157
|
break;
|
|
153
158
|
}
|
|
154
159
|
}
|
|
@@ -158,7 +163,7 @@ export class WorkflowExecutor {
|
|
|
158
163
|
if (progress.status !== WORKFLOW_STATUS.PAUSED) {
|
|
159
164
|
progress.completedAt = new Date().toISOString();
|
|
160
165
|
}
|
|
161
|
-
saveProgress(progress,
|
|
166
|
+
saveProgress(progress, outputDir);
|
|
162
167
|
this.renderOutputs(workflow, progress, vars, logger);
|
|
163
168
|
console.workflowComplete(workflow.name, progress.status);
|
|
164
169
|
logger.info("workflow", `Workflow ${progress.status}: ${workflow.name}`);
|
|
@@ -185,7 +190,7 @@ export class WorkflowExecutor {
|
|
|
185
190
|
const context = buildTemplateContext(workflow.name, progress.workflowId, progress.startedAt ?? "", progress.completedAt, stepOutputs, [], [], [], variables);
|
|
186
191
|
const pluginTemplates = path.join(__dirname, "templates");
|
|
187
192
|
const templateDirs = [pluginTemplates, this.repoRoot];
|
|
188
|
-
const outputDir =
|
|
193
|
+
const outputDir = this.resolveOutputDir(progress);
|
|
189
194
|
for (const output of workflow.outputs) {
|
|
190
195
|
if (output.when === "completed" && progress.status !== WORKFLOW_STATUS.COMPLETED) {
|
|
191
196
|
continue;
|
|
@@ -211,13 +216,18 @@ export class WorkflowExecutor {
|
|
|
211
216
|
}
|
|
212
217
|
}
|
|
213
218
|
}
|
|
219
|
+
resolveOutputDir(progress) {
|
|
220
|
+
return progress.outputDir ?? getOutputDir(progress.workflowId, this.config, this.repoRoot);
|
|
221
|
+
}
|
|
214
222
|
async executeStep(step, progress, variables, logger, console) {
|
|
223
|
+
const outputDir = this.resolveOutputDir(progress);
|
|
215
224
|
const context = {
|
|
216
225
|
repoRoot: this.repoRoot,
|
|
217
226
|
config: this.config,
|
|
218
227
|
renderer: this.renderer,
|
|
219
228
|
workflowSettings: this.workflowSettings,
|
|
220
229
|
workflowId: progress.workflowId,
|
|
230
|
+
outputDir,
|
|
221
231
|
variables,
|
|
222
232
|
outputs: progress.stepOutputs,
|
|
223
233
|
};
|
|
@@ -225,7 +235,7 @@ export class WorkflowExecutor {
|
|
|
225
235
|
logger.info(step.name, `Starting step: ${step.name}`);
|
|
226
236
|
console.stepStart(step.name, step.type, resolvedModel);
|
|
227
237
|
updateStepStarted(progress, step.name);
|
|
228
|
-
saveProgress(progress,
|
|
238
|
+
saveProgress(progress, outputDir);
|
|
229
239
|
const executor = this.executors[step.type];
|
|
230
240
|
if (!executor) {
|
|
231
241
|
throw new Error(`Step type not yet implemented: ${step.type}`);
|