diff options
| author | Adam Malczewski <[email protected]> | 2026-06-26 00:02:22 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-26 00:02:22 +0900 |
| commit | c5c34ed70e0f04b7b936fa7a1d88ef807472fb96 (patch) | |
| tree | 2eb3d32159c2875cf518fc47b7f48010d506aafe /packages/host-bin/src | |
| parent | 9b91d1bca83e7599fb7d7de6038cedf186e61764 (diff) | |
| download | dispatch-c5c34ed70e0f04b7b936fa7a1d88ef807472fb96.tar.gz dispatch-c5c34ed70e0f04b7b936fa7a1d88ef807472fb96.zip | |
feat(heartbeat): workspace heartbeat loop with configurable AI monitoring
Diffstat (limited to 'packages/host-bin/src')
| -rw-r--r-- | packages/host-bin/src/main.ts | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/packages/host-bin/src/main.ts b/packages/host-bin/src/main.ts index 571628f..26015ed 100644 --- a/packages/host-bin/src/main.ts +++ b/packages/host-bin/src/main.ts @@ -2,6 +2,7 @@ import { existsSync, mkdirSync } from "node:fs"; import { dirname } from "node:path"; import { extension as authApikeyExt } from "@dispatch/auth-apikey"; import { extension as cacheWarmingExt } from "@dispatch/cache-warming"; +import { extension as heartbeatExt } from "@dispatch/heartbeat"; import { extension as conversationStoreExt } from "@dispatch/conversation-store"; import { createCredentialStoreExtension } from "@dispatch/credential-store"; import { createExecBackendExtension } from "@dispatch/exec-backend"; @@ -105,6 +106,10 @@ const CORE_EXTENSIONS: readonly Extension[] = [ // tool-serving extensions) to keep the DAG honest — and before // transport-http, whose routes consume the ComputerService it provides. sshExt, + // heartbeat PROVIDES the HeartbeatService (per-workspace AI loop) the + // HTTP routes delegate to. Placed before transport-http (which depends on + // it) — mirrors how ssh precedes transport-http for the same reason. + heartbeatExt, createTransportHttpExtension(), // Surface extensions — dependency order: surface-registry first, then consumers. createSurfaceRegistryExtension(), |
