agentic-forge 0.7.1 → 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 +20 -110
- package/dist/authoring/.claude/skills/workflow-builder/SKILL.md +2 -2
- package/dist/authoring/.claude/skills/workflow-builder/references/REFERENCE.md +16 -14
- package/dist/authoring/.claude/skills/workflow-builder/references/workflow-example.yaml +14 -14
- 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 +31 -5
- package/dist/cli.js.map +1 -1
- 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 +1 -0
- package/dist/commands/index.js +1 -0
- 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 +1 -0
- package/dist/commands/run.js +3 -8
- 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/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 +1 -1
package/README.md
CHANGED
|
@@ -35,141 +35,51 @@ Agentic Forge is a TypeScript/Node.js package that provides YAML-based workflow
|
|
|
35
35
|
### Installation
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
# Install globally with npm
|
|
39
38
|
npm install -g agentic-forge
|
|
40
|
-
|
|
41
|
-
# Or install from source
|
|
42
|
-
git clone https://github.com/e-stpierre/agentic-forge.git
|
|
43
|
-
cd agentic-forge
|
|
44
|
-
pnpm install && pnpm build
|
|
45
|
-
npm install -g .
|
|
46
39
|
```
|
|
47
40
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
### plan-build-review (Full SDLC)
|
|
41
|
+
### Run Your First Workflow
|
|
51
42
|
|
|
52
|
-
|
|
43
|
+
No setup required. Run the demo workflow to verify your installation:
|
|
53
44
|
|
|
54
45
|
```bash
|
|
55
|
-
|
|
46
|
+
af run demo
|
|
56
47
|
```
|
|
57
48
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
Create Branch -> Execute Task -> Review -> Create PR
|
|
49
|
+
Run a real workflow:
|
|
61
50
|
|
|
62
51
|
```bash
|
|
63
|
-
|
|
52
|
+
af run plan-build-review --var "task=Add dark mode support" --slug "dark-mode"
|
|
64
53
|
```
|
|
65
54
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
Generic iterative loop where each iteration runs in a fresh session.
|
|
55
|
+
The `--slug` flag names the output directory (e.g., `dark-mode/` instead of a generated timestamp ID), making it easy to find results later.
|
|
69
56
|
|
|
70
|
-
|
|
71
|
-
agentic-forge run ralph-loop --var "task=Follow the improvement plan" --var "max_iterations=20"
|
|
72
|
-
```
|
|
57
|
+
### Project Setup
|
|
73
58
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Run 5 parallel analysis types (bug, debt, doc, security, style) with optional autofix.
|
|
59
|
+
Initialize a local `agentic/` directory to customize workflows and config for your project:
|
|
77
60
|
|
|
78
61
|
```bash
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### All Commands
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
# Run a workflow with variables
|
|
86
|
-
agentic-forge run <workflow> --var "key=value"
|
|
87
|
-
|
|
88
|
-
# Resume a paused or failed workflow
|
|
89
|
-
agentic-forge resume <workflow_id>
|
|
90
|
-
|
|
91
|
-
# Check workflow status
|
|
92
|
-
agentic-forge status <workflow_id>
|
|
93
|
-
|
|
94
|
-
# Cancel a running workflow
|
|
95
|
-
agentic-forge cancel <workflow_id>
|
|
96
|
-
|
|
97
|
-
# List all workflow runs (optionally filter by status)
|
|
98
|
-
agentic-forge list --status running
|
|
99
|
-
|
|
100
|
-
# Provide input to a paused workflow waiting for human response
|
|
101
|
-
agentic-forge input <workflow_id> "response text"
|
|
102
|
-
|
|
103
|
-
# Copy bundled workflow templates to your project
|
|
104
|
-
agentic-forge init
|
|
105
|
-
|
|
106
|
-
# List available workflows with descriptions
|
|
107
|
-
agentic-forge workflows
|
|
108
|
-
|
|
109
|
-
# Get or set configuration
|
|
110
|
-
agentic-forge config get <key>
|
|
111
|
-
agentic-forge config set <key> <value>
|
|
112
|
-
|
|
113
|
-
# Interactive configuration setup
|
|
114
|
-
agentic-forge configure
|
|
115
|
-
|
|
116
|
-
# Print path to bundled workflow skills directory
|
|
117
|
-
agentic-forge skills-dir
|
|
118
|
-
|
|
119
|
-
# Print path to interactive authoring skills directory
|
|
120
|
-
agentic-forge authoring-dir
|
|
121
|
-
|
|
122
|
-
# Show release notes
|
|
123
|
-
agentic-forge release-notes --latest
|
|
124
|
-
|
|
125
|
-
# Check current version
|
|
126
|
-
agentic-forge version
|
|
127
|
-
|
|
128
|
-
# Update to latest version
|
|
129
|
-
agentic-forge update
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## Repository Structure
|
|
133
|
-
|
|
134
|
-
```text
|
|
135
|
-
src/
|
|
136
|
-
agents/ # Bundled agent definitions (explorer, reviewer)
|
|
137
|
-
authoring/.claude/ # Interactive authoring skills (workflow-builder)
|
|
138
|
-
skills/ # Skills for users to create and manage workflows
|
|
139
|
-
claude/.claude/ # Workflow execution skills loaded via --add-dir
|
|
140
|
-
skills/ # Bundled skills used by workflows
|
|
141
|
-
commands/ # CLI command implementations
|
|
142
|
-
prompts/ # System prompt templates
|
|
143
|
-
steps/ # Workflow step handlers
|
|
144
|
-
workflows/ # 7 bundled YAML workflow definitions
|
|
145
|
-
*.ts # Core TypeScript modules
|
|
146
|
-
tests/ # Vitest test suite
|
|
62
|
+
af init --local
|
|
147
63
|
```
|
|
148
64
|
|
|
149
|
-
###
|
|
65
|
+
### Workflow Builder
|
|
150
66
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
- **Workflow skills** (`skills-dir`) — Skills used by the workflow engine during execution. Loaded automatically when running workflows.
|
|
154
|
-
- **Authoring skills** (`authoring-dir`) — Interactive skills for users to create and manage workflows. Add them to your Claude Code session manually:
|
|
67
|
+
Load authoring skills into Claude Code to create and manage workflows interactively:
|
|
155
68
|
|
|
156
69
|
```bash
|
|
157
|
-
claude --add-dir $(
|
|
70
|
+
claude --add-dir $(af authoring-dir)
|
|
158
71
|
```
|
|
159
72
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
Once the authoring skills are loaded, use the `/af-workflow-builder` slash command to create, update, explain, validate, or debug workflows:
|
|
73
|
+
Then use `/af-workflow-builder` to create, validate, explain, or debug workflows.
|
|
163
74
|
|
|
164
|
-
|
|
165
|
-
/af-workflow-builder create a workflow that plans and reviews a feature
|
|
166
|
-
/af-workflow-builder validate my-workflow.yaml
|
|
167
|
-
/af-workflow-builder explain how ralph-loop works
|
|
168
|
-
/af-workflow-builder update my-workflow.yaml to add a parallel step
|
|
169
|
-
/af-workflow-builder debug why my conditional always takes the else branch
|
|
170
|
-
```
|
|
75
|
+
## Documentation
|
|
171
76
|
|
|
172
|
-
|
|
77
|
+
| Document | Description |
|
|
78
|
+
| ------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
|
|
79
|
+
| [Getting Started](https://github.com/e-stpierre/agentic-forge/blob/main/docs/getting-started.md) | Installation, quick tour, initialization, and creating your first workflow |
|
|
80
|
+
| [CLI Reference](https://github.com/e-stpierre/agentic-forge/blob/main/docs/cli.md) | Complete list of commands with all arguments and options |
|
|
81
|
+
| [Workflows](https://github.com/e-stpierre/agentic-forge/blob/main/docs/workflows.md) | Bundled workflows, their use cases, variables, and examples |
|
|
82
|
+
| [Configuration](https://github.com/e-stpierre/agentic-forge/blob/main/docs/configuration.md) | All configuration options, defaults, and layering behavior |
|
|
173
83
|
|
|
174
84
|
## Contributing
|
|
175
85
|
|
|
@@ -76,7 +76,7 @@ Arguments: $ARGUMENTS
|
|
|
76
76
|
|
|
77
77
|
1. Read the workflow YAML and any error output
|
|
78
78
|
2. Check for common issues (undefined variables, incorrect conditions, missing fields)
|
|
79
|
-
3. Check `agentic
|
|
79
|
+
3. Check `agentic-forge status <workflow-id>` or look in the output directory for `progress.json`
|
|
80
80
|
4. Suggest specific fixes
|
|
81
81
|
|
|
82
82
|
### Step Type Selection Guide
|
|
@@ -115,7 +115,7 @@ Priority: step `model` > `settings.model` > config default > `sonnet`
|
|
|
115
115
|
| Symptom | Likely Cause | Fix |
|
|
116
116
|
| -------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------- |
|
|
117
117
|
| "Missing required variable" | Variable not passed via CLI | Add `name=value` arg, `--var "name=value"`, or set `default` |
|
|
118
|
-
| Conditional always takes else | Condition expression evaluates to falsy | Check
|
|
118
|
+
| Conditional always takes else | Condition expression evaluates to falsy | Check Nunjucks expression syntax and variable names |
|
|
119
119
|
| Ralph loop never completes | Completion JSON not output or promise mismatch | Verify `completion-promise` matches the `promise` field in JSON |
|
|
120
120
|
| Template variable shows as `{{ ... }}` | Undefined variable in lenient mode | Define the variable or enable `strict-mode: true` to catch early |
|
|
121
121
|
| Step timeout | Task exceeds `timeout-minutes` | Increase step or workflow `timeout-minutes` |
|
|
@@ -204,15 +204,15 @@ Execute nested steps concurrently. Supports git worktrees for isolation.
|
|
|
204
204
|
|
|
205
205
|
### conditional
|
|
206
206
|
|
|
207
|
-
Branch execution based on a
|
|
207
|
+
Branch execution based on a Nunjucks condition expression.
|
|
208
208
|
|
|
209
209
|
**Specific properties:**
|
|
210
210
|
|
|
211
|
-
| Key | Type | Required | Description
|
|
212
|
-
| ----------- | ------ | -------- |
|
|
213
|
-
| `condition` | string | Yes |
|
|
214
|
-
| `then` | list | Yes | Steps to execute if condition is true
|
|
215
|
-
| `else` | list | No | Steps to execute if condition is false
|
|
211
|
+
| Key | Type | Required | Description |
|
|
212
|
+
| ----------- | ------ | -------- | -------------------------------------------- |
|
|
213
|
+
| `condition` | string | Yes | Nunjucks expression evaluating to true/false |
|
|
214
|
+
| `then` | list | Yes | Steps to execute if condition is true |
|
|
215
|
+
| `else` | list | No | Steps to execute if condition is false |
|
|
216
216
|
|
|
217
217
|
**Condition evaluation supports:**
|
|
218
218
|
|
|
@@ -252,7 +252,7 @@ Iterative prompt execution with completion detection. Each iteration runs in a f
|
|
|
252
252
|
**How it works:**
|
|
253
253
|
|
|
254
254
|
1. Each iteration runs in a fresh Claude session (no context accumulation)
|
|
255
|
-
2. State persists in `
|
|
255
|
+
2. State persists in `{output_dir}/ralph-{step-name}.md`
|
|
256
256
|
3. Loop exits when Claude outputs completion JSON or max iterations reached
|
|
257
257
|
4. Additional template variables: `{{ iteration }}` (current), `{{ max_iterations }}` (max)
|
|
258
258
|
|
|
@@ -274,7 +274,7 @@ The `completion-promise` setting must match the `promise` value in Claude's JSON
|
|
|
274
274
|
- name: implement-milestones
|
|
275
275
|
type: ralph-loop
|
|
276
276
|
prompt: |
|
|
277
|
-
Read the plan at
|
|
277
|
+
Read the plan at {{ output_dir }}/plan.md.
|
|
278
278
|
Implement the next incomplete milestone.
|
|
279
279
|
|
|
280
280
|
When ALL milestones are complete, output:
|
|
@@ -307,7 +307,7 @@ Human provides input via: `agentic-forge input <workflow-id> "response"`
|
|
|
307
307
|
- name: get-approval
|
|
308
308
|
type: wait-for-human
|
|
309
309
|
message: |
|
|
310
|
-
Review the implementation at
|
|
310
|
+
Review the implementation at {{ output_dir }}/plan.md.
|
|
311
311
|
Respond with "approved" to continue or provide feedback.
|
|
312
312
|
polling-interval: 30
|
|
313
313
|
on-timeout: abort
|
|
@@ -316,7 +316,7 @@ Human provides input via: `agentic-forge input <workflow-id> "response"`
|
|
|
316
316
|
|
|
317
317
|
## Templating
|
|
318
318
|
|
|
319
|
-
Workflows use
|
|
319
|
+
Workflows use Nunjucks for dynamic content in prompts, conditions, and output paths.
|
|
320
320
|
|
|
321
321
|
### Built-in Variables
|
|
322
322
|
|
|
@@ -329,7 +329,7 @@ Workflows use Jinja2 for dynamic content in prompts, conditions, and output path
|
|
|
329
329
|
| `{{ iteration }}` | Current ralph-loop iteration (1-based) |
|
|
330
330
|
| `{{ max_iterations }}` | Max iterations for ralph-loop |
|
|
331
331
|
|
|
332
|
-
###
|
|
332
|
+
### Nunjucks Filters
|
|
333
333
|
|
|
334
334
|
| Filter | Example | Description |
|
|
335
335
|
| ------------------ | ----------------------------------------------- | ------------------- |
|
|
@@ -371,7 +371,7 @@ Generate files when the workflow completes or fails.
|
|
|
371
371
|
| Key | Required | Type | Default | Description |
|
|
372
372
|
| ---------- | -------- | ------ | ------------- | ------------------------------------- |
|
|
373
373
|
| `name` | Yes | string | - | Output identifier |
|
|
374
|
-
| `template` | Yes | string | - |
|
|
374
|
+
| `template` | Yes | string | - | Nunjucks template file path |
|
|
375
375
|
| `path` | Yes | string | - | Output file path (supports templates) |
|
|
376
376
|
| `when` | No | string | `"completed"` | "completed" or "failed" |
|
|
377
377
|
|
|
@@ -381,17 +381,19 @@ Template resolution order:
|
|
|
381
381
|
2. `agentic/templates/`
|
|
382
382
|
3. Bundled plugin templates
|
|
383
383
|
|
|
384
|
+
Step prompt template variables: `{{ workflow_id }}`, `{{ output_dir }}` (absolute path to the workflow output directory), `{{ variables.* }}`, `{{ outputs.* }}`
|
|
385
|
+
|
|
384
386
|
Template context variables: `workflow`, `variables`, `outputs`, `progress`, `steps`, `analysis_steps`, `fix_steps`, `files_changed`, `branches`, `pull_requests`, `inputs`
|
|
385
387
|
|
|
386
388
|
```yaml
|
|
387
389
|
outputs:
|
|
388
390
|
- name: report
|
|
389
391
|
template: report.md.j2
|
|
390
|
-
path:
|
|
392
|
+
path: report.md
|
|
391
393
|
when: completed
|
|
392
394
|
- name: error-log
|
|
393
395
|
template: error.md.j2
|
|
394
|
-
path:
|
|
396
|
+
path: error.md
|
|
395
397
|
when: failed
|
|
396
398
|
```
|
|
397
399
|
|
|
@@ -15,7 +15,7 @@ description: |
|
|
|
15
15
|
- Git integration with worktrees
|
|
16
16
|
- Error handling and retries
|
|
17
17
|
- Checkpoints and progress tracking
|
|
18
|
-
- Variable templating with
|
|
18
|
+
- Variable templating with Nunjucks
|
|
19
19
|
- Output generation
|
|
20
20
|
|
|
21
21
|
# Optional: Workflow-level settings
|
|
@@ -142,7 +142,7 @@ steps:
|
|
|
142
142
|
# to avoid conflicts with skills from other plugins or built-in commands.
|
|
143
143
|
- name: generate-plan
|
|
144
144
|
type: prompt
|
|
145
|
-
prompt: /sdlc-plan --type {{ variables.plan_type }} --output_dir "
|
|
145
|
+
prompt: /sdlc-plan --type {{ variables.plan_type }} --output_dir "{{ output_dir }}" {{ variables.task }}
|
|
146
146
|
checkpoint: true
|
|
147
147
|
timeout-minutes: 20
|
|
148
148
|
|
|
@@ -213,7 +213,7 @@ steps:
|
|
|
213
213
|
prompt: |
|
|
214
214
|
## Ralph Loop Iteration
|
|
215
215
|
|
|
216
|
-
Read the implementation plan at
|
|
216
|
+
Read the implementation plan at {{ output_dir }}/plan.md
|
|
217
217
|
|
|
218
218
|
Implement the NEXT INCOMPLETE milestone:
|
|
219
219
|
1. Read the plan and identify the next incomplete milestone
|
|
@@ -229,7 +229,7 @@ steps:
|
|
|
229
229
|
|
|
230
230
|
Do NOT output the completion JSON until every milestone is genuinely finished.
|
|
231
231
|
|
|
232
|
-
Current iteration state is tracked in
|
|
232
|
+
Current iteration state is tracked in {{ output_dir }}/ralph-implement-incrementally.md
|
|
233
233
|
|
|
234
234
|
# Maximum iterations before stopping (can use variable)
|
|
235
235
|
max-iterations: "{{ variables.max_iterations }}"
|
|
@@ -249,15 +249,15 @@ steps:
|
|
|
249
249
|
# ==================== REVIEW STEP ====================
|
|
250
250
|
- name: review-implementation
|
|
251
251
|
type: prompt
|
|
252
|
-
prompt: /sdlc-review "
|
|
252
|
+
prompt: /sdlc-review "{{ output_dir }}/plan.md" minor
|
|
253
253
|
checkpoint: true
|
|
254
254
|
|
|
255
255
|
# ==================== CONDITIONAL STEP ====================
|
|
256
|
-
# Execute steps based on
|
|
256
|
+
# Execute steps based on Nunjucks condition
|
|
257
257
|
- name: fix-validation-issues
|
|
258
258
|
type: conditional
|
|
259
259
|
|
|
260
|
-
#
|
|
260
|
+
# Nunjucks expression that evaluates to true/false
|
|
261
261
|
# This checks if there are any issues with severity >= fix_severity
|
|
262
262
|
condition: "{{ outputs.review_implementation.issues | selectattr('severity', 'ge', variables.fix_severity) | list | length > 0 }}"
|
|
263
263
|
|
|
@@ -295,7 +295,7 @@ steps:
|
|
|
295
295
|
Please review the implementation and validation results.
|
|
296
296
|
|
|
297
297
|
Review the following:
|
|
298
|
-
- Implementation plan:
|
|
298
|
+
- Implementation plan: {{ output_dir }}/plan.md
|
|
299
299
|
- Review results: outputs.review_implementation
|
|
300
300
|
|
|
301
301
|
Respond with:
|
|
@@ -333,23 +333,23 @@ steps:
|
|
|
333
333
|
- Review results: {{ outputs.review_implementation | tojson }}
|
|
334
334
|
- PR created: {{ outputs.create_pull_request is defined }}
|
|
335
335
|
|
|
336
|
-
Save the summary to
|
|
336
|
+
Save the summary to {{ output_dir }}/summary.md
|
|
337
337
|
|
|
338
338
|
# Optional: Output artifacts
|
|
339
339
|
outputs:
|
|
340
340
|
# Generated when workflow completes successfully
|
|
341
341
|
- name: implementation-report
|
|
342
|
-
#
|
|
342
|
+
# Nunjucks template file (resolved from workflow dir, agentic/templates/, or bundled templates)
|
|
343
343
|
template: implementation-report.md.j2
|
|
344
344
|
# Output file path (relative to workflow directory)
|
|
345
|
-
path:
|
|
345
|
+
path: "{{ output_dir }}/report.md"
|
|
346
346
|
# When to generate: completed or failed
|
|
347
347
|
when: completed
|
|
348
348
|
|
|
349
349
|
# Generated when workflow fails
|
|
350
350
|
- name: error-report
|
|
351
351
|
template: error-report.md.j2
|
|
352
|
-
path:
|
|
352
|
+
path: "{{ output_dir }}/error.md"
|
|
353
353
|
when: failed
|
|
354
354
|
|
|
355
355
|
# ==================== USAGE EXAMPLES ====================
|
|
@@ -415,13 +415,13 @@ outputs:
|
|
|
415
415
|
#
|
|
416
416
|
# ==================== BUILT-IN VARIABLES ====================
|
|
417
417
|
#
|
|
418
|
-
# Available in all
|
|
418
|
+
# Available in all Nunjucks templates:
|
|
419
419
|
# - {{ workflow_id }} - Unique workflow execution ID
|
|
420
420
|
# - {{ workflow_name }} - Workflow name from YAML
|
|
421
421
|
# - {{ variables.name }} - User-defined variables
|
|
422
422
|
# - {{ outputs.step_name.field }} - Step outputs
|
|
423
423
|
#
|
|
424
|
-
# ====================
|
|
424
|
+
# ==================== NUNJUCKS FILTERS ====================
|
|
425
425
|
#
|
|
426
426
|
# Common filters for templating:
|
|
427
427
|
# - {{ list | length }} - Get list length
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Checkpoint management for workflow sessions. */
|
|
2
|
-
export declare function getCheckpointPath(workflowId: string,
|
|
3
|
-
export declare function createCheckpoint(workflowId: string, step: string, context: string, progress: string,
|
|
4
|
-
export declare function readCheckpoints(workflowId: string,
|
|
5
|
-
export declare function getLatestCheckpoint(workflowId: string,
|
|
2
|
+
export declare function getCheckpointPath(workflowId: string, outputDir: string): string;
|
|
3
|
+
export declare function createCheckpoint(workflowId: string, step: string, context: string, progress: string, outputDir: string, notes?: string, issues?: string): string;
|
|
4
|
+
export declare function readCheckpoints(workflowId: string, outputDir: string): Record<string, unknown>[];
|
|
5
|
+
export declare function getLatestCheckpoint(workflowId: string, outputDir: string): Record<string, unknown> | null;
|
|
@@ -3,16 +3,15 @@ import { appendFileSync, existsSync, mkdirSync, readFileSync } from "node:fs";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import yaml from "js-yaml";
|
|
5
5
|
// --- Path helper ---
|
|
6
|
-
export function getCheckpointPath(workflowId,
|
|
7
|
-
|
|
8
|
-
return path.join(root, "agentic", "outputs", workflowId, "checkpoint.md");
|
|
6
|
+
export function getCheckpointPath(workflowId, outputDir) {
|
|
7
|
+
return path.join(outputDir, "checkpoint.md");
|
|
9
8
|
}
|
|
10
9
|
// --- Create checkpoint ---
|
|
11
|
-
export function createCheckpoint(workflowId, step, context, progress, notes = "", issues = ""
|
|
12
|
-
const checkpointPath = getCheckpointPath(workflowId,
|
|
10
|
+
export function createCheckpoint(workflowId, step, context, progress, outputDir, notes = "", issues = "") {
|
|
11
|
+
const checkpointPath = getCheckpointPath(workflowId, outputDir);
|
|
13
12
|
const dir = path.dirname(checkpointPath);
|
|
14
13
|
mkdirSync(dir, { recursive: true });
|
|
15
|
-
const existing = readCheckpoints(workflowId,
|
|
14
|
+
const existing = readCheckpoints(workflowId, outputDir);
|
|
16
15
|
const checkpointNum = existing.length + 1;
|
|
17
16
|
const checkpointId = `chk-${String(checkpointNum).padStart(3, "0")}`;
|
|
18
17
|
const timestamp = new Date().toISOString();
|
|
@@ -49,8 +48,8 @@ export function createCheckpoint(workflowId, step, context, progress, notes = ""
|
|
|
49
48
|
return checkpointId;
|
|
50
49
|
}
|
|
51
50
|
// --- Read checkpoints ---
|
|
52
|
-
export function readCheckpoints(workflowId,
|
|
53
|
-
const checkpointPath = getCheckpointPath(workflowId,
|
|
51
|
+
export function readCheckpoints(workflowId, outputDir) {
|
|
52
|
+
const checkpointPath = getCheckpointPath(workflowId, outputDir);
|
|
54
53
|
if (!existsSync(checkpointPath)) {
|
|
55
54
|
return [];
|
|
56
55
|
}
|
|
@@ -80,8 +79,8 @@ export function readCheckpoints(workflowId, repoRoot) {
|
|
|
80
79
|
return checkpoints;
|
|
81
80
|
}
|
|
82
81
|
// --- Get latest checkpoint ---
|
|
83
|
-
export function getLatestCheckpoint(workflowId,
|
|
84
|
-
const checkpoints = readCheckpoints(workflowId,
|
|
82
|
+
export function getLatestCheckpoint(workflowId, outputDir) {
|
|
83
|
+
const checkpoints = readCheckpoints(workflowId, outputDir);
|
|
85
84
|
return checkpoints.length > 0 ? checkpoints[checkpoints.length - 1] : null;
|
|
86
85
|
}
|
|
87
86
|
//# sourceMappingURL=manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/checkpoints/manager.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,sBAAsB;AAEtB,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/checkpoints/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ You are the workflow orchestrator. Your job is to evaluate the current workflow
|
|
|
21
21
|
|
|
22
22
|
### Condition Evaluation
|
|
23
23
|
|
|
24
|
-
For conditional steps, evaluate the
|
|
24
|
+
For conditional steps, evaluate the Nunjucks condition using the available context:
|
|
25
25
|
|
|
26
26
|
- `outputs.{step_name}` - Previous step outputs
|
|
27
27
|
- `variables.{var_name}` - Workflow variables
|
|
@@ -85,7 +85,7 @@ For conditional steps, evaluate the Jinja2 condition using the available context
|
|
|
85
85
|
|
|
86
86
|
3. **Determine Next Action**
|
|
87
87
|
- Based on step dependencies and conditions
|
|
88
|
-
- Evaluate any
|
|
88
|
+
- Evaluate any Nunjucks conditions
|
|
89
89
|
- Identify the appropriate action type
|
|
90
90
|
|
|
91
91
|
4. **Return JSON Decision**
|
package/dist/cli.js
CHANGED
|
@@ -10,7 +10,7 @@ function optBool(val) {
|
|
|
10
10
|
function optStringArray(val) {
|
|
11
11
|
return Array.isArray(val) && val.every((v) => typeof v === "string") ? val : undefined;
|
|
12
12
|
}
|
|
13
|
-
import { CliExitError, cmdAuthoringDir, cmdCancel, cmdConfig, cmdConfigure, cmdInit, cmdInput, cmdList, cmdReleaseNotes, cmdResume, cmdRun, cmdSkillsDir, cmdStatus, cmdUpdate, cmdVersion, cmdWorkflows, getVersion, } from "./commands/index.js";
|
|
13
|
+
import { CliExitError, cmdAuthoringDir, cmdCancel, cmdConfig, cmdConfigure, cmdInit, cmdInput, cmdList, cmdPaths, cmdReleaseNotes, cmdResume, cmdRun, cmdSkillsDir, cmdStatus, cmdUpdate, cmdVersion, cmdWorkflows, getVersion, } from "./commands/index.js";
|
|
14
14
|
const program = new Command()
|
|
15
15
|
.name("agentic-forge")
|
|
16
16
|
.version(getVersion())
|
|
@@ -26,6 +26,7 @@ program
|
|
|
26
26
|
.option("--from-step <step>", "resume from a specific step")
|
|
27
27
|
.option("--no-interactive", "disable interactive prompts for missing variables")
|
|
28
28
|
.option("--terminal-output <mode>", "terminal output granularity (base or all)")
|
|
29
|
+
.option("--slug <slug>", "custom slug appended to the workflow run ID")
|
|
29
30
|
.action(async (workflow, vars, opts) => {
|
|
30
31
|
await cmdRun({
|
|
31
32
|
workflow,
|
|
@@ -35,6 +36,7 @@ program
|
|
|
35
36
|
fromStep: optString(opts.fromStep),
|
|
36
37
|
interactive: opts.interactive !== false,
|
|
37
38
|
terminalOutput: optString(opts.terminalOutput),
|
|
39
|
+
slug: optString(opts.slug),
|
|
38
40
|
});
|
|
39
41
|
});
|
|
40
42
|
// resume command
|
|
@@ -87,13 +89,23 @@ program
|
|
|
87
89
|
// init command
|
|
88
90
|
program
|
|
89
91
|
.command("init")
|
|
90
|
-
.description("
|
|
91
|
-
.option("--force", "overwrite existing workflow files")
|
|
92
|
+
.description("Initialize agentic-forge directory (global by default, or --local for project)")
|
|
93
|
+
.option("--force", "overwrite existing workflow files and config")
|
|
92
94
|
.option("--list", "list available bundled workflows without copying")
|
|
95
|
+
.option("--local", "initialize project-local directory (cwd/agentic/)")
|
|
96
|
+
.option("--global", "initialize global user directory (default)")
|
|
97
|
+
.option("--config-only", "only create config, skip workflow copy")
|
|
98
|
+
.option("--workflows-only", "only copy workflows, skip config creation")
|
|
99
|
+
.option("--workflow <name>", "copy only the named bundled workflow")
|
|
93
100
|
.action((opts) => {
|
|
94
101
|
cmdInit({
|
|
95
102
|
force: optBool(opts.force),
|
|
96
103
|
listOnly: optBool(opts.list),
|
|
104
|
+
local: optBool(opts.local),
|
|
105
|
+
global: optBool(opts.global),
|
|
106
|
+
configOnly: optBool(opts.configOnly),
|
|
107
|
+
workflowsOnly: optBool(opts.workflowsOnly),
|
|
108
|
+
workflow: optString(opts.workflow),
|
|
97
109
|
});
|
|
98
110
|
});
|
|
99
111
|
// config command with subcommands
|
|
@@ -108,8 +120,15 @@ configCmd
|
|
|
108
120
|
.command("set")
|
|
109
121
|
.argument("<key>", "configuration key (dot notation)")
|
|
110
122
|
.argument("<value>", "value to set")
|
|
111
|
-
.
|
|
112
|
-
|
|
123
|
+
.option("--global", "write to global config")
|
|
124
|
+
.option("--local", "write to local project config")
|
|
125
|
+
.action((key, value, opts) => {
|
|
126
|
+
const scope = opts.global
|
|
127
|
+
? "global"
|
|
128
|
+
: opts.local
|
|
129
|
+
? "local"
|
|
130
|
+
: undefined;
|
|
131
|
+
cmdConfig("set", key, value, scope);
|
|
113
132
|
});
|
|
114
133
|
// version command
|
|
115
134
|
program
|
|
@@ -129,6 +148,13 @@ program
|
|
|
129
148
|
latest: optBool(opts.latest),
|
|
130
149
|
});
|
|
131
150
|
});
|
|
151
|
+
// paths command
|
|
152
|
+
program
|
|
153
|
+
.command("paths")
|
|
154
|
+
.description("Show resolved path configuration (global, local, and bundled directories)")
|
|
155
|
+
.action(() => {
|
|
156
|
+
cmdPaths();
|
|
157
|
+
});
|
|
132
158
|
// skills-dir command
|
|
133
159
|
program
|
|
134
160
|
.command("skills-dir")
|
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,YAAY,EACZ,eAAe,EACf,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,WAAW,CACX,sFAAsF,CACtF;KACA,QAAQ,CAAC,YAAY,EAAE,oCAAoC,CAAC;KAC5D,QAAQ,CAAC,WAAW,EAAE,uCAAuC,CAAC;KAC9D,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;KAChD,MAAM,CAAC,sBAAsB,EAAE,oDAAoD,CAAC;KACpF,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;KAC3D,MAAM,CAAC,kBAAkB,EAAE,mDAAmD,CAAC;KAC/E,MAAM,CAAC,0BAA0B,EAAE,2CAA2C,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,QAA4B,EAAE,IAAc,EAAE,IAA6B,EAAE,EAAE;IAC7F,MAAM,MAAM,CAAC;QACZ,QAAQ;QACR,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC;QAC9B,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClC,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,KAAK;QACvC,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
@@ -3,6 +3,7 @@ export { CliExitError, cmdRun, discoverWorkflow, listAvailableWorkflows, resolve
|
|
|
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";
|
package/dist/commands/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export { CliExitError, cmdRun, discoverWorkflow, listAvailableWorkflows, resolve
|
|
|
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";
|
|
@@ -1 +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"}
|
|
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"}
|