fix: resolve rebased type drift

This commit is contained in:
Peter Steinberger
2026-04-06 16:59:43 +01:00
parent 821a30981a
commit a8436f0220
7 changed files with 20 additions and 22 deletions

View File

@@ -783,8 +783,6 @@ describe("exec approvals", () => {
const result = await tool.execute("call-gw-followup", {
command: "echo ok",
workdir: process.cwd(),
gatewayUrl: undefined,
gatewayToken: undefined,
});
expect(result.details.status).toBe("approval-pending");
@@ -826,8 +824,6 @@ describe("exec approvals", () => {
const result = await tool.execute("call-gw-followup-discord", {
command: "echo ok",
workdir: process.cwd(),
gatewayUrl: undefined,
gatewayToken: undefined,
});
expect(result.details.status).toBe("approval-pending");
@@ -889,8 +885,6 @@ describe("exec approvals", () => {
const result = await tool.execute("call-gw-followup-discord-delayed", {
command: "node -e \"require('node:fs').writeFileSync('marker.txt','ok')\"",
workdir: tempDir,
gatewayUrl: undefined,
gatewayToken: undefined,
});
expect(result.details.status).toBe("approval-pending");
@@ -965,8 +959,6 @@ describe("exec approvals", () => {
const result = await tool.execute("call-gw-followup-webchat", {
command: "node -e \"require('node:fs').writeFileSync('marker.txt','ok')\"",
workdir: tempDir,
gatewayUrl: undefined,
gatewayToken: undefined,
});
expect(result.details.status).toBe("approval-pending");
@@ -1021,8 +1013,6 @@ describe("exec approvals", () => {
const result = await tool.execute("call-gw-followup-deny", {
command: "echo ok",
workdir: process.cwd(),
gatewayUrl: undefined,
gatewayToken: undefined,
});
expect(result.details.status).toBe("approval-pending");

View File

@@ -18,6 +18,8 @@ let getFinishedSession: typeof import("./bash-process-registry.js").getFinishedS
let getSession: typeof import("./bash-process-registry.js").getSession;
let resetProcessRegistryForTests: typeof import("./bash-process-registry.js").resetProcessRegistryForTests;
type ExecToolExecuteParams = Parameters<ReturnType<typeof createExecTool>["execute"]>[1];
const createTestExecTool = (
defaults?: Parameters<typeof createExecTool>[0],
): ReturnType<typeof createExecTool> => createExecTool({ ...TEST_EXEC_DEFAULTS, ...defaults });
@@ -61,7 +63,7 @@ function cleanupRunningSession(sessionId: string) {
async function expectBackgroundSessionSurvivesAbort(params: {
tool: ReturnType<typeof createExecTool>;
executeParams: Record<string, unknown>;
executeParams: ExecToolExecuteParams;
}) {
const abortController = new AbortController();
const result = await params.tool.execute(
@@ -97,7 +99,7 @@ async function expectBackgroundSessionSurvivesAbort(params: {
async function expectBackgroundSessionTimesOut(params: {
tool: ReturnType<typeof createExecTool>;
executeParams: Record<string, unknown>;
executeParams: ExecToolExecuteParams;
signal?: AbortSignal;
abortAfterStart?: boolean;
}) {

View File

@@ -31,11 +31,12 @@ async function pollSession(
sessionId: string,
timeout?: number | string,
) {
return processTool.execute(callId, {
const args = {
action: "poll",
sessionId,
...(timeout === undefined ? {} : { timeout }),
});
} as unknown as Parameters<ReturnType<typeof createProcessTool>["execute"]>[1];
return processTool.execute(callId, args);
}
function retryMs(result: Awaited<ReturnType<ReturnType<typeof createProcessTool>["execute"]>>) {

View File

@@ -87,7 +87,8 @@ export function createMusicGenerateStatusActionResult(
return createMediaGenerateStatusActionResult({
sessionKey,
inactiveText: "No active music generation task is currently running for this session.",
findActiveTask: findActiveMusicGenerationTaskForSession,
findActiveTask: (activeSessionKey) =>
findActiveMusicGenerationTaskForSession(activeSessionKey) ?? undefined,
buildStatusText: buildMusicGenerationTaskStatusText,
buildStatusDetails: buildMusicGenerationTaskStatusDetails,
});
@@ -98,7 +99,8 @@ export function createMusicGenerateDuplicateGuardResult(
): MusicGenerateActionResult | null {
return createMediaGenerateDuplicateGuardResult({
sessionKey,
findActiveTask: findActiveMusicGenerationTaskForSession,
findActiveTask: (activeSessionKey) =>
findActiveMusicGenerationTaskForSession(activeSessionKey) ?? undefined,
buildStatusText: buildMusicGenerationTaskStatusText,
buildStatusDetails: buildMusicGenerationTaskStatusDetails,
});

View File

@@ -91,7 +91,8 @@ export function createVideoGenerateStatusActionResult(
return createMediaGenerateStatusActionResult({
sessionKey,
inactiveText: "No active video generation task is currently running for this session.",
findActiveTask: findActiveVideoGenerationTaskForSession,
findActiveTask: (activeSessionKey) =>
findActiveVideoGenerationTaskForSession(activeSessionKey) ?? undefined,
buildStatusText: buildVideoGenerationTaskStatusText,
buildStatusDetails: buildVideoGenerationTaskStatusDetails,
});
@@ -102,7 +103,8 @@ export function createVideoGenerateDuplicateGuardResult(
): VideoGenerateActionResult | null {
return createMediaGenerateDuplicateGuardResult({
sessionKey,
findActiveTask: findActiveVideoGenerationTaskForSession,
findActiveTask: (activeSessionKey) =>
findActiveVideoGenerationTaskForSession(activeSessionKey) ?? undefined,
buildStatusText: buildVideoGenerationTaskStatusText,
buildStatusDetails: buildVideoGenerationTaskStatusDetails,
});

View File

@@ -248,15 +248,15 @@ export class GatewayClient {
);
const expected = normalizeFingerprint(this.opts.tlsFingerprint ?? "");
if (!expected) {
return false;
return undefined;
}
if (!fingerprint) {
return false;
return new Error("Missing server TLS fingerprint");
}
if (fingerprint !== expected) {
return false;
return new Error("Server TLS fingerprint mismatch");
}
return true;
return undefined;
};
};
}

View File

@@ -1,5 +1,6 @@
import fs from "node:fs/promises";
import path from "node:path";
import type { AgentMessage } from "@mariozechner/pi-agent-core";
import { hasInterSessionUserProvenance } from "../../../sessions/input-provenance.js";
function extractTextMessageContent(content: unknown): string | undefined {