From d1fdfb140cc440664f77a24886172f9976a05a31 Mon Sep 17 00:00:00 2001 From: soryu Date: Tue, 28 Apr 2026 19:12:52 +0100 Subject: feat: revert broken directive PRs, re-implement Lexical document orchestrator (#98) * feat: soryu-co/soryu - makima: Revert broken directive PRs and verify clean build * feat: soryu-co/soryu - makima: Re-implement frontend: Lexical document editor with feature flag and base components * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Add contract blocks, expandable log rows, and interaction controls * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: End-to-end build verification and integration polish --- frontend/src/services/directiveApi.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'frontend/src/services/directiveApi.ts') diff --git a/frontend/src/services/directiveApi.ts b/frontend/src/services/directiveApi.ts index 4d1fd82..fcb6636 100644 --- a/frontend/src/services/directiveApi.ts +++ b/frontend/src/services/directiveApi.ts @@ -162,3 +162,24 @@ export async function startTask(taskId: string): Promise { method: 'POST', }) } + +// ---- Contract interaction APIs ---- + +export async function sendContractMessage(taskId: string, message: string): Promise { + await apiFetch(`/api/v1/mesh/tasks/${taskId}/message`, { + method: 'POST', + body: JSON.stringify({ message }), + }) +} + +export async function interruptContract(taskId: string): Promise { + await apiFetch(`/api/v1/mesh/tasks/${taskId}/message`, { + method: 'POST', + body: JSON.stringify({ message: '/interrupt' }), + }) +} + +export async function getContractOutput(taskId: string): Promise<{ output: string }> { + const response = await apiFetch(`/api/v1/mesh/tasks/${taskId}/output`) + return response.json() +} -- cgit v1.2.3