diff --git a/src/agents/pi-embedded-runner/run/attempt.ts b/src/agents/pi-embedded-runner/run/attempt.ts index 9b376f08538..e2880dbd6ae 100644 --- a/src/agents/pi-embedded-runner/run/attempt.ts +++ b/src/agents/pi-embedded-runner/run/attempt.ts @@ -2,7 +2,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import type { AgentMessage } from "@mariozechner/pi-agent-core"; -import type { AssistantMessage, ImageContent } from "@mariozechner/pi-ai"; +import type { ImageContent } from "@mariozechner/pi-ai"; import { streamSimple } from "@mariozechner/pi-ai"; import { createAgentSession, @@ -869,7 +869,7 @@ export async function runEmbeddedAttempt( const lastAssistant = messagesSnapshot .slice() .toReversed() - .find((m) => m?.role === "assistant") as AssistantMessage | undefined; + .find((m) => m?.role === "assistant"); const toolMetasNormalized = toolMetas .filter( diff --git a/src/agents/tools/sessions-announce-target.ts b/src/agents/tools/sessions-announce-target.ts index d0e5061270c..076fc341af3 100644 --- a/src/agents/tools/sessions-announce-target.ts +++ b/src/agents/tools/sessions-announce-target.ts @@ -2,6 +2,7 @@ import { getChannelPlugin, normalizeChannelId } from "../../channels/plugins/ind import { callGateway } from "../../gateway/call.js"; import type { AnnounceTarget } from "./sessions-send-helpers.js"; import { resolveAnnounceTargetFromKey } from "./sessions-send-helpers.js"; +import { SessionListRow } from "./sessions-helpers.js"; export async function resolveAnnounceTarget(params: { sessionKey: string; @@ -20,7 +21,7 @@ export async function resolveAnnounceTarget(params: { } try { - const list = await callGateway({ + const list = await callGateway<{ sessions: Array }>({ method: "sessions.list", params: { includeGlobal: true, diff --git a/src/agents/tools/sessions-helpers.ts b/src/agents/tools/sessions-helpers.ts index 920cfb1fcd1..b951fe9a858 100644 --- a/src/agents/tools/sessions-helpers.ts +++ b/src/agents/tools/sessions-helpers.ts @@ -167,7 +167,7 @@ async function resolveSessionKeyFromSessionId(params: { }): Promise { try { // Resolve via gateway so we respect store routing and visibility rules. - const result = await callGateway({ + const result = await callGateway<{ key?: string }>({ method: "sessions.resolve", params: { sessionId: params.sessionId, @@ -220,7 +220,7 @@ async function resolveSessionKeyFromKey(params: { }): Promise { try { // Try key-based resolution first so non-standard keys keep working. - const result = await callGateway({ + const result = await callGateway<{ key?: string }>({ method: "sessions.resolve", params: { key: params.key, diff --git a/src/agents/tools/sessions-history-tool.ts b/src/agents/tools/sessions-history-tool.ts index d6c89682053..b1e54488a02 100644 --- a/src/agents/tools/sessions-history-tool.ts +++ b/src/agents/tools/sessions-history-tool.ts @@ -10,6 +10,7 @@ import { resolveSessionReference, resolveMainSessionAlias, resolveInternalSessionKey, + SessionListRow, stripToolMessages, } from "./sessions-helpers.js"; @@ -28,7 +29,7 @@ async function isSpawnedSessionAllowed(params: { targetSessionKey: string; }): Promise { try { - const list = await callGateway({ + const list = await callGateway<{ sessions: Array }>({ method: "sessions.list", params: { includeGlobal: false, @@ -126,7 +127,7 @@ export function createSessionsHistoryTool(opts?: { ? Math.max(1, Math.floor(params.limit)) : undefined; const includeTools = Boolean(params.includeTools); - const result = await callGateway({ + const result = await callGateway<{ messages: Array }>({ method: "chat.history", params: { sessionKey: resolvedKey, limit }, }); diff --git a/src/agents/tools/sessions-list-tool.ts b/src/agents/tools/sessions-list-tool.ts index 85c3d95b655..1e666fd9619 100644 --- a/src/agents/tools/sessions-list-tool.ts +++ b/src/agents/tools/sessions-list-tool.ts @@ -79,7 +79,7 @@ export function createSessionsListTool(opts?: { : 0; const messageLimit = Math.min(messageLimitRaw, 20); - const list = await callGateway({ + const list = await callGateway<{ sessions: Array; path: string }>({ method: "sessions.list", params: { limit, @@ -196,7 +196,7 @@ export function createSessionsListTool(opts?: { alias, mainKey, }); - const history = await callGateway({ + const history = await callGateway<{ messages: Array }>({ method: "chat.history", params: { sessionKey: resolvedKey, limit: messageLimit }, }); diff --git a/src/agents/tools/sessions-send-tool.a2a.ts b/src/agents/tools/sessions-send-tool.a2a.ts index 468647cee76..b0650f372bf 100644 --- a/src/agents/tools/sessions-send-tool.a2a.ts +++ b/src/agents/tools/sessions-send-tool.a2a.ts @@ -33,7 +33,7 @@ export async function runSessionsSendA2AFlow(params: { let latestReply = params.roundOneReply; if (!primaryReply && params.waitRunId) { const waitMs = Math.min(params.announceTimeoutMs, 60_000); - const wait = await callGateway({ + const wait = await callGateway<{ status: string }>({ method: "agent.wait", params: { runId: params.waitRunId, diff --git a/src/auto-reply/reply/commands-subagents.ts b/src/auto-reply/reply/commands-subagents.ts index 082fc876d83..cfdaa4d3d6e 100644 --- a/src/auto-reply/reply/commands-subagents.ts +++ b/src/auto-reply/reply/commands-subagents.ts @@ -338,7 +338,7 @@ export const handleSubagentsCommand: CommandHandler = async (params, allowTextCo reply: { text: `⚠️ ${resolved.error ?? "Unknown subagent."}` }, }; } - const history = await callGateway({ + const history = await callGateway<{ messages: Array }>({ method: "chat.history", params: { sessionKey: resolved.entry.childSessionKey, limit }, }); @@ -371,7 +371,7 @@ export const handleSubagentsCommand: CommandHandler = async (params, allowTextCo const idempotencyKey = crypto.randomUUID(); let runId: string = idempotencyKey; try { - const response = await callGateway({ + const response = await callGateway<{ runId: string }>({ method: "agent", params: { message, @@ -393,7 +393,7 @@ export const handleSubagentsCommand: CommandHandler = async (params, allowTextCo } const waitMs = 30_000; - const wait = await callGateway({ + const wait = await callGateway<{ status?: string; error?: string }>({ method: "agent.wait", params: { runId, timeoutMs: waitMs }, timeoutMs: waitMs + 2000, @@ -413,7 +413,7 @@ export const handleSubagentsCommand: CommandHandler = async (params, allowTextCo }; } - const history = await callGateway({ + const history = await callGateway<{ messages: Array }>({ method: "chat.history", params: { sessionKey: resolved.entry.childSessionKey, limit: 50 }, }); diff --git a/src/wizard/onboarding.gateway-config.ts b/src/wizard/onboarding.gateway-config.ts index 6b3e57c44da..76595ccc6de 100644 --- a/src/wizard/onboarding.gateway-config.ts +++ b/src/wizard/onboarding.gateway-config.ts @@ -1,6 +1,6 @@ import { normalizeGatewayTokenInput, randomToken } from "../commands/onboard-helpers.js"; import type { GatewayAuthChoice } from "../commands/onboard-types.js"; -import type { OpenClawConfig } from "../config/config.js"; +import type { GatewayBindMode, GatewayTailscaleMode, OpenClawConfig } from "../config/config.js"; import { findTailscaleBinary } from "../infra/tailscale.js"; import type { RuntimeEnv } from "../runtime.js"; import type { @@ -226,11 +226,11 @@ export async function configureGatewayForOnboarding( gateway: { ...nextConfig.gateway, port, - bind, + bind: bind as GatewayBindMode, ...(bind === "custom" && customBindHost ? { customBindHost } : {}), tailscale: { ...nextConfig.gateway?.tailscale, - mode: tailscaleMode, + mode: tailscaleMode as GatewayTailscaleMode, resetOnExit: tailscaleResetOnExit, }, }, @@ -240,11 +240,11 @@ export async function configureGatewayForOnboarding( nextConfig, settings: { port, - bind, + bind: bind as GatewayBindMode, customBindHost: bind === "custom" ? customBindHost : undefined, authMode, gatewayToken, - tailscaleMode, + tailscaleMode: tailscaleMode as GatewayTailscaleMode, tailscaleResetOnExit, }, };