feat(transitions): tasks_ready predicate for execution loop

New TasksReady condition driven by EvaluationContext.readyTaskCount,
fed at resolve time via a kernel-declared ReadyTaskCounter interface
implemented in apps/server over TaskService (keeps core:kernel
decoupled from core:tasks). Loops a graph while ready>0, exits at 0.
This commit is contained in:
2026-06-29 00:45:33 +04:00
parent d26f20c316
commit c1e4c7b25e
14 changed files with 164 additions and 1 deletions
+15
View File
@@ -0,0 +1,15 @@
{
"name": "correx-web-ui",
"version": "1.0.0",
"description": "Web client for CORREX orchestration kernel",
"main": "./src/App.tsx",
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test"
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0"
}
}
+25
View File
@@ -0,0 +1,25 @@
import React from 'react';
import SessionView from './components/session/SessionView';
import TaskBoard from './components/task/TaskBoard';
import WorkflowDebugger from './components/workflow/WorkflowDebugger';
import EventTimeline from './components/state/EventTimeline';
import { api } from './services/api';
import { actions } from './services/actions';
const App: React.FC = () => {
// Placeholder for routing or state management
return (
<div style={{ padding: '20px', fontFamily: 'sans-serif' }}>
<h1>CORREX Web Client</h1>
<p>Welcome to the orchestration kernel interface.</p>
{/* Basic component placeholders */}
<SessionView api={api} />
<TaskBoard api={api} />
<WorkflowDebugger api={api} />
<EventTimeline api={api} />
</div>
);
};
export default App;
@@ -0,0 +1,8 @@
import React from 'react';
const SessionView: React.FC<{ api: any }> = ({ api }) => {
// Implementation in Step 3
return <div>Session View Component</div>;
};
export default SessionView;