@agentic-coding-framework/orchestrator-core 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +124 -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 +161 -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 +86 -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 +3 -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 +8 -36
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +1 -0
- package/dist/state.js.map +1 -0
- package/package.json +2 -22
package/dist/dispatch.d.ts
CHANGED
|
@@ -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
|
|
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 {
|
|
11
|
-
import {
|
|
12
|
+
import { State } from "./state";
|
|
13
|
+
import { StepRule } from "./rules";
|
|
12
14
|
export type DispatchResult = {
|
|
13
15
|
type: "dispatched";
|
|
14
|
-
step:
|
|
16
|
+
step: string;
|
|
15
17
|
attempt: number;
|
|
16
18
|
prompt: string;
|
|
17
|
-
fw_lv:
|
|
19
|
+
fw_lv: number;
|
|
18
20
|
} | {
|
|
19
|
-
type: "
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
type: "done";
|
|
22
|
+
story: string;
|
|
23
|
+
summary: string;
|
|
22
24
|
} | {
|
|
23
25
|
type: "needs_human";
|
|
24
|
-
step:
|
|
26
|
+
step: string;
|
|
25
27
|
message: string;
|
|
26
28
|
} | {
|
|
27
|
-
type: "
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
type: "blocked";
|
|
30
|
+
step: string;
|
|
31
|
+
reason: string;
|
|
30
32
|
} | {
|
|
31
33
|
type: "already_running";
|
|
32
|
-
step:
|
|
34
|
+
step: string;
|
|
33
35
|
elapsed_min: number;
|
|
34
36
|
} | {
|
|
35
37
|
type: "timeout";
|
|
36
|
-
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
|
-
|
|
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:
|
|
61
|
-
reason:
|
|
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):
|
|
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:
|
|
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
|
-
*
|
|
106
|
-
* OpenClaw calls this when the user asks "
|
|
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
|
|
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
|
-
|
|
140
|
-
|
|
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):
|
|
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
|
|
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):
|
|
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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"}
|
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, 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
|