oxe-cc 1.11.0 → 1.14.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/CHANGELOG.md +106 -0
- package/README.md +736 -681
- package/bin/lib/oxe-event-bus.cjs +118 -0
- package/bin/lib/oxe-memory-kernel.cjs +188 -0
- package/bin/lib/oxe-project-health.cjs +75 -0
- package/bin/lib/oxe-skill-loader.cjs +131 -0
- package/bin/oxe-cc.js +202 -40
- package/docs/INTEGRATION.md +152 -0
- package/docs/oxe-artifact-map.html +1172 -0
- package/lib/sdk/index.cjs +2 -0
- package/lib/sdk/index.d.ts +185 -159
- package/oxe/schemas/swarm-run.schema.json +130 -0
- package/oxe/workflows/agent-mode.md +150 -0
- package/oxe/workflows/conduct.md +149 -0
- package/oxe/workflows/distill.md +164 -0
- package/oxe/workflows/help.md +1 -0
- package/oxe/workflows/memory.md +163 -0
- package/oxe/workflows/oxe.md +2 -1
- package/oxe/workflows/references/workflow-runtime-contracts.json +1113 -960
- package/oxe/workflows/route.md +7 -5
- package/oxe/workflows/swarm/board.md +119 -0
- package/oxe/workflows/swarm/scout.md +170 -0
- package/oxe/workflows/swarm-mode.md +280 -0
- package/package.json +2 -2
- package/packages/runtime/package.json +1 -1
- package/vscode-extension/package.json +1 -1
package/lib/sdk/index.cjs
CHANGED
|
@@ -560,6 +560,8 @@ module.exports = {
|
|
|
560
560
|
loadOxeConfigMerged: health.loadOxeConfigMerged,
|
|
561
561
|
validateConfigShape: health.validateConfigShape,
|
|
562
562
|
buildHealthReport: health.buildHealthReport,
|
|
563
|
+
buildStatusSummary: health.buildStatusSummary,
|
|
564
|
+
agentSkillsReport: health.agentSkillsReport,
|
|
563
565
|
detectWorkspaceMode: health.detectWorkspaceMode,
|
|
564
566
|
shouldSuppressExecutionWorkspaceGates: health.shouldSuppressExecutionWorkspaceGates,
|
|
565
567
|
suggestNextStep: health.suggestNextStep,
|
package/lib/sdk/index.d.ts
CHANGED
|
@@ -45,6 +45,30 @@ export interface OxeNextSuggestion {
|
|
|
45
45
|
artifacts: string[];
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
/** Compact, host-facing projection of the health report (versioned). */
|
|
49
|
+
export interface OxeStatusSummary {
|
|
50
|
+
oxeSummarySchema: number;
|
|
51
|
+
workspaceMode: string;
|
|
52
|
+
phase: string | null;
|
|
53
|
+
healthStatus: string | null;
|
|
54
|
+
activeSession: string | null;
|
|
55
|
+
nextStep: string | null;
|
|
56
|
+
cursorCmd: string | null;
|
|
57
|
+
reason: string | null;
|
|
58
|
+
eventsCount: number;
|
|
59
|
+
warningsCount: number;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Per-agent OXE skills/integration status for a workspace. */
|
|
63
|
+
export interface AgentSkillsStatus {
|
|
64
|
+
agent: string;
|
|
65
|
+
detected: boolean;
|
|
66
|
+
skillsInstalled: boolean;
|
|
67
|
+
skillsPath: string;
|
|
68
|
+
status: string;
|
|
69
|
+
issues: string[];
|
|
70
|
+
}
|
|
71
|
+
|
|
48
72
|
export interface AzureInventorySummary {
|
|
49
73
|
total: number;
|
|
50
74
|
servicebus: number;
|
|
@@ -146,54 +170,54 @@ export interface GateQueueSnapshot {
|
|
|
146
170
|
all?: Array<Record<string, unknown>>;
|
|
147
171
|
}
|
|
148
172
|
|
|
149
|
-
export interface MultiAgentStatusSummary {
|
|
150
|
-
path: string | null;
|
|
151
|
-
enabled: boolean;
|
|
152
|
-
runId: string | null;
|
|
153
|
-
mode: string | null;
|
|
173
|
+
export interface MultiAgentStatusSummary {
|
|
174
|
+
path: string | null;
|
|
175
|
+
enabled: boolean;
|
|
176
|
+
runId: string | null;
|
|
177
|
+
mode: string | null;
|
|
154
178
|
workspaceIsolationEnforced: boolean;
|
|
155
179
|
agents: Array<Record<string, unknown>>;
|
|
156
|
-
ownership: Array<Record<string, unknown>>;
|
|
157
|
-
orphanReassignments: Array<Record<string, unknown>>;
|
|
158
|
-
handoffs: Array<Record<string, unknown>>;
|
|
159
|
-
arbitrationResults: Array<Record<string, unknown>>;
|
|
160
|
-
summary?: Record<string, unknown> | null;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
export type WorkspaceMode = 'product_package' | 'oxe_project';
|
|
164
|
-
|
|
165
|
-
export interface ReleaseManifest {
|
|
166
|
-
schema_version: number;
|
|
167
|
-
generated_at: string;
|
|
168
|
-
project_root: string;
|
|
169
|
-
package_root: string;
|
|
170
|
-
release_contract: Record<string, unknown>;
|
|
171
|
-
versions: Record<string, unknown>;
|
|
172
|
-
runtime_compiled: { path: string; ok: boolean };
|
|
173
|
-
canonical_source?: Record<string, unknown>;
|
|
174
|
-
semantics?: Record<string, unknown>;
|
|
175
|
-
wrappers: Record<string, unknown>;
|
|
176
|
-
reports: Record<string, unknown>;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
export interface ReleaseConsistencyResult {
|
|
180
|
-
ok: boolean;
|
|
181
|
-
blockers: string[];
|
|
182
|
-
warnings: string[];
|
|
183
|
-
manifest: ReleaseManifest;
|
|
184
|
-
manifestPath: string;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
export interface RuntimeSmokeReport {
|
|
188
|
-
path: string;
|
|
189
|
-
present: boolean;
|
|
190
|
-
ok: boolean;
|
|
191
|
-
total: number;
|
|
192
|
-
failures: string[];
|
|
193
|
-
missingRequired: string[];
|
|
194
|
-
results: Array<Record<string, unknown>>;
|
|
195
|
-
raw: Record<string, unknown> | null;
|
|
196
|
-
}
|
|
180
|
+
ownership: Array<Record<string, unknown>>;
|
|
181
|
+
orphanReassignments: Array<Record<string, unknown>>;
|
|
182
|
+
handoffs: Array<Record<string, unknown>>;
|
|
183
|
+
arbitrationResults: Array<Record<string, unknown>>;
|
|
184
|
+
summary?: Record<string, unknown> | null;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export type WorkspaceMode = 'product_package' | 'oxe_project';
|
|
188
|
+
|
|
189
|
+
export interface ReleaseManifest {
|
|
190
|
+
schema_version: number;
|
|
191
|
+
generated_at: string;
|
|
192
|
+
project_root: string;
|
|
193
|
+
package_root: string;
|
|
194
|
+
release_contract: Record<string, unknown>;
|
|
195
|
+
versions: Record<string, unknown>;
|
|
196
|
+
runtime_compiled: { path: string; ok: boolean };
|
|
197
|
+
canonical_source?: Record<string, unknown>;
|
|
198
|
+
semantics?: Record<string, unknown>;
|
|
199
|
+
wrappers: Record<string, unknown>;
|
|
200
|
+
reports: Record<string, unknown>;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface ReleaseConsistencyResult {
|
|
204
|
+
ok: boolean;
|
|
205
|
+
blockers: string[];
|
|
206
|
+
warnings: string[];
|
|
207
|
+
manifest: ReleaseManifest;
|
|
208
|
+
manifestPath: string;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export interface RuntimeSmokeReport {
|
|
212
|
+
path: string;
|
|
213
|
+
present: boolean;
|
|
214
|
+
ok: boolean;
|
|
215
|
+
total: number;
|
|
216
|
+
failures: string[];
|
|
217
|
+
missingRequired: string[];
|
|
218
|
+
results: Array<Record<string, unknown>>;
|
|
219
|
+
raw: Record<string, unknown> | null;
|
|
220
|
+
}
|
|
197
221
|
|
|
198
222
|
export interface PolicyDecisionSummary {
|
|
199
223
|
total: number;
|
|
@@ -229,67 +253,67 @@ export interface AuditSummary {
|
|
|
229
253
|
actions: Record<string, number>;
|
|
230
254
|
}
|
|
231
255
|
|
|
232
|
-
export interface PromotionSummary {
|
|
233
|
-
status: string | null;
|
|
234
|
-
targetKind: string | null;
|
|
235
|
-
remote: string | null;
|
|
236
|
-
targetRef: string | null;
|
|
237
|
-
prUrl: string | null;
|
|
238
|
-
prNumber: number | null;
|
|
239
|
-
coveragePercent: number | null;
|
|
240
|
-
reasons: string[];
|
|
241
|
-
path: string;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
export interface ExecutionImplementationPackSummary {
|
|
245
|
-
path: string | null;
|
|
246
|
-
exists: boolean;
|
|
247
|
-
parseError: string | null;
|
|
248
|
-
ready: boolean;
|
|
249
|
-
tasks: Array<Record<string, unknown>>;
|
|
250
|
-
taskCount: number;
|
|
251
|
-
mutatingTasks: number;
|
|
252
|
-
criticalGaps: string[];
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
export interface ExecutionReferenceAnchorsSummary {
|
|
256
|
-
path: string | null;
|
|
257
|
-
exists: boolean;
|
|
258
|
-
ready: boolean;
|
|
259
|
-
anchors: Array<Record<string, unknown>>;
|
|
260
|
-
missingCriticalCount: number;
|
|
261
|
-
staleCount: number;
|
|
262
|
-
criticalGaps: string[];
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
export interface ExecutionFixturePackSummary {
|
|
266
|
-
path: string | null;
|
|
267
|
-
exists: boolean;
|
|
268
|
-
parseError: string | null;
|
|
269
|
-
ready: boolean;
|
|
270
|
-
fixtures: Array<Record<string, unknown>>;
|
|
271
|
-
fixtureCount: number;
|
|
272
|
-
criticalGaps: string[];
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
export interface ExecutionRationalitySummary {
|
|
276
|
-
applicable: boolean;
|
|
277
|
-
planTaskCount: number;
|
|
278
|
-
externalReferenceCount: number;
|
|
279
|
-
implementationPackReady: boolean;
|
|
280
|
-
referenceAnchorsReady: boolean;
|
|
281
|
-
fixturePackReady: boolean;
|
|
282
|
-
executionRationalityReady: boolean;
|
|
283
|
-
criticalExecutionGaps: string[];
|
|
284
|
-
implementationPack: ExecutionImplementationPackSummary;
|
|
285
|
-
referenceAnchors: ExecutionReferenceAnchorsSummary;
|
|
286
|
-
fixturePack: ExecutionFixturePackSummary;
|
|
287
|
-
}
|
|
256
|
+
export interface PromotionSummary {
|
|
257
|
+
status: string | null;
|
|
258
|
+
targetKind: string | null;
|
|
259
|
+
remote: string | null;
|
|
260
|
+
targetRef: string | null;
|
|
261
|
+
prUrl: string | null;
|
|
262
|
+
prNumber: number | null;
|
|
263
|
+
coveragePercent: number | null;
|
|
264
|
+
reasons: string[];
|
|
265
|
+
path: string;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export interface ExecutionImplementationPackSummary {
|
|
269
|
+
path: string | null;
|
|
270
|
+
exists: boolean;
|
|
271
|
+
parseError: string | null;
|
|
272
|
+
ready: boolean;
|
|
273
|
+
tasks: Array<Record<string, unknown>>;
|
|
274
|
+
taskCount: number;
|
|
275
|
+
mutatingTasks: number;
|
|
276
|
+
criticalGaps: string[];
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export interface ExecutionReferenceAnchorsSummary {
|
|
280
|
+
path: string | null;
|
|
281
|
+
exists: boolean;
|
|
282
|
+
ready: boolean;
|
|
283
|
+
anchors: Array<Record<string, unknown>>;
|
|
284
|
+
missingCriticalCount: number;
|
|
285
|
+
staleCount: number;
|
|
286
|
+
criticalGaps: string[];
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
export interface ExecutionFixturePackSummary {
|
|
290
|
+
path: string | null;
|
|
291
|
+
exists: boolean;
|
|
292
|
+
parseError: string | null;
|
|
293
|
+
ready: boolean;
|
|
294
|
+
fixtures: Array<Record<string, unknown>>;
|
|
295
|
+
fixtureCount: number;
|
|
296
|
+
criticalGaps: string[];
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export interface ExecutionRationalitySummary {
|
|
300
|
+
applicable: boolean;
|
|
301
|
+
planTaskCount: number;
|
|
302
|
+
externalReferenceCount: number;
|
|
303
|
+
implementationPackReady: boolean;
|
|
304
|
+
referenceAnchorsReady: boolean;
|
|
305
|
+
fixturePackReady: boolean;
|
|
306
|
+
executionRationalityReady: boolean;
|
|
307
|
+
criticalExecutionGaps: string[];
|
|
308
|
+
implementationPack: ExecutionImplementationPackSummary;
|
|
309
|
+
referenceAnchors: ExecutionReferenceAnchorsSummary;
|
|
310
|
+
fixturePack: ExecutionFixturePackSummary;
|
|
311
|
+
}
|
|
288
312
|
|
|
289
313
|
/** Relatório retornado por `health.buildHealthReport` e incluído em `runDoctorChecks`.healthReport. */
|
|
290
|
-
export interface OxeHealthReport {
|
|
291
|
-
workspaceMode?: WorkspaceMode;
|
|
292
|
-
configPath: string | null;
|
|
314
|
+
export interface OxeHealthReport {
|
|
315
|
+
workspaceMode?: WorkspaceMode;
|
|
316
|
+
configPath: string | null;
|
|
293
317
|
configParseError: string | null;
|
|
294
318
|
unknownConfigKeys: string[];
|
|
295
319
|
typeErrors: string[];
|
|
@@ -310,16 +334,16 @@ export interface OxeHealthReport {
|
|
|
310
334
|
copilotWarn?: string[];
|
|
311
335
|
copilot?: CopilotIntegrationReport | null;
|
|
312
336
|
summaryGapWarn: string | null;
|
|
313
|
-
specWarn: string[];
|
|
314
|
-
planWarn: string[];
|
|
315
|
-
planSelfEvaluation?: Record<string, unknown> | null;
|
|
316
|
-
implementationPackReady?: boolean;
|
|
317
|
-
referenceAnchorsReady?: boolean;
|
|
318
|
-
fixturePackReady?: boolean;
|
|
319
|
-
executionRationalityReady?: boolean;
|
|
320
|
-
criticalExecutionGaps?: string[];
|
|
321
|
-
executionRationality?: ExecutionRationalitySummary | null;
|
|
322
|
-
planReviewStatus?: string | null;
|
|
337
|
+
specWarn: string[];
|
|
338
|
+
planWarn: string[];
|
|
339
|
+
planSelfEvaluation?: Record<string, unknown> | null;
|
|
340
|
+
implementationPackReady?: boolean;
|
|
341
|
+
referenceAnchorsReady?: boolean;
|
|
342
|
+
fixturePackReady?: boolean;
|
|
343
|
+
executionRationalityReady?: boolean;
|
|
344
|
+
criticalExecutionGaps?: string[];
|
|
345
|
+
executionRationality?: ExecutionRationalitySummary | null;
|
|
346
|
+
planReviewStatus?: string | null;
|
|
323
347
|
activeRun?: Record<string, unknown> | null;
|
|
324
348
|
eventsSummary?: Record<string, unknown> | null;
|
|
325
349
|
memoryLayers?: Record<string, unknown> | null;
|
|
@@ -339,10 +363,10 @@ export interface OxeHealthReport {
|
|
|
339
363
|
contextWarn?: string[];
|
|
340
364
|
semanticsWarn?: string[];
|
|
341
365
|
contextPacks?: Record<string, ContextPackSummary>;
|
|
342
|
-
contextQuality?: ContextQualitySummary;
|
|
343
|
-
semanticsDrift?: SemanticsDriftSummary;
|
|
344
|
-
releaseReadiness?: ReleaseConsistencyResult | null;
|
|
345
|
-
packFreshness?: Record<string, PackFreshness>;
|
|
366
|
+
contextQuality?: ContextQualitySummary;
|
|
367
|
+
semanticsDrift?: SemanticsDriftSummary;
|
|
368
|
+
releaseReadiness?: ReleaseConsistencyResult | null;
|
|
369
|
+
packFreshness?: Record<string, PackFreshness>;
|
|
346
370
|
activeSummaryRefs?: { project: string | null; session: string | null; phase: string | null };
|
|
347
371
|
scanFocusGlobs?: unknown;
|
|
348
372
|
scanIgnoreGlobs?: unknown;
|
|
@@ -673,12 +697,12 @@ export interface OxeSdk {
|
|
|
673
697
|
readMinNode: (packageRoot: string) => number;
|
|
674
698
|
|
|
675
699
|
/** Parsing de artefatos OXE. */
|
|
676
|
-
parsePlan: (planMd: string) => ParsedPlan;
|
|
677
|
-
parseHypotheses: (planText: string) => CriticalHypothesis[];
|
|
678
|
-
parseConfidenceVector: (planText: string) => ConfidenceVector | null;
|
|
679
|
-
parseExecutionPlanTasks: (planPath: string | null) => Array<Record<string, unknown>>;
|
|
680
|
-
parseSpec: (specMd: string) => ParsedSpec;
|
|
681
|
-
parseState: (stateMd: string) => ParsedState;
|
|
700
|
+
parsePlan: (planMd: string) => ParsedPlan;
|
|
701
|
+
parseHypotheses: (planText: string) => CriticalHypothesis[];
|
|
702
|
+
parseConfidenceVector: (planText: string) => ConfidenceVector | null;
|
|
703
|
+
parseExecutionPlanTasks: (planPath: string | null) => Array<Record<string, unknown>>;
|
|
704
|
+
parseSpec: (specMd: string) => ParsedSpec;
|
|
705
|
+
parseState: (stateMd: string) => ParsedState;
|
|
682
706
|
validateDecisionFidelity: (discussMd: string, planMd: string) => DecisionFidelityResult;
|
|
683
707
|
parseLessonsMetrics: (metricsJson: string) => LessonMetric[];
|
|
684
708
|
updateLessonMetric: (metrics: LessonMetric[], lessonId: string, outcome: LessonOutcome) => LessonMetric[];
|
|
@@ -695,13 +719,15 @@ export interface OxeSdk {
|
|
|
695
719
|
timeoutMs?: number;
|
|
696
720
|
}) => Promise<Record<string, unknown>>;
|
|
697
721
|
|
|
698
|
-
health: {
|
|
699
|
-
loadOxeConfigMerged: (targetProject: string) => { config: Record<string, unknown>; path: string | null; parseError: string | null; sources: { system: string | null; user: string | null; project: string | null } };
|
|
700
|
-
validateConfigShape: (cfg: Record<string, unknown>) => { unknownKeys: string[]; typeErrors: string[] };
|
|
701
|
-
buildHealthReport: (target: string) => OxeHealthReport;
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
722
|
+
health: {
|
|
723
|
+
loadOxeConfigMerged: (targetProject: string) => { config: Record<string, unknown>; path: string | null; parseError: string | null; sources: { system: string | null; user: string | null; project: string | null } };
|
|
724
|
+
validateConfigShape: (cfg: Record<string, unknown>) => { unknownKeys: string[]; typeErrors: string[] };
|
|
725
|
+
buildHealthReport: (target: string) => OxeHealthReport;
|
|
726
|
+
buildStatusSummary: (report: OxeHealthReport) => OxeStatusSummary;
|
|
727
|
+
agentSkillsReport: (target: string) => AgentSkillsStatus[];
|
|
728
|
+
detectWorkspaceMode: (target: string) => { workspaceMode: WorkspaceMode; packageName: string | null; canonicalTreePresent: boolean; commandsTreePresent: boolean };
|
|
729
|
+
shouldSuppressExecutionWorkspaceGates: (workspaceMode: WorkspaceMode, phase?: string | null, activeSession?: string | null, activeRun?: Record<string, unknown> | null) => boolean;
|
|
730
|
+
suggestNextStep: (target: string, cfg?: { discuss_before_plan?: boolean }) => OxeNextSuggestion;
|
|
705
731
|
oxePaths: (target: string) => Record<string, string>;
|
|
706
732
|
parseStatePhase: (stateText: string) => string | null;
|
|
707
733
|
parseLastScanDate: (stateText: string) => Date | null;
|
|
@@ -714,12 +740,12 @@ export interface OxeSdk {
|
|
|
714
740
|
copilotIntegrationReport: (target: string) => CopilotIntegrationReport;
|
|
715
741
|
planAgentsWarnings: (target: string) => string[];
|
|
716
742
|
phaseCoherenceWarnings: (phase: string, paths: Record<string, string>) => string[];
|
|
717
|
-
specSectionWarnings: (specPath: string, requiredHeadings: string[]) => string[];
|
|
718
|
-
planWaveWarningsFixed: (planPath: string, maxPerWave: number) => string[];
|
|
719
|
-
planTaskAceiteWarnings: (planPath: string) => string[];
|
|
720
|
-
buildExecutionRationality: (paths?: Record<string, string | null | undefined>) => ExecutionRationalitySummary;
|
|
721
|
-
executionRationalityWarningsFromSummary: (summary: ExecutionRationalitySummary) => string[];
|
|
722
|
-
verifyGapsWithoutSummaryWarning: (verifyPath: string, summaryPath: string) => string | null;
|
|
743
|
+
specSectionWarnings: (specPath: string, requiredHeadings: string[]) => string[];
|
|
744
|
+
planWaveWarningsFixed: (planPath: string, maxPerWave: number) => string[];
|
|
745
|
+
planTaskAceiteWarnings: (planPath: string) => string[];
|
|
746
|
+
buildExecutionRationality: (paths?: Record<string, string | null | undefined>) => ExecutionRationalitySummary;
|
|
747
|
+
executionRationalityWarningsFromSummary: (summary: ExecutionRationalitySummary) => string[];
|
|
748
|
+
verifyGapsWithoutSummaryWarning: (verifyPath: string, summaryPath: string) => string | null;
|
|
723
749
|
expandExecutionProfile: (profile: string) => Record<string, unknown>;
|
|
724
750
|
ALLOWED_CONFIG_KEYS: string[];
|
|
725
751
|
EXECUTION_PROFILES: string[];
|
|
@@ -779,27 +805,27 @@ export interface OxeSdk {
|
|
|
779
805
|
installNpmPlugin: (projectRoot: string, pkgName: string, version?: string) => { ok: boolean; path: string; error: string };
|
|
780
806
|
};
|
|
781
807
|
|
|
782
|
-
dashboard: {
|
|
783
|
-
loadDashboardContext: (projectRoot: string, opts?: { activeSession?: string | null }) => Record<string, unknown>;
|
|
784
|
-
savePlanReviewStatus: (projectRoot: string, input?: Record<string, unknown>) => Record<string, unknown>;
|
|
785
|
-
addPlanReviewComment: (projectRoot: string, input?: Record<string, unknown>) => Record<string, unknown>;
|
|
786
|
-
updatePlanReviewCommentStatus: (projectRoot: string, input?: Record<string, unknown>) => Record<string, unknown> | null;
|
|
787
|
-
};
|
|
788
|
-
|
|
789
|
-
release: {
|
|
790
|
-
REQUIRED_RUNTIMES: string[];
|
|
791
|
-
WRAPPER_TARGETS: Array<Record<string, unknown>>;
|
|
792
|
-
releasePaths: (projectRoot: string) => Record<string, string>;
|
|
793
|
-
collectWrapperHashes: (projectRoot: string) => Record<string, unknown>;
|
|
794
|
-
loadRuntimeSmokeReport: (projectRoot: string) => RuntimeSmokeReport;
|
|
795
|
-
loadRecoveryFixtureReport: (projectRoot: string) => RuntimeSmokeReport;
|
|
796
|
-
loadMultiAgentSoakReport: (projectRoot: string) => RuntimeSmokeReport;
|
|
797
|
-
buildReleaseManifest: (projectRoot: string, options?: Record<string, unknown>) => ReleaseManifest;
|
|
798
|
-
inspectCanonicalSource: (projectRoot: string) => Record<string, unknown>;
|
|
799
|
-
evaluateReleaseManifest: (manifest: ReleaseManifest, options?: Record<string, unknown>) => ReleaseConsistencyResult;
|
|
800
|
-
inspectReleaseReadiness: (projectRoot: string, options?: Record<string, unknown>) => ReleaseConsistencyResult;
|
|
801
|
-
checkReleaseConsistency: (projectRoot: string, options?: Record<string, unknown>) => ReleaseConsistencyResult;
|
|
802
|
-
};
|
|
808
|
+
dashboard: {
|
|
809
|
+
loadDashboardContext: (projectRoot: string, opts?: { activeSession?: string | null }) => Record<string, unknown>;
|
|
810
|
+
savePlanReviewStatus: (projectRoot: string, input?: Record<string, unknown>) => Record<string, unknown>;
|
|
811
|
+
addPlanReviewComment: (projectRoot: string, input?: Record<string, unknown>) => Record<string, unknown>;
|
|
812
|
+
updatePlanReviewCommentStatus: (projectRoot: string, input?: Record<string, unknown>) => Record<string, unknown> | null;
|
|
813
|
+
};
|
|
814
|
+
|
|
815
|
+
release: {
|
|
816
|
+
REQUIRED_RUNTIMES: string[];
|
|
817
|
+
WRAPPER_TARGETS: Array<Record<string, unknown>>;
|
|
818
|
+
releasePaths: (projectRoot: string) => Record<string, string>;
|
|
819
|
+
collectWrapperHashes: (projectRoot: string) => Record<string, unknown>;
|
|
820
|
+
loadRuntimeSmokeReport: (projectRoot: string) => RuntimeSmokeReport;
|
|
821
|
+
loadRecoveryFixtureReport: (projectRoot: string) => RuntimeSmokeReport;
|
|
822
|
+
loadMultiAgentSoakReport: (projectRoot: string) => RuntimeSmokeReport;
|
|
823
|
+
buildReleaseManifest: (projectRoot: string, options?: Record<string, unknown>) => ReleaseManifest;
|
|
824
|
+
inspectCanonicalSource: (projectRoot: string) => Record<string, unknown>;
|
|
825
|
+
evaluateReleaseManifest: (manifest: ReleaseManifest, options?: Record<string, unknown>) => ReleaseConsistencyResult;
|
|
826
|
+
inspectReleaseReadiness: (projectRoot: string, options?: Record<string, unknown>) => ReleaseConsistencyResult;
|
|
827
|
+
checkReleaseConsistency: (projectRoot: string, options?: Record<string, unknown>) => ReleaseConsistencyResult;
|
|
828
|
+
};
|
|
803
829
|
|
|
804
830
|
context: ContextAPI;
|
|
805
831
|
runtimeSemantics: RuntimeSemanticsAPI;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "OXE Swarm Run",
|
|
4
|
+
"description": "Schema para SWARM-RUN.json — estado de um Swarm Mode run",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["run_id", "started_at", "status", "objective", "agents"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"run_id": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"pattern": "^swarm-\\d{8}-\\d{3}$",
|
|
11
|
+
"description": "ID único do swarm run (swarm-YYYYMMDD-NNN)"
|
|
12
|
+
},
|
|
13
|
+
"started_at": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"format": "date-time"
|
|
16
|
+
},
|
|
17
|
+
"completed_at": {
|
|
18
|
+
"type": ["string", "null"],
|
|
19
|
+
"format": "date-time"
|
|
20
|
+
},
|
|
21
|
+
"status": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": ["running", "paused", "completed", "partial", "failed", "aborted"]
|
|
24
|
+
},
|
|
25
|
+
"objective": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Objetivo em linguagem natural fornecido pelo usuário"
|
|
28
|
+
},
|
|
29
|
+
"intent_tags": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {"type": "string"},
|
|
32
|
+
"description": "Domínios detectados: backend, frontend, storage, auth, infra, test, docs, config"
|
|
33
|
+
},
|
|
34
|
+
"memory_applied": {
|
|
35
|
+
"type": "boolean"
|
|
36
|
+
},
|
|
37
|
+
"memory_sources": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": {"type": "string"},
|
|
40
|
+
"description": "Caminhos dos artefatos de memória injetados"
|
|
41
|
+
},
|
|
42
|
+
"agents": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"properties": {
|
|
45
|
+
"scout": {
|
|
46
|
+
"$ref": "#/definitions/AgentStatus"
|
|
47
|
+
},
|
|
48
|
+
"coordinator": {
|
|
49
|
+
"$ref": "#/definitions/AgentStatus"
|
|
50
|
+
},
|
|
51
|
+
"builders": {
|
|
52
|
+
"type": "array",
|
|
53
|
+
"items": {
|
|
54
|
+
"allOf": [
|
|
55
|
+
{"$ref": "#/definitions/AgentStatus"},
|
|
56
|
+
{
|
|
57
|
+
"properties": {
|
|
58
|
+
"id": {"type": "string"},
|
|
59
|
+
"persona": {"type": "string"},
|
|
60
|
+
"task_ids": {"type": "array", "items": {"type": "string"}},
|
|
61
|
+
"model_hint": {"type": "string", "enum": ["fast", "balanced", "powerful"]}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"reviewer": {
|
|
68
|
+
"$ref": "#/definitions/AgentStatus"
|
|
69
|
+
},
|
|
70
|
+
"verifier": {
|
|
71
|
+
"$ref": "#/definitions/AgentStatus"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"task_graph": {
|
|
76
|
+
"type": ["object", "null"],
|
|
77
|
+
"description": "Referência ao TASK-GRAPH.json após decomposição pelo coordinator"
|
|
78
|
+
},
|
|
79
|
+
"file_ownership": {
|
|
80
|
+
"type": ["object", "null"],
|
|
81
|
+
"description": "Referência ao FILE-OWNERSHIP.json após atribuição"
|
|
82
|
+
},
|
|
83
|
+
"waves": {
|
|
84
|
+
"type": "array",
|
|
85
|
+
"items": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"properties": {
|
|
88
|
+
"wave": {"type": "integer"},
|
|
89
|
+
"task_ids": {"type": "array", "items": {"type": "string"}},
|
|
90
|
+
"status": {"type": "string", "enum": ["pending", "running", "done", "failed"]}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"quality_gates": {
|
|
95
|
+
"type": "array",
|
|
96
|
+
"items": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"properties": {
|
|
99
|
+
"id": {"type": "string"},
|
|
100
|
+
"condition": {"type": "string"},
|
|
101
|
+
"type": {"type": "string", "enum": ["auto", "human"]},
|
|
102
|
+
"status": {"type": "string", "enum": ["pending", "passed", "failed", "waived"]},
|
|
103
|
+
"resolved_at": {"type": ["string", "null"]},
|
|
104
|
+
"resolved_by": {"type": ["string", "null"]}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"learning": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"properties": {
|
|
111
|
+
"distill_status": {"type": "string", "enum": ["pending", "done", "skipped"]},
|
|
112
|
+
"lessons_added": {"type": "integer"},
|
|
113
|
+
"skill_candidates": {"type": "integer"}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"definitions": {
|
|
118
|
+
"AgentStatus": {
|
|
119
|
+
"type": "object",
|
|
120
|
+
"properties": {
|
|
121
|
+
"status": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"enum": ["pending", "running", "done", "failed", "skipped"]
|
|
124
|
+
},
|
|
125
|
+
"started_at": {"type": ["string", "null"]},
|
|
126
|
+
"completed_at": {"type": ["string", "null"]}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|