agentic-forge 0.0.0 → 0.7.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.
Files changed (212) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +64 -24
  3. package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/SKILL.md +2 -2
  4. package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/references/REFERENCE.md +9 -3
  5. package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/references/workflow-example.yaml +15 -8
  6. package/dist/checkpoints/manager.d.ts +5 -0
  7. package/dist/checkpoints/manager.js +87 -0
  8. package/dist/checkpoints/manager.js.map +1 -0
  9. package/{src → dist}/claude/.claude/skills/analyze/SKILL.md +1 -1
  10. package/{src → dist}/claude/.claude/skills/create-checkpoint/SKILL.md +1 -1
  11. package/{src → dist}/claude/.claude/skills/create-log/SKILL.md +1 -1
  12. package/{src → dist}/claude/.claude/skills/fix-analyze/SKILL.md +1 -1
  13. package/{src → dist}/claude/.claude/skills/git-branch/SKILL.md +1 -1
  14. package/{src → dist}/claude/.claude/skills/git-commit/SKILL.md +1 -1
  15. package/{src → dist}/claude/.claude/skills/git-pr/SKILL.md +1 -1
  16. package/{src → dist}/claude/.claude/skills/sdlc-plan/SKILL.md +1 -1
  17. package/{src → dist}/claude/.claude/skills/sdlc-review/SKILL.md +1 -1
  18. package/dist/cli.d.ts +3 -0
  19. package/dist/cli.js +173 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/commands/authoring-dir.d.ts +2 -0
  22. package/dist/commands/authoring-dir.js +9 -0
  23. package/dist/commands/authoring-dir.js.map +1 -0
  24. package/dist/commands/config-cmd.d.ts +2 -0
  25. package/dist/commands/config-cmd.js +30 -0
  26. package/dist/commands/config-cmd.js.map +1 -0
  27. package/{src/commands/index.ts → dist/commands/index.d.ts} +2 -10
  28. package/dist/commands/index.js +14 -0
  29. package/dist/commands/index.js.map +1 -0
  30. package/dist/commands/init.d.ts +6 -0
  31. package/dist/commands/init.js +83 -0
  32. package/dist/commands/init.js.map +1 -0
  33. package/dist/commands/release-notes.d.ts +5 -0
  34. package/dist/commands/release-notes.js +68 -0
  35. package/dist/commands/release-notes.js.map +1 -0
  36. package/dist/commands/resume.d.ts +5 -0
  37. package/dist/commands/resume.js +79 -0
  38. package/dist/commands/resume.js.map +1 -0
  39. package/dist/commands/run.d.ts +27 -0
  40. package/dist/commands/run.js +243 -0
  41. package/dist/commands/run.js.map +1 -0
  42. package/dist/commands/shortcuts.d.ts +2 -0
  43. package/dist/commands/shortcuts.js +11 -0
  44. package/dist/commands/shortcuts.js.map +1 -0
  45. package/dist/commands/skills-dir.d.ts +2 -0
  46. package/dist/commands/skills-dir.js +9 -0
  47. package/dist/commands/skills-dir.js.map +1 -0
  48. package/dist/commands/status.d.ts +4 -0
  49. package/dist/commands/status.js +99 -0
  50. package/dist/commands/status.js.map +1 -0
  51. package/dist/commands/update.d.ts +4 -0
  52. package/dist/commands/update.js +65 -0
  53. package/dist/commands/update.js.map +1 -0
  54. package/dist/commands/version.d.ts +3 -0
  55. package/dist/commands/version.js +26 -0
  56. package/dist/commands/version.js.map +1 -0
  57. package/dist/commands/workflows.d.ts +4 -0
  58. package/dist/commands/workflows.js +111 -0
  59. package/dist/commands/workflows.js.map +1 -0
  60. package/dist/config.d.ts +8 -0
  61. package/dist/config.js +110 -0
  62. package/dist/config.js.map +1 -0
  63. package/dist/console.d.ts +103 -0
  64. package/dist/console.js +670 -0
  65. package/dist/console.js.map +1 -0
  66. package/dist/executor.d.ts +27 -0
  67. package/dist/executor.js +236 -0
  68. package/dist/executor.js.map +1 -0
  69. package/dist/git/worktree.d.ts +23 -0
  70. package/dist/git/worktree.js +170 -0
  71. package/dist/git/worktree.js.map +1 -0
  72. package/dist/logging/logger.d.ts +27 -0
  73. package/dist/logging/logger.js +69 -0
  74. package/dist/logging/logger.js.map +1 -0
  75. package/dist/orchestrator.d.ts +44 -0
  76. package/dist/orchestrator.js +587 -0
  77. package/dist/orchestrator.js.map +1 -0
  78. package/dist/parser.d.ts +17 -0
  79. package/dist/parser.js +184 -0
  80. package/dist/parser.js.map +1 -0
  81. package/dist/progress.d.ts +29 -0
  82. package/dist/progress.js +275 -0
  83. package/dist/progress.js.map +1 -0
  84. package/dist/ralph-loop.d.ts +26 -0
  85. package/dist/ralph-loop.js +194 -0
  86. package/dist/ralph-loop.js.map +1 -0
  87. package/dist/renderer.d.ts +15 -0
  88. package/dist/renderer.js +123 -0
  89. package/dist/renderer.js.map +1 -0
  90. package/dist/runner.d.ts +84 -0
  91. package/dist/runner.js +529 -0
  92. package/dist/runner.js.map +1 -0
  93. package/dist/signal-manager.d.ts +16 -0
  94. package/dist/signal-manager.js +50 -0
  95. package/dist/signal-manager.js.map +1 -0
  96. package/dist/steps/base.d.ts +28 -0
  97. package/dist/steps/base.js +23 -0
  98. package/dist/steps/base.js.map +1 -0
  99. package/dist/steps/conditional-step.d.ts +12 -0
  100. package/dist/steps/conditional-step.js +106 -0
  101. package/dist/steps/conditional-step.js.map +1 -0
  102. package/{src/steps/index.ts → dist/steps/index.d.ts} +1 -9
  103. package/dist/steps/index.js +8 -0
  104. package/dist/steps/index.js.map +1 -0
  105. package/dist/steps/parallel-step.d.ts +11 -0
  106. package/dist/steps/parallel-step.js +166 -0
  107. package/dist/steps/parallel-step.js.map +1 -0
  108. package/dist/steps/prompt-step.d.ts +8 -0
  109. package/dist/steps/prompt-step.js +94 -0
  110. package/dist/steps/prompt-step.js.map +1 -0
  111. package/dist/steps/ralph-loop-step.d.ts +8 -0
  112. package/dist/steps/ralph-loop-step.js +132 -0
  113. package/dist/steps/ralph-loop-step.js.map +1 -0
  114. package/dist/steps/serial-step.d.ts +10 -0
  115. package/dist/steps/serial-step.js +57 -0
  116. package/dist/steps/serial-step.js.map +1 -0
  117. package/dist/types.d.ts +118 -0
  118. package/dist/types.js +10 -0
  119. package/dist/types.js.map +1 -0
  120. package/package.json +59 -2
  121. package/.gitattributes +0 -24
  122. package/.github/workflows/ci.yml +0 -70
  123. package/.markdownlint-cli2.jsonc +0 -16
  124. package/.prettierignore +0 -3
  125. package/.prettierrc +0 -6
  126. package/.vscode/agentic-forge.code-workspace +0 -26
  127. package/CHANGELOG.md +0 -100
  128. package/CLAUDE.md +0 -158
  129. package/CONTRIBUTING.md +0 -152
  130. package/biome.json +0 -21
  131. package/scripts/copy-assets.js +0 -21
  132. package/src/checkpoints/manager.ts +0 -119
  133. package/src/cli.ts +0 -182
  134. package/src/commands/config-cmd.ts +0 -28
  135. package/src/commands/init.ts +0 -96
  136. package/src/commands/release-notes.ts +0 -85
  137. package/src/commands/resume.ts +0 -103
  138. package/src/commands/run.ts +0 -234
  139. package/src/commands/shortcuts.ts +0 -11
  140. package/src/commands/skills-dir.ts +0 -11
  141. package/src/commands/status.ts +0 -112
  142. package/src/commands/update.ts +0 -64
  143. package/src/commands/version.ts +0 -27
  144. package/src/commands/workflows.ts +0 -129
  145. package/src/config.ts +0 -129
  146. package/src/console.ts +0 -790
  147. package/src/executor.ts +0 -354
  148. package/src/git/worktree.ts +0 -236
  149. package/src/logging/logger.ts +0 -95
  150. package/src/orchestrator.ts +0 -815
  151. package/src/parser.ts +0 -225
  152. package/src/progress.ts +0 -306
  153. package/src/ralph-loop.ts +0 -260
  154. package/src/renderer.ts +0 -164
  155. package/src/runner.ts +0 -634
  156. package/src/signal-manager.ts +0 -55
  157. package/src/steps/base.ts +0 -71
  158. package/src/steps/conditional-step.ts +0 -144
  159. package/src/steps/parallel-step.ts +0 -213
  160. package/src/steps/prompt-step.ts +0 -121
  161. package/src/steps/ralph-loop-step.ts +0 -186
  162. package/src/steps/serial-step.ts +0 -84
  163. package/src/types.ts +0 -141
  164. package/tests/config.test.ts +0 -219
  165. package/tests/console.test.ts +0 -506
  166. package/tests/executor.test.ts +0 -339
  167. package/tests/init.test.ts +0 -86
  168. package/tests/logger.test.ts +0 -110
  169. package/tests/parser.test.ts +0 -290
  170. package/tests/progress.test.ts +0 -345
  171. package/tests/ralph-loop.test.ts +0 -418
  172. package/tests/renderer.test.ts +0 -350
  173. package/tests/runner.test.ts +0 -497
  174. package/tests/setup.test.ts +0 -7
  175. package/tests/signal-manager.test.ts +0 -26
  176. package/tests/steps.test.ts +0 -412
  177. package/tests/worktree.test.ts +0 -411
  178. package/tsconfig.json +0 -18
  179. package/vitest.config.ts +0 -8
  180. /package/{src → dist}/agents/explorer.md +0 -0
  181. /package/{src → dist}/agents/reviewer.md +0 -0
  182. /package/{src → dist}/claude/.claude/skills/analyze/references/bug.md +0 -0
  183. /package/{src → dist}/claude/.claude/skills/analyze/references/debt.md +0 -0
  184. /package/{src → dist}/claude/.claude/skills/analyze/references/doc.md +0 -0
  185. /package/{src → dist}/claude/.claude/skills/analyze/references/security.md +0 -0
  186. /package/{src → dist}/claude/.claude/skills/analyze/references/style.md +0 -0
  187. /package/{src → dist}/claude/.claude/skills/orchestrate/SKILL.md +0 -0
  188. /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/bug.md +0 -0
  189. /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/chore.md +0 -0
  190. /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/feature.md +0 -0
  191. /package/{src → dist}/prompts/agentic-system.md +0 -0
  192. /package/{src → dist}/templates/analysis/bug.md.j2 +0 -0
  193. /package/{src → dist}/templates/analysis/debt.md.j2 +0 -0
  194. /package/{src → dist}/templates/analysis/doc.md.j2 +0 -0
  195. /package/{src → dist}/templates/analysis/security.md.j2 +0 -0
  196. /package/{src → dist}/templates/analysis/style.md.j2 +0 -0
  197. /package/{src → dist}/templates/analysis-summary.md.j2 +0 -0
  198. /package/{src → dist}/templates/checkpoint.md.j2 +0 -0
  199. /package/{src → dist}/templates/implementation-report.md.j2 +0 -0
  200. /package/{src → dist}/templates/memory.md.j2 +0 -0
  201. /package/{src → dist}/templates/plan-bug.md.j2 +0 -0
  202. /package/{src → dist}/templates/plan-chore.md.j2 +0 -0
  203. /package/{src → dist}/templates/plan-feature.md.j2 +0 -0
  204. /package/{src → dist}/templates/progress.json.j2 +0 -0
  205. /package/{src → dist}/templates/ralph-report.md.j2 +0 -0
  206. /package/{src → dist}/workflows/analyze-codebase-merge.yaml +0 -0
  207. /package/{src → dist}/workflows/analyze-codebase.yaml +0 -0
  208. /package/{src → dist}/workflows/analyze-single.yaml +0 -0
  209. /package/{src → dist}/workflows/demo.yaml +0 -0
  210. /package/{src → dist}/workflows/one-shot.yaml +0 -0
  211. /package/{src → dist}/workflows/plan-build-review.yaml +0 -0
  212. /package/{src → dist}/workflows/ralph-loop.yaml +0 -0
