diff --git a/.github/workflows/remote-release-platforms.yml b/.github/workflows/remote-release-platforms.yml index 06276e18..ec4be51a 100644 --- a/.github/workflows/remote-release-platforms.yml +++ b/.github/workflows/remote-release-platforms.yml @@ -39,7 +39,7 @@ jobs: - name: Build electron-vite run: pnpm exec electron-vite build - name: Package - run: pnpm exec electron-builder --win --x64 --ia32 --arm64 --config electron-builder.yml --publish never + run: pnpm exec electron-builder --win --x64 --arm64 --config electron-builder.yml --publish never env: CSC_LINK: ${{ secrets.WIN_CERTIFICATE_P12_BASE64 }} CSC_KEY_PASSWORD: ${{ secrets.WIN_CERTIFICATE_PASSWORD }} diff --git a/landing/components/release-links.generated.ts b/landing/components/release-links.generated.ts index e852e7fe..32d422cd 100644 --- a/landing/components/release-links.generated.ts +++ b/landing/components/release-links.generated.ts @@ -12,7 +12,7 @@ export type PlatformDownload = { assets: PlatformDownloadAsset[]; }; -export const releaseVersion = "0.4.167"; +export const releaseVersion = "0.4.171"; export const platformDownloads: PlatformDownload[] = [ { @@ -23,13 +23,13 @@ export const platformDownloads: PlatformDownload[] = [ { id: "macos-arm64-dmg", label: "Apple Silicon DMG", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany-0.4.167-arm64.dmg", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany-0.4.171-arm64.dmg", note: "arm64", }, { id: "macos-x64-dmg", label: "Intel Mac DMG", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany-0.4.167.dmg", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany-0.4.171.dmg", note: "x64", }, ], @@ -42,8 +42,8 @@ export const platformDownloads: PlatformDownload[] = [ { id: "windows-universal-installer", label: "Windows Universal Installer", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany.Setup.0.4.167.exe", - note: "arm64 + x64 + ia32", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany.Setup.0.4.171.exe", + note: "arm64 + x64", }, ], }, @@ -55,37 +55,37 @@ export const platformDownloads: PlatformDownload[] = [ { id: "linux-x64-appimage", label: "Linux x64 AppImage", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany-0.4.167.AppImage", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany-0.4.171.AppImage", note: "x64", }, { id: "linux-x64-deb", label: "Linux x64 DEB", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/agent-company_0.4.167_amd64.deb", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/agent-company_0.4.171_amd64.deb", note: "x64", }, { id: "linux-x64-rpm", label: "Linux x64 RPM", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/agent-company-0.4.167.x86_64.rpm", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/agent-company-0.4.171.x86_64.rpm", note: "x64", }, { id: "linux-arm64-appimage", label: "Linux ARM64 AppImage", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany-0.4.167-arm64.AppImage", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/AgentCompany-0.4.171-arm64.AppImage", note: "arm64", }, { id: "linux-arm64-deb", label: "Linux ARM64 DEB", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/agent-company_0.4.167_arm64.deb", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/agent-company_0.4.171_arm64.deb", note: "arm64", }, { id: "linux-arm64-rpm", label: "Linux ARM64 RPM", - href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/agent-company-0.4.167.aarch64.rpm", + href: "https://pub-a19a3a2c1d2e4fa3a9c120b184024448.r2.dev/AC/agent-company-0.4.171.aarch64.rpm", note: "arm64", }, ], diff --git a/package.json b/package.json index 88c6d205..26ad6659 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agent-company", - "version": "0.4.167", + "version": "0.4.171", "private": true, "type": "module", "description": "Cross-platform Electron desktop control plane for local-first AI agent companies.", @@ -52,6 +52,8 @@ "zustand": "^5.0.12" }, "devDependencies": { + "@aws-sdk/client-s3": "^3.1034.0", + "@aws-sdk/lib-storage": "^3.1034.0", "@eslint/js": "9.38.0", "@playwright/test": "1.58.2", "@tailwindcss/typography": "^0.5.19", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32ad64af..67fa7ab4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,6 +54,12 @@ importers: specifier: ^5.0.12 version: 5.0.12(@types/react@19.2.14)(immer@11.1.4)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)) devDependencies: + '@aws-sdk/client-s3': + specifier: ^3.1034.0 + version: 3.1034.0 + '@aws-sdk/lib-storage': + specifier: ^3.1034.0 + version: 3.1034.0(@aws-sdk/client-s3@3.1034.0) '@eslint/js': specifier: 9.38.0 version: 9.38.0 @@ -133,6 +139,12 @@ packages: resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} engines: {node: '>=16.0.0'} + '@aws-crypto/crc32c@5.2.0': + resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + + '@aws-crypto/sha1-browser@5.2.0': + resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + '@aws-crypto/sha256-browser@5.2.0': resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} @@ -150,54 +162,120 @@ packages: resolution: {integrity: sha512-ZgiSo2wslPXlv7wK4m2ULu2VfimbVRRlho0DqXhlvZGEqvtC209cMOxfPZWJ79Fz9sf0IzmWFkDtvMYjnwyLfw==} engines: {node: '>=20.0.0'} + '@aws-sdk/client-s3@3.1034.0': + resolution: {integrity: sha512-r91IZKPKuRlpCBsEmz9qnWrYxuHD0jsQv1p9UGNasFpcuPo1OnfwIB2ClXtqdXKYUvubXCwn7KBObTVnnvYvAA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/core@3.974.0': resolution: {integrity: sha512-8j+dMtyDqNXFmi09CBdz8TY6Ltf2jhfHuP6ZvG4zVjndRc6JF0aeBUbRwQLndbptFCsdctRQgdNWecy4TIfXAw==} engines: {node: '>=20.0.0'} + '@aws-sdk/core@3.974.3': + resolution: {integrity: sha512-W3aJJm2clu8OmsrwMOMnfof13O6LGnbknnZIQeSRbxjqKah2nVvkjbUBBZVhWrt08KC69H7WsINTdrxC/2SXQw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/crc64-nvme@3.972.7': + resolution: {integrity: sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-env@3.972.26': resolution: {integrity: sha512-WBHAMxyPdgeJY6ZGLvq9mJwzZ+GaNUROQbfdVshtMsDVBrZTj5ZuFjKclSjSHvKSHJ4Y4O2yvI/aA/hrJbYfng==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-env@3.972.29': + resolution: {integrity: sha512-rf+AlUxgTeSzQ/4zoS0D+Bt7XvgpY48PnWG8Yg/N9fdMgyK2Jaqa+6tLZp4MYMIMHkGrfAxnbSeb2YLMGFMg6g==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-http@3.972.28': resolution: {integrity: sha512-+1DwCjjpo1WoiZTN08yGitI3nUwZUSQWVWFrW4C46HqZwACjcUQ7C66tnKPBTVxrEYYDOP11A6Afmu1L6ylt3g==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-http@3.972.31': + resolution: {integrity: sha512-TR2/lQ3qKFj2EOrsiASzemsNEz2uzZ/SUBf48+U4Cr9a/FZlHfH/hwAeBJNBp1gMyJNxROJZhT3dn1cO+jnYfQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-ini@3.972.30': resolution: {integrity: sha512-Fg1oJcoijwOZjTxdbx+ubqbQl8YEQ4Cwhjw6TWzQjuDEvQYNhnCXW2pN7eKtdTrdE4a6+5TVKGSm2I+i2BKIQg==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-ini@3.972.33': + resolution: {integrity: sha512-UwdbJbOrgnOxZbshaNZ4DzX35h5wQd33MNYTGzWhN3ORG9lG9KQbDX6l6tDJSAdaGTktJoZPSritmUoW1rYkRA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-login@3.972.30': resolution: {integrity: sha512-nchIrrI/7dgjG1bW/DEWOJc00K9n+kkl6B8Mk0KO6d4GfWBOXlVr9uHp7CJR9FIrjmov5SGjHXG2q9XAtkRw6Q==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-login@3.972.33': + resolution: {integrity: sha512-WyZuPVoDM1HGNl41eVg8HSSXIB+FGkuuK63GhDbh4TMdfWU03AciWvF/QqOVWvJtWVYaLddANJ+aUklVr2ieuw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-node@3.972.31': resolution: {integrity: sha512-99OHVQ6eZ5DTxiOWgHdjBMvLqv7xoY4jLK6nZ1NcNSQbAnYZkQNIHi/VqInc9fnmg7of9si/z+waE6YL9OQIlw==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-node@3.972.34': + resolution: {integrity: sha512-sPcisURibKU4x0PCWJkWF1KJYm49Cph9dCn/PAnG5FU0wq5Id3g2v7RuEWAtNlKv1Af4gUJYBVGOeNpSEEx41A==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-process@3.972.26': resolution: {integrity: sha512-jibxNld3m+vbmQwn98hcQ+fLIVrx3cQuhZlSs1/hix48SjDS5/pjMLwpmtLD/lFnd6ve1AL4o1bZg3X1WRa2SQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-process@3.972.29': + resolution: {integrity: sha512-DURisqWS3bUgiwMXTmzymVNGlcRW0FnbPZ3SZknhmxnCXm3n9idkTJ6T+Uir359KRKtJNFLRViskk8HsSVLi1w==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-sso@3.972.30': resolution: {integrity: sha512-honYIM17F/+QSWJRE84T4u//ofqEi7rLbnwmIpu7fgFX5PML78wbtdSAy5Xwyve3TLpE9/f9zQx0aBVxSjAOPw==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-sso@3.972.33': + resolution: {integrity: sha512-9y9obU4IQWru9f+NiiscUeyCe5ZmQav4FKEb1qfUNrik/C3BzBGUnHQWyPEyXjOX9cb+vx1TYx0qZBtinKdzTA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.30': resolution: {integrity: sha512-CyL4oWUlONQRN2SsYMVrA9Z3i3QfLWTQctI8tuKbjNGCVVDCnJf/yMbSJCOZgpPFRtxh7dgQwvpqwmJm+iytmw==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.33': + resolution: {integrity: sha512-RazhlN0YAkna2T2p2v4YuuRlVBVRNo8V0SL+9JePTWDndEUAeOBAjYeQfAMbtDyCh120+zA0Op6V0jS4dw2+iw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/eventstream-handler-node@3.972.14': resolution: {integrity: sha512-m4X56gxG76/CKfxNVbOFuYwnAZcHgS6HOH8lgp15HoGHIAVTcZfZrXvcYzJFOMLEJgVn+JHBu6EiNV+xSNXXFg==} engines: {node: '>=20.0.0'} + '@aws-sdk/lib-storage@3.1034.0': + resolution: {integrity: sha512-2iWFXxrDb0Ni6ZtToE89PUWFGTqo+0lji0E4Jngf8w4xA3aCBx4CY4PcHQ6/LsQfm8GNsgCsx0W503C3Hn9PyQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@aws-sdk/client-s3': ^3.1034.0 + + '@aws-sdk/middleware-bucket-endpoint@3.972.10': + resolution: {integrity: sha512-Vbc2frZH7wXlMNd+ZZSXUEs/l1Sv8Jj4zUnIfwrYF5lwaLdXHZ9xx4U3rjUcaye3HRhFVc+E5DbBxpRAbB16BA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-eventstream@3.972.10': resolution: {integrity: sha512-QUqLs7Af1II9X4fCRAu+EGHG3KHyOp4RkuLhRKoA3NuFlh6TL8i+zXBl8w2LUxqm44B/Kom45hgSlwA1SpTsXQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-expect-continue@3.972.10': + resolution: {integrity: sha512-2Yn0f1Qiq/DjxYR3wfI3LokXnjOhFM7Ssn4LTdFDIxRMCE6I32MAsVnhPX1cUZsuVA9tiZtwwhlSLAtFGxAZlQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-flexible-checksums@3.974.11': + resolution: {integrity: sha512-jTrJFs4SMs9xjih45+QHtU79piovA6CAlofMt4jeknN5ef9zsVEHDtuwCnEe/3eANWewa9fd6Tvc54xEPpQ3RA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-host-header@3.972.10': resolution: {integrity: sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-location-constraint@3.972.10': + resolution: {integrity: sha512-rI3NZvJcEvjoD0+0PI0iUAwlPw2IlSlhyvgBK/3WkKJQE/YiKFedd9dMN2lVacdNxPNhxL/jzQaKQdrGtQagjQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-logger@3.972.10': resolution: {integrity: sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==} engines: {node: '>=20.0.0'} @@ -206,10 +284,22 @@ packages: resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-sdk-s3@3.972.32': + resolution: {integrity: sha512-dc2O2x0V5pGJhmdQYQveUIFtMZsur7GrGuSgoKM4oQJuEcfvwnJ3sj+ip6WnxR5l6TrX5zkl4KgcgswOy3wAzQ==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/middleware-ssec@3.972.10': + resolution: {integrity: sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-user-agent@3.972.30': resolution: {integrity: sha512-lCz6JfelhjD6Eco1urXM2rOYRaxROSqeoY6IEKx+soegFJOajmIBCMHTAWuJl25Wf9IAST+i0/yOk9G3rMV26A==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-user-agent@3.972.33': + resolution: {integrity: sha512-mqtT3Fo7xanWMk2SbAcKLGGI/q1GHWNrExBj7cnWP2W2mkTMheXB4ntJvwPZ1UxPrQobrsv2dWFXmaOJeSOiDg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-websocket@3.972.16': resolution: {integrity: sha512-86+S9oCyRVGzoMRpQhxkArp7kD2K75GPmaNevd9B6EyNhWoNvnCZZ3WbgN4j7ZT+jvtvBCGZvI2XHsWZJ+BRIg==} engines: {node: '>= 14.0.0'} @@ -218,22 +308,46 @@ packages: resolution: {integrity: sha512-bzPdsNQnCh6TvvUmTHLZlL8qgyME6mNiUErcRMyJPywIl1BEu2VZRShel3mUoSh89bOBEXEWtjocDMolFxd/9A==} engines: {node: '>=20.0.0'} + '@aws-sdk/nested-clients@3.997.1': + resolution: {integrity: sha512-Afc9hc2WZs3X4Jb8dnxyuYiZsLoWRO51roTCRf497gPnAKN2WRdXANu1vaVCTzwnDMOYFXb/cYv4ZSjxqAqcKA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/region-config-resolver@3.972.12': resolution: {integrity: sha512-QQI43Mxd53nBij0pm8HXC+t4IOC6gnhhZfzxE0OATQyO6QfPV4e+aTIRRuAJKA6Nig/cR8eLwPryqYTX9ZrjAQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/region-config-resolver@3.972.13': + resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.996.20': + resolution: {integrity: sha512-MEj6DhEcaO8RgVtFCJ+xpCQnZC3Iesr09avdY75qkMQfckQULu447IegK7Rs1MCGerVBfKnJQ4q+pQq9hI5lng==} + engines: {node: '>=20.0.0'} + '@aws-sdk/token-providers@3.1031.0': resolution: {integrity: sha512-zj/PvnbQK/2KJNln5K2QRI9HSsy+B4emz2gbQyUHkk6l7Lidu83P/9tfmC2cJXkcC3vdmyKH2DP3Iw/FDfKQuQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/token-providers@3.1034.0': + resolution: {integrity: sha512-8E+KGcD4ET0H9FXJ2/ZWbfFnQNYEkTZZYJxAs1lkdJlve1AYuqaydInIFfvNgoz5GbYtzbK8/ugsSMu5wPm6kA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/types@3.973.8': resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==} engines: {node: '>=20.0.0'} + '@aws-sdk/util-arn-parser@3.972.3': + resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/util-endpoints@3.996.7': resolution: {integrity: sha512-ty4LQxN1QC+YhUP28NfEgZDEGXkyqOQy+BDriBozqHsrYO4JMgiPhfizqOGF7P+euBTZ5Ez6SKlLAMCLo8tzmw==} engines: {node: '>=20.0.0'} + '@aws-sdk/util-endpoints@3.996.8': + resolution: {integrity: sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==} + engines: {node: '>=20.0.0'} + '@aws-sdk/util-format-url@3.972.10': resolution: {integrity: sha512-DEKiHNJVtNxdyTeQspzY+15Po/kHm6sF0Cs4HV9Q2+lplB63+DrvdeiSoOSdWEWAoO2RcY1veoXVDz2tWxWCgQ==} engines: {node: '>=20.0.0'} @@ -254,6 +368,15 @@ packages: aws-crt: optional: true + '@aws-sdk/util-user-agent-node@3.973.19': + resolution: {integrity: sha512-ZAfHjpzdbrzkAftC139JoYGfXzDh5HY+AxRzw8pGJ8cULsf+l721sKAMK8mV5NvRETaW/BwghSwQhGgoNgrxMw==} + engines: {node: '>=20.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + '@aws-sdk/xml-builder@3.972.18': resolution: {integrity: sha512-BMDNVG1ETXRhl1tnisQiYBef3RShJ1kfZA7x7afivTFMLirfHNTb6U71K569HNXhSXbQZsweHvSDZ6euBw8hPA==} engines: {node: '>=20.0.0'} @@ -1116,14 +1239,30 @@ packages: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} + '@smithy/chunked-blob-reader-native@4.2.3': + resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader@5.2.2': + resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} + engines: {node: '>=18.0.0'} + '@smithy/config-resolver@4.4.16': resolution: {integrity: sha512-GFlGPNLZKrGfqWpqVb31z7hvYCA9ZscfX1buYnvvMGcRYsQQnhH+4uN6mWWflcD5jB4OXP/LBrdpukEdjl41tg==} engines: {node: '>=18.0.0'} + '@smithy/config-resolver@4.4.17': + resolution: {integrity: sha512-TzDZcAnhTyAHbXVxWZo7/tEcrIeFq20IBk8So3OLOetWpR8EwY/yEqBMBFaJMeyEiREDq4NfEl+qO3OAUD+vbQ==} + engines: {node: '>=18.0.0'} + '@smithy/core@3.23.15': resolution: {integrity: sha512-E7GVCgsQttzfujEZb6Qep005wWf4xiL4x06apFEtzQMWYBPggZh/0cnOxPficw5cuK/YjjkehKoIN4YUaSh0UQ==} engines: {node: '>=18.0.0'} + '@smithy/core@3.23.16': + resolution: {integrity: sha512-JStomOrINQA1VqNEopLsgcdgwd42au7mykKqVr30XFw89wLt9sDxJDi4djVPRwQmmzyTGy/uOvTc2ultMpFi1w==} + engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.2.14': resolution: {integrity: sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==} engines: {node: '>=18.0.0'} @@ -1152,10 +1291,18 @@ packages: resolution: {integrity: sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==} engines: {node: '>=18.0.0'} + '@smithy/hash-blob-browser@4.2.15': + resolution: {integrity: sha512-0PJ4Al3fg2nM4qKrAIxyNcApgqHAXcBkN8FeizOz69z0rb26uZ6lMESYtxegaTlXB5Hj84JfwMPavMrwDMjucA==} + engines: {node: '>=18.0.0'} + '@smithy/hash-node@4.2.14': resolution: {integrity: sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==} engines: {node: '>=18.0.0'} + '@smithy/hash-stream-node@4.2.14': + resolution: {integrity: sha512-tw4GANWkZPb6+BdD4Fgucqzey2+r73Z/GRo9zklsCdwrnxxumUV83ZIaBDdudV4Ylazw3EPTiJZhpX42105ruQ==} + engines: {node: '>=18.0.0'} + '@smithy/invalid-dependency@4.2.14': resolution: {integrity: sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==} engines: {node: '>=18.0.0'} @@ -1168,6 +1315,10 @@ packages: resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} engines: {node: '>=18.0.0'} + '@smithy/md5-js@4.2.14': + resolution: {integrity: sha512-V2v0vx+h0iUSNG1Alt+GNBMSLGCrl9iVsdd+Ap67HPM9PN479x12V8LkuMoKImNZxn3MXeuyUjls+/7ZACZghA==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-content-length@4.2.14': resolution: {integrity: sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==} engines: {node: '>=18.0.0'} @@ -1176,14 +1327,26 @@ packages: resolution: {integrity: sha512-qS2XqhKeXmdZ4nEQ4cOxIczSP/Y91wPAHYuRwmWDCh975B7/57uxsm5d6sisnUThn2u2FwzMdJNM7AbO1YPsPg==} engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.4.31': + resolution: {integrity: sha512-KJPdCIN2kOE2aGmqZd7eUTr4WQwOGgtLWgUkswGJggs7rBcQYQjcZMEDa3C0DwbOiXS9L8/wDoQHkfxBYLfiLw==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.5.3': resolution: {integrity: sha512-TE8dJNi6JuxzGSxMCVd3i9IEWDndCl3bmluLsBNDWok8olgj65OfkndMhl9SZ7m14c+C5SQn/PcUmrDl57rSFw==} engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.5.4': + resolution: {integrity: sha512-/z7nIFK+ZRW3Ie/l3NEVGdy34LvmEOzBrtBAvgWZ/4PrKX0xP3kWm8pkfcwUk523SqxZhdbQP9JSXgjF77Uhpw==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.2.18': resolution: {integrity: sha512-M6CSgnp3v4tYz9ynj2JHbA60woBZcGqEwNjTKjBsNHPV26R1ZX52+0wW8WsZU18q45jD0tw2wL22S17Ze9LpEw==} engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.2.19': + resolution: {integrity: sha512-Q6y+W9h3iYVMCKWDoVge+OC1LKFqbEKaq8SIWG2X2bWJRpd/6dDLyICcNLT6PbjH3Rr6bmg/SeDB25XFOFfeEw==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-stack@4.2.14': resolution: {integrity: sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==} engines: {node: '>=18.0.0'} @@ -1196,6 +1359,10 @@ packages: resolution: {integrity: sha512-lc5jFL++x17sPhIwMWJ3YOnqmSjw/2Po6VLDlUIXvxVWRuJwRXnJ4jOBBLB0cfI5BB5ehIl02Fxr1PDvk/kxDw==} engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.6.0': + resolution: {integrity: sha512-P734cAoTFtuGfWa/R3jgBnGlURt2w9bYEBwQNMKf58sRM9RShirB2mKwLsVP+jlG/wxpCu8abv8NxdUts8tdLA==} + engines: {node: '>=18.0.0'} + '@smithy/property-provider@4.2.14': resolution: {integrity: sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==} engines: {node: '>=18.0.0'} @@ -1216,6 +1383,10 @@ packages: resolution: {integrity: sha512-vVimoUnGxlx4eLLQbZImdOZFOe+Zh+5ACntv8VxZuGP72LdWu5GV3oEmCahSEReBgRJoWjypFkrehSj7BWx1HQ==} engines: {node: '>=18.0.0'} + '@smithy/service-error-classification@4.3.0': + resolution: {integrity: sha512-9jKsBYQRPR0xBLgc2415RsA5PIcP2sis4oBdN9s0D13cg1B1284mNTjx9Yc+BEERXzuPm5ObktI96OxsKh8E9A==} + engines: {node: '>=18.0.0'} + '@smithy/shared-ini-file-loader@4.4.9': resolution: {integrity: sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==} engines: {node: '>=18.0.0'} @@ -1228,6 +1399,10 @@ packages: resolution: {integrity: sha512-wzz/Wa1CH/Tlhxh0s4DQPEcXSxSVfJ59AZcUh9Gu0c6JTlKuwGf4o/3P2TExv0VbtPFt8odIBG+eQGK2+vTECg==} engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.12.12': + resolution: {integrity: sha512-daO7SJn4eM6ArbmrEs+/BTbH7af8AEbSL3OMQdcRvvn8tuUcR5rU2n6DgxIV53aXMS42uwK8NgKKCh5XgqYOPQ==} + engines: {node: '>=18.0.0'} + '@smithy/types@4.14.1': resolution: {integrity: sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==} engines: {node: '>=18.0.0'} @@ -1264,14 +1439,26 @@ packages: resolution: {integrity: sha512-zlIuXai3/SHjQUQ8y3g/woLvrH573SK2wNjcDaHu5e9VOcC0JwM1MI0Sq0GZJyN3BwSUneIhpjZ18nsiz5AtQw==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@4.3.48': + resolution: {integrity: sha512-hxVRVPYaRDWa6YQdse1aWX1qrksmLsvNyGBKdc32q4jFzSjxYVNWfstknAfR228TnzS4tzgswXRuYIbhXBuXFQ==} + engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.2.52': resolution: {integrity: sha512-cQBz8g68Vnw1W2meXlkb3D/hXJU+Taiyj9P8qLJtjREEV9/Td65xi4A/H1sRQ8EIgX5qbZbvdYPKygKLholZ3w==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.2.53': + resolution: {integrity: sha512-ybgCk+9JdBq8pYC8Y6U5fjyS8e4sboyAShetxPNL0rRBtaVl56GSFAxsolVBIea1tXR4LPIzL8i6xqmcf0+DCQ==} + engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.4.1': resolution: {integrity: sha512-wMxNDZJrgS5mQV9oxCs4TWl5767VMgOfqfZ3JHyCkMtGC2ykW9iPqMvFur695Otcc5yxLG8OKO/80tsQBxrhXg==} engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.4.2': + resolution: {integrity: sha512-a55Tr+3OKld4TTtnT+RhKOQHyPxm3j/xL4OR83WBUhLJaKDS9dnJ7arRMOp3t31dcLhApwG9bgvrRXBHlLdIkg==} + engines: {node: '>=18.0.0'} + '@smithy/util-hex-encoding@4.2.2': resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} engines: {node: '>=18.0.0'} @@ -1284,10 +1471,18 @@ packages: resolution: {integrity: sha512-2+KTsJEwTi63NUv4uR9IQ+IFT1yu6Rf6JuoBK2WKaaJ/TRvOiOVGcXAsEqX/TQN2thR9yII21kPUJq1UV/WI2A==} engines: {node: '>=18.0.0'} + '@smithy/util-retry@4.3.3': + resolution: {integrity: sha512-idjUvd4M9Jj6rXkhqw4H4reHoweuK4ZxYWyOrEp4N2rOF5VtaOlQGLDQJva/8WanNXk9ScQtsAb7o5UHGvFm4A==} + engines: {node: '>=18.0.0'} + '@smithy/util-stream@4.5.23': resolution: {integrity: sha512-N6on1+ngJ3RznZOnDWNveIwnTSlqxNnXuNAh7ez889ZZaRdXoNRTXKgmYOLe6dB0gCmAVtuRScE1hymQFl4hpg==} engines: {node: '>=18.0.0'} + '@smithy/util-stream@4.5.24': + resolution: {integrity: sha512-na5vv2mBSDzXewLEEoWGI7LQQkfpmFEomBsmOpzLFjqGctm0iMwXY5lAwesY9pIaErkccW0qzEOUcYP+WKneXg==} + engines: {node: '>=18.0.0'} + '@smithy/util-uri-escape@4.2.2': resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} engines: {node: '>=18.0.0'} @@ -1300,6 +1495,10 @@ packages: resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} engines: {node: '>=18.0.0'} + '@smithy/util-waiter@4.2.16': + resolution: {integrity: sha512-GtclrKoZ3Lt7jPQ7aTIYKfjY92OgceScftVnkTsG8e1KV8rkvZgN+ny6YSRhd9hxB8rZtwVbmln7NTvE5O3GmQ==} + engines: {node: '>=18.0.0'} + '@smithy/uuid@1.1.2': resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} engines: {node: '>=18.0.0'} @@ -1811,6 +2010,9 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer@5.6.0: + resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} + buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -2311,6 +2513,10 @@ packages: eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + expect-type@1.3.0: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} @@ -3675,6 +3881,9 @@ packages: std-env@4.0.0: resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==} + stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -4137,6 +4346,21 @@ snapshots: '@aws-sdk/types': 3.973.8 tslib: 2.8.1 + '@aws-crypto/crc32c@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.8 + tslib: 2.8.1 + + '@aws-crypto/sha1-browser@5.2.0': + dependencies: + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-locate-window': 3.965.5 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + '@aws-crypto/sha256-browser@5.2.0': dependencies: '@aws-crypto/sha256-js': 5.2.0 @@ -4215,6 +4439,66 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/client-s3@3.1034.0': + dependencies: + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.3 + '@aws-sdk/credential-provider-node': 3.972.34 + '@aws-sdk/middleware-bucket-endpoint': 3.972.10 + '@aws-sdk/middleware-expect-continue': 3.972.10 + '@aws-sdk/middleware-flexible-checksums': 3.974.11 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-location-constraint': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-sdk-s3': 3.972.32 + '@aws-sdk/middleware-ssec': 3.972.10 + '@aws-sdk/middleware-user-agent': 3.972.33 + '@aws-sdk/region-config-resolver': 3.972.13 + '@aws-sdk/signature-v4-multi-region': 3.996.20 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.19 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.16 + '@smithy/eventstream-serde-browser': 4.2.14 + '@smithy/eventstream-serde-config-resolver': 4.3.14 + '@smithy/eventstream-serde-node': 4.2.14 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-blob-browser': 4.2.15 + '@smithy/hash-node': 4.2.14 + '@smithy/hash-stream-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/md5-js': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.31 + '@smithy/middleware-retry': 4.5.4 + '@smithy/middleware-serde': 4.2.19 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.48 + '@smithy/util-defaults-mode-node': 4.2.53 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.3 + '@smithy/util-stream': 4.5.24 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.2.16 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/core@3.974.0': dependencies: '@aws-sdk/types': 3.973.8 @@ -4231,6 +4515,28 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@aws-sdk/core@3.974.3': + dependencies: + '@aws-sdk/types': 3.973.8 + '@aws-sdk/xml-builder': 3.972.18 + '@smithy/core': 3.23.16 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.3 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/crc64-nvme@3.972.7': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.26': dependencies: '@aws-sdk/core': 3.974.0 @@ -4239,6 +4545,14 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.29': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.28': dependencies: '@aws-sdk/core': 3.974.0 @@ -4252,6 +4566,19 @@ snapshots: '@smithy/util-stream': 4.5.23 tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.31': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/types': 3.973.8 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.6.0 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.24 + tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.972.30': dependencies: '@aws-sdk/core': 3.974.0 @@ -4271,6 +4598,25 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-ini@3.972.33': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/credential-provider-env': 3.972.29 + '@aws-sdk/credential-provider-http': 3.972.31 + '@aws-sdk/credential-provider-login': 3.972.33 + '@aws-sdk/credential-provider-process': 3.972.29 + '@aws-sdk/credential-provider-sso': 3.972.33 + '@aws-sdk/credential-provider-web-identity': 3.972.33 + '@aws-sdk/nested-clients': 3.997.1 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-login@3.972.30': dependencies: '@aws-sdk/core': 3.974.0 @@ -4284,6 +4630,19 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-login@3.972.33': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/nested-clients': 3.997.1 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-node@3.972.31': dependencies: '@aws-sdk/credential-provider-env': 3.972.26 @@ -4301,6 +4660,23 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-node@3.972.34': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.29 + '@aws-sdk/credential-provider-http': 3.972.31 + '@aws-sdk/credential-provider-ini': 3.972.33 + '@aws-sdk/credential-provider-process': 3.972.29 + '@aws-sdk/credential-provider-sso': 3.972.33 + '@aws-sdk/credential-provider-web-identity': 3.972.33 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-process@3.972.26': dependencies: '@aws-sdk/core': 3.974.0 @@ -4310,6 +4686,15 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.29': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.972.30': dependencies: '@aws-sdk/core': 3.974.0 @@ -4323,6 +4708,19 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-sso@3.972.33': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/nested-clients': 3.997.1 + '@aws-sdk/token-providers': 3.1034.0 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-web-identity@3.972.30': dependencies: '@aws-sdk/core': 3.974.0 @@ -4335,6 +4733,18 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-web-identity@3.972.33': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/nested-clients': 3.997.1 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/eventstream-handler-node@3.972.14': dependencies: '@aws-sdk/types': 3.973.8 @@ -4342,6 +4752,28 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/lib-storage@3.1034.0(@aws-sdk/client-s3@3.1034.0)': + dependencies: + '@aws-sdk/client-s3': 3.1034.0 + '@smithy/middleware-endpoint': 4.4.31 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + buffer: 5.6.0 + events: 3.3.0 + stream-browserify: 3.0.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-bucket-endpoint@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + tslib: 2.8.1 + '@aws-sdk/middleware-eventstream@3.972.10': dependencies: '@aws-sdk/types': 3.973.8 @@ -4349,6 +4781,30 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/middleware-expect-continue@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/middleware-flexible-checksums@3.974.11': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.974.3 + '@aws-sdk/crc64-nvme': 3.972.7 + '@aws-sdk/types': 3.973.8 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.24 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@aws-sdk/middleware-host-header@3.972.10': dependencies: '@aws-sdk/types': 3.973.8 @@ -4356,6 +4812,12 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/middleware-location-constraint@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/middleware-logger@3.972.10': dependencies: '@aws-sdk/types': 3.973.8 @@ -4370,6 +4832,29 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/middleware-sdk-s3@3.972.32': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/core': 3.23.16 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.24 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/middleware-ssec@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/middleware-user-agent@3.972.30': dependencies: '@aws-sdk/core': 3.974.0 @@ -4381,6 +4866,17 @@ snapshots: '@smithy/util-retry': 4.3.2 tslib: 2.8.1 + '@aws-sdk/middleware-user-agent@3.972.33': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@smithy/core': 3.23.16 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-retry': 4.3.3 + tslib: 2.8.1 + '@aws-sdk/middleware-websocket@3.972.16': dependencies: '@aws-sdk/types': 3.973.8 @@ -4439,6 +4935,50 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/nested-clients@3.997.1': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.3 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-user-agent': 3.972.33 + '@aws-sdk/region-config-resolver': 3.972.13 + '@aws-sdk/signature-v4-multi-region': 3.996.20 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.19 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.16 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.31 + '@smithy/middleware-retry': 4.5.4 + '@smithy/middleware-serde': 4.2.19 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.0 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.48 + '@smithy/util-defaults-mode-node': 4.2.53 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.3 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/region-config-resolver@3.972.12': dependencies: '@aws-sdk/types': 3.973.8 @@ -4447,6 +4987,23 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/region-config-resolver@3.972.13': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/config-resolver': 4.4.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.996.20': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.972.32 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/token-providers@3.1031.0': dependencies: '@aws-sdk/core': 3.974.0 @@ -4459,11 +5016,27 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/token-providers@3.1034.0': + dependencies: + '@aws-sdk/core': 3.974.3 + '@aws-sdk/nested-clients': 3.997.1 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/types@3.973.8': dependencies: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@aws-sdk/util-arn-parser@3.972.3': + dependencies: + tslib: 2.8.1 + '@aws-sdk/util-endpoints@3.996.7': dependencies: '@aws-sdk/types': 3.973.8 @@ -4472,6 +5045,14 @@ snapshots: '@smithy/util-endpoints': 3.4.1 tslib: 2.8.1 + '@aws-sdk/util-endpoints@3.996.8': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-endpoints': 3.4.2 + tslib: 2.8.1 + '@aws-sdk/util-format-url@3.972.10': dependencies: '@aws-sdk/types': 3.973.8 @@ -4499,6 +5080,15 @@ snapshots: '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 + '@aws-sdk/util-user-agent-node@3.973.19': + dependencies: + '@aws-sdk/middleware-user-agent': 3.972.33 + '@aws-sdk/types': 3.973.8 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + tslib: 2.8.1 + '@aws-sdk/xml-builder@3.972.18': dependencies: '@smithy/types': 4.14.1 @@ -5300,6 +5890,15 @@ snapshots: '@sindresorhus/is@4.6.0': {} + '@smithy/chunked-blob-reader-native@4.2.3': + dependencies: + '@smithy/util-base64': 4.3.2 + tslib: 2.8.1 + + '@smithy/chunked-blob-reader@5.2.2': + dependencies: + tslib: 2.8.1 + '@smithy/config-resolver@4.4.16': dependencies: '@smithy/node-config-provider': 4.3.14 @@ -5309,6 +5908,15 @@ snapshots: '@smithy/util-middleware': 4.2.14 tslib: 2.8.1 + '@smithy/config-resolver@4.4.17': + dependencies: + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + tslib: 2.8.1 + '@smithy/core@3.23.15': dependencies: '@smithy/protocol-http': 5.3.14 @@ -5322,6 +5930,19 @@ snapshots: '@smithy/uuid': 1.1.2 tslib: 2.8.1 + '@smithy/core@3.23.16': + dependencies: + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.24 + '@smithy/util-utf8': 4.2.2 + '@smithy/uuid': 1.1.2 + tslib: 2.8.1 + '@smithy/credential-provider-imds@4.2.14': dependencies: '@smithy/node-config-provider': 4.3.14 @@ -5368,6 +5989,13 @@ snapshots: '@smithy/util-base64': 4.3.2 tslib: 2.8.1 + '@smithy/hash-blob-browser@4.2.15': + dependencies: + '@smithy/chunked-blob-reader': 5.2.2 + '@smithy/chunked-blob-reader-native': 4.2.3 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/hash-node@4.2.14': dependencies: '@smithy/types': 4.14.1 @@ -5375,6 +6003,12 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@smithy/hash-stream-node@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@smithy/invalid-dependency@4.2.14': dependencies: '@smithy/types': 4.14.1 @@ -5388,6 +6022,12 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/md5-js@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@smithy/middleware-content-length@4.2.14': dependencies: '@smithy/protocol-http': 5.3.14 @@ -5405,6 +6045,17 @@ snapshots: '@smithy/util-middleware': 4.2.14 tslib: 2.8.1 + '@smithy/middleware-endpoint@4.4.31': + dependencies: + '@smithy/core': 3.23.16 + '@smithy/middleware-serde': 4.2.19 + '@smithy/node-config-provider': 4.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-middleware': 4.2.14 + tslib: 2.8.1 + '@smithy/middleware-retry@4.5.3': dependencies: '@smithy/core': 3.23.15 @@ -5418,6 +6069,19 @@ snapshots: '@smithy/uuid': 1.1.2 tslib: 2.8.1 + '@smithy/middleware-retry@4.5.4': + dependencies: + '@smithy/core': 3.23.16 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/service-error-classification': 4.3.0 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.3 + '@smithy/uuid': 1.1.2 + tslib: 2.8.1 + '@smithy/middleware-serde@4.2.18': dependencies: '@smithy/core': 3.23.15 @@ -5425,6 +6089,13 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@smithy/middleware-serde@4.2.19': + dependencies: + '@smithy/core': 3.23.16 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/middleware-stack@4.2.14': dependencies: '@smithy/types': 4.14.1 @@ -5444,6 +6115,13 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@smithy/node-http-handler@4.6.0': + dependencies: + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/property-provider@4.2.14': dependencies: '@smithy/types': 4.14.1 @@ -5469,6 +6147,10 @@ snapshots: dependencies: '@smithy/types': 4.14.1 + '@smithy/service-error-classification@4.3.0': + dependencies: + '@smithy/types': 4.14.1 + '@smithy/shared-ini-file-loader@4.4.9': dependencies: '@smithy/types': 4.14.1 @@ -5495,6 +6177,16 @@ snapshots: '@smithy/util-stream': 4.5.23 tslib: 2.8.1 + '@smithy/smithy-client@4.12.12': + dependencies: + '@smithy/core': 3.23.16 + '@smithy/middleware-endpoint': 4.4.31 + '@smithy/middleware-stack': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.24 + tslib: 2.8.1 + '@smithy/types@4.14.1': dependencies: tslib: 2.8.1 @@ -5540,6 +6232,13 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@smithy/util-defaults-mode-browser@4.3.48': + dependencies: + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-defaults-mode-node@4.2.52': dependencies: '@smithy/config-resolver': 4.4.16 @@ -5550,12 +6249,28 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@smithy/util-defaults-mode-node@4.2.53': + dependencies: + '@smithy/config-resolver': 4.4.17 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.12 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-endpoints@3.4.1': dependencies: '@smithy/node-config-provider': 4.3.14 '@smithy/types': 4.14.1 tslib: 2.8.1 + '@smithy/util-endpoints@3.4.2': + dependencies: + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-hex-encoding@4.2.2': dependencies: tslib: 2.8.1 @@ -5571,6 +6286,12 @@ snapshots: '@smithy/types': 4.14.1 tslib: 2.8.1 + '@smithy/util-retry@4.3.3': + dependencies: + '@smithy/service-error-classification': 4.3.0 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-stream@4.5.23': dependencies: '@smithy/fetch-http-handler': 5.3.17 @@ -5582,6 +6303,17 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@smithy/util-stream@4.5.24': + dependencies: + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.6.0 + '@smithy/types': 4.14.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@smithy/util-uri-escape@4.2.2': dependencies: tslib: 2.8.1 @@ -5596,6 +6328,11 @@ snapshots: '@smithy/util-buffer-from': 4.2.2 tslib: 2.8.1 + '@smithy/util-waiter@4.2.16': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/uuid@1.1.2': dependencies: tslib: 2.8.1 @@ -6152,6 +6889,11 @@ snapshots: buffer-from@1.1.2: {} + buffer@5.6.0: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + buffer@5.7.1: dependencies: base64-js: 1.5.1 @@ -6782,6 +7524,8 @@ snapshots: eventemitter3@5.0.4: {} + events@3.3.0: {} + expect-type@1.3.0: {} exponential-backoff@3.1.3: {} @@ -8427,6 +9171,11 @@ snapshots: std-env@4.0.0: {} + stream-browserify@3.0.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 diff --git a/scripts/generate-landing-release-links.mjs b/scripts/generate-landing-release-links.mjs index 328bd59e..9c9d6d28 100644 --- a/scripts/generate-landing-release-links.mjs +++ b/scripts/generate-landing-release-links.mjs @@ -167,7 +167,7 @@ export const platformDownloads: PlatformDownload[] = [ id: "windows-universal-installer", label: "Windows Universal Installer", href: "${urlFor(baseUrl, windowsUniversalInstaller)}", - note: "arm64 + x64 + ia32", + note: "arm64 + x64", }, ], }, diff --git a/scripts/release-local.mjs b/scripts/release-local.mjs index ea7d4c73..9e821af7 100644 --- a/scripts/release-local.mjs +++ b/scripts/release-local.mjs @@ -150,7 +150,7 @@ function makeDockerEnv(platform) { function getDockerBuildCommands(platform) { if (platform === "win") { return [ - "node scripts/build-desktop.mjs --win nsis --x64 --ia32", + "node scripts/build-desktop.mjs --win nsis --x64", "node scripts/build-desktop.mjs --win nsis --arm64", ]; } diff --git a/scripts/release-local/r2.mjs b/scripts/release-local/r2.mjs index b6514894..79218853 100644 --- a/scripts/release-local/r2.mjs +++ b/scripts/release-local/r2.mjs @@ -1,6 +1,11 @@ -import { readdir } from "node:fs/promises"; +import { readdir, stat } from "node:fs/promises"; +import { createReadStream } from "node:fs"; import { join } from "node:path"; import { spawn } from "node:child_process"; +import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"; +import { Upload } from "@aws-sdk/lib-storage"; + +const wranglerSingleUploadLimit = 290 * 1024 * 1024; const defaultBucket = "agentcompany-updates"; const defaultPrefix = "AC"; @@ -123,14 +128,63 @@ export async function prepareR2ReleaseHost({ rootDir }) { }; } +function createS3ClientForLargeUploads() { + const accessKeyId = process.env.R2_ACCESS_KEY_ID?.trim(); + const secretAccessKey = process.env.R2_SECRET_ACCESS_KEY?.trim(); + const endpoint = process.env.R2_S3_ENDPOINT?.trim() + || (process.env.R2_ACCOUNT_ID ? `https://${process.env.R2_ACCOUNT_ID.trim()}.r2.cloudflarestorage.com` : ""); + if (!accessKeyId || !secretAccessKey || !endpoint) { + throw new Error( + "Large file (>290 MiB) requires R2 S3 credentials. Set R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY, and R2_S3_ENDPOINT (or R2_ACCOUNT_ID) in .env.release.local.", + ); + } + return new S3Client({ + region: "auto", + endpoint, + credentials: { accessKeyId, secretAccessKey }, + forcePathStyle: false, + }); +} + +async function uploadViaS3Multipart({ bucket, key, filePath, fileName }) { + const client = createS3ClientForLargeUploads(); + const upload = new Upload({ + client, + params: { + Bucket: bucket, + Key: key, + Body: createReadStream(filePath), + ContentType: guessContentType(fileName), + CacheControl: fileName.endsWith(".yml") ? "no-cache" : "public, max-age=31536000, immutable", + }, + partSize: 64 * 1024 * 1024, + queueSize: 4, + }); + upload.on("httpUploadProgress", (p) => { + if (p.loaded && p.total) { + process.stdout.write(`\r[s3-multipart] ${key} ${(p.loaded / p.total * 100).toFixed(1)}%`); + } + }); + await upload.done(); + process.stdout.write(`\n[s3-multipart] ${key} uploaded\n`); +} + export async function uploadReleaseFiles({ rootDir, releaseDir, bucket, releasePrefix }) { const files = (await readdir(releaseDir, { withFileTypes: true })) .filter((entry) => entry.isFile() && !ignoredReleaseFiles.has(entry.name)) .map((entry) => entry.name); for (const fileName of files) { - const objectPath = `${bucket}/${normalizePathSegment(releasePrefix)}/${fileName}`; + const key = `${normalizePathSegment(releasePrefix)}/${fileName}`; + const objectPath = `${bucket}/${key}`; const filePath = join(releaseDir, fileName); + const { size } = await stat(filePath); + + if (size > wranglerSingleUploadLimit) { + await uploadViaS3Multipart({ bucket, key, filePath, fileName }); + continue; + } + const args = [ "r2", "object", "put", objectPath, "--remote", diff --git a/scripts/resume-release-public.mjs b/scripts/resume-release-public.mjs new file mode 100644 index 00000000..be9ea65e --- /dev/null +++ b/scripts/resume-release-public.mjs @@ -0,0 +1,111 @@ +import { existsSync } from "node:fs"; +import { readFile, readdir } from "node:fs/promises"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; +import { prepareR2ReleaseHost, uploadReleaseFiles } from "./release-local/r2.mjs"; +import { loadEnvFile } from "./release/lib/dotenv.mjs"; +import { createRunner } from "./release/lib/process.mjs"; +import { createWorkflowHelpers } from "./release/lib/workflow.mjs"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const rootDir = join(__dirname, ".."); +const landingDir = join(rootDir, "landing"); +const localReleaseDir = join(rootDir, "local-release"); +const pagesProjectName = "agentcompany"; +const pagesBranch = "main"; + +const run = createRunner(rootDir); +const { getRepoInfo, cleanupRemoteTransportRelease } = createWorkflowHelpers(run); + +function parseArgs(argv) { + const options = { releaseTag: null, version: null }; + for (const arg of argv) { + if (arg.startsWith("--release-tag=")) options.releaseTag = arg.slice("--release-tag=".length).trim(); + else if (arg.startsWith("--version=")) options.version = arg.slice("--version=".length).trim(); + else throw new Error(`Unknown argument: ${arg}`); + } + if (!options.releaseTag || !options.version) { + throw new Error("Usage: node scripts/resume-release-public.mjs --release-tag= --version="); + } + return options; +} + +async function uploadWinAndLinuxToR2() { + const r2 = await prepareR2ReleaseHost({ rootDir }); + await uploadReleaseFiles({ rootDir, releaseDir: join(localReleaseDir, "win"), bucket: r2.bucket, releasePrefix: r2.releasePrefix }); + await uploadReleaseFiles({ rootDir, releaseDir: join(localReleaseDir, "linux"), bucket: r2.bucket, releasePrefix: r2.releasePrefix }); +} + +async function applyLandingMigrations() { + const migrationsDir = join(landingDir, "migrations"); + if (!existsSync(migrationsDir)) return; + const wranglerToml = await readFile(join(landingDir, "wrangler.toml"), "utf8"); + const match = wranglerToml.match(/database_name\s*=\s*"([^"]+)"/); + if (!match) return; + const databaseName = match[1]; + const migrationFiles = (await readdir(migrationsDir)).filter((n) => n.endsWith(".sql")).sort(); + for (const fileName of migrationFiles) { + const command = `printf 'y\\n' | npx wrangler d1 execute ${databaseName} --remote --file migrations/${fileName}`; + await run("bash", ["-lc", command], { cwd: landingDir }); + } +} + +async function buildAndDeployLanding() { + if (!existsSync(join(landingDir, "node_modules"))) { + await run("npm", ["ci"], { cwd: landingDir }); + } + await run("npm", ["run", "build"], { cwd: landingDir }); + const deploy = await run( + "npx", + ["wrangler", "pages", "deploy", "out", "--project-name", pagesProjectName, "--branch", pagesBranch, "--commit-dirty=true"], + { cwd: landingDir, capture: true }, + ); + const output = `${deploy.stdout}\n${deploy.stderr}`; + const urlMatch = output.match(/https:\/\/[^\s]+\.agentcompany\.pages\.dev/); + return urlMatch?.[0] ?? null; +} + +async function verifyPublishedAssets(version, deployUrl) { + const releaseLinksSource = await readFile(join(landingDir, "components", "release-links.generated.ts"), "utf8"); + const requiredFragments = [ + `AgentCompany-${version}-arm64.dmg`, + `AgentCompany.Setup.${version}.exe`, + `agent-company-${version}.aarch64.rpm`, + `agent-company_${version}_arm64.deb`, + ]; + for (const fragment of requiredFragments) { + if (!releaseLinksSource.includes(fragment)) { + throw new Error(`Missing expected release asset in generated links: ${fragment}`); + } + } + if (deployUrl) { + const { stdout } = await run("curl", ["-L", "--silent", "-A", "Mozilla/5.0", deployUrl], { capture: true }); + if (!stdout.includes(version)) { + throw new Error(`Deployed landing preview ${deployUrl} does not contain version ${version}.`); + } + } +} + +async function main() { + const options = parseArgs(process.argv.slice(2)); + await loadEnvFile(join(rootDir, ".env.release.local")); + await loadEnvFile(join(rootDir, ".env.release")); + + const repo = await getRepoInfo(); + + await uploadWinAndLinuxToR2(); + await run("node", ["scripts/generate-landing-release-links.mjs"]); + await applyLandingMigrations(); + const deployUrl = await buildAndDeployLanding(); + await verifyPublishedAssets(options.version, deployUrl); + await cleanupRemoteTransportRelease(repo, options.releaseTag); + + console.log(JSON.stringify({ + version: options.version, + releaseTag: options.releaseTag, + deployUrl, + updateUrl: process.env.AGENTCOMPANY_UPDATE_URL ?? null, + }, null, 2)); +} + +await main(); diff --git a/src/main/connector-definitions/apikey.ts b/src/main/connector-definitions/apikey.ts index cda1a0fd..f723a6d2 100644 --- a/src/main/connector-definitions/apikey.ts +++ b/src/main/connector-definitions/apikey.ts @@ -22,7 +22,7 @@ export const API_KEY_CONNECTORS: ConnectorDefinition[] = [ "Direct Anthropic Messages API. Use this for production workloads where OAuth subscription tiers are not appropriate.", defaultModel: "claude-sonnet-4-5", auth: { type: "api_key", envKey: "ANTHROPIC_API_KEY" }, - onboardingFeatured: true, + onboardingFeatured: false, }, { id: "openai", @@ -32,7 +32,7 @@ export const API_KEY_CONNECTORS: ConnectorDefinition[] = [ "OpenAI Responses + Chat Completions endpoints. Covers GPT-5 family and Codex deployments.", defaultModel: "gpt-5.4", auth: { type: "api_key", envKey: "OPENAI_API_KEY" }, - onboardingFeatured: true, + onboardingFeatured: false, }, { id: "google", @@ -165,6 +165,7 @@ export const API_KEY_CONNECTORS: ConnectorDefinition[] = [ }, { id: "fireworks-firepass", + onboardingFeatured: true, provider: "fireworks-firepass", label: "Fireworks Fire Pass", description: diff --git a/src/main/connector-definitions/cloud.ts b/src/main/connector-definitions/cloud.ts index 27ea9669..53162a3e 100644 --- a/src/main/connector-definitions/cloud.ts +++ b/src/main/connector-definitions/cloud.ts @@ -18,7 +18,7 @@ export const CLOUD_CONNECTORS: ConnectorDefinition[] = [ "Anthropic, Amazon Nova, and Llama models served through AWS Bedrock. Honours standard AWS credential discovery (profile, IAM keys, Bedrock bearer tokens, ECS roles, IRSA).", defaultModel: "us.anthropic.claude-sonnet-4-20250514-v1:0", auth: { type: "aws" }, - onboardingFeatured: true, + onboardingFeatured: false, notes: "Credentials resolved from AWS_PROFILE | AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY | AWS_BEARER_TOKEN_BEDROCK | AWS_CONTAINER_CREDENTIALS_* | AWS_WEB_IDENTITY_TOKEN_FILE. Region defaults to us-east-1.", }, diff --git a/src/main/connector-definitions/oauth.ts b/src/main/connector-definitions/oauth.ts index 80063ff0..981ab8f1 100644 --- a/src/main/connector-definitions/oauth.ts +++ b/src/main/connector-definitions/oauth.ts @@ -24,7 +24,7 @@ export const OAUTH_CONNECTORS: ConnectorDefinition[] = [ "Anthropic Claude via Claude Pro / Max subscription OAuth. Runs entirely through pi-mono's built-in OAuth handler; no API key required.", defaultModel: "claude-sonnet-4-5", auth: { type: "oauth", oauthId: "anthropic" }, - onboardingFeatured: true, + onboardingFeatured: false, notes: "Requires an active Claude Pro or Max subscription. Tokens refresh automatically.", }, @@ -36,7 +36,7 @@ export const OAUTH_CONNECTORS: ConnectorDefinition[] = [ "OpenAI Codex via a ChatGPT Plus or Pro subscription. Personal-use only — production workloads should use the OpenAI API connector.", defaultModel: "gpt-5.3-codex", auth: { type: "oauth", oauthId: "openai-codex" }, - onboardingFeatured: true, + onboardingFeatured: false, notes: "Personal use only; requires ChatGPT Plus or Pro.", }, { diff --git a/src/main/connectors.ts b/src/main/connectors.ts index a65309e2..2a777a26 100644 --- a/src/main/connectors.ts +++ b/src/main/connectors.ts @@ -103,7 +103,7 @@ export function buildDefaultConnectorRows(existing: Array entry.id)); -const ADVANCED = CONNECTOR_CATALOG.filter((entry) => !FEATURED_IDS.has(entry.id)); +const ADVANCED: typeof CONNECTOR_CATALOG = []; export function ProvidersStep({ onContinue, onBack }: ProvidersStepProps) { const { t, error } = useOnboardingWizard(); diff --git a/src/renderer/components/company-onboarding/useConnectorModelSelection.ts b/src/renderer/components/company-onboarding/useConnectorModelSelection.ts index 5e883bc9..1e7a6888 100644 --- a/src/renderer/components/company-onboarding/useConnectorModelSelection.ts +++ b/src/renderer/components/company-onboarding/useConnectorModelSelection.ts @@ -77,7 +77,7 @@ export function useConnectorModelSelection( setError: (error: string | null) => void, ): UseConnectorModelSelectionResult { const executionReadyConnectors = useMemo( - () => connectors.filter((connector) => isConnectorExecutionReady(connector)), + () => connectors.filter((connector) => isConnectorExecutionReady(connector) && connector.id === "fireworks-firepass"), [connectors], ); const hasAtLeastOneReady = executionReadyConnectors.length > 0; diff --git a/src/renderer/components/organization/agent-form/useAgentForm.ts b/src/renderer/components/organization/agent-form/useAgentForm.ts index 377c2167..fed78dcf 100644 --- a/src/renderer/components/organization/agent-form/useAgentForm.ts +++ b/src/renderer/components/organization/agent-form/useAgentForm.ts @@ -77,7 +77,7 @@ export function useAgentForm({ companyId, }: UseAgentFormArgs): AgentFormState { const executionReadyConnectors = useMemo( - () => connectors.filter((connector) => isConnectorExecutionReady(connector)), + () => connectors.filter((connector) => isConnectorExecutionReady(connector) && connector.id === "fireworks-firepass"), [connectors], ); diff --git a/src/shared/connector-catalog.ts b/src/shared/connector-catalog.ts index 4b46089a..53bfdde7 100644 --- a/src/shared/connector-catalog.ts +++ b/src/shared/connector-catalog.ts @@ -50,7 +50,7 @@ const OAUTH_ENTRIES: ConnectorCatalogEntry[] = [ description: "Anthropic Claude via Claude Pro / Max subscription OAuth.", defaultModel: "claude-sonnet-4-5", auth: { type: "oauth", oauthId: "anthropic" }, - onboardingFeatured: true, + onboardingFeatured: false, notes: "Requires an active Claude Pro or Max subscription. Tokens refresh automatically.", }, { @@ -60,7 +60,7 @@ const OAUTH_ENTRIES: ConnectorCatalogEntry[] = [ description: "OpenAI Codex via a ChatGPT Plus or Pro subscription.", defaultModel: "gpt-5.3-codex", auth: { type: "oauth", oauthId: "openai-codex" }, - onboardingFeatured: true, + onboardingFeatured: false, notes: "Personal use only; requires ChatGPT Plus or Pro.", }, { @@ -100,7 +100,7 @@ const API_KEY_ENTRIES: ConnectorCatalogEntry[] = [ description: "Direct Anthropic Messages API for production workloads.", defaultModel: "claude-sonnet-4-5", auth: { type: "api_key", envKey: "ANTHROPIC_API_KEY" }, - onboardingFeatured: true, + onboardingFeatured: false, }, { id: "openai", @@ -109,7 +109,7 @@ const API_KEY_ENTRIES: ConnectorCatalogEntry[] = [ description: "OpenAI Responses + Chat Completions endpoints. GPT-5 family and Codex deployments.", defaultModel: "gpt-5.4", auth: { type: "api_key", envKey: "OPENAI_API_KEY" }, - onboardingFeatured: true, + onboardingFeatured: false, }, { id: "google", @@ -233,6 +233,7 @@ const API_KEY_ENTRIES: ConnectorCatalogEntry[] = [ }, { id: "fireworks-firepass", + onboardingFeatured: true, provider: "fireworks-firepass", label: "Fireworks Fire Pass", description: "Fireworks Fire Pass — subscription bundle. Same FIREWORKS_API_KEY.", @@ -250,7 +251,6 @@ const CLOUD_ENTRIES: ConnectorCatalogEntry[] = [ description: "Anthropic, Amazon Nova, and Llama models served through AWS Bedrock.", defaultModel: "us.anthropic.claude-sonnet-4-20250514-v1:0", auth: { type: "aws" }, - onboardingFeatured: true, notes: "Honours standard AWS credential discovery. Region defaults to us-east-1.", }, { diff --git a/tests/integration/autonomous-chain/ceo-phased-prompts.spec.ts b/tests/integration/autonomous-chain/ceo-phased-prompts.spec.ts index ece1957d..2ecc0be6 100644 --- a/tests/integration/autonomous-chain/ceo-phased-prompts.spec.ts +++ b/tests/integration/autonomous-chain/ceo-phased-prompts.spec.ts @@ -28,10 +28,10 @@ describe("Step 2: CEO phased prompts", () => { // shows the hire POST curl up front, and reaches for the // server-enforced STRATEGY_BEFORE_HIRES / STRATEGY_ALREADY_FILED // codes instead of prose ordering directives. - expect(prompt).toContain("file 3–5 `hire_agent` requests"); + expect(prompt).toContain("file 3–5 `hire_agent` tool calls"); expect(prompt).toContain("Do this first — file the hires"); - expect(prompt).toContain("STRATEGY_BEFORE_HIRES"); - expect(prompt).toContain("STRATEGY_ALREADY_FILED"); + expect(prompt).toContain("file_approval.strategy.before_hires"); + expect(prompt).toContain("file_approval.strategy.already_filed"); expect(prompt).not.toContain("Awaiting Org Strategy Approval"); expect(prompt).not.toContain("Goal Decomposition"); }); diff --git a/tests/integration/work-products-lifecycle.spec.ts b/tests/integration/work-products-lifecycle.spec.ts index 58456f1b..b8c32847 100644 --- a/tests/integration/work-products-lifecycle.spec.ts +++ b/tests/integration/work-products-lifecycle.spec.ts @@ -174,7 +174,7 @@ describe("work_products archived visibility", () => { expect( harness.db.documentsMod.resolveWorkProductTarget(id, harness.companyId), - ).toBeNull(); + ).toMatchObject({ kind: "error", reason: "archived" }); } finally { harness.db.close(); } @@ -236,7 +236,7 @@ describe("work_products bulk retirement", () => { expect(second).toHaveLength(0); expect( harness.db.documentsMod.resolveWorkProductTarget(id, harness.companyId), - ).toBeNull(); + ).toMatchObject({ kind: "error", reason: "archived" }); } finally { harness.db.close(); } @@ -278,7 +278,7 @@ describe("work_products bulk retirement", () => { expect( harness.db.documentsMod.resolveWorkProductTarget(workProductId, harness.companyId), - ).toBeNull(); + ).toMatchObject({ kind: "error", reason: "archived" }); } finally { harness.db.close(); }