@agentic-coding-framework/orchestrator-core 0.2.0 → 0.3.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/dist/__tests__/dispatch.test.d.ts +2 -0
- package/dist/__tests__/dispatch.test.d.ts.map +1 -0
- package/dist/__tests__/dispatch.test.js +373 -0
- package/dist/__tests__/dispatch.test.js.map +1 -0
- package/dist/__tests__/rules.test.d.ts +2 -0
- package/dist/__tests__/rules.test.d.ts.map +1 -0
- package/dist/__tests__/rules.test.js +125 -0
- package/dist/__tests__/rules.test.js.map +1 -0
- package/dist/__tests__/state.test.d.ts +2 -0
- package/dist/__tests__/state.test.d.ts.map +1 -0
- package/dist/__tests__/state.test.js +229 -0
- package/dist/__tests__/state.test.js.map +1 -0
- package/dist/auto.d.ts +3 -58
- package/dist/auto.d.ts.map +1 -0
- package/dist/auto.js +125 -35
- package/dist/auto.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +47 -5
- package/dist/cli.js.map +1 -0
- package/dist/dispatch.d.ts +40 -90
- package/dist/dispatch.d.ts.map +1 -0
- package/dist/dispatch.js +111 -59
- package/dist/dispatch.js.map +1 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -0
- package/dist/rules.d.ts +21 -38
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +17 -67
- package/dist/rules.js.map +1 -0
- package/dist/state.d.ts +15 -37
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +57 -2
- package/dist/state.js.map +1 -0
- package/package.json +2 -22
package/dist/dispatch.js
CHANGED
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
* to drive the micro-waterfall pipeline. All decisions are deterministic —
|
|
7
7
|
* zero LLM tokens.
|
|
8
8
|
*
|
|
9
|
-
* Main entry
|
|
9
|
+
* Main entry points:
|
|
10
|
+
* dispatch(projectRoot) — dispatch next step (mutates STATE)
|
|
11
|
+
* peek(projectRoot) — [FIX P1] read-only dispatch preview (no mutation)
|
|
10
12
|
*/
|
|
11
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
14
|
exports.dispatch = dispatch;
|
|
15
|
+
exports.peek = peek;
|
|
13
16
|
exports.buildPrompt = buildPrompt;
|
|
14
17
|
exports.parseHandoff = parseHandoff;
|
|
15
18
|
exports.applyHandoff = applyHandoff;
|
|
@@ -37,6 +40,22 @@ const rules_1 = require("./rules");
|
|
|
37
40
|
* steps, etc.).
|
|
38
41
|
*/
|
|
39
42
|
function dispatch(projectRoot) {
|
|
43
|
+
return _dispatch(projectRoot, false);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* [FIX P1] Read-only dispatch preview — returns the same DispatchResult
|
|
47
|
+
* as dispatch() but never writes to STATE.json.
|
|
48
|
+
*
|
|
49
|
+
* Use cases:
|
|
50
|
+
* - dispatch-claude-code.sh: check if dispatch would succeed before committing
|
|
51
|
+
* - Monitoring / debugging without state contamination
|
|
52
|
+
* - OpenClaw dry-run checks
|
|
53
|
+
*/
|
|
54
|
+
function peek(projectRoot) {
|
|
55
|
+
return _dispatch(projectRoot, true);
|
|
56
|
+
}
|
|
57
|
+
/** Internal dispatch implementation with optional dry-run mode */
|
|
58
|
+
function _dispatch(projectRoot, dryRun) {
|
|
40
59
|
const state = (0, state_1.readState)(projectRoot);
|
|
41
60
|
// ── Story complete ──
|
|
42
61
|
if (state.step === "done") {
|
|
@@ -50,9 +69,11 @@ function dispatch(projectRoot) {
|
|
|
50
69
|
// ── Timeout check ──
|
|
51
70
|
if (state.status === "running") {
|
|
52
71
|
if ((0, state_1.isTimedOut)(state)) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
72
|
+
if (!dryRun) {
|
|
73
|
+
state.status = "timeout";
|
|
74
|
+
state.completed_at = new Date().toISOString();
|
|
75
|
+
(0, state_1.writeState)(projectRoot, state);
|
|
76
|
+
}
|
|
56
77
|
const elapsed = elapsedMinutes(state.dispatched_at);
|
|
57
78
|
return {
|
|
58
79
|
type: "timeout",
|
|
@@ -69,7 +90,7 @@ function dispatch(projectRoot) {
|
|
|
69
90
|
}
|
|
70
91
|
// ── Requires human (review checkpoint) ──
|
|
71
92
|
if (rule.requires_human && state.status !== "pass") {
|
|
72
|
-
if (state.status !== "needs_human") {
|
|
93
|
+
if (state.status !== "needs_human" && !dryRun) {
|
|
73
94
|
state.status = "needs_human";
|
|
74
95
|
(0, state_1.writeState)(projectRoot, state);
|
|
75
96
|
}
|
|
@@ -92,7 +113,8 @@ function dispatch(projectRoot) {
|
|
|
92
113
|
state.files_changed = [];
|
|
93
114
|
// Check if we just reached "done"
|
|
94
115
|
if (state.step === "done") {
|
|
95
|
-
|
|
116
|
+
if (!dryRun)
|
|
117
|
+
(0, state_1.writeState)(projectRoot, state);
|
|
96
118
|
return {
|
|
97
119
|
type: "done",
|
|
98
120
|
story: state.story ?? "(no story)",
|
|
@@ -103,7 +125,8 @@ function dispatch(projectRoot) {
|
|
|
103
125
|
const newRule = (0, rules_1.getRule)(state.step);
|
|
104
126
|
if (newRule.requires_human) {
|
|
105
127
|
state.status = "needs_human";
|
|
106
|
-
|
|
128
|
+
if (!dryRun)
|
|
129
|
+
(0, state_1.writeState)(projectRoot, state);
|
|
107
130
|
return {
|
|
108
131
|
type: "needs_human",
|
|
109
132
|
step: state.step,
|
|
@@ -118,12 +141,15 @@ function dispatch(projectRoot) {
|
|
|
118
141
|
if (state.status === "failing") {
|
|
119
142
|
if ((0, state_1.isMaxedOut)(state)) {
|
|
120
143
|
state.status = "needs_human";
|
|
121
|
-
|
|
144
|
+
if (!dryRun)
|
|
145
|
+
(0, state_1.writeState)(projectRoot, state);
|
|
122
146
|
return {
|
|
123
147
|
type: "blocked",
|
|
124
148
|
step: state.step,
|
|
125
149
|
reason: `Max attempts (${state.max_attempts}) exhausted at step "${state.step}". ` +
|
|
126
|
-
(state.reason
|
|
150
|
+
(state.reason
|
|
151
|
+
? `Last reason: ${state.reason}`
|
|
152
|
+
: "No specific reason."),
|
|
127
153
|
};
|
|
128
154
|
}
|
|
129
155
|
const target = (0, rules_1.getFailTarget)(state.step, state.reason);
|
|
@@ -144,14 +170,16 @@ function dispatch(projectRoot) {
|
|
|
144
170
|
// ── Dispatch executor ──
|
|
145
171
|
const currentRule = (0, rules_1.getRule)(state.step);
|
|
146
172
|
const prompt = buildPrompt(state, currentRule);
|
|
147
|
-
|
|
148
|
-
|
|
173
|
+
if (!dryRun) {
|
|
174
|
+
const running = (0, state_1.markRunning)(state);
|
|
175
|
+
(0, state_1.writeState)(projectRoot, running);
|
|
176
|
+
}
|
|
149
177
|
// Detect framework adoption level so caller knows the context richness
|
|
150
178
|
const framework = detectFramework(projectRoot);
|
|
151
179
|
return {
|
|
152
180
|
type: "dispatched",
|
|
153
|
-
step:
|
|
154
|
-
attempt:
|
|
181
|
+
step: state.step,
|
|
182
|
+
attempt: state.attempt,
|
|
155
183
|
prompt,
|
|
156
184
|
fw_lv: framework.level,
|
|
157
185
|
};
|
|
@@ -261,11 +289,17 @@ function parseYamlFrontMatter(content) {
|
|
|
261
289
|
step: yaml["step"] ?? null,
|
|
262
290
|
attempt: yaml["attempt"] ? parseInt(yaml["attempt"], 10) : null,
|
|
263
291
|
status: yaml["status"] ?? null,
|
|
264
|
-
reason:
|
|
292
|
+
reason: yaml["reason"] || null,
|
|
265
293
|
files_changed: parseYamlList(yaml["files_changed"]),
|
|
266
|
-
tests_pass: yaml["tests_pass"]
|
|
267
|
-
|
|
268
|
-
|
|
294
|
+
tests_pass: yaml["tests_pass"]
|
|
295
|
+
? parseInt(yaml["tests_pass"], 10)
|
|
296
|
+
: null,
|
|
297
|
+
tests_fail: yaml["tests_fail"]
|
|
298
|
+
? parseInt(yaml["tests_fail"], 10)
|
|
299
|
+
: null,
|
|
300
|
+
tests_skip: yaml["tests_skip"]
|
|
301
|
+
? parseInt(yaml["tests_skip"], 10)
|
|
302
|
+
: null,
|
|
269
303
|
body,
|
|
270
304
|
};
|
|
271
305
|
}
|
|
@@ -300,6 +334,11 @@ function parseFallback(content) {
|
|
|
300
334
|
* Minimal YAML parser for flat key: value pairs.
|
|
301
335
|
* Handles simple scalars and inline lists. NOT a full YAML parser —
|
|
302
336
|
* just enough for HANDOFF.md front matter.
|
|
337
|
+
*
|
|
338
|
+
* [FIX P2] Improved to handle:
|
|
339
|
+
* - Inline bracket lists: `files: [a.go, b.ts]`
|
|
340
|
+
* - Values containing colons: `reason: needs_clarification: details here`
|
|
341
|
+
* (only first colon splits key/value, rest is part of the value)
|
|
303
342
|
*/
|
|
304
343
|
function parseSimpleYaml(block) {
|
|
305
344
|
const result = {};
|
|
@@ -319,16 +358,25 @@ function parseSimpleYaml(block) {
|
|
|
319
358
|
result[currentKey] = JSON.stringify(listValues);
|
|
320
359
|
listValues = [];
|
|
321
360
|
}
|
|
322
|
-
// Key: value pair
|
|
361
|
+
// Key: value pair — use FIRST colon only, rest is value
|
|
323
362
|
const colonIdx = trimmed.indexOf(":");
|
|
324
363
|
if (colonIdx > 0) {
|
|
325
364
|
const key = trimmed.slice(0, colonIdx).trim();
|
|
326
365
|
const value = trimmed.slice(colonIdx + 1).trim();
|
|
327
366
|
currentKey = key;
|
|
328
367
|
if (value) {
|
|
329
|
-
//
|
|
330
|
-
|
|
331
|
-
|
|
368
|
+
// [FIX P2] Handle inline bracket lists: `files: [a.go, b.ts]`
|
|
369
|
+
if (value.startsWith("[") && value.endsWith("]")) {
|
|
370
|
+
const inner = value.slice(1, -1);
|
|
371
|
+
const items = inner.split(",").map((s) => s.trim()).filter(Boolean);
|
|
372
|
+
result[key] = JSON.stringify(items);
|
|
373
|
+
currentKey = null;
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
// "null" → empty
|
|
377
|
+
result[key] = value === "null" ? "" : value;
|
|
378
|
+
currentKey = null; // not expecting list items
|
|
379
|
+
}
|
|
332
380
|
}
|
|
333
381
|
// else: value on next lines (list)
|
|
334
382
|
}
|
|
@@ -456,9 +504,6 @@ function rejectReview(projectRoot, reason, humanNote) {
|
|
|
456
504
|
* Ensure STATE.json exists. If not, auto-initialize it.
|
|
457
505
|
* This allows startStory() and startCustom() to work on ANY project,
|
|
458
506
|
* even if the Agentic Coding Framework hasn't been set up yet.
|
|
459
|
-
*
|
|
460
|
-
* Project name is inferred from: package.json name → go.mod module →
|
|
461
|
-
* directory name (in that order).
|
|
462
507
|
*/
|
|
463
508
|
function ensureState(projectRoot) {
|
|
464
509
|
const path = (0, path_1.join)(projectRoot, ".ai", "STATE.json");
|
|
@@ -474,19 +519,25 @@ function ensureState(projectRoot) {
|
|
|
474
519
|
if (pkg.name)
|
|
475
520
|
projectName = pkg.name;
|
|
476
521
|
}
|
|
477
|
-
catch {
|
|
522
|
+
catch {
|
|
523
|
+
/* ignore */
|
|
524
|
+
}
|
|
478
525
|
}
|
|
479
526
|
const goModPath = (0, path_1.join)(projectRoot, "go.mod");
|
|
480
527
|
if ((0, fs_1.existsSync)(goModPath)) {
|
|
481
528
|
try {
|
|
482
529
|
const goMod = (0, fs_1.readFileSync)(goModPath, "utf-8");
|
|
483
|
-
const moduleLine = goMod
|
|
530
|
+
const moduleLine = goMod
|
|
531
|
+
.split("\n")
|
|
532
|
+
.find((l) => l.startsWith("module "));
|
|
484
533
|
if (moduleLine) {
|
|
485
534
|
const parts = moduleLine.replace("module ", "").trim().split("/");
|
|
486
535
|
projectName = parts[parts.length - 1] ?? projectName;
|
|
487
536
|
}
|
|
488
537
|
}
|
|
489
|
-
catch {
|
|
538
|
+
catch {
|
|
539
|
+
/* ignore */
|
|
540
|
+
}
|
|
490
541
|
}
|
|
491
542
|
const { state } = (0, state_1.initState)(projectRoot, projectName);
|
|
492
543
|
return state;
|
|
@@ -531,7 +582,13 @@ function detectFramework(projectRoot) {
|
|
|
531
582
|
const has_sdd = check("docs/sdd.md");
|
|
532
583
|
const has_handoff = check(".ai/HANDOFF.md");
|
|
533
584
|
const has_history = check(".ai/history.md");
|
|
534
|
-
const core = [
|
|
585
|
+
const core = [
|
|
586
|
+
has_state,
|
|
587
|
+
has_memory,
|
|
588
|
+
has_context,
|
|
589
|
+
has_constitution,
|
|
590
|
+
has_sdd,
|
|
591
|
+
];
|
|
535
592
|
const coreCount = core.filter(Boolean).length;
|
|
536
593
|
let level = 0;
|
|
537
594
|
if (coreCount === core.length)
|
|
@@ -539,16 +596,18 @@ function detectFramework(projectRoot) {
|
|
|
539
596
|
else if (coreCount > 0)
|
|
540
597
|
level = 1;
|
|
541
598
|
return {
|
|
542
|
-
has_state,
|
|
543
|
-
|
|
599
|
+
has_state,
|
|
600
|
+
has_memory,
|
|
601
|
+
has_context,
|
|
602
|
+
has_constitution,
|
|
603
|
+
has_sdd,
|
|
604
|
+
has_handoff,
|
|
605
|
+
has_history,
|
|
606
|
+
level,
|
|
544
607
|
};
|
|
545
608
|
}
|
|
546
609
|
/**
|
|
547
610
|
* Get comprehensive project status for OpenClaw to summarize to the user.
|
|
548
|
-
* Works for ANY project — with or without the Agentic Coding Framework.
|
|
549
|
-
*
|
|
550
|
-
* - Framework project (has STATE.json): returns full state + memory summary
|
|
551
|
-
* - Non-framework project: returns framework detection + whatever files exist
|
|
552
611
|
*/
|
|
553
612
|
function queryProjectStatus(projectRoot) {
|
|
554
613
|
const framework = detectFramework(projectRoot);
|
|
@@ -562,9 +621,7 @@ function queryProjectStatus(projectRoot) {
|
|
|
562
621
|
memory_summary = nextMatch[0].trim().slice(0, 500);
|
|
563
622
|
}
|
|
564
623
|
}
|
|
565
|
-
// If no STATE.json, return a minimal status with framework detection
|
|
566
624
|
if (!framework.has_state) {
|
|
567
|
-
// Try to infer project name from package.json or directory name
|
|
568
625
|
let project = "(not initialized)";
|
|
569
626
|
const pkgPath = (0, path_1.join)(projectRoot, "package.json");
|
|
570
627
|
if ((0, fs_1.existsSync)(pkgPath)) {
|
|
@@ -572,7 +629,9 @@ function queryProjectStatus(projectRoot) {
|
|
|
572
629
|
const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, "utf-8"));
|
|
573
630
|
project = pkg.name ?? project;
|
|
574
631
|
}
|
|
575
|
-
catch {
|
|
632
|
+
catch {
|
|
633
|
+
/* ignore */
|
|
634
|
+
}
|
|
576
635
|
}
|
|
577
636
|
return {
|
|
578
637
|
project,
|
|
@@ -592,7 +651,6 @@ function queryProjectStatus(projectRoot) {
|
|
|
592
651
|
has_framework: framework,
|
|
593
652
|
};
|
|
594
653
|
}
|
|
595
|
-
// Framework project: read full state
|
|
596
654
|
const state = (0, state_1.readState)(projectRoot);
|
|
597
655
|
return {
|
|
598
656
|
project: state.project,
|
|
@@ -613,16 +671,7 @@ function queryProjectStatus(projectRoot) {
|
|
|
613
671
|
};
|
|
614
672
|
}
|
|
615
673
|
/**
|
|
616
|
-
* Scan a workspace directory for all projects
|
|
617
|
-
* OpenClaw calls this when the user asks "list my projects" or "switch project".
|
|
618
|
-
*
|
|
619
|
-
* A directory is considered a "project" if it contains any of:
|
|
620
|
-
* - .ai/STATE.json (framework project)
|
|
621
|
-
* - package.json (Node.js project)
|
|
622
|
-
* - go.mod (Go project)
|
|
623
|
-
* - Cargo.toml (Rust project)
|
|
624
|
-
* - pyproject.toml or setup.py (Python project)
|
|
625
|
-
* - .git/ (any git repo)
|
|
674
|
+
* Scan a workspace directory for all projects.
|
|
626
675
|
*/
|
|
627
676
|
function listProjects(workspaceRoot) {
|
|
628
677
|
const { readdirSync, statSync } = require("fs");
|
|
@@ -644,21 +693,18 @@ function listProjects(workspaceRoot) {
|
|
|
644
693
|
return results;
|
|
645
694
|
}
|
|
646
695
|
for (const entry of entries) {
|
|
647
|
-
// Skip hidden directories (except .git check is internal)
|
|
648
696
|
if (entry.startsWith("."))
|
|
649
697
|
continue;
|
|
650
698
|
const dir = (0, path_1.join)(workspaceRoot, entry);
|
|
651
699
|
try {
|
|
652
700
|
if (!statSync(dir).isDirectory())
|
|
653
701
|
continue;
|
|
654
|
-
// Check if this directory is a project
|
|
655
702
|
const isProject = PROJECT_MARKERS.some((marker) => (0, fs_1.existsSync)((0, path_1.join)(dir, marker)));
|
|
656
703
|
if (!isProject)
|
|
657
704
|
continue;
|
|
658
705
|
const stateFile = (0, path_1.join)(dir, ".ai", "STATE.json");
|
|
659
706
|
const hasFramework = (0, fs_1.existsSync)(stateFile);
|
|
660
707
|
if (hasFramework) {
|
|
661
|
-
// Framework project: read state
|
|
662
708
|
const state = JSON.parse((0, fs_1.readFileSync)(stateFile, "utf-8"));
|
|
663
709
|
results.push({
|
|
664
710
|
name: state.project,
|
|
@@ -670,7 +716,6 @@ function listProjects(workspaceRoot) {
|
|
|
670
716
|
});
|
|
671
717
|
}
|
|
672
718
|
else {
|
|
673
|
-
// Non-framework project: infer name from package.json or dir name
|
|
674
719
|
let name = entry;
|
|
675
720
|
const pkgPath = (0, path_1.join)(dir, "package.json");
|
|
676
721
|
if ((0, fs_1.existsSync)(pkgPath)) {
|
|
@@ -678,7 +723,9 @@ function listProjects(workspaceRoot) {
|
|
|
678
723
|
const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, "utf-8"));
|
|
679
724
|
name = pkg.name ?? entry;
|
|
680
725
|
}
|
|
681
|
-
catch {
|
|
726
|
+
catch {
|
|
727
|
+
/* ignore */
|
|
728
|
+
}
|
|
682
729
|
}
|
|
683
730
|
results.push({
|
|
684
731
|
name,
|
|
@@ -703,10 +750,6 @@ function listProjects(workspaceRoot) {
|
|
|
703
750
|
* micro-waterfall pipeline.
|
|
704
751
|
*
|
|
705
752
|
* Pipeline: custom → update-memory → done
|
|
706
|
-
* Auto-initializes STATE.json if the project hasn't adopted the framework yet.
|
|
707
|
-
*
|
|
708
|
-
* Use cases: refactoring, code review, bug fix, DevOps, documentation,
|
|
709
|
-
* testing, migration, performance optimization, security, cleanup, etc.
|
|
710
753
|
*/
|
|
711
754
|
function startCustom(projectRoot, instruction, options = {}) {
|
|
712
755
|
const state = ensureState(projectRoot);
|
|
@@ -735,12 +778,21 @@ function startCustom(projectRoot, instruction, options = {}) {
|
|
|
735
778
|
function elapsedMinutes(isoTimestamp) {
|
|
736
779
|
return Math.round((Date.now() - new Date(isoTimestamp).getTime()) / 60_000);
|
|
737
780
|
}
|
|
781
|
+
/**
|
|
782
|
+
* [FIX P2] Use resolvePaths() for review request paths to stay consistent
|
|
783
|
+
* with the path resolution logic (prevents stale paths if format changes).
|
|
784
|
+
*/
|
|
738
785
|
function formatReviewRequest(state) {
|
|
739
786
|
const storyId = state.story ?? "(no story)";
|
|
787
|
+
const paths = (0, rules_1.resolvePaths)([
|
|
788
|
+
"docs/bdd/US-{story}.md",
|
|
789
|
+
"docs/deltas/US-{story}.md",
|
|
790
|
+
], storyId);
|
|
740
791
|
return (`Story ${storyId} is ready for review.\n` +
|
|
741
792
|
`Please check:\n` +
|
|
742
|
-
`-
|
|
743
|
-
`-
|
|
793
|
+
`- ${paths[0]} (BDD scenarios)\n` +
|
|
794
|
+
`- ${paths[1]} (Delta Spec)\n` +
|
|
744
795
|
`- docs/api/openapi.yaml (contract changes)\n\n` +
|
|
745
796
|
`Reply "approved" to continue, or provide feedback.`);
|
|
746
797
|
}
|
|
798
|
+
//# sourceMappingURL=dispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,12 @@
|
|
|
6
6
|
* rules.ts → Step transition rules table (pure data)
|
|
7
7
|
* dispatch.ts → State machine + prompt builder + handoff parser
|
|
8
8
|
*/
|
|
9
|
-
export {
|
|
10
|
-
export
|
|
11
|
-
export {
|
|
12
|
-
export
|
|
9
|
+
export { createInitialState, readState, writeState, initState, validate, sanitize, isTimedOut, isMaxedOut, markRunning, markCompleted, generateClaudeMd, writeClaudeMd, } from "./state";
|
|
10
|
+
export type { State, TestResults } from "./state";
|
|
11
|
+
export { STEP_RULES, BOOTSTRAP_RULE, DEFAULT_TEAM_ROLES, DISPATCH_MODES, getRule, resolvePaths, getDispatchMode, getFailTarget, getStepSequence, } from "./rules";
|
|
12
|
+
export type { StepRule } from "./rules";
|
|
13
|
+
export { auto, classify } from "./auto";
|
|
14
|
+
export { dispatch, peek, // [FIX P1] New: read-only dispatch preview
|
|
15
|
+
buildPrompt, parseHandoff, applyHandoff, runPostCheck, approveReview, rejectReview, startStory, startCustom, detectFramework, queryProjectStatus, listProjects, } from "./dispatch";
|
|
16
|
+
export type { DispatchResult, HandoffData } from "./dispatch";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGlD,OAAO,EACL,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,YAAY,EACZ,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,EACL,QAAQ,EACR,IAAI,EAAE,2CAA2C;AACjD,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* dispatch.ts → State machine + prompt builder + handoff parser
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.listProjects = exports.queryProjectStatus = exports.detectFramework = exports.startCustom = exports.startStory = exports.rejectReview = exports.approveReview = exports.runPostCheck = exports.applyHandoff = exports.parseHandoff = exports.buildPrompt = exports.dispatch = exports.classify = exports.auto = exports.getStepSequence = exports.getFailTarget = exports.getDispatchMode = exports.resolvePaths = exports.getRule = exports.DISPATCH_MODES = exports.DEFAULT_TEAM_ROLES = exports.BOOTSTRAP_RULE = exports.STEP_RULES = exports.writeClaudeMd = exports.generateClaudeMd = exports.markCompleted = exports.markRunning = exports.isMaxedOut = exports.isTimedOut = exports.validate = exports.initState = exports.writeState = exports.readState = exports.createInitialState = void 0;
|
|
11
|
+
exports.listProjects = exports.queryProjectStatus = exports.detectFramework = exports.startCustom = exports.startStory = exports.rejectReview = exports.approveReview = exports.runPostCheck = exports.applyHandoff = exports.parseHandoff = exports.buildPrompt = exports.peek = exports.dispatch = exports.classify = exports.auto = exports.getStepSequence = exports.getFailTarget = exports.getDispatchMode = exports.resolvePaths = exports.getRule = exports.DISPATCH_MODES = exports.DEFAULT_TEAM_ROLES = exports.BOOTSTRAP_RULE = exports.STEP_RULES = exports.writeClaudeMd = exports.generateClaudeMd = exports.markCompleted = exports.markRunning = exports.isMaxedOut = exports.isTimedOut = exports.sanitize = exports.validate = exports.initState = exports.writeState = exports.readState = exports.createInitialState = void 0;
|
|
12
12
|
// State
|
|
13
13
|
var state_1 = require("./state");
|
|
14
14
|
Object.defineProperty(exports, "createInitialState", { enumerable: true, get: function () { return state_1.createInitialState; } });
|
|
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "readState", { enumerable: true, get: function ()
|
|
|
16
16
|
Object.defineProperty(exports, "writeState", { enumerable: true, get: function () { return state_1.writeState; } });
|
|
17
17
|
Object.defineProperty(exports, "initState", { enumerable: true, get: function () { return state_1.initState; } });
|
|
18
18
|
Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return state_1.validate; } });
|
|
19
|
+
Object.defineProperty(exports, "sanitize", { enumerable: true, get: function () { return state_1.sanitize; } });
|
|
19
20
|
Object.defineProperty(exports, "isTimedOut", { enumerable: true, get: function () { return state_1.isTimedOut; } });
|
|
20
21
|
Object.defineProperty(exports, "isMaxedOut", { enumerable: true, get: function () { return state_1.isMaxedOut; } });
|
|
21
22
|
Object.defineProperty(exports, "markRunning", { enumerable: true, get: function () { return state_1.markRunning; } });
|
|
@@ -40,6 +41,7 @@ Object.defineProperty(exports, "classify", { enumerable: true, get: function ()
|
|
|
40
41
|
// Dispatch
|
|
41
42
|
var dispatch_1 = require("./dispatch");
|
|
42
43
|
Object.defineProperty(exports, "dispatch", { enumerable: true, get: function () { return dispatch_1.dispatch; } });
|
|
44
|
+
Object.defineProperty(exports, "peek", { enumerable: true, get: function () { return dispatch_1.peek; } });
|
|
43
45
|
Object.defineProperty(exports, "buildPrompt", { enumerable: true, get: function () { return dispatch_1.buildPrompt; } });
|
|
44
46
|
Object.defineProperty(exports, "parseHandoff", { enumerable: true, get: function () { return dispatch_1.parseHandoff; } });
|
|
45
47
|
Object.defineProperty(exports, "applyHandoff", { enumerable: true, get: function () { return dispatch_1.applyHandoff; } });
|
|
@@ -51,3 +53,4 @@ Object.defineProperty(exports, "startCustom", { enumerable: true, get: function
|
|
|
51
53
|
Object.defineProperty(exports, "detectFramework", { enumerable: true, get: function () { return dispatch_1.detectFramework; } });
|
|
52
54
|
Object.defineProperty(exports, "queryProjectStatus", { enumerable: true, get: function () { return dispatch_1.queryProjectStatus; } });
|
|
53
55
|
Object.defineProperty(exports, "listProjects", { enumerable: true, get: function () { return dispatch_1.listProjects; } });
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,QAAQ;AACR,iCAaiB;AAZf,2GAAA,kBAAkB,OAAA;AAClB,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,kGAAA,SAAS,OAAA;AACT,iGAAA,QAAQ,OAAA;AACR,iGAAA,QAAQ,OAAA;AACR,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,oGAAA,WAAW,OAAA;AACX,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AAIf,QAAQ;AACR,iCAUiB;AATf,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,2GAAA,kBAAkB,OAAA;AAClB,uGAAA,cAAc,OAAA;AACd,gGAAA,OAAO,OAAA;AACP,qGAAA,YAAY,OAAA;AACZ,wGAAA,eAAe,OAAA;AACf,sGAAA,aAAa,OAAA;AACb,wGAAA,eAAe,OAAA;AAIjB,6BAA6B;AAC7B,+BAAwC;AAA/B,4FAAA,IAAI,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAEvB,WAAW;AACX,uCAcoB;AAblB,oGAAA,QAAQ,OAAA;AACR,gGAAA,IAAI,OAAA;AACJ,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AACZ,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AACZ,sGAAA,UAAU,OAAA;AACV,uGAAA,WAAW,OAAA;AACX,2GAAA,eAAe,OAAA;AACf,8GAAA,kBAAkB,OAAA;AAClB,wGAAA,YAAY,OAAA"}
|
package/dist/rules.d.ts
CHANGED
|
@@ -8,58 +8,41 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Projects can override defaults via `.ai/step-rules.yaml` (future).
|
|
10
10
|
*/
|
|
11
|
-
import type { Step, Reason } from "./state";
|
|
12
|
-
/** Reason-based routing: maps failure reason → target step */
|
|
13
|
-
export type FailRouting = {
|
|
14
|
-
/** Fallback when reason is null or unrecognized */
|
|
15
|
-
default: Step;
|
|
16
|
-
} & Partial<Record<Reason, Step>>;
|
|
17
|
-
/** Complete rule definition for a single step */
|
|
18
11
|
export interface StepRule {
|
|
19
|
-
/** Display name for dispatch prompt */
|
|
20
12
|
display_name: string;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/** Reason-based routing on failure */
|
|
24
|
-
on_fail: FailRouting;
|
|
25
|
-
/** Maximum attempts before marking as blocked */
|
|
13
|
+
next_on_pass: string;
|
|
14
|
+
on_fail: Record<string, string>;
|
|
26
15
|
max_attempts: number;
|
|
27
|
-
/** Timeout in minutes for executor session */
|
|
28
16
|
timeout_min: number;
|
|
29
|
-
/** Whether this step requires human input (pauses pipeline) */
|
|
30
17
|
requires_human: boolean;
|
|
31
|
-
/** Files executor should read at this step.
|
|
32
|
-
* Supports {story} placeholder for current Story ID. */
|
|
33
18
|
claude_reads: string[];
|
|
34
|
-
/** Files/patterns executor may write at this step */
|
|
35
19
|
claude_writes: string[];
|
|
36
|
-
/** Shell command to run after executor exits (null = none).
|
|
37
|
-
* Deterministic check, zero LLM tokens. */
|
|
38
20
|
post_check: string | null;
|
|
39
|
-
/** Fixed instruction for the dispatch prompt */
|
|
40
21
|
step_instruction: string;
|
|
41
22
|
}
|
|
42
|
-
/** Role definition for multi-executor team dispatch */
|
|
43
|
-
export interface TeamRole {
|
|
44
|
-
claude_reads: string[];
|
|
45
|
-
claude_writes: string[];
|
|
46
|
-
}
|
|
47
|
-
/** Optional team_roles extension for multi-executor steps */
|
|
48
|
-
export type TeamRoles = Record<string, TeamRole>;
|
|
49
|
-
/** Dispatch mode based on story complexity */
|
|
50
|
-
export type DispatchMode = "single" | "auto" | "team";
|
|
51
23
|
/** Complexity-to-dispatch-mode mapping */
|
|
52
|
-
export declare const DISPATCH_MODES: Record<string,
|
|
53
|
-
export declare const STEP_RULES: Record<
|
|
24
|
+
export declare const DISPATCH_MODES: Record<string, string>;
|
|
25
|
+
export declare const STEP_RULES: Record<string, StepRule>;
|
|
54
26
|
export declare const BOOTSTRAP_RULE: StepRule;
|
|
55
|
-
export declare const DEFAULT_TEAM_ROLES: Record<string,
|
|
27
|
+
export declare const DEFAULT_TEAM_ROLES: Record<string, Record<string, {
|
|
28
|
+
claude_reads: string[];
|
|
29
|
+
claude_writes: string[];
|
|
30
|
+
}>>;
|
|
56
31
|
/** Get the rule for a given step */
|
|
57
|
-
export declare function getRule(step:
|
|
58
|
-
/**
|
|
32
|
+
export declare function getRule(step: string): StepRule;
|
|
33
|
+
/**
|
|
34
|
+
* Resolve {story} placeholders in file paths.
|
|
35
|
+
*
|
|
36
|
+
* [FIX P0] Handles double-prefix prevention:
|
|
37
|
+
* Templates use "US-{story}" but storyId may already be "US-013".
|
|
38
|
+
* If template has "US-{story}" and storyId starts with "US-",
|
|
39
|
+
* replace "US-{story}" as a whole unit → "US-013" (not "US-US-013").
|
|
40
|
+
*/
|
|
59
41
|
export declare function resolvePaths(paths: string[], storyId: string): string[];
|
|
60
42
|
/** Determine dispatch mode from complexity marker */
|
|
61
|
-
export declare function getDispatchMode(complexity: string, parallelCount?: number):
|
|
43
|
+
export declare function getDispatchMode(complexity: string, parallelCount?: number): string;
|
|
62
44
|
/** Get the next step after a failure, using reason-based routing */
|
|
63
|
-
export declare function getFailTarget(step:
|
|
45
|
+
export declare function getFailTarget(step: string, reason: string | null): string;
|
|
64
46
|
/** Get ordered step sequence for the micro-waterfall loop */
|
|
65
|
-
export declare function getStepSequence():
|
|
47
|
+
export declare function getStepSequence(): string[];
|
|
48
|
+
//# sourceMappingURL=rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,0CAA0C;AAC1C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIjD,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAyL/C,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,QAsB5B,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CACrC,MAAM,EACN,MAAM,CAAC,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiCpE,CAAC;AAIF,oCAAoC;AACpC,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAK9C;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQvE;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,aAAa,SAAI,GAChB,MAAM,CAMR;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMzE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAW1C"}
|