@open-agent-toolkit/control-plane 0.1.25 → 0.1.26
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/project.d.ts.map +1 -1
- package/dist/project.js +18 -8
- package/dist/recommender/router.d.ts.map +1 -1
- package/dist/recommender/router.js +6 -15
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/project.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAGf,MAAM,SAAS,CAAC;AAEjB,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CA8DvB;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC,CAmF3B"}
|
package/dist/project.js
CHANGED
|
@@ -15,7 +15,8 @@ export async function getProjectState(projectPath) {
|
|
|
15
15
|
scanUnprocessedReviews(projectPath),
|
|
16
16
|
]);
|
|
17
17
|
const parsedState = parseStateFrontmatter(stateContent);
|
|
18
|
-
const
|
|
18
|
+
const activeReviewArtifacts = toActiveReviewArtifacts(reviewFiles, projectPath);
|
|
19
|
+
const reviews = mergeReviews(parseReviewTable(planContent), activeReviewArtifacts);
|
|
19
20
|
const progress = parseTaskProgress(planContent, implementationContent);
|
|
20
21
|
const projectStateWithoutRecommendation = {
|
|
21
22
|
name: basename(projectPath),
|
|
@@ -30,6 +31,7 @@ export async function getProjectState(projectPath) {
|
|
|
30
31
|
progress,
|
|
31
32
|
artifacts,
|
|
32
33
|
reviews,
|
|
34
|
+
activeReviewArtifacts,
|
|
33
35
|
blockers: parsedState.blockers,
|
|
34
36
|
hillCheckpoints: parsedState.hillCheckpoints,
|
|
35
37
|
hillCompleted: parsedState.hillCompleted,
|
|
@@ -69,7 +71,8 @@ export async function listProjects(projectsRoot) {
|
|
|
69
71
|
scanUnprocessedReviews(projectDir),
|
|
70
72
|
]);
|
|
71
73
|
const parsedState = parseStateFrontmatter(stateContent);
|
|
72
|
-
const
|
|
74
|
+
const activeReviewArtifacts = toActiveReviewArtifacts(reviewFiles, projectDir);
|
|
75
|
+
const reviews = mergeReviews(parseReviewTable(planContent), activeReviewArtifacts);
|
|
73
76
|
const progress = parseTaskProgress(planContent, implementationContent);
|
|
74
77
|
const stateWithoutRecommendation = {
|
|
75
78
|
name: basename(projectDir),
|
|
@@ -84,6 +87,7 @@ export async function listProjects(projectsRoot) {
|
|
|
84
87
|
progress,
|
|
85
88
|
artifacts,
|
|
86
89
|
reviews,
|
|
90
|
+
activeReviewArtifacts,
|
|
87
91
|
blockers: parsedState.blockers,
|
|
88
92
|
hillCheckpoints: parsedState.hillCheckpoints,
|
|
89
93
|
hillCompleted: parsedState.hillCompleted,
|
|
@@ -171,21 +175,27 @@ async function readOptionalFile(path) {
|
|
|
171
175
|
throw error;
|
|
172
176
|
}
|
|
173
177
|
}
|
|
174
|
-
function mergeReviews(tableReviews,
|
|
178
|
+
function mergeReviews(tableReviews, activeReviewArtifacts) {
|
|
175
179
|
const merged = [...tableReviews];
|
|
176
180
|
const existingArtifacts = new Set(tableReviews.map((review) => review.artifact));
|
|
177
|
-
for (const
|
|
178
|
-
|
|
179
|
-
if (existingArtifacts.has(relativeArtifact)) {
|
|
181
|
+
for (const reviewArtifact of activeReviewArtifacts) {
|
|
182
|
+
if (existingArtifacts.has(reviewArtifact.path)) {
|
|
180
183
|
continue;
|
|
181
184
|
}
|
|
182
185
|
merged.push({
|
|
183
|
-
scope: basename(
|
|
186
|
+
scope: basename(reviewArtifact.path, '.md'),
|
|
184
187
|
type: 'code',
|
|
185
188
|
status: 'received',
|
|
186
189
|
date: '-',
|
|
187
|
-
artifact:
|
|
190
|
+
artifact: reviewArtifact.path,
|
|
188
191
|
});
|
|
189
192
|
}
|
|
190
193
|
return merged;
|
|
191
194
|
}
|
|
195
|
+
function toActiveReviewArtifacts(reviewFiles, projectPath) {
|
|
196
|
+
return reviewFiles.map((reviewFile) => ({
|
|
197
|
+
path: relative(projectPath, reviewFile).replace(/\\/g, '/'),
|
|
198
|
+
archived: false,
|
|
199
|
+
actionable: true,
|
|
200
|
+
}));
|
|
201
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/recommender/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,YAAY,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/recommender/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,YAAY,EACZ,mBAAmB,EAEpB,MAAM,UAAU,CAAC;AAuElB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAC1C,mBAAmB,CAkCrB"}
|
|
@@ -98,7 +98,7 @@ function getPostImplementationRecommendation(state) {
|
|
|
98
98
|
reason: 'Revision work remains incomplete',
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
-
if (
|
|
101
|
+
if (hasActionableReviewArtifacts(state)) {
|
|
102
102
|
return {
|
|
103
103
|
skill: 'oat-project-review-receive',
|
|
104
104
|
reason: 'Unprocessed review feedback exists',
|
|
@@ -121,8 +121,9 @@ function getPostImplementationRecommendation(state) {
|
|
|
121
121
|
}
|
|
122
122
|
if (finalReview.status !== 'passed') {
|
|
123
123
|
return {
|
|
124
|
-
skill: 'oat-project-review-
|
|
125
|
-
reason: 'Final review
|
|
124
|
+
skill: 'oat-project-review-provide',
|
|
125
|
+
reason: 'Final review is not passed and no active review artifact exists',
|
|
126
|
+
context: 'code final',
|
|
126
127
|
};
|
|
127
128
|
}
|
|
128
129
|
const summaryArtifact = state.artifacts.find((artifact) => artifact.type === 'summary');
|
|
@@ -146,18 +147,8 @@ function getPostImplementationRecommendation(state) {
|
|
|
146
147
|
function hasIncompleteRevisionPhase(state) {
|
|
147
148
|
return state.progress.phases.some((phase) => phase.isRevision && phase.completed < phase.total);
|
|
148
149
|
}
|
|
149
|
-
function
|
|
150
|
-
return state.
|
|
151
|
-
if (review.scope === 'final' && review.type === 'code') {
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
return !isProcessedReviewStatus(review);
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
function isProcessedReviewStatus(review) {
|
|
158
|
-
return (review.status === 'passed' ||
|
|
159
|
-
review.status === 'fixes_added' ||
|
|
160
|
-
review.status === 'fixes_completed');
|
|
150
|
+
function hasActionableReviewArtifacts(state) {
|
|
151
|
+
return state.activeReviewArtifacts.some((reviewArtifact) => reviewArtifact.actionable && !reviewArtifact.archived);
|
|
161
152
|
}
|
|
162
153
|
function getCurrentArtifact(state) {
|
|
163
154
|
if (state.phase === 'decomposition') {
|
package/dist/types.d.ts
CHANGED
|
@@ -34,6 +34,11 @@ export interface ReviewStatus {
|
|
|
34
34
|
date: string;
|
|
35
35
|
artifact: string;
|
|
36
36
|
}
|
|
37
|
+
export interface ReviewArtifactStatus {
|
|
38
|
+
path: string;
|
|
39
|
+
archived: boolean;
|
|
40
|
+
actionable: boolean;
|
|
41
|
+
}
|
|
37
42
|
export interface SkillRecommendation {
|
|
38
43
|
skill: string;
|
|
39
44
|
reason: string;
|
|
@@ -52,6 +57,7 @@ export interface ProjectState {
|
|
|
52
57
|
progress: TaskProgress;
|
|
53
58
|
artifacts: ArtifactStatus[];
|
|
54
59
|
reviews: ReviewStatus[];
|
|
60
|
+
activeReviewArtifacts: ReviewArtifactStatus[];
|
|
55
61
|
blockers: string[];
|
|
56
62
|
hillCheckpoints: string[];
|
|
57
63
|
hillCompleted: string[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-agent-toolkit/control-plane",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Read-only OAT control-plane library for structured project state",
|
|
6
6
|
"homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/control-plane",
|