@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/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 point: dispatch(projectRoot)
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
- state.status = "timeout";
54
- state.completed_at = new Date().toISOString();
55
- (0, state_1.writeState)(projectRoot, state);
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
- (0, state_1.writeState)(projectRoot, state);
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
- (0, state_1.writeState)(projectRoot, state);
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
- (0, state_1.writeState)(projectRoot, state);
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 ? `Last reason: ${state.reason}` : "No specific 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
- const running = (0, state_1.markRunning)(state);
148
- (0, state_1.writeState)(projectRoot, running);
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: running.step,
154
- attempt: running.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: (yaml["reason"] || null),
292
+ reason: yaml["reason"] || null,
265
293
  files_changed: parseYamlList(yaml["files_changed"]),
266
- tests_pass: yaml["tests_pass"] ? parseInt(yaml["tests_pass"], 10) : null,
267
- tests_fail: yaml["tests_fail"] ? parseInt(yaml["tests_fail"], 10) : null,
268
- tests_skip: yaml["tests_skip"] ? parseInt(yaml["tests_skip"], 10) : null,
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
- // "null" empty
330
- result[key] = value === "null" ? "" : value;
331
- currentKey = null; // not expecting list items
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 { /* ignore */ }
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.split("\n").find((l) => l.startsWith("module "));
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 { /* ignore */ }
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 = [has_state, has_memory, has_context, has_constitution, has_sdd];
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, has_memory, has_context, has_constitution,
543
- has_sdd, has_handoff, has_history, level,
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 { /* ignore */ }
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 — both framework and non-framework.
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 { /* ignore */ }
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
- `- docs/bdd/${storyId}.md (BDD scenarios)\n` +
743
- `- docs/deltas/${storyId}.md (Delta Spec)\n` +
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 { type State, type Step, type Status, type Reason, type TaskType, type TestResult, createInitialState, readState, writeState, initState, validate, isTimedOut, isMaxedOut, markRunning, markCompleted, generateClaudeMd, writeClaudeMd, } from "./state";
10
- export { type StepRule, type FailRouting, type TeamRole, type TeamRoles, type DispatchMode, STEP_RULES, BOOTSTRAP_RULE, DEFAULT_TEAM_ROLES, DISPATCH_MODES, getRule, resolvePaths, getDispatchMode, getFailTarget, getStepSequence, } from "./rules";
11
- export { type AutoResult, auto, classify, } from "./auto";
12
- export { type DispatchResult, type HandoffResult, dispatch, buildPrompt, parseHandoff, applyHandoff, runPostCheck, approveReview, rejectReview, startStory, startCustom, type ProjectStatus, type FrameworkDetection, type ProjectEntry, detectFramework, queryProjectStatus, listProjects, } from "./dispatch";
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
- /** Step to advance to on success */
22
- next_on_pass: Step;
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, DispatchMode>;
53
- export declare const STEP_RULES: Record<Exclude<Step, "bootstrap" | "done">, StepRule>;
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, TeamRoles>;
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: Step): StepRule;
58
- /** Resolve {story} placeholders in file paths */
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): DispatchMode;
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: Step, reason: Reason | null): 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(): Step[];
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"}