@@ -0,0 +1,30 @@
1
+ /** Config command handler. */
2
+ import { getConfigValue, setConfigValue } from "../config.js";
3
+ export function cmdConfig(configCommand, key, value) {
4
+ if (configCommand === "get") {
5
+ const result = getConfigValue(key);
6
+ if (result === null) {
7
+ process.stderr.write(`Key not found: ${key}\n`);
8
+ process.exit(1);
9
+ }
10
+ if (typeof result === "object" && result !== null) {
11
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
12
+ }
13
+ else {
14
+ process.stdout.write(`${result}\n`);
15
+ }
16
+ }
17
+ else if (configCommand === "set") {
18
+ if (value === undefined) {
19
+ process.stderr.write("Usage: agentic-forge config set <key> <value>\n");
20
+ process.exit(1);
21
+ }
22
+ setConfigValue(key, value);
23
+ process.stdout.write(`Set ${key} = ${value}\n`);
24
+ }
25
+ else {
26
+ process.stderr.write("Usage: agentic-forge config get|set <key> [value]\n");
27
+ process.exit(1);
28
+ }
29
+ }
30
+ //# sourceMappingURL=config-cmd.js.map
@@ -0,0 +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,CAAC,aAAqB,EAAE,GAAW,EAAE,KAAc;IAC3E,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,CAAC,CAAC;QAC3B,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"}
@@ -1,14 +1,5 @@
1
1
  /** Command handler exports. */
