fix: restore release ci after rebase

This commit is contained in:
Peter Steinberger
2026-05-26 03:12:49 +01:00
parent bdb33c1850
commit 957af7bc84
7 changed files with 216 additions and 101 deletions

View File

@@ -472,9 +472,9 @@
}
},
"node_modules/@aws-sdk/token-providers": {
"version": "3.1053.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1053.0.tgz",
"integrity": "sha512-laSwHLYMMrXQRl2mFDXszF43m/F4pKWyGr7hCLfJmV8rn8c6CnI/hp/bf/Gn7gLcjz0SY4evd7SBpqtnIhzA/A==",
"version": "3.1052.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1052.0.tgz",
"integrity": "sha512-QqZNB3so7UIDxZtroc85TQaLVxdZRFm0eWM1CSR2N+b06as9TOrilvrlTZuj3guYlxMs6yLOgGxnklJ5qMYtTw==",
"license": "Apache-2.0",
"dependencies": {
"@aws-sdk/core": "^3.974.13",
@@ -604,12 +604,12 @@
}
},
"node_modules/@smithy/node-http-handler": {
"version": "4.7.4",
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.4.tgz",
"integrity": "sha512-HIeF+1vrDGzPkkv39Hj2vlHSXHY3p958jd/8ZnePIY6+ZOsQX8coyEUKO5yQu4r0bQIVsbpotVIrXXwyycMStQ==",
"version": "4.7.3",
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.3.tgz",
"integrity": "sha512-/jPhevcTFPMVl6KNjbaI47iOg1zxC7IsnX4PQDGVZKMFceOXtB8IEYaB7a9VvkP/3oC60WzTeKocvSI7vLT0vA==",
"license": "Apache-2.0",
"dependencies": {
"@smithy/core": "^3.24.4",
"@smithy/core": "^3.24.3",
"@smithy/types": "^4.14.2",
"tslib": "^2.6.2"
},

204
pnpm-lock.yaml generated
View File

@@ -8,17 +8,6 @@ overrides:
'@anthropic-ai/sdk': 0.98.0
hono: 4.12.18
'@hono/node-server': 1.19.14
'@aws-sdk/core': 3.974.13
'@aws-sdk/client-bedrock-runtime': 3.1053.0
'@aws-sdk/credential-provider-env': 3.972.39
'@aws-sdk/credential-provider-http': 3.972.41
'@aws-sdk/credential-provider-ini': 3.972.43
'@aws-sdk/credential-provider-login': 3.972.43
'@aws-sdk/credential-provider-process': 3.972.39
'@aws-sdk/credential-provider-sso': 3.972.43
'@aws-sdk/credential-provider-web-identity': 3.972.43
'@aws-sdk/nested-clients': 3.997.11
'@aws-sdk/token-providers': 3.1053.0
axios: 1.16.0
fast-uri: 3.1.2
follow-redirects: 1.16.0
@@ -1937,6 +1926,10 @@ packages:
resolution: {integrity: sha512-/oGxoB6p1Nqs935Blt+v1o+anSCEf2n3RjIrcLz84i4cn2Gr+Z7JpDdUkG5+74r5ctqEPG7k/phTGbJ9fNKnHg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/core@3.974.12':
resolution: {integrity: sha512-qrqgioqYFjwR6LatVNS1L2Vk++EwRIxqSQXPKNv5Ofux2D8UNgqMQ1znnMyEImXquVPTtbf71fc128pvmU6y9A==}
engines: {node: '>=20.0.0'}
'@aws-sdk/core@3.974.13':
resolution: {integrity: sha512-+Y5/4tHki0uYgyx8eun146DegRVQBpdKGK5RbV0FTKJPpaKTchvqVxrrRFK6Wk0JksO4iAZKw3eqxGEIwtO98w==}
engines: {node: '>=20.0.0'}
@@ -1949,18 +1942,34 @@ packages:
resolution: {integrity: sha512-mMQsBJv40oi5QdqRj4Xbc9jTlWMxqWfs5zWu+RhbOuF5F0AxxWXT70hm0abOmLbF2M/Tkuygs01H4eWIQMfoMw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-env@3.972.38':
resolution: {integrity: sha512-m3WjZEgPtioMhPmwqUt+DhlTJ2i9ufR6DhfkyXojb9puEvfR+ur2U5shavu5/Cc9WHHsDCvALi6UFHgcqjhQ5w==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-env@3.972.39':
resolution: {integrity: sha512-29wX9zpAvEt1vcj0psha+y6ygBHy2V/S72mp6e7q0KARLWXq+pwE/lR6qGkwknQvruh52lXvlqZIga8Hdxkucw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-http@3.972.40':
resolution: {integrity: sha512-D78L/m2Dr6cJnnSvWoAudPhQmCwmJ7j6APXsPYmFpPaKfQTfCSu0rdm8j14Np+VmXF9z8Aj8HE3xFpsrwtfgeg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-http@3.972.41':
resolution: {integrity: sha512-IA3CQTjtJkb6u1H4mE4936c8OPBMa9Jggtwe8U2Mqw/vvb/tZ5Ebd0mcZcX0uKWQhOyYo/+qNIwkV5Xh+FeJJA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-ini@3.972.42':
resolution: {integrity: sha512-Mu5ESvFXeinafVM8jTIvRqcvK2Ehj4kz3auT39yUcHwu1Vfxo6xRlmUafdKLW4tusjAJukQwK09sCSMgOm7OKg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-ini@3.972.43':
resolution: {integrity: sha512-4mzII+3mZEVXXE1xzrLQrCJL7/r62A63bA6SVzZoNL5rqCJghpf+xgGltVrIBBs0n+mOZBKrQl2tRREtvZ5l6A==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-login@3.972.42':
resolution: {integrity: sha512-O6WkZga3kf0yqyJYd1dbeJqVhEgJx/x1UaLgtbR+XuL/YP+K5y6QTxQKL7ka9z3jnQASESKGAPnRyt4D5hQrxA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-login@3.972.43':
resolution: {integrity: sha512-HG7kQCwXtbv3oBV61Ins0oNX8KKyvrMqqRkb6ZiAfQHbMuHaiNaEb2KnpKLPkNpqImSBK82UkVE/kaY6IfWikA==}
engines: {node: '>=20.0.0'}
@@ -1969,14 +1978,26 @@ packages:
resolution: {integrity: sha512-sDaBIT0yrNNIPfvlsiTCmANm07zKju+ipWODjEXgZlsjMeIJR3LVp7RDyAOzUoAsTbDfYKDWp+i5WrFiQP6rmQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-process@3.972.38':
resolution: {integrity: sha512-EnbYVajGgbkb24s0K1eo4VNAPV5mHIET7LSvirTaFCwkfrfaOJxtSE+wY/tJdKDS21cEYkZs2ruCaAm+W4iblg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-process@3.972.39':
resolution: {integrity: sha512-2k/amBifLd75eXNwgvPw/2lKYSQ3NhvHQgkVKVjfUq13/eJ3JRtHmznuFenn74OK3sSfp4SMy1YB2w+UVXoKqA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-sso@3.972.42':
resolution: {integrity: sha512-RVV/9NbFwI8ZHEH5dn39lGyFmSbSVj1+orZdr6QsOe1mW9DCglmlen0cFaNZmCcqkqc7erNRHNBduxbeZuHAnw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-sso@3.972.43':
resolution: {integrity: sha512-LPc3+Y4vhH1T4x6CMqwCM6hk5+SRf/Lwmgm8INm95wxTtIRHcMwQUVkDzWu4Iw/RSncxYM2BC01OrYbxOPZvyg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-web-identity@3.972.42':
resolution: {integrity: sha512-/67fXX0ddllD4u2Nujc5PvT4byHgpMUfz6+RxIKi/0nFIckeorm7JvXgzBuDyVKw0s58EbofmETDWUf9vTEuHQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-web-identity@3.972.43':
resolution: {integrity: sha512-wQtL34lUD/09VXjwAUo2T+I3aEXRDxMB3DKmTJL/Zj0Gi6sLDTrVhae1XVt01yzkquOWajI/sZW72JGDZ1ciTw==}
engines: {node: '>=20.0.0'}
@@ -2021,6 +2042,10 @@ packages:
resolution: {integrity: sha512-yr+5+C7v9R55sAJ89A55Wrm7wIKPVn5cm6J3Hztnd5s/iwEUKxyJqCnIxJu4fVXgG9XBQD1Jc4rsWC1ozahJjA==}
engines: {node: '>= 14.0.0'}
'@aws-sdk/nested-clients@3.997.10':
resolution: {integrity: sha512-FtQ/Bt327peZJuyo4WZSOLVUTw9ujRxntepiC7L65FxA2P82Xlq0g14T22BuqBUeMjDoxa9nvwiMHjLIfP3eUg==}
engines: {node: '>=20.0.0'}
'@aws-sdk/nested-clients@3.997.11':
resolution: {integrity: sha512-nWXXJ1r/r8N2Gw1pWolRgED38/A9A8DHR2ETWIv220zh4PZHcybbR4hUVWWktmNXTRHzDJwRluapHn0rZxuoqA==}
engines: {node: '>=20.0.0'}
@@ -2033,6 +2058,14 @@ packages:
resolution: {integrity: sha512-qs9z5LqXO/CZC2Lg9SGKpoLU8Rhi+m2pFKZqfO9pytX1clc0katqtsDNupJxFy0xT9wsZSPzM2v1y+/H/zfp5Q==}
engines: {node: '>=20.0.0'}
'@aws-sdk/token-providers@3.1049.0':
resolution: {integrity: sha512-r7+d0lQMTHKypkmaF5jRTBYLYHCUHzt3gaVoN9SidLhQeWhCmHk3AKrboDTpPF5b7Pt7vKu3+oeMjznM2Eu1ow==}
engines: {node: '>=20.0.0'}
'@aws-sdk/token-providers@3.1052.0':
resolution: {integrity: sha512-QqZNB3so7UIDxZtroc85TQaLVxdZRFm0eWM1CSR2N+b06as9TOrilvrlTZuj3guYlxMs6yLOgGxnklJ5qMYtTw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/token-providers@3.1053.0':
resolution: {integrity: sha512-laSwHLYMMrXQRl2mFDXszF43m/F4pKWyGr7hCLfJmV8rn8c6CnI/hp/bf/Gn7gLcjz0SY4evd7SBpqtnIhzA/A==}
engines: {node: '>=20.0.0'}
@@ -2053,6 +2086,10 @@ packages:
resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/xml-builder@3.972.24':
resolution: {integrity: sha512-V8z5YcDPfsvzrBlj0xR1vhRtocblhYbqdreCJB/voGd4Sr5zjNAeWxexbnqVtskTJe0vFb5KMqbSL++ePl+zRw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/xml-builder@3.972.25':
resolution: {integrity: sha512-GH+Kjz4nPKWKHnsiQpnhP1MJdTGIcK4rAka6tzakgjjUkVgNsmPeEbbRAf09SzS1hjGu6duGHCBsxYke0BhHjQ==}
engines: {node: '>=20.0.0'}
@@ -7391,7 +7428,7 @@ snapshots:
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.974.13
'@aws-sdk/core': 3.974.12
'@aws-sdk/credential-provider-node': 3.972.44
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
@@ -7421,6 +7458,17 @@ snapshots:
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/core@3.974.12':
dependencies:
'@aws-sdk/types': 3.973.9
'@aws-sdk/xml-builder': 3.972.24
'@aws/lambda-invoke-store': 0.2.4
'@smithy/core': 3.24.4
'@smithy/signature-v4': 5.4.3
'@smithy/types': 4.14.2
bowser: 2.14.1
tslib: 2.8.1
'@aws-sdk/core@3.974.13':
dependencies:
'@aws-sdk/types': 3.973.9
@@ -7439,7 +7487,15 @@ snapshots:
'@aws-sdk/credential-provider-cognito-identity@3.972.35':
dependencies:
'@aws-sdk/nested-clients': 3.997.11
'@aws-sdk/nested-clients': 3.997.10
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-env@3.972.38':
dependencies:
'@aws-sdk/core': 3.974.12
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
@@ -7453,6 +7509,16 @@ snapshots:
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-http@3.972.40':
dependencies:
'@aws-sdk/core': 3.974.12
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/fetch-http-handler': 5.4.4
'@smithy/node-http-handler': 4.7.3
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-http@3.972.41':
dependencies:
'@aws-sdk/core': 3.974.13
@@ -7463,6 +7529,22 @@ snapshots:
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-ini@3.972.42':
dependencies:
'@aws-sdk/core': 3.974.12
'@aws-sdk/credential-provider-env': 3.972.38
'@aws-sdk/credential-provider-http': 3.972.40
'@aws-sdk/credential-provider-login': 3.972.42
'@aws-sdk/credential-provider-process': 3.972.38
'@aws-sdk/credential-provider-sso': 3.972.42
'@aws-sdk/credential-provider-web-identity': 3.972.42
'@aws-sdk/nested-clients': 3.997.10
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/credential-provider-imds': 4.3.3
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-ini@3.972.43':
dependencies:
'@aws-sdk/core': 3.974.13
@@ -7479,6 +7561,15 @@ snapshots:
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-login@3.972.42':
dependencies:
'@aws-sdk/core': 3.974.12
'@aws-sdk/nested-clients': 3.997.10
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-login@3.972.43':
dependencies:
'@aws-sdk/core': 3.974.13
@@ -7502,6 +7593,14 @@ snapshots:
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-process@3.972.38':
dependencies:
'@aws-sdk/core': 3.974.12
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-process@3.972.39':
dependencies:
'@aws-sdk/core': 3.974.13
@@ -7510,16 +7609,35 @@ snapshots:
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-sso@3.972.42':
dependencies:
'@aws-sdk/core': 3.974.12
'@aws-sdk/nested-clients': 3.997.10
'@aws-sdk/token-providers': 3.1049.0
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-sso@3.972.43':
dependencies:
'@aws-sdk/core': 3.974.13
'@aws-sdk/nested-clients': 3.997.11
'@aws-sdk/token-providers': 3.1053.0
'@aws-sdk/token-providers': 3.1052.0
'@aws-sdk/types': 3.973.9
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-web-identity@3.972.42':
dependencies:
'@aws-sdk/core': 3.974.12
'@aws-sdk/nested-clients': 3.997.10
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/credential-provider-web-identity@3.972.43':
dependencies:
'@aws-sdk/core': 3.974.13
@@ -7532,17 +7650,17 @@ snapshots:
'@aws-sdk/credential-providers@3.1051.0':
dependencies:
'@aws-sdk/client-cognito-identity': 3.1051.0
'@aws-sdk/core': 3.974.13
'@aws-sdk/core': 3.974.12
'@aws-sdk/credential-provider-cognito-identity': 3.972.35
'@aws-sdk/credential-provider-env': 3.972.39
'@aws-sdk/credential-provider-http': 3.972.41
'@aws-sdk/credential-provider-ini': 3.972.43
'@aws-sdk/credential-provider-login': 3.972.43
'@aws-sdk/credential-provider-env': 3.972.38
'@aws-sdk/credential-provider-http': 3.972.40
'@aws-sdk/credential-provider-ini': 3.972.42
'@aws-sdk/credential-provider-login': 3.972.42
'@aws-sdk/credential-provider-node': 3.972.44
'@aws-sdk/credential-provider-process': 3.972.39
'@aws-sdk/credential-provider-sso': 3.972.43
'@aws-sdk/credential-provider-web-identity': 3.972.43
'@aws-sdk/nested-clients': 3.997.11
'@aws-sdk/credential-provider-process': 3.972.38
'@aws-sdk/credential-provider-sso': 3.972.42
'@aws-sdk/credential-provider-web-identity': 3.972.42
'@aws-sdk/nested-clients': 3.997.10
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/credential-provider-imds': 4.3.3
@@ -7622,6 +7740,19 @@ snapshots:
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/nested-clients@3.997.10':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.974.12
'@aws-sdk/signature-v4-multi-region': 3.996.28
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/fetch-http-handler': 5.4.4
'@smithy/node-http-handler': 4.7.3
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/nested-clients@3.997.11':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
@@ -7652,6 +7783,24 @@ snapshots:
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/token-providers@3.1049.0':
dependencies:
'@aws-sdk/core': 3.974.12
'@aws-sdk/nested-clients': 3.997.10
'@aws-sdk/types': 3.973.8
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/token-providers@3.1052.0':
dependencies:
'@aws-sdk/core': 3.974.13
'@aws-sdk/nested-clients': 3.997.11
'@aws-sdk/types': 3.973.9
'@smithy/core': 3.24.4
'@smithy/types': 4.14.2
tslib: 2.8.1
'@aws-sdk/token-providers@3.1053.0':
dependencies:
'@aws-sdk/core': 3.974.13
@@ -7673,13 +7822,20 @@ snapshots:
'@aws-sdk/util-format-url@3.972.14':
dependencies:
'@aws-sdk/core': 3.974.13
'@aws-sdk/core': 3.974.12
tslib: 2.8.1
'@aws-sdk/util-locate-window@3.965.5':
dependencies:
tslib: 2.8.1
'@aws-sdk/xml-builder@3.972.24':
dependencies:
'@nodable/entities': 2.1.0
'@smithy/types': 4.14.2
fast-xml-parser: 5.7.0
tslib: 2.8.1
'@aws-sdk/xml-builder@3.972.25':
dependencies:
'@nodable/entities': 2.1.0

View File

@@ -62,17 +62,6 @@ overrides:
"@anthropic-ai/sdk": 0.98.0
hono: 4.12.18
"@hono/node-server": 1.19.14
"@aws-sdk/core": 3.974.13
"@aws-sdk/client-bedrock-runtime": 3.1053.0
"@aws-sdk/credential-provider-env": 3.972.39
"@aws-sdk/credential-provider-http": 3.972.41
"@aws-sdk/credential-provider-ini": 3.972.43
"@aws-sdk/credential-provider-login": 3.972.43
"@aws-sdk/credential-provider-process": 3.972.39
"@aws-sdk/credential-provider-sso": 3.972.43
"@aws-sdk/credential-provider-web-identity": 3.972.43
"@aws-sdk/nested-clients": 3.997.11
"@aws-sdk/token-providers": 3.1053.0
axios: 1.16.0
fast-uri: 3.1.2
follow-redirects: 1.16.0

View File

@@ -172,53 +172,6 @@ describe("runEmbeddedAgent cross-provider fallback error handling", () => {
});
});
it("keeps PI-stamped session assistant errors for the current candidate after compaction", async () => {
const getLastFormattedAssistant = captureFormattedAssistant();
const sameCandidateErrorMessage = "429 current PI-stamped candidate rate limit";
mockedIsFailoverAssistantError.mockImplementation((...args: unknown[]) => {
const assistant = args[0];
return isCurrentAttemptAssistant(assistant) && assistant.provider === "pi";
});
mockedIsRateLimitAssistantError.mockImplementation((...args: unknown[]) => {
const assistant = args[0];
return isCurrentAttemptAssistant(assistant) && assistant.provider === "pi";
});
mockedRunEmbeddedAttempt.mockResolvedValueOnce(
makeAttemptResult({
assistantTexts: [],
lastAssistant: makeAssistantMessageFixture({
stopReason: "error",
errorMessage: sameCandidateErrorMessage,
provider: "pi",
model: "pi",
content: [],
}),
currentAttemptAssistant: undefined,
}),
);
const promise = runEmbeddedAgent({
...overflowBaseRunParams,
runId: "run-compaction-pi-stamped-fallback-error-context",
config: makeCrossProviderFallbackConfig(),
});
await expect(promise).rejects.toBeInstanceOf(MockedFailoverError);
await expect(promise).rejects.toThrow(sameCandidateErrorMessage);
expect(mockedIsRateLimitAssistantError).toHaveBeenCalledTimes(1);
const rateLimitCalls = mockedIsRateLimitAssistantError.mock.calls as unknown[][];
expect(rateLimitCalls.at(-1)?.[0]).toMatchObject({
provider: "pi",
model: "pi",
errorMessage: sameCandidateErrorMessage,
});
expect(getLastFormattedAssistant()).toMatchObject({
provider: "pi",
model: "pi",
errorMessage: sameCandidateErrorMessage,
});
});
it("does not reuse a prior provider session assistant when the current candidate times out", async () => {
const getLastFormattedAssistant = captureFormattedAssistant();
mockedRunEmbeddedAttempt.mockResolvedValueOnce(

View File

@@ -251,7 +251,34 @@ export function resolvePromptSubmissionSkipReason(params: {
if (params.prompt.trim().length > 0 || params.imageCount > 0) {
return null;
}
return params.messages.length > 0 ? "blank_user_prompt" : "empty_prompt_history_images";
return params.messages.some(hasVisiblePromptHistory)
? "blank_user_prompt"
: "empty_prompt_history_images";
}
function hasVisiblePromptHistory(message: unknown): boolean {
if (!message || typeof message !== "object") {
return false;
}
const record = message as { role?: unknown; content?: unknown };
if (record.role !== "user" && record.role !== "assistant") {
return false;
}
return hasNonEmptyContent(record.content);
}
function hasNonEmptyContent(content: unknown): boolean {
if (typeof content === "string") {
return content.trim().length > 0;
}
if (Array.isArray(content)) {
return content.some(hasNonEmptyContent);
}
if (!content || typeof content !== "object") {
return false;
}
const record = content as { text?: unknown; content?: unknown };
return hasNonEmptyContent(record.text) || hasNonEmptyContent(record.content);
}
const QUEUED_USER_MESSAGE_MARKER =

View File

@@ -146,16 +146,6 @@ describe("agent defaults schema", () => {
);
});
it("accepts agents.defaults.agentRuntime", () => {
expect(() =>
AgentDefaultsSchema.parse({
agentRuntime: {
id: "claude-cli",
},
}),
).not.toThrow();
});
it("accepts experimental.localModelLean", () => {
const result = AgentDefaultsSchema.parse({
experimental: {

View File

@@ -64,7 +64,7 @@ describe("renderActivity", () => {
render(renderActivity(createProps()), container);
expect(container.querySelector(".activity-entry__text")?.textContent?.trim()).toBe(
"0 arguments hidden",
"0 Argumente ausgeblendet",
);
});