summaryrefslogtreecommitdiff
path: root/makima/frontend/src/lib/api.ts
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-21 23:51:11 +0000
committerGitHub <noreply@github.com>2026-02-21 23:51:11 +0000
commit0523765af84492640928d571f481e17b26008b13 (patch)
tree644e0bac90c1945120df27dea36d18c81f4470e9 /makima/frontend/src/lib/api.ts
parentd670dcb72984cfa483063d161bb468704038895c (diff)
downloadsoryu-0523765af84492640928d571f481e17b26008b13.tar.gz
soryu-0523765af84492640928d571f481e17b26008b13.zip
feat: Add daemon health monitoring page, downloads & K8s support (#76)
* feat: soryu-co/soryu - makima: Add server-side daemon binary download endpoint * feat: soryu-co/soryu - makima: Create Kubernetes daemon manifests and Dockerfile * feat: soryu-co/soryu - makima: Create dedicated Daemons page with health monitoring UI * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Integrate daemon platform availability into frontend downloads
Diffstat (limited to 'makima/frontend/src/lib/api.ts')
-rw-r--r--makima/frontend/src/lib/api.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/makima/frontend/src/lib/api.ts b/makima/frontend/src/lib/api.ts
index 43eaa05..458b69d 100644
--- a/makima/frontend/src/lib/api.ts
+++ b/makima/frontend/src/lib/api.ts
@@ -1222,6 +1222,42 @@ export async function restartDaemon(id: string): Promise<RestartDaemonResponse>
}
// =============================================================================
+// Daemon Platform Download
+// =============================================================================
+
+/** A daemon platform with its availability and download URL */
+export interface DaemonPlatform {
+ platform: string;
+ available: boolean;
+ downloadUrl: string;
+}
+
+/** Response from the list daemon platforms endpoint */
+export interface DaemonPlatformsResponse {
+ platforms: DaemonPlatform[];
+}
+
+/**
+ * List available daemon platforms and their download status.
+ * This is an unauthenticated endpoint.
+ */
+export async function listDaemonPlatforms(): Promise<DaemonPlatformsResponse> {
+ const res = await fetch(`${API_BASE}/api/v1/daemon/download/platforms`);
+ if (!res.ok) {
+ throw new Error(`Failed to list daemon platforms: ${res.statusText}`);
+ }
+ return res.json();
+}
+
+/**
+ * Get the full download URL for a daemon binary.
+ * Returns the absolute URL including API_BASE for cross-origin usage.
+ */
+export function getDaemonDownloadUrl(platform: string): string {
+ return `${API_BASE}/api/v1/daemon/download/${platform}`;
+}
+
+// =============================================================================
// Mesh Chat Types for Task Orchestration
// =============================================================================