Skip to content

Commit 0307df8

Browse files
committed
fix(session-aware): evaluate allOf/oneOf requirements against post-prune merged payload to align with exclusivePairs pruning
1 parent 1d57c06 commit 0307df8

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

src/utils/typed-tool-factory.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ export type SessionRequirement =
6464
| { allOf: (keyof SessionDefaults)[]; message?: string }
6565
| { oneOf: (keyof SessionDefaults)[]; message?: string };
6666

67-
function missingFromArgsAndSession(
67+
function missingFromMerged(
6868
keys: (keyof SessionDefaults)[],
69-
args: Record<string, unknown>,
69+
merged: Record<string, unknown>,
7070
): string[] {
71-
return keys.filter((k) => args[k] == null && sessionStore.get(k) == null);
71+
return keys.filter((k) => merged[k] == null);
7272
}
7373

7474
export function createSessionAwareTool<TParams>(opts: {
@@ -107,7 +107,7 @@ export function createSessionAwareTool<TParams>(opts: {
107107

108108
for (const req of requirements) {
109109
if ('allOf' in req) {
110-
const missing = missingFromArgsAndSession(req.allOf, rawArgs);
110+
const missing = missingFromMerged(req.allOf, merged);
111111
if (missing.length > 0) {
112112
return createErrorResponse(
113113
'Missing required session defaults',

0 commit comments

Comments
 (0)