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.
- package/LICENSE +21 -21
- package/README.md +64 -24
- package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/SKILL.md +2 -2
- package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/references/REFERENCE.md +9 -3
- package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/references/workflow-example.yaml +15 -8
- package/dist/checkpoints/manager.d.ts +5 -0
- package/dist/checkpoints/manager.js +87 -0
- package/dist/checkpoints/manager.js.map +1 -0
- package/{src → dist}/claude/.claude/skills/analyze/SKILL.md +1 -1
- package/{src → dist}/claude/.claude/skills/create-checkpoint/SKILL.md +1 -1
- package/{src → dist}/claude/.claude/skills/create-log/SKILL.md +1 -1
- package/{src → dist}/claude/.claude/skills/fix-analyze/SKILL.md +1 -1
- package/{src → dist}/claude/.claude/skills/git-branch/SKILL.md +1 -1
- package/{src → dist}/claude/.claude/skills/git-commit/SKILL.md +1 -1
- package/{src → dist}/claude/.claude/skills/git-pr/SKILL.md +1 -1
- package/{src → dist}/claude/.claude/skills/sdlc-plan/SKILL.md +1 -1
- package/{src → dist}/claude/.claude/skills/sdlc-review/SKILL.md +1 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +173 -0
- package/dist/cli.js.map +1 -0
- 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 +2 -0
- package/dist/commands/config-cmd.js +30 -0
- package/dist/commands/config-cmd.js.map +1 -0
- package/{src/commands/index.ts → dist/commands/index.d.ts} +2 -10
- package/dist/commands/index.js +14 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.js +83 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/release-notes.d.ts +5 -0
- package/dist/commands/release-notes.js +68 -0
- package/dist/commands/release-notes.js.map +1 -0
- package/dist/commands/resume.d.ts +5 -0
- package/dist/commands/resume.js +79 -0
- package/dist/commands/resume.js.map +1 -0
- package/dist/commands/run.d.ts +27 -0
- package/dist/commands/run.js +243 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/shortcuts.d.ts +2 -0
- package/dist/commands/shortcuts.js +11 -0
- package/dist/commands/shortcuts.js.map +1 -0
- package/dist/commands/skills-dir.d.ts +2 -0
- package/dist/commands/skills-dir.js +9 -0
- package/dist/commands/skills-dir.js.map +1 -0
- package/dist/commands/status.d.ts +4 -0
- package/dist/commands/status.js +99 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update.d.ts +4 -0
- package/dist/commands/update.js +65 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/version.d.ts +3 -0
- package/dist/commands/version.js +26 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/commands/workflows.d.ts +4 -0
- package/dist/commands/workflows.js +111 -0
- package/dist/commands/workflows.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.js +110 -0
- package/dist/config.js.map +1 -0
- package/dist/console.d.ts +103 -0
- package/dist/console.js +670 -0
- package/dist/console.js.map +1 -0
- package/dist/executor.d.ts +27 -0
- package/dist/executor.js +236 -0
- package/dist/executor.js.map +1 -0
- package/dist/git/worktree.d.ts +23 -0
- package/dist/git/worktree.js +170 -0
- package/dist/git/worktree.js.map +1 -0
- package/dist/logging/logger.d.ts +27 -0
- package/dist/logging/logger.js +69 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/orchestrator.d.ts +44 -0
- package/dist/orchestrator.js +587 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/parser.d.ts +17 -0
- package/dist/parser.js +184 -0
- package/dist/parser.js.map +1 -0
- package/dist/progress.d.ts +29 -0
- package/dist/progress.js +275 -0
- package/dist/progress.js.map +1 -0
- package/dist/ralph-loop.d.ts +26 -0
- package/dist/ralph-loop.js +194 -0
- package/dist/ralph-loop.js.map +1 -0
- package/dist/renderer.d.ts +15 -0
- package/dist/renderer.js +123 -0
- package/dist/renderer.js.map +1 -0
- package/dist/runner.d.ts +84 -0
- package/dist/runner.js +529 -0
- package/dist/runner.js.map +1 -0
- package/dist/signal-manager.d.ts +16 -0
- package/dist/signal-manager.js +50 -0
- package/dist/signal-manager.js.map +1 -0
- package/dist/steps/base.d.ts +28 -0
- package/dist/steps/base.js +23 -0
- package/dist/steps/base.js.map +1 -0
- package/dist/steps/conditional-step.d.ts +12 -0
- package/dist/steps/conditional-step.js +106 -0
- package/dist/steps/conditional-step.js.map +1 -0
- package/{src/steps/index.ts → dist/steps/index.d.ts} +1 -9
- package/dist/steps/index.js +8 -0
- package/dist/steps/index.js.map +1 -0
- package/dist/steps/parallel-step.d.ts +11 -0
- package/dist/steps/parallel-step.js +166 -0
- package/dist/steps/parallel-step.js.map +1 -0
- package/dist/steps/prompt-step.d.ts +8 -0
- package/dist/steps/prompt-step.js +94 -0
- package/dist/steps/prompt-step.js.map +1 -0
- package/dist/steps/ralph-loop-step.d.ts +8 -0
- package/dist/steps/ralph-loop-step.js +132 -0
- package/dist/steps/ralph-loop-step.js.map +1 -0
- package/dist/steps/serial-step.d.ts +10 -0
- package/dist/steps/serial-step.js +57 -0
- package/dist/steps/serial-step.js.map +1 -0
- package/dist/types.d.ts +118 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +59 -2
- package/.gitattributes +0 -24
- package/.github/workflows/ci.yml +0 -70
- package/.markdownlint-cli2.jsonc +0 -16
- package/.prettierignore +0 -3
- package/.prettierrc +0 -6
- package/.vscode/agentic-forge.code-workspace +0 -26
- package/CHANGELOG.md +0 -100
- package/CLAUDE.md +0 -158
- package/CONTRIBUTING.md +0 -152
- package/biome.json +0 -21
- package/scripts/copy-assets.js +0 -21
- package/src/checkpoints/manager.ts +0 -119
- package/src/cli.ts +0 -182
- package/src/commands/config-cmd.ts +0 -28
- package/src/commands/init.ts +0 -96
- package/src/commands/release-notes.ts +0 -85
- package/src/commands/resume.ts +0 -103
- package/src/commands/run.ts +0 -234
- package/src/commands/shortcuts.ts +0 -11
- package/src/commands/skills-dir.ts +0 -11
- package/src/commands/status.ts +0 -112
- package/src/commands/update.ts +0 -64
- package/src/commands/version.ts +0 -27
- package/src/commands/workflows.ts +0 -129
- package/src/config.ts +0 -129
- package/src/console.ts +0 -790
- package/src/executor.ts +0 -354
- package/src/git/worktree.ts +0 -236
- package/src/logging/logger.ts +0 -95
- package/src/orchestrator.ts +0 -815
- package/src/parser.ts +0 -225
- package/src/progress.ts +0 -306
- package/src/ralph-loop.ts +0 -260
- package/src/renderer.ts +0 -164
- package/src/runner.ts +0 -634
- package/src/signal-manager.ts +0 -55
- package/src/steps/base.ts +0 -71
- package/src/steps/conditional-step.ts +0 -144
- package/src/steps/parallel-step.ts +0 -213
- package/src/steps/prompt-step.ts +0 -121
- package/src/steps/ralph-loop-step.ts +0 -186
- package/src/steps/serial-step.ts +0 -84
- package/src/types.ts +0 -141
- package/tests/config.test.ts +0 -219
- package/tests/console.test.ts +0 -506
- package/tests/executor.test.ts +0 -339
- package/tests/init.test.ts +0 -86
- package/tests/logger.test.ts +0 -110
- package/tests/parser.test.ts +0 -290
- package/tests/progress.test.ts +0 -345
- package/tests/ralph-loop.test.ts +0 -418
- package/tests/renderer.test.ts +0 -350
- package/tests/runner.test.ts +0 -497
- package/tests/setup.test.ts +0 -7
- package/tests/signal-manager.test.ts +0 -26
- package/tests/steps.test.ts +0 -412
- package/tests/worktree.test.ts +0 -411
- package/tsconfig.json +0 -18
- package/vitest.config.ts +0 -8
- /package/{src → dist}/agents/explorer.md +0 -0
- /package/{src → dist}/agents/reviewer.md +0 -0
- /package/{src → dist}/claude/.claude/skills/analyze/references/bug.md +0 -0
- /package/{src → dist}/claude/.claude/skills/analyze/references/debt.md +0 -0
- /package/{src → dist}/claude/.claude/skills/analyze/references/doc.md +0 -0
- /package/{src → dist}/claude/.claude/skills/analyze/references/security.md +0 -0
- /package/{src → dist}/claude/.claude/skills/analyze/references/style.md +0 -0
- /package/{src → dist}/claude/.claude/skills/orchestrate/SKILL.md +0 -0
- /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/bug.md +0 -0
- /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/chore.md +0 -0
- /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/feature.md +0 -0
- /package/{src → dist}/prompts/agentic-system.md +0 -0
- /package/{src → dist}/templates/analysis/bug.md.j2 +0 -0
- /package/{src → dist}/templates/analysis/debt.md.j2 +0 -0
- /package/{src → dist}/templates/analysis/doc.md.j2 +0 -0
- /package/{src → dist}/templates/analysis/security.md.j2 +0 -0
- /package/{src → dist}/templates/analysis/style.md.j2 +0 -0
- /package/{src → dist}/templates/analysis-summary.md.j2 +0 -0
- /package/{src → dist}/templates/checkpoint.md.j2 +0 -0
- /package/{src → dist}/templates/implementation-report.md.j2 +0 -0
- /package/{src → dist}/templates/memory.md.j2 +0 -0
- /package/{src → dist}/templates/plan-bug.md.j2 +0 -0
- /package/{src → dist}/templates/plan-chore.md.j2 +0 -0
- /package/{src → dist}/templates/plan-feature.md.j2 +0 -0
- /package/{src → dist}/templates/progress.json.j2 +0 -0
- /package/{src → dist}/templates/ralph-report.md.j2 +0 -0
- /package/{src → dist}/workflows/analyze-codebase-merge.yaml +0 -0
- /package/{src → dist}/workflows/analyze-codebase.yaml +0 -0
- /package/{src → dist}/workflows/analyze-single.yaml +0 -0
- /package/{src → dist}/workflows/demo.yaml +0 -0
- /package/{src → dist}/workflows/one-shot.yaml +0 -0
- /package/{src → dist}/workflows/plan-build-review.yaml +0 -0
- /package/{src → dist}/workflows/ralph-loop.yaml +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralph-loop-step.js","sourceRoot":"","sources":["../../src/steps/ralph-loop-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Serial step executor. */
|
|
2
|
+
import type { ConsoleOutput } from "../console.js";
|
|
3
|
+
import type { WorkflowLogger } from "../logging/logger.js";
|
|
4
|
+
import type { StepDefinition, WorkflowProgress } from "../types.js";
|
|
5
|
+
import { type BranchStepExecutor, type StepContext, StepExecutor, type StepResult } from "./base.js";
|
|
6
|
+
export declare class SerialStepExecutor extends StepExecutor {
|
|
7
|
+
private branchExecutor;
|
|
8
|
+
constructor(branchExecutor: BranchStepExecutor);
|
|
9
|
+
execute(step: StepDefinition, progress: WorkflowProgress, context: StepContext, logger: WorkflowLogger, console: ConsoleOutput): Promise<StepResult>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** Serial step executor. */
|
|
2
|
+
import { WORKFLOW_STATUS, updateStepCompleted, updateStepFailed } from "../progress.js";
|
|
3
|
+
import { StepExecutor, } from "./base.js";
|
|
4
|
+
export class SerialStepExecutor extends StepExecutor {
|
|
5
|
+
branchExecutor;
|
|
6
|
+
constructor(branchExecutor) {
|
|
7
|
+
super();
|
|
8
|
+
this.branchExecutor = branchExecutor;
|
|
9
|
+
}
|
|
10
|
+
async execute(step, progress, context, logger, console) {
|
|
11
|
+
if (!step.steps || step.steps.length === 0) {
|
|
12
|
+
logger.warning(step.name, "Serial step has no sub-steps");
|
|
13
|
+
updateStepCompleted(progress, step.name, "No sub-steps to execute");
|
|
14
|
+
console.stepComplete(step.name, "No sub-steps to execute");
|
|
15
|
+
return { success: true, outputSummary: "No sub-steps to execute" };
|
|
16
|
+
}
|
|
17
|
+
logger.info(step.name, `Starting serial execution of ${step.steps.length} steps`);
|
|
18
|
+
console.info(`Serial: executing ${step.steps.length} steps in sequence`);
|
|
19
|
+
let completedCount = 0;
|
|
20
|
+
for (const subStep of step.steps) {
|
|
21
|
+
try {
|
|
22
|
+
const result = await this.branchExecutor(subStep, progress, context, logger, console);
|
|
23
|
+
if (!result.success) {
|
|
24
|
+
logger.warning(step.name, `Serial block stopped at step '${subStep.name}' due to failure`);
|
|
25
|
+
const errorMsg = `Step '${subStep.name}' failed: ${result.error}`;
|
|
26
|
+
updateStepFailed(progress, step.name, errorMsg);
|
|
27
|
+
console.stepFailed(step.name, `Step '${subStep.name}' failed`);
|
|
28
|
+
progress.status = WORKFLOW_STATUS.FAILED;
|
|
29
|
+
return { success: false, error: errorMsg };
|
|
30
|
+
}
|
|
31
|
+
completedCount++;
|
|
32
|
+
if (progress.status === WORKFLOW_STATUS.FAILED) {
|
|
33
|
+
logger.warning(step.name, `Serial block stopped at step '${subStep.name}' due to failure`);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
const errStr = e instanceof Error ? e.message : String(e);
|
|
39
|
+
logger.error(subStep.name, `Step failed in serial block: ${errStr}`);
|
|
40
|
+
const errorMsg = `Step '${subStep.name}' failed: ${errStr}`;
|
|
41
|
+
updateStepFailed(progress, step.name, errorMsg);
|
|
42
|
+
console.stepFailed(step.name, `Step '${subStep.name}' failed`);
|
|
43
|
+
progress.status = WORKFLOW_STATUS.FAILED;
|
|
44
|
+
return { success: false, error: errorMsg };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (progress.status !== WORKFLOW_STATUS.FAILED) {
|
|
48
|
+
const outputSummary = `Completed ${completedCount}/${step.steps.length} steps`;
|
|
49
|
+
updateStepCompleted(progress, step.name, outputSummary);
|
|
50
|
+
console.stepComplete(step.name, outputSummary);
|
|
51
|
+
logger.info(step.name, outputSummary);
|
|
52
|
+
return { success: true, outputSummary };
|
|
53
|
+
}
|
|
54
|
+
return { success: false, error: "Serial execution failed" };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=serial-step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serial-step.js","sourceRoot":"","sources":["../../src/steps/serial-step.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/** Core types for agentic-forge workflow engine. */
|
|
2
|
+
export type StepType = "prompt" | "parallel" | "serial" | "conditional" | "ralph-loop" | "wait-for-human";
|
|
3
|
+
export declare const VALID_STEP_TYPES: StepType[];
|
|
4
|
+
export interface Variable {
|
|
5
|
+
name: string;
|
|
6
|
+
type: string;
|
|
7
|
+
required: boolean;
|
|
8
|
+
default?: unknown;
|
|
9
|
+
description?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface GitSettings {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
worktree: boolean;
|
|
14
|
+
autoCommit: boolean;
|
|
15
|
+
autoPr: boolean;
|
|
16
|
+
branchPrefix: string;
|
|
17
|
+
}
|
|
18
|
+
export interface StepGitSettings {
|
|
19
|
+
worktree: boolean;
|
|
20
|
+
autoPr: boolean;
|
|
21
|
+
branchPrefix: string;
|
|
22
|
+
}
|
|
23
|
+
export interface WorkflowSettings {
|
|
24
|
+
maxRetry: number;
|
|
25
|
+
timeoutMinutes: number;
|
|
26
|
+
trackProgress: boolean;
|
|
27
|
+
autofix: string;
|
|
28
|
+
terminalOutput: string;
|
|
29
|
+
bypassPermissions: boolean;
|
|
30
|
+
strictMode: boolean;
|
|
31
|
+
model: string | null;
|
|
32
|
+
requiredTools: string[];
|
|
33
|
+
git: GitSettings;
|
|
34
|
+
}
|
|
35
|
+
export interface StepDefinition {
|
|
36
|
+
name: string;
|
|
37
|
+
type: StepType;
|
|
38
|
+
prompt?: string | null;
|
|
39
|
+
agent?: string | null;
|
|
40
|
+
steps: StepDefinition[];
|
|
41
|
+
mergeStrategy: string;
|
|
42
|
+
mergeMode: string;
|
|
43
|
+
condition?: string | null;
|
|
44
|
+
thenSteps: StepDefinition[];
|
|
45
|
+
elseSteps: StepDefinition[];
|
|
46
|
+
maxIterations: number | string;
|
|
47
|
+
completionPromise?: string | null;
|
|
48
|
+
message?: string | null;
|
|
49
|
+
pollingInterval: number;
|
|
50
|
+
onTimeout: string;
|
|
51
|
+
model?: string | null;
|
|
52
|
+
stepTimeoutMinutes?: number | null;
|
|
53
|
+
stepMaxRetry?: number | null;
|
|
54
|
+
onError: string;
|
|
55
|
+
checkpoint: boolean;
|
|
56
|
+
dependsOn?: string | null;
|
|
57
|
+
git?: StepGitSettings | null;
|
|
58
|
+
}
|
|
59
|
+
export interface OutputDefinition {
|
|
60
|
+
name: string;
|
|
61
|
+
template: string;
|
|
62
|
+
path: string;
|
|
63
|
+
when: string;
|
|
64
|
+
}
|
|
65
|
+
export interface WorkflowDefinition {
|
|
66
|
+
name: string;
|
|
67
|
+
version: string;
|
|
68
|
+
description: string;
|
|
69
|
+
settings: WorkflowSettings;
|
|
70
|
+
variables: Variable[];
|
|
71
|
+
steps: StepDefinition[];
|
|
72
|
+
outputs: OutputDefinition[];
|
|
73
|
+
}
|
|
74
|
+
export type WorkflowStatus = "pending" | "running" | "completed" | "failed" | "paused" | "canceled";
|
|
75
|
+
export type StepStatus = "pending" | "running" | "completed" | "failed" | "skipped";
|
|
76
|
+
export interface StepProgress {
|
|
77
|
+
name: string;
|
|
78
|
+
status: string;
|
|
79
|
+
startedAt: string | null;
|
|
80
|
+
completedAt: string | null;
|
|
81
|
+
retryCount: number;
|
|
82
|
+
outputSummary: string;
|
|
83
|
+
error: string | null;
|
|
84
|
+
humanInput: string | null;
|
|
85
|
+
}
|
|
86
|
+
export interface ParallelBranch {
|
|
87
|
+
branchId: string;
|
|
88
|
+
status: string;
|
|
89
|
+
worktreePath: string;
|
|
90
|
+
progressFile: string;
|
|
91
|
+
}
|
|
92
|
+
export interface CurrentStepInfo {
|
|
93
|
+
name: string;
|
|
94
|
+
retryCount: number;
|
|
95
|
+
startedAt: string;
|
|
96
|
+
type?: string;
|
|
97
|
+
message?: string | null;
|
|
98
|
+
timeoutMinutes?: number;
|
|
99
|
+
onTimeout?: string;
|
|
100
|
+
humanInput?: string | null;
|
|
101
|
+
}
|
|
102
|
+
export interface WorkflowProgress {
|
|
103
|
+
schemaVersion: string;
|
|
104
|
+
workflowId: string;
|
|
105
|
+
workflowName: string;
|
|
106
|
+
status: string;
|
|
107
|
+
startedAt: string | null;
|
|
108
|
+
completedAt: string | null;
|
|
109
|
+
currentStep: CurrentStepInfo | null;
|
|
110
|
+
completedSteps: StepProgress[];
|
|
111
|
+
pendingSteps: string[];
|
|
112
|
+
runningSteps: string[];
|
|
113
|
+
parallelBranches: ParallelBranch[];
|
|
114
|
+
errors: Record<string, unknown>[];
|
|
115
|
+
variables: Record<string, unknown>;
|
|
116
|
+
stepOutputs: Record<string, unknown>;
|
|
117
|
+
workflowFile: string;
|
|
118
|
+
}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAYpD,MAAM,CAAC,MAAM,gBAAgB,GAAe;IAC3C,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,aAAa;IACb,YAAY;IACZ,gBAAgB;CAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-forge",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "YAML-based agentic workflow engine with multi-step execution, parallel orchestration, error recovery, and support for short and long-running operations"
|
|
3
|
+
"version": "0.7.1",
|
|
4
|
+
"description": "YAML-based agentic workflow engine with multi-step execution, parallel orchestration, error recovery, and support for short and long-running operations",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/e-stpierre/agentic-forge.git"
|
|
10
|
+
},
|
|
11
|
+
"bin": {
|
|
12
|
+
"agentic-forge": "dist/cli.js",
|
|
13
|
+
"af": "dist/cli.js"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public",
|
|
17
|
+
"registry": "https://registry.npmjs.org"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"agentic-forge-banner.png"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc && node scripts/copy-assets.js",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"check": "biome check . && prettier --check . && markdownlint-cli2",
|
|
28
|
+
"fix": "biome check --fix . && prettier --write . && markdownlint-cli2 --fix",
|
|
29
|
+
"dev": "tsc --watch",
|
|
30
|
+
"updates": "node scripts/check-updates.js check",
|
|
31
|
+
"updates:fix": "node scripts/check-updates.js fix"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@inquirer/confirm": "^6.0.10",
|
|
35
|
+
"@inquirer/input": "^5.0.10",
|
|
36
|
+
"commander": "^14.0.3",
|
|
37
|
+
"js-yaml": "^4.1.1",
|
|
38
|
+
"nunjucks": "^3.2.4",
|
|
39
|
+
"proper-lockfile": "^4.1.2"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@biomejs/biome": "^1.9.4",
|
|
43
|
+
"@types/js-yaml": "^4.0.9",
|
|
44
|
+
"@types/node": "^22.13.0",
|
|
45
|
+
"@types/nunjucks": "^3.2.6",
|
|
46
|
+
"@types/proper-lockfile": "^4.1.4",
|
|
47
|
+
"@vitest/coverage-v8": "^4.1.2",
|
|
48
|
+
"markdownlint-cli2": "^0.22.0",
|
|
49
|
+
"prettier": "^3.5.0",
|
|
50
|
+
"typescript": "^5.7.0",
|
|
51
|
+
"vitest": "^4.1.2"
|
|
52
|
+
},
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">=20"
|
|
55
|
+
},
|
|
56
|
+
"pnpm": {
|
|
57
|
+
"onlyBuiltDependencies": [
|
|
58
|
+
"@biomejs/biome",
|
|
59
|
+
"esbuild"
|
|
60
|
+
]
|
|
61
|
+
}
|
|
5
62
|
}
|
package/.gitattributes
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Enforce LF line endings for all text files
|
|
2
|
-
* text=auto eol=lf
|
|
3
|
-
|
|
4
|
-
# Explicitly set common file types
|
|
5
|
-
*.md text eol=lf
|
|
6
|
-
*.txt text eol=lf
|
|
7
|
-
*.json text eol=lf
|
|
8
|
-
*.yaml text eol=lf
|
|
9
|
-
*.yml text eol=lf
|
|
10
|
-
*.toml text eol=lf
|
|
11
|
-
*.sh text eol=lf
|
|
12
|
-
*.js text eol=lf
|
|
13
|
-
*.ts text eol=lf
|
|
14
|
-
*.html text eol=lf
|
|
15
|
-
*.css text eol=lf
|
|
16
|
-
*.xml text eol=lf
|
|
17
|
-
|
|
18
|
-
# Keep binary files as-is
|
|
19
|
-
*.png binary
|
|
20
|
-
*.jpg binary
|
|
21
|
-
*.jpeg binary
|
|
22
|
-
*.gif binary
|
|
23
|
-
*.ico binary
|
|
24
|
-
*.pdf binary
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
branches: [main]
|
|
6
|
-
|
|
7
|
-
concurrency:
|
|
8
|
-
group: ci-${{ github.event.pull_request.number }}
|
|
9
|
-
cancel-in-progress: true
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
lint-and-format:
|
|
13
|
-
name: Lint & Format
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
permissions:
|
|
16
|
-
contents: read
|
|
17
|
-
|
|
18
|
-
steps:
|
|
19
|
-
- name: Checkout repository
|
|
20
|
-
uses: actions/checkout@v4
|
|
21
|
-
|
|
22
|
-
- name: Setup Node.js
|
|
23
|
-
uses: actions/setup-node@v4
|
|
24
|
-
with:
|
|
25
|
-
node-version: "20"
|
|
26
|
-
|
|
27
|
-
- name: Setup pnpm
|
|
28
|
-
uses: pnpm/action-setup@v4
|
|
29
|
-
with:
|
|
30
|
-
version: 9
|
|
31
|
-
|
|
32
|
-
- name: Install dependencies
|
|
33
|
-
run: pnpm install --frozen-lockfile
|
|
34
|
-
|
|
35
|
-
- name: Lint and format check
|
|
36
|
-
run: pnpm check
|
|
37
|
-
|
|
38
|
-
test:
|
|
39
|
-
name: Tests (Node ${{ matrix.node-version }}, ${{ matrix.os }})
|
|
40
|
-
runs-on: ${{ matrix.os }}
|
|
41
|
-
permissions:
|
|
42
|
-
contents: read
|
|
43
|
-
strategy:
|
|
44
|
-
matrix:
|
|
45
|
-
os: [ubuntu-latest, windows-latest]
|
|
46
|
-
node-version: ["20", "22"]
|
|
47
|
-
fail-fast: false
|
|
48
|
-
|
|
49
|
-
steps:
|
|
50
|
-
- name: Checkout repository
|
|
51
|
-
uses: actions/checkout@v4
|
|
52
|
-
|
|
53
|
-
- name: Setup Node.js ${{ matrix.node-version }}
|
|
54
|
-
uses: actions/setup-node@v4
|
|
55
|
-
with:
|
|
56
|
-
node-version: ${{ matrix.node-version }}
|
|
57
|
-
|
|
58
|
-
- name: Setup pnpm
|
|
59
|
-
uses: pnpm/action-setup@v4
|
|
60
|
-
with:
|
|
61
|
-
version: 9
|
|
62
|
-
|
|
63
|
-
- name: Install dependencies
|
|
64
|
-
run: pnpm install --frozen-lockfile
|
|
65
|
-
|
|
66
|
-
- name: Build
|
|
67
|
-
run: pnpm build
|
|
68
|
-
|
|
69
|
-
- name: Run tests with coverage
|
|
70
|
-
run: pnpm test -- --coverage
|
package/.markdownlint-cli2.jsonc
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"config": {
|
|
3
|
-
"default": true,
|
|
4
|
-
"MD013": false, // Line length
|
|
5
|
-
"MD024": {
|
|
6
|
-
"siblings_only": true // Multiple headings with the same content
|
|
7
|
-
},
|
|
8
|
-
"MD025": {
|
|
9
|
-
"front_matter_title": "" // Don't treat frontmatter title as an h1
|
|
10
|
-
},
|
|
11
|
-
"MD033": false, // Inline HTML (used in README badges/layout)
|
|
12
|
-
"MD041": false // First line heading (not applicable to all .md files)
|
|
13
|
-
},
|
|
14
|
-
"globs": ["**/*.md"],
|
|
15
|
-
"ignores": ["agentic", "**/node_modules", ".git", "dist", "build"]
|
|
16
|
-
}
|
package/.prettierignore
DELETED
package/.prettierrc
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"folders": [
|
|
3
|
-
{
|
|
4
|
-
"path": ".."
|
|
5
|
-
}
|
|
6
|
-
],
|
|
7
|
-
"settings": {
|
|
8
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
9
|
-
"editor.formatOnSave": true,
|
|
10
|
-
"editor.wordWrap": "on",
|
|
11
|
-
"files.exclude": {
|
|
12
|
-
"**/.git": true
|
|
13
|
-
},
|
|
14
|
-
"search.exclude": {
|
|
15
|
-
"**/.git": true
|
|
16
|
-
},
|
|
17
|
-
"markdownlint.run": "onSave",
|
|
18
|
-
"prettier.resolveGlobalModules": false
|
|
19
|
-
},
|
|
20
|
-
"extensions": {
|
|
21
|
-
"recommendations": [
|
|
22
|
-
"esbenp.prettier-vscode",
|
|
23
|
-
"davidanson.vscode-markdownlint"
|
|
24
|
-
]
|
|
25
|
-
}
|
|
26
|
-
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 0.7.0 - 2026-04-04
|
|
4
|
-
|
|
5
|
-
- **Breaking:** Full rewrite from Python to TypeScript/Node.js
|
|
6
|
-
- **Breaking:** Renamed package from `agentic-sdlc` to `agentic-forge` (CLI command also renamed)
|
|
7
|
-
- **Breaking:** Removed Claude Code marketplace dependency; skills now loaded via `--add-dir`
|
|
8
|
-
- **Breaking:** Replaced Jinja2 templates with Nunjucks for template rendering
|
|
9
|
-
- **Breaking:** Distribution changed from PyPI (`uv tool install`) to npm (`npm i -g agentic-forge`)
|
|
10
|
-
- Ported all 14 CLI command handlers to TypeScript with Commander.js
|
|
11
|
-
- Ported workflow executor, orchestrator, and checkpoint manager to TypeScript
|
|
12
|
-
- Ported all step executors (prompt, serial, parallel, conditional, ralph-loop) with shared base class
|
|
13
|
-
- Ported runner module with Claude CLI subprocess management and stream-JSON parsing
|
|
14
|
-
- Ported progress tracking, signal management, and workflow logger
|
|
15
|
-
- Ported parallel step executor with git worktree management
|
|
16
|
-
- Added `skills-dir` command to print bundled skills path for `--add-dir` integration
|
|
17
|
-
- Skills, agents, and prompts bundled as npm package data
|
|
18
|
-
- Repository restructured: flat layout at root instead of `plugins/agentic-sdlc/`
|
|
19
|
-
- Added Biome for TypeScript/JSON linting and formatting
|
|
20
|
-
- Added markdownlint-cli2 for Markdown linting
|
|
21
|
-
- Added Vitest test suite
|
|
22
|
-
- CI updated from Python (pytest, uv) to Node.js (pnpm, vitest, biome)
|
|
23
|
-
- Fixed wait-for-human progress state and parallel concurrency cap
|
|
24
|
-
- Fixed 5 major correctness issues from code review
|
|
25
|
-
|
|
26
|
-
## 0.6.0 - 2026-02-15
|
|
27
|
-
|
|
28
|
-
- Added `workflow-builder` skill for creating, updating, explaining, validating, and debugging workflows
|
|
29
|
-
- Added parallel branch display in terminal with multi-branch status updates (BASE mode)
|
|
30
|
-
- Added queue-based message streaming for parallel steps (ALL mode)
|
|
31
|
-
- Added stream-JSON parsing for real-time Claude output processing
|
|
32
|
-
- Added model name detection and display in step headers (e.g., `sonnet-4.5`)
|
|
33
|
-
- Added `strict-mode` setting for failing on undefined template variables
|
|
34
|
-
- Added config file copy during `init` command
|
|
35
|
-
- Added comprehensive test coverage for console, runner, init, parser, and step modules
|
|
36
|
-
- Rewrote console output module with `ParallelOutputHandler` for parallel execution display
|
|
37
|
-
- Increased default `max_iterations` from 5-10 to 25 across all workflows
|
|
38
|
-
- Changed `create_pr` default to `false` across all workflows
|
|
39
|
-
- Changed `bypass-permissions` default to `false` in ralph-loop workflow
|
|
40
|
-
- Set `terminal-output: base` as explicit default in plan-build-review and ralph-loop workflows
|
|
41
|
-
- Consolidated workflow documentation from `docs/` into `workflow-builder` skill references
|
|
42
|
-
- Fixed workflow resume losing state on re-run
|
|
43
|
-
- Fixed fix-issues step in plan-build-review reading wrong file for review output
|
|
44
|
-
- Fixed JSON template placeholders in fix-issues step replaced with proper syntax
|
|
45
|
-
|
|
46
|
-
## 0.5.0 - 2026-01-25
|
|
47
|
-
|
|
48
|
-
- Converted all CLI commands to skills for consistency and reusability
|
|
49
|
-
- Added `create-skill` skill for generating new skills from templates
|
|
50
|
-
- Renamed `validate` command to `sdlc-review` skill
|
|
51
|
-
- Prefixed plan and review skills with `sdlc-` to avoid naming conflicts with Claude Code built-ins
|
|
52
|
-
- Added workflow-id argument support across skills
|
|
53
|
-
- Fixed step output and reference handling between workflow steps
|
|
54
|
-
- Fixed full skill name usage in workflows to avoid command conflicts
|
|
55
|
-
|
|
56
|
-
## 0.4.0 - 2026-01-25
|
|
57
|
-
|
|
58
|
-
- Added `fix-analysis` skill for iteratively fixing issues from analysis documents
|
|
59
|
-
- Added `workflows` CLI command to list available workflows with descriptions
|
|
60
|
-
- Removed `/build`, `one-shot`, and `analyze` CLI commands in favor of workflow-based execution
|
|
61
|
-
- Refactored analyze workflows to use the new `fix-analysis` skill
|
|
62
|
-
- Removed experimental-plugins directory
|
|
63
|
-
- Fixed `git-pr` command to fetch and compare against remote base branch to avoid stale local branch issues
|
|
64
|
-
|
|
65
|
-
## 0.3.0 - 2026-01-24
|
|
66
|
-
|
|
67
|
-
- Standardized US English spelling across all code, commands, and documentation (e.g., `analyse` to `analyze`)
|
|
68
|
-
- Renamed workflow files from `analyse-*.yaml` to `analyze-*.yaml` and `demo-workflow.yaml` to `demo.yaml`
|
|
69
|
-
- Removed interactive-sdlc plugin
|
|
70
|
-
|
|
71
|
-
## 0.2.0 - 2026-01-21
|
|
72
|
-
|
|
73
|
-
- Added `version` command to display installed version
|
|
74
|
-
- Added `release-notes` command to display release notes from CHANGELOG.md
|
|
75
|
-
- Added `update` command for self-updating from local marketplace
|
|
76
|
-
- Added `add-improvement` command for tracking improvement suggestions
|
|
77
|
-
- Added workflow auto-discovery with search order: project-local, user-global, bundled
|
|
78
|
-
- Added `--list` flag for `run` command to list all available workflows
|
|
79
|
-
- Added demo workflow for showcasing capabilities
|
|
80
|
-
- Fixed `list` command to correctly find workflow progress files in `agentic/outputs/`
|
|
81
|
-
- Fixed workflow logging to capture agent messages in both base and terminal-output modes
|
|
82
|
-
- Fixed ralph-loop first iteration template evaluation
|
|
83
|
-
- Fixed plan output when used in workflow context
|
|
84
|
-
- Fixed plan-build-validate build step failures and ralph failure handling
|
|
85
|
-
|
|
86
|
-
## 0.1.0 - 2026-01-20
|
|
87
|
-
|
|
88
|
-
- Initial release of agentic-sdlc
|
|
89
|
-
- YAML-based workflow orchestration with sequential, parallel, and Ralph loop step types
|
|
90
|
-
- Checkpoint manager for session state tracking
|
|
91
|
-
- Python CLI for workflow management (`run`, `init`)
|
|
92
|
-
- Core commands: plan, build, validate, analyze, orchestrate
|
|
93
|
-
- Git commands: git-branch, git-commit, git-pr
|
|
94
|
-
- Explorer and reviewer agents for specialized tasks
|
|
95
|
-
- Jinja2 templates for plans, reports, and analysis outputs
|
|
96
|
-
- Git worktree support for parallel step execution
|
|
97
|
-
- Console output module for workflow progress display
|
|
98
|
-
- Plugin discovery and download system with marketplace structure
|
|
99
|
-
- Claude GitHub Actions for CI
|
|
100
|
-
- NuGet vulnerability detection and security analysis commands
|