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/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,iDAAiD;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,SAAS,SAAS,CAAC,GAAY;IAC9B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,OAAO,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,eAAe,EACf,SAAS,EACT,MAAM,EACN,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,GACV,MAAM,qBAAqB,CAAC;AAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC3B,IAAI,CAAC,eAAe,CAAC;KACrB,OAAO,CAAC,UAAU,EAAE,CAAC;KACrB,WAAW,CAAC,gDAAgD,CAAC,CAAC;AAEhE,cAAc;AACd,OAAO;KACL,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,YAAY,EAAE,oCAAoC,CAAC;KAC5D,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;KAChD,MAAM,CAAC,sBAAsB,EAAE,oDAAoD,CAAC;KACpF,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;KAC3D,MAAM,CAAC,0BAA0B,EAAE,2CAA2C,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,QAA4B,EAAE,IAA6B,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Authoring-dir command handler. */
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
export function cmdAuthoringDir() {
|
|
6
|
+
const authoringDir = path.resolve(path.join(__dirname, "..", "authoring"));
|
|
7
|
+
process.stdout.write(`${authoringDir}\n`);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=authoring-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authoring-dir.js","sourceRoot":"","sources":["../../src/commands/authoring-dir.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,UAAU,eAAe;IAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Config command handler. */
|
|
2
|
-
export declare function cmdConfig(configCommand: string, key: string, value?: string): void;
|
|
2
|
+
export declare function cmdConfig(configCommand: string, key: string, value?: string, scope?: "global" | "local"): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Config command handler. */
|
|
2
2
|
import { getConfigValue, setConfigValue } from "../config.js";
|
|
3
|
-
export function cmdConfig(configCommand, key, value) {
|
|
3
|
+
export function cmdConfig(configCommand, key, value, scope) {
|
|
4
4
|
if (configCommand === "get") {
|
|
5
5
|
const result = getConfigValue(key);
|
|
6
6
|
if (result === null) {
|
|
@@ -19,7 +19,7 @@ export function cmdConfig(configCommand, key, value) {
|
|
|
19
19
|
process.stderr.write("Usage: agentic-forge config set <key> <value>\n");
|
|
20
20
|
process.exit(1);
|
|
21
21
|
}
|
|
22
|
-
setConfigValue(key, value);
|
|
22
|
+
setConfigValue(key, value, scope);
|
|
23
23
|
process.stdout.write(`Set ${key} = ${value}\n`);
|
|
24
24
|
}
|
|
25
25
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/commands/config-cmd.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,SAAS,
|
|
1
|
+
{"version":3,"file":"config-cmd.js","sourceRoot":"","sources":["../../src/commands/config-cmd.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,UAAU,SAAS,CACxB,aAAqB,EACrB,GAAW,EACX,KAAc,EACd,KAA0B;IAE1B,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;SAAM,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/** Command handler exports. */
|
|
2
|
-
export { cmdRun, discoverWorkflow, listAvailableWorkflows, resolveWorkflowPath, getBundledWorkflowsDir, getUserWorkflowsDir, getProjectWorkflowsDir, } from "./run.js";
|
|
2
|
+
export { CliExitError, cmdRun, discoverWorkflow, listAvailableWorkflows, resolveWorkflowPath, getBundledWorkflowsDir, getUserWorkflowsDir, getProjectWorkflowsDir, } from "./run.js";
|
|
3
3
|
export { cmdResume } from "./resume.js";
|
|
4
4
|
export { cmdStatus, cmdCancel, cmdList } from "./status.js";
|
|
5
5
|
export { cmdInit, cmdConfigure } from "./init.js";
|
|
6
|
+
export { cmdPaths } from "./paths.js";
|
|
6
7
|
export { cmdConfig } from "./config-cmd.js";
|
|
7
8
|
export { cmdVersion, getVersion } from "./version.js";
|
|
8
9
|
export { cmdUpdate } from "./update.js";
|
|
9
10
|
export { cmdReleaseNotes } from "./release-notes.js";
|
|
10
11
|
export { cmdSkillsDir } from "./skills-dir.js";
|
|
12
|
+
export { cmdAuthoringDir } from "./authoring-dir.js";
|
|
11
13
|
export { cmdWorkflows } from "./workflows.js";
|
|
12
14
|
export { cmdInput } from "./shortcuts.js";
|
package/dist/commands/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/** Command handler exports. */
|
|
2
|
-
export { cmdRun, discoverWorkflow, listAvailableWorkflows, resolveWorkflowPath, getBundledWorkflowsDir, getUserWorkflowsDir, getProjectWorkflowsDir, } from "./run.js";
|
|
2
|
+
export { CliExitError, cmdRun, discoverWorkflow, listAvailableWorkflows, resolveWorkflowPath, getBundledWorkflowsDir, getUserWorkflowsDir, getProjectWorkflowsDir, } from "./run.js";
|
|
3
3
|
export { cmdResume } from "./resume.js";
|
|
4
4
|
export { cmdStatus, cmdCancel, cmdList } from "./status.js";
|
|
5
5
|
export { cmdInit, cmdConfigure } from "./init.js";
|
|
6
|
+
export { cmdPaths } from "./paths.js";
|
|
6
7
|
export { cmdConfig } from "./config-cmd.js";
|
|
7
8
|
export { cmdVersion, getVersion } from "./version.js";
|
|
8
9
|
export { cmdUpdate } from "./update.js";
|
|
9
10
|
export { cmdReleaseNotes } from "./release-notes.js";
|
|
10
11
|
export { cmdSkillsDir } from "./skills-dir.js";
|
|
12
|
+
export { cmdAuthoringDir } from "./authoring-dir.js";
|
|
11
13
|
export { cmdWorkflows } from "./workflows.js";
|
|
12
14
|
export { cmdInput } from "./shortcuts.js";
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EACN,MAAM,EACN,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EACN,YAAY,EACZ,MAAM,EACN,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/** Init and configure command handlers. */
|
|
2
|
-
export
|
|
2
|
+
export interface InitOptions {
|
|
3
3
|
force?: boolean;
|
|
4
4
|
listOnly?: boolean;
|
|
5
|
-
|
|
5
|
+
local?: boolean;
|
|
6
|
+
global?: boolean;
|
|
7
|
+
configOnly?: boolean;
|
|
8
|
+
workflowsOnly?: boolean;
|
|
9
|
+
workflow?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function cmdInit(options: InitOptions): void;
|
|
6
12
|
export declare function cmdConfigure(): void;
|
package/dist/commands/init.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { copyFileSync, existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { getDefaultConfig, loadConfig } from "../config.js";
|
|
5
|
+
import { getGlobalRoot } from "../paths.js";
|
|
5
6
|
import { getBundledWorkflowsDir } from "./run.js";
|
|
6
7
|
export function cmdInit(options) {
|
|
7
8
|
const bundledDir = getBundledWorkflowsDir();
|
|
@@ -22,45 +23,75 @@ export function cmdInit(options) {
|
|
|
22
23
|
for (const wf of bundledWorkflows) {
|
|
23
24
|
process.stdout.write(` ${wf}\n`);
|
|
24
25
|
}
|
|
25
|
-
process.stdout.write("\nUse 'agentic-forge init' to copy these to
|
|
26
|
+
process.stdout.write("\nUse 'agentic-forge init' to copy these to the global directory\n");
|
|
27
|
+
process.stdout.write("Use 'agentic-forge init --local' to copy to the project-local directory\n");
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
28
|
-
//
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
// Determine target scope: --local flag selects project-local; default is global
|
|
31
|
+
const isLocal = options.local === true;
|
|
32
|
+
let targetDir;
|
|
33
|
+
if (isLocal) {
|
|
34
|
+
targetDir = path.join(process.cwd(), "agentic");
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
targetDir = getGlobalRoot();
|
|
38
|
+
}
|
|
39
|
+
// Ensure target directory structure
|
|
40
|
+
mkdirSync(path.join(targetDir, "workflows"), { recursive: true });
|
|
41
|
+
mkdirSync(path.join(targetDir, "outputs"), { recursive: true });
|
|
42
|
+
const locationLabel = isLocal ? `local: ${targetDir}` : `global: ${targetDir}`;
|
|
43
|
+
// Copy workflows (unless --config-only)
|
|
44
|
+
if (!options.configOnly) {
|
|
45
|
+
let workflowsToCopy = bundledWorkflows;
|
|
46
|
+
// Filter to a named workflow if --workflow <name> is provided
|
|
47
|
+
if (options.workflow) {
|
|
48
|
+
const named = options.workflow.endsWith(".yaml")
|
|
49
|
+
? options.workflow
|
|
50
|
+
: `${options.workflow}.yaml`;
|
|
51
|
+
workflowsToCopy = bundledWorkflows.filter((f) => f === named);
|
|
52
|
+
if (workflowsToCopy.length === 0) {
|
|
53
|
+
process.stderr.write(`Error: Workflow '${options.workflow}' not found in bundled workflows.\n`);
|
|
54
|
+
process.stderr.write("Use 'agentic-forge init --list' to see available bundled workflows.\n");
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
37
57
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
58
|
+
const workflowsTargetDir = path.join(targetDir, "workflows");
|
|
59
|
+
mkdirSync(workflowsTargetDir, { recursive: true });
|
|
60
|
+
const copied = [];
|
|
61
|
+
const skipped = [];
|
|
62
|
+
for (const wf of workflowsToCopy) {
|
|
63
|
+
const targetPath = path.join(workflowsTargetDir, wf);
|
|
64
|
+
if (existsSync(targetPath) && !options.force) {
|
|
65
|
+
skipped.push(wf);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
copyFileSync(path.join(bundledDir, wf), targetPath);
|
|
69
|
+
copied.push(wf);
|
|
70
|
+
}
|
|
41
71
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
72
|
+
if (copied.length > 0) {
|
|
73
|
+
process.stdout.write(`Copied ${copied.length} workflow(s) to ${workflowsTargetDir}/\n`);
|
|
74
|
+
for (const name of copied) {
|
|
75
|
+
process.stdout.write(` + ${name}\n`);
|
|
76
|
+
}
|
|
47
77
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
78
|
+
if (skipped.length > 0) {
|
|
79
|
+
process.stdout.write(`\nSkipped ${skipped.length} existing workflow(s):\n`);
|
|
80
|
+
for (const name of skipped) {
|
|
81
|
+
process.stdout.write(` - ${name}\n`);
|
|
82
|
+
}
|
|
83
|
+
process.stdout.write("\nUse --force to overwrite existing files.\n");
|
|
53
84
|
}
|
|
54
|
-
process.stdout.write("\nUse --force to overwrite existing files.\n");
|
|
55
85
|
}
|
|
56
|
-
// Create config.json
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
process.stdout.write("\nYou can now run workflows with:\n");
|
|
60
|
-
process.stdout.write(" agentic-forge run agentic/workflows/<workflow>.yaml\n");
|
|
86
|
+
// Create config.json (unless --workflows-only)
|
|
87
|
+
if (!options.workflowsOnly) {
|
|
88
|
+
initConfig(targetDir, options.force ?? false, isLocal);
|
|
61
89
|
}
|
|
90
|
+
process.stdout.write(`\nInitialized ${locationLabel}\n`);
|
|
91
|
+
process.stdout.write("You can now run workflows with:\n");
|
|
92
|
+
process.stdout.write(" agentic-forge run <workflow-name>\n");
|
|
62
93
|
}
|
|
63
|
-
function initConfig(agenticDir, force) {
|
|
94
|
+
function initConfig(agenticDir, force, isLocal) {
|
|
64
95
|
const configPath = path.join(agenticDir, "config.json");
|
|
65
96
|
if (existsSync(configPath) && !force) {
|
|
66
97
|
process.stdout.write(`\nConfig already exists: ${configPath}\n`);
|
|
@@ -68,6 +99,9 @@ function initConfig(agenticDir, force) {
|
|
|
68
99
|
}
|
|
69
100
|
mkdirSync(agenticDir, { recursive: true });
|
|
70
101
|
const config = getDefaultConfig();
|
|
102
|
+
if (isLocal) {
|
|
103
|
+
config.outputDirectory = "local";
|
|
104
|
+
}
|
|
71
105
|
writeFileSync(configPath, JSON.stringify(config, null, 2), "utf-8");
|
|
72
106
|
process.stdout.write(`\nCreated config: ${configPath}\n`);
|
|
73
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Paths command - display resolved path configuration. */
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { loadConfig } from "../config.js";
|
|
6
|
+
import { getConfigPaths, getGlobalRoot, getOutputRoot, slugifyCwdName } from "../paths.js";
|
|
7
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
function fmtPath(p, status) {
|
|
9
|
+
return `${p} [${status ? "exists" : "not found"}]`;
|
|
10
|
+
}
|
|
11
|
+
export function cmdPaths() {
|
|
12
|
+
const cwd = process.cwd();
|
|
13
|
+
const globalRoot = getGlobalRoot();
|
|
14
|
+
const configPaths = getConfigPaths(cwd);
|
|
15
|
+
const config = loadConfig(cwd);
|
|
16
|
+
const globalConfigPath = configPaths.global;
|
|
17
|
+
const globalWorkflowsPath = path.join(globalRoot, "workflows");
|
|
18
|
+
const globalOutputsPath = path.join(globalRoot, "outputs", slugifyCwdName(cwd));
|
|
19
|
+
const localConfigPath = configPaths.local ?? path.join(cwd, "agentic", "config.json");
|
|
20
|
+
const localWorkflowsPath = path.join(cwd, "agentic", "workflows");
|
|
21
|
+
const localOutputsPath = path.join(cwd, "agentic", "outputs");
|
|
22
|
+
const bundledWorkflowsPath = path.join(__dirname, "..", "workflows");
|
|
23
|
+
const outputRoot = getOutputRoot(config, cwd);
|
|
24
|
+
const outputSource = config.outputDirectory === "local" || config.outputDirectory === "agentic"
|
|
25
|
+
? "local config"
|
|
26
|
+
: "global config";
|
|
27
|
+
process.stdout.write(`Global config: ${fmtPath(globalConfigPath, existsSync(globalConfigPath))}\n`);
|
|
28
|
+
process.stdout.write(`Global workflows: ${fmtPath(globalWorkflowsPath, existsSync(globalWorkflowsPath))}\n`);
|
|
29
|
+
process.stdout.write(`Global outputs: ${fmtPath(globalOutputsPath, existsSync(globalOutputsPath))}\n`);
|
|
30
|
+
process.stdout.write(`Local config: ${fmtPath(localConfigPath, existsSync(localConfigPath))}\n`);
|
|
31
|
+
process.stdout.write(`Local workflows: ${fmtPath(localWorkflowsPath, existsSync(localWorkflowsPath))}\n`);
|
|
32
|
+
process.stdout.write(`Local outputs: ${fmtPath(localOutputsPath, existsSync(localOutputsPath))}\n`);
|
|
33
|
+
process.stdout.write(`Bundled workflows: ${bundledWorkflowsPath}\n`);
|
|
34
|
+
process.stdout.write(`Output directory: ${outputRoot} (source: ${outputSource})\n`);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/commands/paths.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/resume.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
/** Resume command handler. */
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { findOutputDir } from "../paths.js";
|
|
4
5
|
import { WORKFLOW_STATUS, loadProgress, prepareForResume, saveProgress } from "../progress.js";
|
|
5
6
|
import { discoverWorkflow } from "./run.js";
|
|
6
7
|
export async function cmdResume(options) {
|
|
7
8
|
const { WorkflowExecutor } = await import("../executor.js");
|
|
8
9
|
const { WorkflowParser, WorkflowParseError } = await import("../parser.js");
|
|
9
|
-
const
|
|
10
|
+
const outputDir = findOutputDir(options.workflowId, process.cwd());
|
|
11
|
+
if (outputDir === null) {
|
|
12
|
+
process.stderr.write(`Error: Workflow not found: ${options.workflowId}\n`);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const progress = loadProgress(options.workflowId, outputDir);
|
|
10
16
|
if (progress === null) {
|
|
11
17
|
process.stderr.write(`Error: Workflow not found: ${options.workflowId}\n`);
|
|
12
18
|
process.exit(1);
|
|
@@ -50,7 +56,7 @@ export async function cmdResume(options) {
|
|
|
50
56
|
}
|
|
51
57
|
// Normalize state for resume
|
|
52
58
|
prepareForResume(progress);
|
|
53
|
-
saveProgress(progress);
|
|
59
|
+
saveProgress(progress, outputDir);
|
|
54
60
|
// Execute with resume
|
|
55
61
|
const executor = new WorkflowExecutor();
|
|
56
62
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAG/B;IACA,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5D,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/run.d.ts
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
/** Run and resume command handlers with workflow discovery. */
|
|
2
|
+
/** Error that signals the CLI should exit with a specific code. */
|
|
3
|
+
export declare class CliExitError extends Error {
|
|
4
|
+
readonly exitCode: number;
|
|
5
|
+
constructor(message: string, exitCode?: number);
|
|
6
|
+
}
|
|
2
7
|
export declare function getBundledWorkflowsDir(): string;
|
|
3
8
|
export declare function getUserWorkflowsDir(): string;
|
|
4
9
|
export declare function getProjectWorkflowsDir(): string;
|
|
5
10
|
export declare function discoverWorkflow(name: string): [string | null, string];
|
|
6
11
|
export declare function listAvailableWorkflows(): [string, string, string][];
|
|
7
12
|
export declare function resolveWorkflowPath(workflowArg: string): [string, string];
|
|
13
|
+
/**
|
|
14
|
+
* Parse bare key=value strings and --var flag strings into a variables record.
|
|
15
|
+
* Bare args are processed first; --var flags override them for the same key.
|
|
16
|
+
* Throws an Error with a human-readable message on invalid format.
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseVars(bareVars?: string[], vars?: string[]): Record<string, string>;
|
|
8
19
|
export declare function cmdRun(options: {
|
|
9
20
|
workflow?: string;
|
|
10
21
|
listWorkflows?: boolean;
|
|
11
22
|
vars?: string[];
|
|
23
|
+
bareVars?: string[];
|
|
12
24
|
fromStep?: string;
|
|
25
|
+
interactive?: boolean;
|
|
13
26
|
terminalOutput?: string;
|
|
27
|
+
slug?: string;
|
|
14
28
|
}): Promise<void>;
|
package/dist/commands/run.js
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
/** Run and resume command handlers with workflow discovery. */
|
|
2
2
|
import { existsSync, readdirSync } from "node:fs";
|
|
3
|
-
import { homedir } from "node:os";
|
|
4
3
|
import path from "node:path";
|
|
5
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
+
import confirm from "@inquirer/confirm";
|
|
6
|
+
import input from "@inquirer/input";
|
|
7
|
+
import { getGlobalRoot } from "../paths.js";
|
|
6
8
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
/** Error that signals the CLI should exit with a specific code. */
|
|
10
|
+
export class CliExitError extends Error {
|
|
11
|
+
exitCode;
|
|
12
|
+
constructor(message, exitCode = 1) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.exitCode = exitCode;
|
|
15
|
+
this.name = "CliExitError";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
7
18
|
export function getBundledWorkflowsDir() {
|
|
8
19
|
return path.join(__dirname, "..", "workflows");
|
|
9
20
|
}
|
|
10
21
|
export function getUserWorkflowsDir() {
|
|
11
|
-
|
|
12
|
-
const base = process.env.APPDATA ?? path.join(homedir(), "AppData", "Roaming");
|
|
13
|
-
return path.join(base, "agentic-forge", "workflows");
|
|
14
|
-
}
|
|
15
|
-
const base = process.env.XDG_CONFIG_HOME ?? path.join(homedir(), ".config");
|
|
16
|
-
return path.join(base, "agentic-forge", "workflows");
|
|
22
|
+
return path.join(getGlobalRoot(), "workflows");
|
|
17
23
|
}
|
|
18
24
|
export function getProjectWorkflowsDir() {
|
|
19
25
|
return path.join(process.cwd(), "agentic", "workflows");
|
|
@@ -73,6 +79,28 @@ export function resolveWorkflowPath(workflowArg) {
|
|
|
73
79
|
// Fallback: return the resolved path (will fail with appropriate error)
|
|
74
80
|
return [path.resolve(workflowArg), "not found"];
|
|
75
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Parse bare key=value strings and --var flag strings into a variables record.
|
|
84
|
+
* Bare args are processed first; --var flags override them for the same key.
|
|
85
|
+
* Throws an Error with a human-readable message on invalid format.
|
|
86
|
+
*/
|
|
87
|
+
export function parseVars(bareVars, vars) {
|
|
88
|
+
const variables = {};
|
|
89
|
+
function parseOne(v) {
|
|
90
|
+
if (!v.includes("=")) {
|
|
91
|
+
throw new CliExitError(`Error: Invalid variable format: ${v}\nExpected format: key=value`);
|
|
92
|
+
}
|
|
93
|
+
const eqIndex = v.indexOf("=");
|
|
94
|
+
variables[v.slice(0, eqIndex)] = v.slice(eqIndex + 1);
|
|
95
|
+
}
|
|
96
|
+
if (bareVars)
|
|
97
|
+
for (const v of bareVars)
|
|
98
|
+
parseOne(v);
|
|
99
|
+
if (vars)
|
|
100
|
+
for (const v of vars)
|
|
101
|
+
parseOne(v);
|
|
102
|
+
return variables;
|
|
103
|
+
}
|
|
76
104
|
export async function cmdRun(options) {
|
|
77
105
|
// Handle --list flag
|
|
78
106
|
if (options.listWorkflows) {
|
|
@@ -105,54 +133,40 @@ export async function cmdRun(options) {
|
|
|
105
133
|
}
|
|
106
134
|
}
|
|
107
135
|
process.stdout.write(`Total: ${workflows.length} workflow(s)\n`);
|
|
108
|
-
process.stdout.write("\nUsage: agentic-forge run <workflow
|
|
136
|
+
process.stdout.write("\nUsage: agentic-forge run <workflow> [key=value ...]\n");
|
|
109
137
|
return;
|
|
110
138
|
}
|
|
111
139
|
// Validate workflow argument is provided
|
|
112
140
|
if (!options.workflow) {
|
|
113
|
-
|
|
114
|
-
process.stderr.write("Use 'agentic-forge run --list' to see available workflows\n");
|
|
115
|
-
process.exit(1);
|
|
141
|
+
throw new CliExitError("Error: workflow name or path is required\nUse 'agentic-forge run --list' to see available workflows");
|
|
116
142
|
}
|
|
117
143
|
const { WorkflowExecutor } = await import("../executor.js");
|
|
118
144
|
const { WorkflowParser, WorkflowParseError } = await import("../parser.js");
|
|
119
145
|
const [workflowPath, locationType] = resolveWorkflowPath(options.workflow);
|
|
120
146
|
if (!existsSync(workflowPath)) {
|
|
121
|
-
|
|
122
|
-
process.stderr.write("\nAvailable workflows:\n");
|
|
147
|
+
const lines = [`Error: Workflow not found: ${options.workflow}`, "", "Available workflows:"];
|
|
123
148
|
const workflows = listAvailableWorkflows();
|
|
124
149
|
if (workflows.length > 0) {
|
|
125
150
|
for (const [name, , location] of workflows.slice(0, 10)) {
|
|
126
|
-
|
|
151
|
+
lines.push(` ${name} (${location})`);
|
|
127
152
|
}
|
|
128
153
|
if (workflows.length > 10) {
|
|
129
|
-
|
|
154
|
+
lines.push(` ... and ${workflows.length - 10} more`);
|
|
130
155
|
}
|
|
131
156
|
}
|
|
132
157
|
else {
|
|
133
|
-
|
|
158
|
+
lines.push(" (no workflows found)");
|
|
134
159
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
160
|
+
lines.push("", "Use 'agentic-forge run --list' to see all workflows.");
|
|
161
|
+
lines.push("Use 'agentic-forge init' to copy bundled workflows locally.");
|
|
162
|
+
throw new CliExitError(lines.join("\n"));
|
|
138
163
|
}
|
|
139
164
|
// Show which workflow is being used
|
|
140
165
|
if (["project-local", "user-global", "bundled"].includes(locationType)) {
|
|
141
166
|
process.stdout.write(`Using ${locationType} workflow: ${path.basename(workflowPath)}\n`);
|
|
142
167
|
}
|
|
143
168
|
// Parse variables
|
|
144
|
-
const variables =
|
|
145
|
-
if (options.vars) {
|
|
146
|
-
for (const v of options.vars) {
|
|
147
|
-
if (!v.includes("=")) {
|
|
148
|
-
process.stderr.write(`Error: Invalid variable format: ${v}\n`);
|
|
149
|
-
process.stderr.write("Expected format: KEY=VALUE\n");
|
|
150
|
-
process.exit(1);
|
|
151
|
-
}
|
|
152
|
-
const eqIndex = v.indexOf("=");
|
|
153
|
-
variables[v.slice(0, eqIndex)] = v.slice(eqIndex + 1);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
169
|
+
const variables = parseVars(options.bareVars, options.vars);
|
|
156
170
|
let workflow;
|
|
157
171
|
try {
|
|
158
172
|
const parser = new WorkflowParser();
|
|
@@ -160,11 +174,43 @@ export async function cmdRun(options) {
|
|
|
160
174
|
}
|
|
161
175
|
catch (e) {
|
|
162
176
|
if (e instanceof WorkflowParseError) {
|
|
163
|
-
|
|
164
|
-
process.exit(1);
|
|
177
|
+
throw new CliExitError(`Error parsing workflow: ${e.message}`);
|
|
165
178
|
}
|
|
166
179
|
throw e;
|
|
167
180
|
}
|
|
181
|
+
// Prompt for missing required variables (interactive mode only)
|
|
182
|
+
const isInteractive = options.interactive !== false && process.stdin.isTTY;
|
|
183
|
+
for (const v of workflow.variables) {
|
|
184
|
+
if (v.name in variables)
|
|
185
|
+
continue;
|
|
186
|
+
if (!v.required)
|
|
187
|
+
continue;
|
|
188
|
+
if (v.default !== undefined)
|
|
189
|
+
continue;
|
|
190
|
+
// Required variable is missing
|
|
191
|
+
if (!isInteractive) {
|
|
192
|
+
const lines = [`Error: Missing required variable: ${v.name}`];
|
|
193
|
+
if (v.description) {
|
|
194
|
+
lines.push(` Description: ${v.description}`);
|
|
195
|
+
}
|
|
196
|
+
lines.push(` Usage: agentic-forge run ${options.workflow} ${v.name}="<value>"`);
|
|
197
|
+
throw new CliExitError(lines.join("\n"));
|
|
198
|
+
}
|
|
199
|
+
const label = v.description || v.name;
|
|
200
|
+
if (v.type === "boolean") {
|
|
201
|
+
const answer = await confirm({
|
|
202
|
+
message: `${label}:`,
|
|
203
|
+
default: false,
|
|
204
|
+
});
|
|
205
|
+
variables[v.name] = String(answer);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
const answer = await input({
|
|
209
|
+
message: `${label}:`,
|
|
210
|
+
});
|
|
211
|
+
variables[v.name] = answer;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
168
214
|
const executor = new WorkflowExecutor();
|
|
169
215
|
try {
|
|
170
216
|
// Resolve terminal_output: CLI override > workflow settings > default "base"
|
|
@@ -175,7 +221,7 @@ export async function cmdRun(options) {
|
|
|
175
221
|
else if (workflow.settings?.terminalOutput) {
|
|
176
222
|
terminalOutput = workflow.settings.terminalOutput;
|
|
177
223
|
}
|
|
178
|
-
const progress = await executor.run(workflow, variables, options.fromStep ?? null, terminalOutput, path.resolve(workflowPath));
|
|
224
|
+
const progress = await executor.run(workflow, variables, options.fromStep ?? null, terminalOutput, path.resolve(workflowPath), null, options.slug);
|
|
179
225
|
process.stdout.write(`\nWorkflow ${progress.status}: ${progress.workflowId}\n`);
|
|
180
226
|
if (progress.errors && progress.errors.length > 0) {
|
|
181
227
|
process.stdout.write("\nErrors:\n");
|
|
@@ -186,8 +232,7 @@ export async function cmdRun(options) {
|
|
|
186
232
|
}
|
|
187
233
|
catch (e) {
|
|
188
234
|
const msg = e instanceof Error ? e.message : String(e);
|
|
189
|
-
|
|
190
|
-
process.exit(1);
|
|
235
|
+
throw new CliExitError(`Error running workflow: ${msg}`);
|
|
191
236
|
}
|
|
192
237
|
}
|
|
193
238
|
//# sourceMappingURL=run.js.map
|