mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-09 07:08:09 -05:00
fix(platform): Implement backwards-compatible Set operations for input validation (#11197)
### Changes 🏗️ - Replaces `isSupersetOf` and `difference` Set operations with backwards-compatible implementations using `Array.from` and `every`/`filter` methods. - This ensures compatibility with older JavaScript environments that may not fully support modern Set operations. Fixes [BUILDER-451](https://sentry.io/organizations/significant-gravitas/issues/6952591149/). The issue was that: ES2024 Set methods `isSupersetOf` and `difference` are unsupported in iOS Safari 16.7, causing a TypeError during component render. This fix was generated by Seer in Sentry, triggered automatically. 👁️ Run ID: 2032240 Not quite right? [Click here to continue debugging with Seer.](https://sentry.io/organizations/significant-gravitas/issues/6952591149/?seerDrawer=true) ### Checklist 📋 #### For code changes: - [ ] I have clearly listed my changes in the PR description - [ ] I have made a test plan - [ ] I have tested my changes according to the test plan: <!-- Put your test plan here: --> - [ ] Test on iOS Safari 16.7 to ensure no TypeError occurs during component render. - [ ] Verify that the replaced `isSupersetOf` and `difference` implementations function correctly in other supported browsers. <details> <summary>Example test plan</summary> - [ ] Create from scratch and execute an agent with at least 3 blocks - [ ] Import an agent from file upload, and confirm it executes correctly - [ ] Upload agent to marketplace - [ ] Import an agent from marketplace and confirm it executes correctly - [ ] Edit an agent from monitor, and confirm it executes correctly </details> #### For configuration changes: - [ ] `.env.default` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [ ] I have included a list of my configuration changes in the PR description (under **Changes**) <details> <summary>Examples of configuration changes</summary> - Changing ports - Adding new services that need to communicate with each other - Secrets or environment variable changes - New or infrastructure changes such as databases </details> Co-authored-by: seer-by-sentry[bot] <157164994+seer-by-sentry[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
8e83586d13
commit
5b52ca9227
@@ -141,18 +141,26 @@ export function AgentRunDraftView({
|
||||
const requiredInputs = new Set(
|
||||
agentInputSchema.required as string[] | undefined,
|
||||
);
|
||||
return [
|
||||
nonEmptyInputs.isSupersetOf(requiredInputs),
|
||||
[...requiredInputs.difference(nonEmptyInputs)],
|
||||
];
|
||||
// Backwards-compatible implementation of isSupersetOf and difference
|
||||
const isSuperset = Array.from(requiredInputs).every((item) =>
|
||||
nonEmptyInputs.has(item),
|
||||
);
|
||||
const difference = Array.from(requiredInputs).filter(
|
||||
(item) => !nonEmptyInputs.has(item),
|
||||
);
|
||||
return [isSuperset, difference];
|
||||
}, [agentInputSchema.required, inputValues]);
|
||||
const [allCredentialsAreSet, missingCredentials] = useMemo(() => {
|
||||
const availableCredentials = new Set(Object.keys(inputCredentials));
|
||||
const allCredentials = new Set(Object.keys(agentCredentialsInputFields));
|
||||
return [
|
||||
availableCredentials.isSupersetOf(allCredentials),
|
||||
[...allCredentials.difference(availableCredentials)],
|
||||
];
|
||||
// Backwards-compatible implementation of isSupersetOf and difference
|
||||
const isSuperset = Array.from(allCredentials).every((item) =>
|
||||
availableCredentials.has(item),
|
||||
);
|
||||
const difference = Array.from(allCredentials).filter(
|
||||
(item) => !availableCredentials.has(item),
|
||||
);
|
||||
return [isSuperset, difference];
|
||||
}, [agentCredentialsInputFields, inputCredentials]);
|
||||
const notifyMissingInputs = useCallback(
|
||||
(needPresetName: boolean = true) => {
|
||||
|
||||
Reference in New Issue
Block a user