nixbot

builds

succeeded llx-0.0.1 x86_64-linux.default · build #10 · raw

unpackPhase
1unpacking source archive /nix/store/pchb7wjf70c8lw3n2a7777avss8hx82q-source2source root is source
configurePhase
3no configure script, doing nothing
buildPhase
4Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.dlJ8QfjNeJ5Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.dlJ8QfjNeJ6GUARDRAILS IS ENABLED. RUNTIME PERFORMANCE WILL BE AFFECTED.7Mode: :runtime config: {:throw? true, :guardrails/use-stderr? true}8Guardrails was enabled because the guardrails.enabled property is set to a (any) value.9--- unit (clojure.test) ---------------------------10ol.llx.ai.adapters.openai-completions-test11 build-request-sanitizes-unpaired-surrogates-in-user-text12 decode-event-maps-provider-finish-reason-errors13 build-request-preserves-valid-emoji-surrogate-pairs14 normalize-tool-call-id-openai-compatible-non-pipe-ids-are-unchanged15 build-request-batches-tool-result-images-for-openai-completions16 build-request-sanitizes-unpaired-surrogates-in-tool-result-text17 decode-event-stream-contract18 build-request-emits-provider-payload-trove-signal19 decode-event-emits-thinking-events-for-reasoning-content20 response->assistant-message-maps-provider-finish-reason-errors21 build-request-tool-choice-sentinel-strings-pass-through22 decode-event-tracks-thinking-signature23 response->assistant-message-calculates-usage-costs24 build-request-omits-reasoning-effort-when-model-lacks-reasoning25 convert-message-restores-thinking-field-from-signature26 normalize-tool-call-id-openai-non-pipe-ids-are-truncated-only27 build-request-zai-thinking-format-sends-thinking-object28 normalize-tool-call-id-mistral-shape29 normalization is deterministic 9-char alphanumeric30 build-request-qwen-thinking-format-sends-enable-thinking31 build-request-zai-disables-thinking-when-no-reasoning32 normalize-tool-call-id-pipe-ids-use-call-segment-sanitize-and-truncate33 normalize-tool-call-id-matches-upstream-issue-1022-test-id34 build-request-reads-provider-specific-env-api-key35 build-request-missing-api-key-message-includes-env-var-name36 response->assistant-message-falls-back-to-choice-usage37 build-request-includes-reasoning-effort-for-reasoning-model38 decode-event-stream-falls-back-to-choice-usage39 convert-message-reconstructs-reasoning-details-from-tool-signatures40 decode-event-stream-usage-calculates-costs41 build-request-openai-compatible-omits-auth-and-respects-compat-overrides42 decode-event-extracts-reasoning-details-to-tool-call-signature43 normalize-tool-call-id-mistral-avoids-collision-for-distinct-source-ids44 build-request-forwards-tools-and-tool-choice-with-compat-token-field45 decode-event-thinking-to-text-transition4647ol.llx.ai.adapters.common-test48 parse-json-lenient-falls-back-to-decode49 uses decode-safe when it succeeds50 falls back to decode when decode-safe returns nil51 uses decode directly when decode-safe is absent52 parse-json-safe-returns-decoded-or-empty-map53 trim-trailing-slash-removes-single-trailing-slash54 empty-usage-shape-is-canonical5556ol.llx.ai.schema-test57 oauth-schema-contracts58 accepts OpenAI Codex provider and API enum values59 accepts oauth credential and provider contracts60 rejects oauth credential map missing required keys61 rejects oauth provider missing required function slots62 message-schemas63 accepts all three canonical message roles64 assistant message accepts unknown keys65 schema-registry-rebuilds-when-component-schemas-change66 usage-schema67 accepts usage where total-tokens equals component sum68 accepts usage where provider total-tokens does not match component sum (Google!)69 model-schema70 accepts a valid model71 accepts supported openai-completions compat profile keys72 accepts unknown model keys73 config-schema74 accepts known provider config75 accepts unknown provider keys76 options-schema77 accepts valid unified request options78 accepts unknown unified request option keys79 accepts valid provider request options including provider-specific keys80 tool input schema field descriptions survive json schema conversion81 context-schema82 context is an ordered vector of canonical messages83 context-map enforces required :messages and optional envelope keys84 options-schema-allows-provider-specific-option-keys85 runtime-boundary-schemas86 accepts runtime adapter boundary maps87 rejects malformed runtime boundary maps88 accepts run-stream argument map contract89 adapter-and-env-schema90 accepts valid adapter and runtime env91 rejects adapter missing required function slots92 rejects env missing required function slots93 event-schemas94 accepts stream terminal events95 rejects malformed events96 accepts delta events with required payload9798ol.llx.ai.guardrails-contract-test99 guardrails-enforces-boundary-shapes100 decode-event boundary is enforced for all adapters101102ol.llx.ai.utils.rate-limit-test103 rate-limited-detection104 detects structured error types105 detects provider message patterns106 false for non-rate-limit errors107108ol.llx.ai.adapters.anthropic-messages-test109 build-request-omits-thinking-when-model-not-reasoning110 build-request-uses-custom-thinking-budgets111 build-request-omits-temperature-when-thinking-is-enabled112 build-request-enables-adaptive-thinking-for-sonnet-4-6113 decode-event-redacted-thinking-round-trips-to-canonical-content114 decode-event-stream-contract115 build-request-replays-redacted-thinking-as-anthropic-redacted-block116 build-request-emits-provider-payload-trove-signal117 decode-event-stream-usage-calculates-costs118 build-request-converts-canonical-context-to-anthropic-payload119 normalize-tool-call-id-sanitizes-and-truncates120 finalize-throws-on-unknown-stop-reason121 image-only-content-does-not-inject-placeholder-text122 build-request-enables-budget-thinking-for-older-reasoning-model123 finalize-maps-anthropic-stop-reasons124 build-request-clamps-sonnet-4-6-xhigh-to-high125 build-request-disables-thinking-when-no-reasoning-opts126 build-request-preserves-valid-emoji-surrogate-pairs127 build-request-enables-adaptive-thinking-for-opus-4-6128 finalize-calculates-usage-costs129 build-request-sanitizes-unpaired-surrogates-in-user-and-system130131ol.llx.ai.transform-messages-test132 skipped-assistant-turns-with-error-or-aborted-stop-reasons133 fixture-for-aborted-reasoning-skips-aborted-turn134 aborted assistant turn is removed from replay135 synthetic-tool-result-uses-real-time-when-clock-missing136 tool-call-id-normalization-propagates-to-tool-result137 user-interruption-inserts-only-missing-tool-results138 cross-model-replay-converts-thinking-and-drops-signatures139 google-gated-normalization-rewrites-assistant-and-tool-result-ids140 same-model-replay-preserves-thinking-and-signatures141 does-not-duplicate-existing-synthetic-tool-result142 tool-call-id-normalization-avoids-collision-for-mistral143 missing-tool-results-get-synthetic-error-message144145ol.llx.ai.client-test146 complete-retries-without-thread-sleep-hook147 opts-registry-overrides-env-registry148 complete-openai-completions-non-2xx149 stream-returns-csp-channel150 complete-surfaces-unknown-openai-completions-stop-reason-as-error-message151 complete-rejects-malformed-adapter-finalize-result152 stream-simple-wrapper-normalizes-options153 complete-rejects-unsupported-xhigh-with-structured-error154 complete-simple-wrapper-normalizes-options155 complete-allows-xhigh-for-supported-model156 complete-retries-on-transient-error157 complete-emits-lifecycle-trove-signals158 stream-close-delegates-to-runtime-cancel-fn159 complete-does-not-retry-on-client-error160 unified-opts->request-opts-rejects-provider-shape-in-unified-opts161 stream-rejects-unsupported-xhigh-with-structured-error162 complete-transforms-context-before-build-request163 complete-simple-wrapper-normalizes-openai-responses-reasoning-to-effort164 complete-emits-error-lifecycle-trove-signals165 complete-returns-deferred166 stream-retries-open-stream-on-transient-error167 unified-opts->request-opts-normalizes-unified-shape168169ol.llx.ai.models-test170 model-utility-functions171 calculate-cost172 supports-xhigh?173 direct anthropic 4.6 models use the larger context window174 models-equal?175 model-registry-and-lookup176177ol.llx.ai.adapters.openai-responses-test178 build-request-replays-versioned-text-signature-metadata179 finalize-calculates-tier-adjusted-cost-when-usage-present180 normalize-tool-call-id-gates-by-provider-allowlist181 decode-event-message-output-item-done-encodes-versioned-text-signature182 decode-event-response-failed-includes-provider-error-details183 build-request-converts-context-to-openai-responses-input184 normalize-tool-call-id-hashes-foreign-item-ids185 normalize-tool-call-id-preserves-same-provider-item-ids186 build-request-preserves-valid-emoji-surrogate-pairs187 finalize-maps-responses-status-to-canonical-stop-reason188 decode-event-stream-contract189 build-request-emits-provider-payload-trove-signal190 cache-retention-mapping191 cache-control none omits both prompt cache fields192 cache-control long sets 24h retention for direct api.openai.com193 cache-control long does not set retention for non-openai base url194 build-request-sanitizes-unpaired-surrogates-in-user-text195 finalize-throws-on-unknown-stop-reason196 normalize-tool-call-id-normalizes-pipe-ids-and-preserves-pairing197 normalize-tool-call-id-matches-upstream-issue-1022-test-id198 build-request-disables-reasoning-when-no-reasoning-opts199 stream-error-normalization-contract200 normalize-tool-call-id-trims-trailing-underscores-and-enforces-fc-prefix201 decode-event-reasoning-summary-part-done-requires-summary-part202203ol.llx.ai.oauth.openai-codex-test204 login-openai-codex-state-mismatch-fails205 login-openai-codex-bind-failure-falls-back-to-manual-input206 parse-authorization-input-cases207 accepts full redirect URL208 accepts code#state format209 accepts query-string format210 falls back to raw code211 login-openai-codex-manual-fallback212 account-id-extraction213214ol.llx.ai.client.jvm-test215 run-stream-emits-stream-lifecycle-trove-signals216 run-stream-emits-stream-event-error-trove-signal217 run-stream-validation218 rejects malformed decoded events219 rejects malformed finalize output220 malformed normalize-error still emits terminal error221 run-stream-cancel-fn-closes-upstream-body222 run-stream-wraps-untyped-stream-errors-as-streaming-error223224ol.llx.agent.driver-test225 prompt-continues-through-queued-steering-without-stalling-test226 abort-cancels-tool-execution-and-returns-to-idle-test227 abort-drops-stale-llm-events-and-allows-reuse-test228229ol.llx.ai.utils.tool-validation-test230 validate-tool-call231 success case232 tool not found233 validation errors are structured234 missing required field235 human-readable error message includes tool name and arguments236 tool-not-found error message includes tool name237 coerces string values using the input schema238 applies schema defaults from the input schema239 resolves custom schema references from the active registry240241ol.llx.ai.adapters.google-generative-ai-test242 reasoning-config-disables-thinking-by-default-for-gemini-3243 build-request-emits-provider-payload-trove-signal244 decode-event-stream-usage-calculates-costs245 build-request-sanitizes-unpaired-surrogates-in-user-and-system246 build-request-gemini-3-preserves-unsigned-tool-calls-with-sentinel247 build-request-preserves-valid-emoji-surrogate-pairs248 finalize-calculates-usage-costs249 reasoning-config-gemini-3-flash-uses-level250 reasoning-config-disables-thinking-by-default-for-gemini-25251 reasoning-config-gemini-3-pro-uses-level252 thought-signature-alone-is-not-thinking253 stream-error-normalization-contract254 open-stream-non-2xx-throws-structured-error255 reasoning-config-gemini-3-pro-clamps-low-effort256 reasoning-config-disables-thinking-by-default-for-gemini-3-pro257 build-request-converts-canonical-context-to-google-payload258 map-stop-reason-fail-fast-on-unknown259 unknown finish reason in stream decode fails fast260 build-request-uses-custom-thinking-budgets261 build-request-tool-result-image-forwarding-by-model-capability262 gemini-3 multimodal model forwards image in functionResponse parts263 text-only model drops images from functionResponse264 adapter-registers-tool-call-id-normalizer-with-model-id-gate265 google-normalizer-matches-upstream-issue-1022-test-id-under-gate266 reasoning-config-gemini-25-pro-budget-differs-from-flash267 reasoning-config-omitted-when-model-not-reasoning268 decode-event-tool-call-missing-args-defaults-to-empty-map269 decode-event-stream-contract270 finalize-throws-on-unknown-stop-reason271272ol.llx.ai.utils.unicode-test273 truncate-limits-string-length274 truncates only when input exceeds max-len275 coerces nil to empty string276 sanitize-surrogates-handles-surrogate-edge-cases277 preserves valid emoji surrogate pairs278 removes unpaired high surrogate279 removes unpaired low surrogate280 removes high surrogate at end of string281 removes multiple unpaired surrogates in one string282 preserves mixed content: emoji, CJK, math symbols, special quotes283 handles nil and empty input284 passes through plain ASCII unchanged285 sanitize-payload-deep-walks-data-structures286 sanitizes strings nested in maps, vectors, and mixed structures287 real-world LinkedIn data with emoji preserved288 unpaired surrogates stripped from tool result content289 handles bare string input290 handles bare vector input291 passes through non-string leaves unchanged292293ol.llx.ai.registry-test294 registry-operations295 unregister and clear adapters296 rejects invalid api value297 registry-patterns298 immutable registry returns new value299 mutable registry300 dynamic registry301302ol.llx.agent-test303 custom-message-public-api-validation-test304 custom-message-schema-may-reference-provided-schemas-test305 set-schema-config-ignores-nil-fields-test306 nil schema-registry preserves the current user registry307 nil custom-message-schemas preserves the current dispatch map308 tool-call-schema-contract-test309 create-agent-default-convert-to-llm-test310 create-agent-requires-env-contract-test311 custom-message-schemas-validate-message-and-messages-test312 :ol.llx.agent/custom-message-schemas requires namespace-qualified dispatch keys313 :ol.llx.agent/message rejects custom roles when not registered314 :ol.llx.agent/message accepts registered custom role315 :ol.llx.agent/messages accepts canonical + registered custom messages316 :ol.llx.agent/messages rejects invalid registered custom message payloads317 canonical messages remain valid with custom registrations enabled318 prompt-validates-messages-test319 create-agent-ignores-initial-state-option-test320 subscribe-unsubscribe-test321 tool-signal-and-event-schema-tightening-test322 set-schema-config-updates-custom-message-validation-on-live-agent-test323 command-wrappers-dispatch-through-driver-run-test324 prompt dispatches vector messages325 continue dispatches the continue command326 abort dispatches the abort command327 state mutators dispatch commands328 set-model-validates-model-shape-test329 create-agent-initializes-state-test330 rehydrate-agent-custom-message-validation-test331 effect-execute-tool-tool-call-schema-test332 tool-schema-tightening-on-commands-and-state-test333 :ol.llx.agent/command-set-tools expects :ol.llx.agent/tool entries334 :ol.llx.agent/create-agent-opts expects :ol.llx.agent/tool entries in :tools335 :ol.llx.agent.loop/state expects :ol.llx.agent/tool entries in :tools336 tool-and-pending-tool-call-schema-test337 create-agent-rejects-missing-custom-schema-registration-test338 set-schema-config-clears-user-additions-without-removing-canonical-schemas-test339 rehydrate-agent-uses-snapshot-test340341ol.llx.ai.oauth.cli-test342 login-command-writes-auth-json-in-current-working-directory343 persists oauth credentials to auth.json344345ol.llx.agent.fx-test346 fx-call-llm-runs-hooks-and-maps-events-test347 execute-fx-validates-effect-shape-test348 fx-call-llm-uses-default-stream-fn-when-not-provided-test349 fx-call-llm-emits-llm-error-on-non-canonical-event-type-test350 fx-call-llm-emits-llm-error-on-hook-failure-test351 fx-execute-tool-uses-updated-schema-config-from-live-agent-test352 fx-execute-tool-uses-active-schema-registry-for-input-coercion-test353354ol.llx.ai.client.stream-test355 run-stream-emits-start-and-done-events356 runtime-run-stream-input-requires-runtime-hooks357 requires stream runtime hooks358 run-stream-calls-cancel-when-output-channel-preclosed359360ol.llx.ai.model-catalog.generate-test361 generate-models-uses-checked-in-overrides-and-emits-openai-codex-models362 generate-models-writes-artifact-using-injected-paths363 build-catalog-rejects-duplicate-normalized-source-keys364 build-catalog-normalizes-supported-providers-only365 build-catalog-is-deterministically-sorted366 build-catalog-deep-merges-nested-override-fields367 build-catalog-rejects-provider-change-for-existing-id368 render-generated-source-is-stable369 build-catalog-supports-provider-qualified-override-keys370 build-catalog-rejects-invalid-override-shapes371372ol.llx.ai.oauth-test373 oauth-provider-registry-operations374 refresh-oauth-token-dispatch375 get-oauth-api-key-behavior376 returns nil for missing provider credentials377 returns existing api key when credential is not expired378 refreshes expired credential before returning api key379380ol.llx.ai.errors-test381 retry-loop-async-retries-transient-and-succeeds382 extract-retry-after-from-message-parses-seconds383 http-status-429-without-quota-returns-rate-limit384 retry-delay-adds-jitter-for-server-errors385 should-retry-allows-transient-errors386 should-retry-rejects-client-errors387 retry-loop-async-emits-retry-scheduled-trove-signal388 http-status->error-maps-common-codes389 400 -> invalid-request390 401 -> authentication-error391 403 -> authorization-error392 404 -> model-not-found393 408 -> timeout394 500 -> server-error395 502 -> server-error396 503 -> server-error397 provider-error-with-custom-recoverability398 extract-retry-after-from-message-returns-nil-when-missing399 retry-loop-async-does-not-retry-client-errors400 retry-delay-exceeded-is-not-recoverable401 retry-delay-uses-exponential-backoff-for-rate-limit-without-header402 predicates-match-error-categories403 llx-error? matches structured errors404 recoverable? matches recoverable errors405 rate-limit-error?406 quota-exceeded-error?407 rate-limited-error?408 timeout-error?409 client-error?410 transient-error?411 should-retry-respects-max-retries412 model-not-found-is-not-recoverable413 retry-loop-async-exhausts-retries-and-throws414 http-status-unknown-5xx-returns-recoverable-provider-error415 content-filter-is-not-recoverable416 extracts-x-ratelimit-reset-after-header417 rate-limit-error-has-correct-type-and-recoverable418 caps-at-max-seconds419 authentication-error-is-not-recoverable420 retry-loop-async-fails-when-server-retry-delay-exceeds-cap421 server-error-is-recoverable422 http-status-429-with-quota-and-retry-after-returns-rate-limit423 retry-delay-uses-linear-backoff-for-connection-errors424 extracts-retry-after-seconds-header425 returns-nil-when-no-header426 connection-error-is-recoverable427 http-status-unknown-4xx-returns-non-recoverable-provider-error428 retry-loop-async-succeeds-on-first-attempt429 extracts-retry-after-ms-header430 invalid-request-is-not-recoverable431 timeout-error-is-recoverable432 retry-after-ms-takes-priority433 http-status-429-with-quota-body-returns-quota-exceeded434 retry-delay-uses-server-retry-after-for-rate-limit435 quota-exceeded-is-not-recoverable436437ol.llx.ai.utils.overflow-test438 context-overflow-detection439 detects explicit provider messages440 detects 400/413 status codes441 detects silent overflow with context window442 false for non-overflow errors443444ol.llx.ai.adapters.openai-codex-responses-test445 build-request-shapes-codex-url-and-headers446 build-request-rejects-token-missing-account-id447 build-request-prefers-explicit-api-key-over-env448 build-request-disables-reasoning-when-no-reasoning-opts449 build-request-strips-codex-unsupported-payload-fields450451ol.llx.agent.loop-test452 command-predicate-test453 recognizes commands454 rejects signals455 rejects events456 handle-command-continue-with-steering-all-mode-test457 tool-executing-transition-tool-update-test458 idle-transition-prompt-start-test459 appends messages and transitions to streaming460 emits agent-start, turn-start, message events, and call-llm461 call-llm receives the full message history including new messages462 handle-command-continue-with-follow-up-one-at-a-time-test463 handle-command-clear-all-queues-test464 agent-end-emitted-on-streaming-to-idle-test465 streaming-transition-unknown-signal-test466 handle-command-continue-steering-before-follow-up-test467 idle-transition-continue-start-test468 appends messages and transitions to streaming469 emits turn-start (no agent-start), message events, and call-llm470 call-llm receives the full message history including new messages471 tool-executing-transition-tool-result-with-steering-interrupts-remaining-tools-test472 clears pending tool calls and keeps remaining steering queued in one-at-a-time mode473 appends current tool result, synthetic skipped results, and dequeued steering message474 emits current result events, skipped tool lifecycle events, steering message events, and resumes llm475 streaming-transition-llm-error-test476 transitions to idle and sets error477 emits message-end and turn-end478 streaming-transition-abort-test479 transitions to idle and clears stream-message480 emits message-end and turn-end481 agent-end-not-emitted-when-staying-idle-test482 handle-command-follow-up-test483 step-prompt-from-idle-to-streaming-test484 handle-command-set-steering-mode-test485 handle-command-set-model-test486 route-from-idle-test487 handle-command-replace-messages-test488 handle-command-continue-with-steering-one-at-a-time-test489 streaming-transition-llm-done-with-follow-up-queue-starts-next-turn-test490 starts a new turn from follow-up messages when no steering exists491 continues the run with another llm call492 step-tool-loop-test493 state progression through tool loop494 tool completion resumes llm495 final state has all messages496 agent-end emitted on final transition to idle497 streaming-transition-llm-start-test498 handle-command-clear-follow-up-queue-test499 agent-end-not-emitted-on-streaming-to-tool-executing-test500 handle-command-continue-with-follow-up-all-mode-test501 streaming-transition-llm-done-with-steering-queue-starts-next-turn-test502 moves directly into the next streaming turn503 appends the finished assistant message and queued steering message504 continues the run by ending the turn and scheduling more llm work505 tool-executing-transition-tool-result-with-steering-all-mode-dequeues-all-test506 dequeues all steering messages in :all mode507 streaming-transition-llm-done-with-tools-test508 transitions to tool-executing509 sets pending-tool-calls and clears stream-message510 appends the message511 emits message-end, tool-execution-start, and execute-tool512 tool-executing-transition-unknown-signal-test513 tool-executing-transition-abort-test514 transitions to idle and clears pending-tool-calls515 emits turn-end516 streaming-transition-llm-done-no-tools-test517 transitions to idle and clears stream-message518 appends the final message519 emits message-end and turn-end520 handle-command-append-message-test521 step-abort-from-tool-executing-to-idle-test522 handle-command-continue-empty-queues-test523 step-prompt-when-streaming-is-rejected-test524 streaming-transition-llm-done-prefers-steering-over-follow-up-test525 uses steering messages first and leaves follow-up queued526 continues immediately with call-llm527 step-signal-llm-done-with-tools-test528 step-full-happy-path-test529 state progression530 final state has both messages531 agent-end is emitted on final step532 agent-end is not emitted on intermediate steps533 handle-command-set-follow-up-mode-test534 step-signal-llm-done-no-tools-to-idle-test535 handle-command-reset-test536 handle-command-prompt-when-not-idle-test537 step-abort-from-streaming-to-idle-test538 abort signal from streaming539 abort command from streaming540 idle-transition-invalid-signal-test541 handle-command-set-schema-config-test542 handle-command-clear-steering-queue-test543 handle-command-set-tools-test544 handle-command-set-thinking-level-test545 handle-command-abort-when-idle-test546 tool-executing-transition-tool-result-last-tool-test547 clears pending-tool-calls548 appends result to messages and resumes llm549 initial-state-has-expected-shape-test550 handle-command-prompt-from-idle-test551 tool-executing-transition-tool-error-with-remaining-test552 records error result and keeps remaining tools553 emits tool-execution-end, message events, and starts next tool554 handle-command-set-system-prompt-test555 handle-command-continue-when-not-idle-test556 route-from-streaming-test557 idle routes to idle558 tool-executing routes to tool-executing559 closed routes to closed560 streaming stays streaming561 handle-command-clear-messages-test562 handle-command-steer-test563 tool-executing-transition-tool-error-last-tool-test564 clears pending-tool-calls565 records error result and resumes llm566 tool-executing-transition-tool-result-with-remaining-test567 processes result and keeps remaining tools568 appends result to messages569 emits tool-execution-end, message events, and starts next tool570 agent-end-emitted-on-error-to-idle-test571 closed-transition-is-terminal-test572 any signal returns state unchanged with no effects573 route-from-tool-executing-test574 with pending tool calls stays tool-executing575 without pending tool calls routes to streaming576 closed routes to closed577 streaming-transition-llm-chunk-test578 handle-command-abort-when-streaming-test579 tool-executing-transition-tool-error-with-steering-interrupts-remaining-tools-test580 does not execute the next real tool and resumes llm after synthetic skipped results581 keeps one steering message queued in one-at-a-time mode582 appends error result, skipped tool results, and dequeued steering message583584333 tests, 1549 assertions, 0 failures.585Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.dlJ8QfjNeJ586Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.dlJ8QfjNeJ
fixupPhase
587shrinking RPATHs of ELF executables and libraries in /nix/store/q635z8f98j3zl2sq4mx31qx75gb48qvx-llx-0.0.1588checking for references to /build/ in /nix/store/q635z8f98j3zl2sq4mx31qx75gb48qvx-llx-0.0.1...589patching script interpreter paths in /nix/store/q635z8f98j3zl2sq4mx31qx75gb48qvx-llx-0.0.1