diff --git a/apps/macos/Sources/OpenClawProtocol/GatewayModels.swift b/apps/macos/Sources/OpenClawProtocol/GatewayModels.swift index c82e218c641..2ea9ed4ed2c 100644 --- a/apps/macos/Sources/OpenClawProtocol/GatewayModels.swift +++ b/apps/macos/Sources/OpenClawProtocol/GatewayModels.swift @@ -489,6 +489,7 @@ public struct AgentParams: Codable, Sendable { public let timeout: Int? public let lane: String? public let extrasystemprompt: String? + public let inputprovenance: [String: AnyCodable]? public let idempotencykey: String public let label: String? public let spawnedby: String? @@ -514,6 +515,7 @@ public struct AgentParams: Codable, Sendable { timeout: Int?, lane: String?, extrasystemprompt: String?, + inputprovenance: [String: AnyCodable]?, idempotencykey: String, label: String?, spawnedby: String? @@ -538,6 +540,7 @@ public struct AgentParams: Codable, Sendable { self.timeout = timeout self.lane = lane self.extrasystemprompt = extrasystemprompt + self.inputprovenance = inputprovenance self.idempotencykey = idempotencykey self.label = label self.spawnedby = spawnedby @@ -563,6 +566,7 @@ public struct AgentParams: Codable, Sendable { case timeout case lane case extrasystemprompt = "extraSystemPrompt" + case inputprovenance = "inputProvenance" case idempotencykey = "idempotencyKey" case label case spawnedby = "spawnedBy" diff --git a/apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift b/apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift index c82e218c641..2ea9ed4ed2c 100644 --- a/apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift +++ b/apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift @@ -489,6 +489,7 @@ public struct AgentParams: Codable, Sendable { public let timeout: Int? public let lane: String? public let extrasystemprompt: String? + public let inputprovenance: [String: AnyCodable]? public let idempotencykey: String public let label: String? public let spawnedby: String? @@ -514,6 +515,7 @@ public struct AgentParams: Codable, Sendable { timeout: Int?, lane: String?, extrasystemprompt: String?, + inputprovenance: [String: AnyCodable]?, idempotencykey: String, label: String?, spawnedby: String? @@ -538,6 +540,7 @@ public struct AgentParams: Codable, Sendable { self.timeout = timeout self.lane = lane self.extrasystemprompt = extrasystemprompt + self.inputprovenance = inputprovenance self.idempotencykey = idempotencykey self.label = label self.spawnedby = spawnedby @@ -563,6 +566,7 @@ public struct AgentParams: Codable, Sendable { case timeout case lane case extrasystemprompt = "extraSystemPrompt" + case inputprovenance = "inputProvenance" case idempotencykey = "idempotencyKey" case label case spawnedby = "spawnedBy" diff --git a/src/gateway/session-utils.fs.test.ts b/src/gateway/session-utils.fs.test.ts index 7ab83a3868e..0924f2fe74e 100644 --- a/src/gateway/session-utils.fs.test.ts +++ b/src/gateway/session-utils.fs.test.ts @@ -546,8 +546,10 @@ describe("resolveSessionTranscriptCandidates safety", () => { storePath, "../../etc/passwd", ); + const normalizedCandidates = candidates.map((value) => path.resolve(value)); + const expectedFallback = path.resolve(path.dirname(storePath), "sess-safe.jsonl"); expect(candidates.some((value) => value.includes("etc/passwd"))).toBe(false); - expect(candidates).toContain(path.join(path.dirname(storePath), "sess-safe.jsonl")); + expect(normalizedCandidates).toContain(expectedFallback); }); });