2
-
3
- export {
4
- cmdRun,
5
- discoverWorkflow,
6
- listAvailableWorkflows,
7
- resolveWorkflowPath,
8
- getBundledWorkflowsDir,
9
- getUserWorkflowsDir,
10
- getProjectWorkflowsDir,
11
- } from "./run.js";
2
+ export { CliExitError, cmdRun, discoverWorkflow, listAvailableWorkflows, resolveWorkflowPath, getBundledWorkflowsDir, getUserWorkflowsDir, getProjectWorkflowsDir, } from "./run.js";
12
3
  export { cmdResume } from "./resume.js";
13
4
  export { cmdStatus, cmdCancel, cmdList } from "./status.js";
14
5
  export { cmdInit, cmdConfigure } from "./init.js";
@@ -17,5 +8,6 @@ export { cmdVersion, getVersion } from "./version.js";
17
8
  export { cmdUpdate } from "./update.js";
18
9
  export { cmdReleaseNotes } from "./release-notes.js";
19
10
  export { cmdSkillsDir } from "./skills-dir.js";
11
+ export { cmdAuthoringDir } from "./authoring-dir.js";
20
12
  export { cmdWorkflows } from "./workflows.js";
21
13
  export { cmdInput } from "./shortcuts.js";
@@ -0,0 +1,14 @@
1
+ /** Command handler exports. */
2
+ export { CliExitError, cmdRun, discoverWorkflow, listAvailableWorkflows, resolveWorkflowPath, getBundledWorkflowsDir, getUserWorkflowsDir, getProjectWorkflowsDir, } from "./run.js";
3
+ export { cmdResume } from "./resume.js";
4
+ export { cmdStatus, cmdCancel, cmdList } from "./status.js";
5
+ export { cmdInit, cmdConfigure } from "./init.js";
6
+ export { cmdConfig } from "./config-cmd.js";
7
+ export { cmdVersion, getVersion } from "./version.js";
8
+ export { cmdUpdate } from "./update.js";
9
+ export { cmdReleaseNotes } from "./release-notes.js";
10
+ export { cmdSkillsDir } from "./skills-dir.js";
11
+ export { cmdAuthoringDir } from "./authoring-dir.js";
12
+ export { cmdWorkflows } from "./workflows.js";
13
+ export { cmdInput } from "./shortcuts.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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,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"}
@@ -0,0 +1,6 @@
1
+ /** Init and configure command handlers. */
2
+ export declare function cmdInit(options: {
3
+ force?: boolean;
4
+ listOnly?: boolean;
5
+ }): void;
6
+ export declare function cmdConfigure(): void;
@@ -0,0 +1,83 @@
1
+ /** Init and configure command handlers. */
2
+ import { copyFileSync, existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import { getDefaultConfig, loadConfig } from "../config.js";
5
+ import { getBundledWorkflowsDir } from "./run.js";
6
+ export function cmdInit(options) {
7
+ const bundledDir = getBundledWorkflowsDir();
8
+ if (!existsSync(bundledDir)) {
9
+ process.stderr.write("Error: Bundled workflows directory not found.\n");
10
+ process.exit(1);
11
+ }
12
+ const bundledWorkflows = readdirSync(bundledDir)
13
+ .filter((f) => f.endsWith(".yaml"))
14
+ .sort();
15
+ if (bundledWorkflows.length === 0) {
16
+ process.stderr.write("No bundled workflows found.\n");
17
+ process.exit(1);
18
+ }
19
+ // List only mode
20
+ if (options.listOnly) {
21
+ process.stdout.write("Available bundled workflows:\n\n");
22
+ for (const wf of bundledWorkflows) {
23
+ process.stdout.write(` ${wf}\n`);
24
+ }
25
+ process.stdout.write("\nUse 'agentic-forge init' to copy these to agentic/workflows/\n");
26
+ return;
27
+ }
28
+ // Copy workflows to local directory
29
+ const targetDir = path.join(process.cwd(), "agentic", "workflows");
30
+ mkdirSync(targetDir, { recursive: true });
31
+ const copied = [];
32
+ const skipped = [];
33
+ for (const wf of bundledWorkflows) {
34
+ const targetPath = path.join(targetDir, wf);
35
+ if (existsSync(targetPath) && !options.force) {
36
+ skipped.push(wf);
37
+ }
38
+ else {
39
+ copyFileSync(path.join(bundledDir, wf), targetPath);
40
+ copied.push(wf);
41
+ }
42
+ }
43
+ if (copied.length > 0) {
44
+ process.stdout.write(`Copied ${copied.length} workflow(s) to ${targetDir}/\n`);
45
+ for (const name of copied) {
46
+ process.stdout.write(` + ${name}\n`);
47
+ }
48
+ }
49
+ if (skipped.length > 0) {
50
+ process.stdout.write(`\nSkipped ${skipped.length} existing workflow(s):\n`);
51
+ for (const name of skipped) {
52
+ process.stdout.write(` - ${name}\n`);
53
+ }
54
+ process.stdout.write("\nUse --force to overwrite existing files.\n");
55
+ }
56
+ // Create config.json next to workflows
57
+ initConfig(path.join(process.cwd(), "agentic"), options.force ?? false);
58
+ if (copied.length > 0) {
59
+ process.stdout.write("\nYou can now run workflows with:\n");
60
+ process.stdout.write(" agentic-forge run agentic/workflows/<workflow>.yaml\n");
61
+ }
62
+ }
63
+ function initConfig(agenticDir, force) {
64
+ const configPath = path.join(agenticDir, "config.json");
65
+ if (existsSync(configPath) && !force) {
66
+ process.stdout.write(`\nConfig already exists: ${configPath}\n`);
67
+ return;
68
+ }
69
+ mkdirSync(agenticDir, { recursive: true });
70
+ const config = getDefaultConfig();
71
+ writeFileSync(configPath, JSON.stringify(config, null, 2), "utf-8");
72
+ process.stdout.write(`\nCreated config: ${configPath}\n`);
73
+ }
74
+ export function cmdConfigure() {
75
+ const config = loadConfig();
76
+ process.stdout.write("Agentic Workflows Configuration\n");
77
+ process.stdout.write(`${"=".repeat(40)}\n`);
78
+ process.stdout.write("\nCurrent settings:\n");
79
+ process.stdout.write(`${JSON.stringify(config, null, 2)}\n`);
80
+ process.stdout.write("\nUse 'agentic-forge config set <key> <value>' to modify settings.\n");
81
+ process.stdout.write("Example: agentic-forge config set defaults.maxRetry 5\n");
82
+ }
83
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Release notes command handler. */
2
+ export declare function cmdReleaseNotes(options: {
3
+ specificVersion?: string;
4
+ latest?: boolean;
5
+ }): void;
@@ -0,0 +1,68 @@
1
+ /** Release notes command handler. */
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+ export function cmdReleaseNotes(options) {
7
+ let changelogPath = null;
8
+ // Try to find CHANGELOG.md relative to the package
9
+ const candidate = path.join(__dirname, "..", "..", "CHANGELOG.md");
10
+ if (existsSync(candidate)) {
11
+ changelogPath = candidate;
12
+ }
13
+ // Fallback: try current directory
14
+ if (changelogPath === null) {
15
+ const cwdCandidate = path.join(process.cwd(), "CHANGELOG.md");
16
+ if (existsSync(cwdCandidate)) {
17
+ changelogPath = cwdCandidate;
18
+ }
19
+ }
20
+ if (changelogPath === null) {
21
+ process.stdout.write("CHANGELOG.md not found\n");
22
+ return;
23
+ }
24
+ const content = readFileSync(changelogPath, "utf-8");
25
+ if (options.specificVersion) {
26
+ const section = extractVersionSection(content, options.specificVersion);
27
+ if (section) {
28
+ process.stdout.write(`${section.trim()}\n`);
29
+ }
30
+ else {
31
+ process.stdout.write(`Version ${options.specificVersion} not found in CHANGELOG.md\n`);
32
+ }
33
+ return;
34
+ }
35
+ if (options.latest) {
36
+ const section = extractLatestVersion(content);
37
+ if (section) {
38
+ process.stdout.write(`${section.trim()}\n`);
39
+ }
40
+ else {
41
+ process.stdout.write("No version information found in CHANGELOG.md\n");
42
+ }
43
+ return;
44
+ }
45
+ process.stdout.write(content);
46
+ }
47
+ function extractVersionSection(content, version) {
48
+ const escaped = version.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
49
+ const pattern = new RegExp(`^## \\[${escaped}\\].*$`, "m");
50
+ const match = pattern.exec(content);
51
+ if (!match) {
52
+ return null;
53
+ }
54
+ const start = match.index;
55
+ const nextPattern = /^## \[[\d.]+\]/m;
56
+ const nextMatch = nextPattern.exec(content.slice(match.index + match[0].length));
57
+ const end = nextMatch ? match.index + match[0].length + nextMatch.index : content.length;
58
+ return content.slice(start, end);
59
+ }
60
+ function extractLatestVersion(content) {
61
+ const pattern = /^## \[([\d.]+)\].*$/m;
62
+ const match = pattern.exec(content);
63
+ if (!match) {
64
+ return null;
65
+ }
66
+ return extractVersionSection(content, match[1]);
67
+ }
68
+ //# sourceMappingURL=release-notes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-notes.js","sourceRoot":"","sources":["../../src/commands/release-notes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Resume command handler. */
2
+ export declare function cmdResume(options: {
3
+ workflowId: string;
4
+ terminalOutput?: string;
5
+ }): Promise<void>;
@@ -0,0 +1,79 @@
1
+ /** Resume command handler. */
2
+ import { existsSync } from "node:fs";
3
+ import path from "node:path";
4
+ import { WORKFLOW_STATUS, loadProgress, prepareForResume, saveProgress } from "../progress.js";
5
+ import { discoverWorkflow } from "./run.js";
6
+ export async function cmdResume(options) {
7
+ const { WorkflowExecutor } = await import("../executor.js");
8
+ const { WorkflowParser, WorkflowParseError } = await import("../parser.js");
9
+ const progress = loadProgress(options.workflowId);
10
+ if (progress === null) {
11
+ process.stderr.write(`Error: Workflow not found: ${options.workflowId}\n`);
12
+ process.exit(1);
13
+ }
14
+ // Only reject completed workflows
15
+ if (progress.status === WORKFLOW_STATUS.COMPLETED) {
16
+ process.stderr.write(`Error: Cannot resume a completed workflow (status: '${progress.status}')\n`);
17
+ process.exit(1);
18
+ }
19
+ // Resolve workflow YAML file
20
+ let workflowPath = null;
21
+ // Try stored workflow_file first
22
+ if (progress.workflowFile) {
23
+ if (existsSync(progress.workflowFile)) {
24
+ workflowPath = progress.workflowFile;
25
+ }
26
+ }
27
+ // Fall back to discovery by workflow name
28
+ if (workflowPath === null) {
29
+ const [discovered] = discoverWorkflow(progress.workflowName);
30
+ if (discovered !== null) {
31
+ workflowPath = discovered;
32
+ }
33
+ }
34
+ if (workflowPath === null) {
35
+ process.stderr.write(`Error: Cannot find workflow file for '${progress.workflowName}'.\nProvide the workflow YAML at one of the standard locations or re-run with 'agentic-forge run <path>'.\n`);
36
+ process.exit(1);
37
+ }
38
+ // Parse workflow
39
+ let workflow;
40
+ try {
41
+ const parser = new WorkflowParser();
42
+ workflow = parser.parseFile(workflowPath);
43
+ }
44
+ catch (e) {
45
+ if (e instanceof WorkflowParseError) {
46
+ process.stderr.write(`Error parsing workflow: ${e.message}\n`);
47
+ process.exit(1);
48
+ }
49
+ throw e;
50
+ }
51
+ // Normalize state for resume
52
+ prepareForResume(progress);
53
+ saveProgress(progress);
54
+ // Execute with resume
55
+ const executor = new WorkflowExecutor();
56
+ try {
57
+ let terminalOutput = "base";
58
+ if (options.terminalOutput != null) {
59
+ terminalOutput = options.terminalOutput;
60
+ }
61
+ else if (workflow.settings?.terminalOutput) {
62
+ terminalOutput = workflow.settings.terminalOutput;
63
+ }
64
+ const result = await executor.run(workflow, progress.variables, null, terminalOutput, path.resolve(workflowPath), progress);
65
+ process.stdout.write(`\nWorkflow ${result.status}: ${result.workflowId}\n`);
66
+ if (result.errors && result.errors.length > 0) {
67
+ process.stdout.write("\nErrors:\n");
68
+ for (const error of result.errors) {
69
+ process.stdout.write(` - ${error.step}: ${error.error}\n`);
70
+ }
71
+ }
72
+ }
73
+ catch (e) {
74
+ const msg = e instanceof Error ? e.message : String(e);
75
+ process.stderr.write(`Error running workflow: ${msg}\n`);
76
+ process.exit(1);
77
+ }
78
+ }
79
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
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
+ }
7
+ export declare function getBundledWorkflowsDir(): string;
8
+ export declare function getUserWorkflowsDir(): string;
9
+ export declare function getProjectWorkflowsDir(): string;
10
+ export declare function discoverWorkflow(name: string): [string | null, string];
11
+ export declare function listAvailableWorkflows(): [string, string, string][];
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>;
19
+ export declare function cmdRun(options: {
20
+ workflow?: string;
21
+ listWorkflows?: boolean;
22
+ vars?: string[];
23
+ bareVars?: string[];
24
+ fromStep?: string;
25
+ interactive?: boolean;
26
+ terminalOutput?: string;
27
+ }): Promise<void>;
@@ -0,0 +1,243 @@
1
+ /** Run and resume command handlers with workflow discovery. */
2
+ import { existsSync, readdirSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import path from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ import confirm from "@inquirer/confirm";
7
+ import input from "@inquirer/input";
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
+ }
18
+ export function getBundledWorkflowsDir() {
19
+ return path.join(__dirname, "..", "workflows");
20
+ }
21
+ export function getUserWorkflowsDir() {
22
+ if (process.platform === "win32") {
23
+ const base = process.env.APPDATA ?? path.join(homedir(), "AppData", "Roaming");
24
+ return path.join(base, "agentic-forge", "workflows");
25
+ }
26
+ const base = process.env.XDG_CONFIG_HOME ?? path.join(homedir(), ".config");
27
+ return path.join(base, "agentic-forge", "workflows");
28
+ }
29
+ export function getProjectWorkflowsDir() {
30
+ return path.join(process.cwd(), "agentic", "workflows");
31
+ }
32
+ export function discoverWorkflow(name) {
33
+ const fileName = name.endsWith(".yaml") ? name : `${name}.yaml`;
34
+ const searchLocations = [
35
+ [getProjectWorkflowsDir(), "project-local"],
36
+ [getUserWorkflowsDir(), "user-global"],
37
+ [getBundledWorkflowsDir(), "bundled"],
38
+ ];
39
+ for (const [directory, locationType] of searchLocations) {
40
+ const workflowPath = path.join(directory, fileName);
41
+ if (existsSync(workflowPath)) {
42
+ return [workflowPath, locationType];
43
+ }
44
+ }
45
+ return [null, "not found"];
46
+ }
47
+ export function listAvailableWorkflows() {
48
+ const workflows = [];
49
+ const searchLocations = [
50
+ [getProjectWorkflowsDir(), "project-local"],
51
+ [getUserWorkflowsDir(), "user-global"],
52
+ [getBundledWorkflowsDir(), "bundled"],
53
+ ];
54
+ for (const [directory, locationType] of searchLocations) {
55
+ if (existsSync(directory)) {
56
+ const files = readdirSync(directory)
57
+ .filter((f) => f.endsWith(".yaml"))
58
+ .sort();
59
+ for (const file of files) {
60
+ const name = path.basename(file, ".yaml");
61
+ workflows.push([name, path.join(directory, file), locationType]);
62
+ }
63
+ }
64
+ }
65
+ return workflows;
66
+ }
67
+ export function resolveWorkflowPath(workflowArg) {
68
+ // Check if it's an absolute path
69
+ if (path.isAbsolute(workflowArg)) {
70
+ return [workflowArg, "absolute"];
71
+ }
72
+ // Check if it exists as a relative path from cwd
73
+ const localPath = path.resolve(process.cwd(), workflowArg);
74
+ if (existsSync(localPath)) {
75
+ return [localPath, "relative"];
76
+ }
77
+ // If the input looks like a bare name (no path separators), try discovery
78
+ if (!workflowArg.includes("/") && !workflowArg.includes("\\")) {
79
+ const [discovered, locationType] = discoverWorkflow(workflowArg);
80
+ if (discovered) {
81
+ return [discovered, locationType];
82
+ }
83
+ }
84
+ // Fallback: return the resolved path (will fail with appropriate error)
85
+ return [path.resolve(workflowArg), "not found"];
86
+ }
87
+ /**
88
+ * Parse bare key=value strings and --var flag strings into a variables record.
89
+ * Bare args are processed first; --var flags override them for the same key.
90
+ * Throws an Error with a human-readable message on invalid format.
91
+ */
92
+ export function parseVars(bareVars, vars) {
93
+ const variables = {};
94
+ function parseOne(v) {
95
+ if (!v.includes("=")) {
96
+ throw new CliExitError(`Error: Invalid variable format: ${v}\nExpected format: key=value`);
97
+ }
98
+ const eqIndex = v.indexOf("=");
99
+ variables[v.slice(0, eqIndex)] = v.slice(eqIndex + 1);
100
+ }
101
+ if (bareVars)
102
+ for (const v of bareVars)
103
+ parseOne(v);
104
+ if (vars)
105
+ for (const v of vars)
106
+ parseOne(v);
107
+ return variables;
108
+ }
109
+ export async function cmdRun(options) {
110
+ // Handle --list flag
111
+ if (options.listWorkflows) {
112
+ process.stdout.write("Available workflows:\n\n");
113
+ const workflows = listAvailableWorkflows();
114
+ if (workflows.length === 0) {
115
+ process.stdout.write("No workflows found.\n");
116
+ process.stdout.write("\nSearched locations:\n");
117
+ process.stdout.write(` - Project: ${getProjectWorkflowsDir()}\n`);
118
+ process.stdout.write(` - User: ${getUserWorkflowsDir()}\n`);
119
+ process.stdout.write(` - Bundled: ${getBundledWorkflowsDir()}\n`);
120
+ return;
121
+ }
122
+ // Group by location
123
+ const byLocation = {};
124
+ for (const [name, wfPath, location] of workflows) {
125
+ if (!byLocation[location]) {
126
+ byLocation[location] = [];
127
+ }
128
+ byLocation[location].push([name, wfPath]);
129
+ }
130
+ for (const location of ["project-local", "user-global", "bundled"]) {
131
+ if (byLocation[location]) {
132
+ const label = location.replace("-", " ").replace(/\b\w/g, (c) => c.toUpperCase());
133
+ process.stdout.write(`${label}:\n`);
134
+ for (const [name] of byLocation[location]) {
135
+ process.stdout.write(` ${name}\n`);
136
+ }
137
+ process.stdout.write("\n");
138
+ }
139
+ }
140
+ process.stdout.write(`Total: ${workflows.length} workflow(s)\n`);
141
+ process.stdout.write("\nUsage: agentic-forge run <workflow> [key=value ...]\n");
142
+ return;
143
+ }
144
+ // Validate workflow argument is provided
145
+ if (!options.workflow) {
146
+ throw new CliExitError("Error: workflow name or path is required\nUse 'agentic-forge run --list' to see available workflows");
147
+ }
148
+ const { WorkflowExecutor } = await import("../executor.js");
149
+ const { WorkflowParser, WorkflowParseError } = await import("../parser.js");
150
+ const [workflowPath, locationType] = resolveWorkflowPath(options.workflow);
151
+ if (!existsSync(workflowPath)) {
152
+ const lines = [`Error: Workflow not found: ${options.workflow}`, "", "Available workflows:"];
153
+ const workflows = listAvailableWorkflows();
154
+ if (workflows.length > 0) {
155
+ for (const [name, , location] of workflows.slice(0, 10)) {
156
+ lines.push(` ${name} (${location})`);
157
+ }
158
+ if (workflows.length > 10) {
159
+ lines.push(` ... and ${workflows.length - 10} more`);
160
+ }
161
+ }
162
+ else {
163
+ lines.push(" (no workflows found)");
164
+ }
165
+ lines.push("", "Use 'agentic-forge run --list' to see all workflows.");
166
+ lines.push("Use 'agentic-forge init' to copy bundled workflows locally.");
167
+ throw new CliExitError(lines.join("\n"));
168
+ }
169
+ // Show which workflow is being used
170
+ if (["project-local", "user-global", "bundled"].includes(locationType)) {
171
+ process.stdout.write(`Using ${locationType} workflow: ${path.basename(workflowPath)}\n`);
172
+ }
173
+ // Parse variables
174
+ const variables = parseVars(options.bareVars, options.vars);
175
+ let workflow;
176
+ try {
177
+ const parser = new WorkflowParser();
178
+ workflow = parser.parseFile(workflowPath);
179
+ }
180
+ catch (e) {
181
+ if (e instanceof WorkflowParseError) {
182
+ throw new CliExitError(`Error parsing workflow: ${e.message}`);
183
+ }
184
+ throw e;
185
+ }
186
+ // Prompt for missing required variables (interactive mode only)
187
+ const isInteractive = options.interactive !== false && process.stdin.isTTY;
188
+ for (const v of workflow.variables) {
189
+ if (v.name in variables)
190
+ continue;
191
+ if (!v.required)
192
+ continue;
193
+ if (v.default !== undefined)
194
+ continue;
195
+ // Required variable is missing
196
+ if (!isInteractive) {
197
+ const lines = [`Error: Missing required variable: ${v.name}`];
198
+ if (v.description) {
199
+ lines.push(` Description: ${v.description}`);
200
+ }
201
+ lines.push(` Usage: agentic-forge run ${options.workflow} ${v.name}="<value>"`);
202
+ throw new CliExitError(lines.join("\n"));
203
+ }
204
+ const label = v.description || v.name;
205
+ if (v.type === "boolean") {
206
+ const answer = await confirm({
207
+ message: `${label}:`,
208
+ default: false,
209
+ });
210
+ variables[v.name] = String(answer);
211
+ }
212
+ else {
213
+ const answer = await input({
214
+ message: `${label}:`,
215
+ });
216
+ variables[v.name] = answer;
217
+ }
218
+ }
219
+ const executor = new WorkflowExecutor();
220
+ try {
221
+ // Resolve terminal_output: CLI override > workflow settings > default "base"
222
+ let terminalOutput = "base";
223
+ if (options.terminalOutput != null) {
224
+ terminalOutput = options.terminalOutput;
225
+ }
226
+ else if (workflow.settings?.terminalOutput) {
227
+ terminalOutput = workflow.settings.terminalOutput;
228
+ }
229
+ const progress = await executor.run(workflow, variables, options.fromStep ?? null, terminalOutput, path.resolve(workflowPath));
230
+ process.stdout.write(`\nWorkflow ${progress.status}: ${progress.workflowId}\n`);
231
+ if (progress.errors && progress.errors.length > 0) {
232
+ process.stdout.write("\nErrors:\n");
233
+ for (const error of progress.errors) {
234
+ process.stdout.write(` - ${error.step}: ${error.error}\n`);
235
+ }
236
+ }
237
+ }
238
+ catch (e) {
239
+ const msg = e instanceof Error ? e.message : String(e);
240
+ throw new CliExitError(`Error running workflow: ${msg}`);
241
+ }
242
+ }
243
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** Shortcut command handlers (input). */
2
+ export declare function cmdInput(workflowId: string, response: string): void;