@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/cli.js CHANGED
@@ -8,6 +8,7 @@
8
8
  * start-story <project-root> <story-id> Begin a new User Story (micro-waterfall)
9
9
  * start-custom <project-root> <instruction> Begin a custom ad-hoc task
10
10
  * dispatch <project-root> Dispatch next step (prints prompt)
11
+ * peek <project-root> [FIX P1] Read-only dispatch preview
11
12
  * apply-handoff <project-root> Parse HANDOFF.md → update STATE
12
13
  * approve <project-root> [note] Approve review step
13
14
  * reject <project-root> <reason> [note] Reject review step
@@ -24,11 +25,12 @@ function usage() {
24
25
  console.error(`Usage: orchestrator <command> [args]
25
26
 
26
27
  Commands:
27
- auto <project-root> <message...> Unified entry — classify message & route automatically
28
+ auto <project-root> <message...> Unified entry — classify message & route automatically
28
29
  init <project-root> <project-name> Initialize .ai/STATE.json
29
30
  start-story <project-root> <story-id> Begin a new User Story (micro-waterfall)
30
31
  start-custom <project-root> <instruction> Begin a custom ad-hoc task
31
32
  dispatch <project-root> Dispatch next step (prints prompt to stdout)
33
+ peek <project-root> [NEW] Read-only dispatch preview (no state mutation)
32
34
  apply-handoff <project-root> Parse HANDOFF.md → update STATE.json
33
35
  post-check <project-root> Run step's post_check command
34
36
  approve <project-root> [note] Approve review step
@@ -138,7 +140,10 @@ try {
138
140
  }
139
141
  const label = args[2] || undefined; // optional label
140
142
  const agentTeams = args[3] === "--agent-teams";
141
- const state = (0, dispatch_1.startCustom)(projectRoot, instruction, { label, agentTeams });
143
+ const state = (0, dispatch_1.startCustom)(projectRoot, instruction, {
144
+ label,
145
+ agentTeams,
146
+ });
142
147
  console.log(`Started custom task: "${instruction}"`);
143
148
  console.log(` label: ${state.story}, step: ${state.step}, task_type: ${state.task_type}`);
144
149
  break;
@@ -162,14 +167,46 @@ try {
162
167
  break;
163
168
  case "blocked":
164
169
  console.error(`[dispatch] BLOCKED: ${result.reason}`);
165
- process.exit(1);
170
+ // [FIX P1] Use exit(0) — blocked is an expected orchestrator state,
171
+ // not an error. exit(1) breaks dispatch-claude-code.sh (set -e).
172
+ process.exit(0);
166
173
  break;
167
174
  case "already_running":
168
175
  console.error(`[dispatch] Already running (${result.elapsed_min} min)`);
169
176
  break;
170
177
  case "timeout":
171
178
  console.error(`[dispatch] TIMEOUT at ${result.step} (${result.elapsed_min} min)`);
172
- process.exit(1);
179
+ // [FIX P1] Use exit(0) — timeout is an expected orchestrator state.
180
+ // exit(1) would abort dispatch-claude-code.sh before it can retry.
181
+ process.exit(0);
182
+ break;
183
+ }
184
+ break;
185
+ }
186
+ // [FIX P1] New command: read-only dispatch preview
187
+ case "peek": {
188
+ const projectRoot = resolveRoot(args[0]);
189
+ const result = (0, dispatch_1.peek)(projectRoot);
190
+ switch (result.type) {
191
+ case "dispatched":
192
+ console.log(result.prompt);
193
+ console.error(`[peek] Would dispatch: step=${result.step} attempt=${result.attempt}`);
194
+ break;
195
+ case "done":
196
+ console.error(`[peek] DONE: ${result.summary}`);
197
+ break;
198
+ case "needs_human":
199
+ console.error(`[peek] NEEDS HUMAN REVIEW`);
200
+ console.error(result.message);
201
+ break;
202
+ case "blocked":
203
+ console.error(`[peek] BLOCKED: ${result.reason}`);
204
+ break;
205
+ case "already_running":
206
+ console.error(`[peek] Already running (${result.elapsed_min} min)`);
207
+ break;
208
+ case "timeout":
209
+ console.error(`[peek] TIMEOUT at ${result.step} (${result.elapsed_min} min)`);
173
210
  break;
174
211
  }
175
212
  break;
@@ -226,7 +263,11 @@ try {
226
263
  const projectRoot = resolveRoot(args[0]);
227
264
  const result = (0, dispatch_1.detectFramework)(projectRoot);
228
265
  console.log(JSON.stringify(result, null, 2));
229
- const levelNames = ["Not adopted", "Partial adoption", "Full adoption"];
266
+ const levelNames = [
267
+ "Not adopted",
268
+ "Partial adoption",
269
+ "Full adoption",
270
+ ];
230
271
  console.error(`Framework adoption: Level ${result.level} — ${levelNames[result.level]}`);
231
272
  break;
232
273
  }
@@ -252,3 +293,4 @@ catch (err) {
252
293
  console.error(`Error: ${err.message}`);
253
294
  process.exit(1);
254
295
  }
296
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -5,35 +5,37 @@
5
5
  * to drive the micro-waterfall pipeline. All decisions are deterministic —
6
6
  * zero LLM tokens.
7
7
  *
8
- * Main entry point: dispatch(projectRoot)
8
+ * Main entry points:
9
+ * dispatch(projectRoot) — dispatch next step (mutates STATE)
10
+ * peek(projectRoot) — [FIX P1] read-only dispatch preview (no mutation)
9
11
  */
10
- import { type State, type Step, type Status, type Reason } from "./state";
11
- import { type StepRule } from "./rules";
12
+ import { State } from "./state";
13
+ import { StepRule } from "./rules";
12
14
  export type DispatchResult = {
13
15
  type: "dispatched";
14
- step: Step;
16
+ step: string;
15
17
  attempt: number;
16
18
  prompt: string;
17
- fw_lv: 0 | 1 | 2;
19
+ fw_lv: number;
18
20
  } | {
19
- type: "blocked";
20
- step: Step;
21
- reason: string;
21
+ type: "done";
22
+ story: string;
23
+ summary: string;
22
24
  } | {
23
25
  type: "needs_human";
24
- step: Step;
26
+ step: string;
25
27
  message: string;
26
28
  } | {
27
- type: "done";
28
- story: string;
29
- summary: string;
29
+ type: "blocked";
30
+ step: string;
31
+ reason: string;
30
32
  } | {
31
33
  type: "already_running";
32
- step: Step;
34
+ step: string;
33
35
  elapsed_min: number;
34
36
  } | {
35
37
  type: "timeout";
36
- step: Step;
38
+ step: string;
37
39
  elapsed_min: number;
38
40
  };
39
41
  /**
@@ -47,30 +49,38 @@ export type DispatchResult = {
47
49
  * steps, etc.).
48
50
  */
49
51
  export declare function dispatch(projectRoot: string): DispatchResult;
52
+ /**
53
+ * [FIX P1] Read-only dispatch preview — returns the same DispatchResult
54
+ * as dispatch() but never writes to STATE.json.
55
+ *
56
+ * Use cases:
57
+ * - dispatch-claude-code.sh: check if dispatch would succeed before committing
58
+ * - Monitoring / debugging without state contamination
59
+ * - OpenClaw dry-run checks
60
+ */
61
+ export declare function peek(projectRoot: string): DispatchResult;
50
62
  /**
51
63
  * Build the dispatch prompt from the template.
52
64
  * Pure template filling — zero LLM reasoning.
53
65
  */
54
66
  export declare function buildPrompt(state: State, rule: StepRule): string;
55
- /** Parsed result from HANDOFF.md's YAML front matter */
56
- export interface HandoffResult {
67
+ export interface HandoffData {
57
68
  story: string | null;
58
69
  step: string | null;
59
70
  attempt: number | null;
60
- status: Status | null;
61
- reason: Reason | null;
71
+ status: string | null;
72
+ reason: string | null;
62
73
  files_changed: string[];
63
74
  tests_pass: number | null;
64
75
  tests_fail: number | null;
65
76
  tests_skip: number | null;
66
- /** The markdown body (everything after the second ---) */
67
77
  body: string;
68
78
  }
69
79
  /**
70
80
  * Parse HANDOFF.md — prioritize YAML front matter, fallback to grep.
71
81
  * Direct translation of Protocol's hook pseudocode.
72
82
  */
73
- export declare function parseHandoff(projectRoot: string): HandoffResult | null;
83
+ export declare function parseHandoff(projectRoot: string): HandoffData | null;
74
84
  /**
75
85
  * After executor exits, read HANDOFF.md and update STATE.json accordingly.
76
86
  * This is the TypeScript equivalent of the Protocol's post-execution hook.
@@ -93,7 +103,7 @@ export declare function approveReview(projectRoot: string, humanNote?: string):
93
103
  /**
94
104
  * Reject the review with a reason and optional note.
95
105
  */
96
- export declare function rejectReview(projectRoot: string, reason: Reason, humanNote?: string): void;
106
+ export declare function rejectReview(projectRoot: string, reason: string, humanNote?: string): void;
97
107
  /**
98
108
  * Begin a new User Story. Resets state to bdd step with attempt 1.
99
109
  * Auto-initializes STATE.json if the project hasn't adopted the framework yet.
@@ -102,33 +112,10 @@ export declare function startStory(projectRoot: string, storyId: string, options
102
112
  agentTeams?: boolean;
103
113
  }): State;
104
114
  /**
105
- * Get a human-friendly project status summary.
106
- * OpenClaw calls this when the user asks "how's the project?" or "open project X".
107
- *
108
- * Returns structured data that OpenClaw LLM can translate to natural language.
115
+ * Detect whether a project uses the Agentic Coding Framework.
116
+ * OpenClaw calls this when the user asks "is this project using the framework?"
109
117
  */
110
- export interface ProjectStatus {
111
- project: string;
112
- task_type: string;
113
- story: string | null;
114
- step: string;
115
- status: string;
116
- attempt: number;
117
- max_attempts: number;
118
- reason: string | null;
119
- tests: {
120
- pass: number;
121
- fail: number;
122
- skip: number;
123
- } | null;
124
- lint_pass: boolean | null;
125
- files_changed: string[];
126
- blocked_by: string[];
127
- human_note: string | null;
128
- memory_summary: string | null;
129
- has_framework: FrameworkDetection;
130
- }
131
- export interface FrameworkDetection {
118
+ export declare function detectFramework(projectRoot: string): {
132
119
  has_state: boolean;
133
120
  has_memory: boolean;
134
121
  has_context: boolean;
@@ -136,62 +123,25 @@ export interface FrameworkDetection {
136
123
  has_sdd: boolean;
137
124
  has_handoff: boolean;
138
125
  has_history: boolean;
139
- /** Adoption level: 0 = none, 1 = partial (some files), 2 = full (all core files) */
140
- level: 0 | 1 | 2;
141
- }
142
- /**
143
- * Detect whether a project uses the Agentic Coding Framework.
144
- * OpenClaw calls this when the user asks "is this project using the framework?"
145
- */
146
- export declare function detectFramework(projectRoot: string): FrameworkDetection;
126
+ level: number;
127
+ };
147
128
  /**
148
129
  * Get comprehensive project status for OpenClaw to summarize to the user.
149
- * Works for ANY project — with or without the Agentic Coding Framework.
150
- *
151
- * - Framework project (has STATE.json): returns full state + memory summary
152
- * - Non-framework project: returns framework detection + whatever files exist
153
130
  */
154
- export declare function queryProjectStatus(projectRoot: string): ProjectStatus;
155
- /** Project entry returned by listProjects */
156
- export interface ProjectEntry {
157
- /** Project name (from STATE.json, package.json, or directory name) */
158
- name: string;
159
- /** Directory name relative to workspace root */
160
- dir: string;
161
- /** Current step ("none" if not using framework) */
162
- step: string;
163
- /** Current status ("not_initialized" if not using framework) */
164
- status: string;
165
- /** Current story ID */
166
- story: string | null;
167
- /** Whether this project uses the Agentic Coding Framework */
168
- has_framework: boolean;
169
- }
131
+ export declare function queryProjectStatus(projectRoot: string): Record<string, unknown>;
170
132
  /**
171
- * Scan a workspace directory for all projects — both framework and non-framework.
172
- * OpenClaw calls this when the user asks "list my projects" or "switch project".
173
- *
174
- * A directory is considered a "project" if it contains any of:
175
- * - .ai/STATE.json (framework project)
176
- * - package.json (Node.js project)
177
- * - go.mod (Go project)
178
- * - Cargo.toml (Rust project)
179
- * - pyproject.toml or setup.py (Python project)
180
- * - .git/ (any git repo)
133
+ * Scan a workspace directory for all projects.
181
134
  */
182
- export declare function listProjects(workspaceRoot: string): ProjectEntry[];
135
+ export declare function listProjects(workspaceRoot: string): Record<string, unknown>[];
183
136
  /**
184
137
  * Begin a custom (ad-hoc) task. The orchestrator forwards the instruction
185
138
  * to Claude Code with full project context, without going through the
186
139
  * micro-waterfall pipeline.
187
140
  *
188
141
  * Pipeline: custom → update-memory → done
189
- * Auto-initializes STATE.json if the project hasn't adopted the framework yet.
190
- *
191
- * Use cases: refactoring, code review, bug fix, DevOps, documentation,
192
- * testing, migration, performance optimization, security, cleanup, etc.
193
142
  */
194
143
  export declare function startCustom(projectRoot: string, instruction: string, options?: {
195
144
  label?: string;
196
145
  agentTeams?: boolean;
197
146
  }): State;
147
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}