feat: add executor gateway contracts

This commit is contained in:
john
2026-07-24 22:50:37 +08:00
parent 19706eb3a0
commit d21c4849a9
8 changed files with 647 additions and 0 deletions
+11
View File
@@ -237,6 +237,16 @@ export type OrchestratorEngineDescriptor = {
capabilities: string[];
};
export type OrchestratorExecutorDescriptor = {
id: string;
label: string;
kind: string;
enabled: boolean;
dispatchImplemented: boolean;
status: string;
capabilities: string[];
};
export type OrchestratorConfigState = {
config: OrchestratorConfig;
configVersion: number;
@@ -245,6 +255,7 @@ export type OrchestratorConfigState = {
source: string;
runtime: OrchestratorRuntime;
engines: OrchestratorEngineDescriptor[];
executors: OrchestratorExecutorDescriptor[];
};
export type OrchestratorServiceHealth = {
+30
View File
@@ -169,6 +169,36 @@ export function OrchestratorPage() {
</p>
</div>
<div className="card grid">
<div>
<h3 style={{ margin: 0 }}>Executor Gateway</h3>
<p style={{ margin: '4px 0 0', color: '#68716c', fontSize: 13 }}>
Phase 3.2 contract-only
</p>
</div>
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(220px, 1fr))', gap: 10 }}>
{(state.executors ?? []).map((executor) => (
<div
key={executor.id}
style={{ border: '1px solid #e4e9e6', borderRadius: 10, padding: 12 }}
>
<div style={{ display: 'flex', justifyContent: 'space-between', gap: 8 }}>
<strong>{executor.label}</strong>
<span style={{ color: executor.enabled ? '#2f6f57' : '#8a5a16', fontSize: 13 }}>
{executor.status}
</span>
</div>
<p style={{ margin: '8px 0 0', color: '#68716c', fontSize: 13 }}>
{executor.capabilities.join(' · ') || '无能力声明'}
</p>
<small style={{ display: 'block', marginTop: 8 }}>
dispatch {executor.dispatchImplemented ? 'implemented' : 'disabled'}
</small>
</div>
))}
</div>
</div>
<OrchestratorShadowPanel />
<OrchestratorExecutionPlanPanel />