nixbot

builds

succeeded x86_64-linux.packages-default build #5 · raw · ·

1this derivation will be built:2  /nix/store/1wlh0cjnq2xd7qjhhvlx4ncpf733scp1-llx-0.0.1.drv3building '/nix/store/1wlh0cjnq2xd7qjhhvlx4ncpf733scp1-llx-0.0.1.drv' on 'ssh-ng://nix-remote-build@quine.prim.private.invalid'4building '/nix/store/1wlh0cjnq2xd7qjhhvlx4ncpf733scp1-llx-0.0.1.drv'5llx-0.0.1> Running phase: unpackPhase6llx-0.0.1> unpacking source archive /nix/store/0f5asq7xxr7rrj7z3sk9jm1xb70iqk5n-source7llx-0.0.1> source root is source8llx-0.0.1> Running phase: patchPhase9llx-0.0.1> Running phase: updateAutotoolsGnuConfigScriptsPhase10llx-0.0.1> Running phase: configurePhase11llx-0.0.1> no configure script, doing nothing12llx-0.0.1> Running phase: buildPhase13llx-0.0.1> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.tjnKtvEGg414llx-0.0.1> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.tjnKtvEGg415llx-0.0.1> GUARDRAILS IS ENABLED. RUNTIME PERFORMANCE WILL BE AFFECTED.16llx-0.0.1> Mode: :runtime  config: {:throw? true, :guardrails/use-stderr? true}17llx-0.0.1> Guardrails was enabled because the guardrails.enabled property is set to a (any) value.18llx-0.0.1> --- unit (clojure.test) ---------------------------19llx-0.0.1> ol.llx.ai.errors-test20llx-0.0.1>   retry-loop-async-exhausts-retries-and-throws21llx-0.0.1>   retry-loop-async-fails-when-server-retry-delay-exceeds-cap22llx-0.0.1>   returns-nil-when-no-header23llx-0.0.1>   quota-exceeded-is-not-recoverable24llx-0.0.1>   invalid-request-is-not-recoverable25llx-0.0.1>   retry-delay-adds-jitter-for-server-errors26llx-0.0.1>   retry-delay-uses-server-retry-after-for-rate-limit27llx-0.0.1>   caps-at-max-seconds28llx-0.0.1>   extracts-x-ratelimit-reset-after-header29llx-0.0.1>   http-status-429-with-quota-body-returns-quota-exceeded30llx-0.0.1>   should-retry-respects-max-retries31llx-0.0.1>   http-status-unknown-5xx-returns-recoverable-provider-error32llx-0.0.1>   extract-retry-after-from-message-returns-nil-when-missing33llx-0.0.1>   server-error-is-recoverable34llx-0.0.1>   retry-after-ms-takes-priority35llx-0.0.1>   retry-loop-async-succeeds-on-first-attempt36llx-0.0.1>   provider-error-with-custom-recoverability37llx-0.0.1>   content-filter-is-not-recoverable38llx-0.0.1>   retry-loop-async-emits-retry-scheduled-trove-signal39llx-0.0.1>   extracts-retry-after-ms-header40llx-0.0.1>   http-status-429-without-quota-returns-rate-limit41llx-0.0.1>   rate-limit-error-has-correct-type-and-recoverable42llx-0.0.1>   retry-delay-uses-exponential-backoff-for-rate-limit-without-header43llx-0.0.1>   predicates-match-error-categories44llx-0.0.1>     llx-error? matches structured errors45llx-0.0.1>     recoverable? matches recoverable errors46llx-0.0.1>     rate-limit-error?47llx-0.0.1>     quota-exceeded-error?48llx-0.0.1>     rate-limited-error?49llx-0.0.1>     timeout-error?50llx-0.0.1>     client-error?51llx-0.0.1>     transient-error?52llx-0.0.1>   timeout-error-is-recoverable53llx-0.0.1>   model-not-found-is-not-recoverable54llx-0.0.1>   http-status->error-maps-common-codes55llx-0.0.1>     400 -> invalid-request56llx-0.0.1>     401 -> authentication-error57llx-0.0.1>     403 -> authorization-error58llx-0.0.1>     404 -> model-not-found59llx-0.0.1>     408 -> timeout60llx-0.0.1>     500 -> server-error61llx-0.0.1>     502 -> server-error62llx-0.0.1>     503 -> server-error63llx-0.0.1>   http-status-429-with-quota-and-retry-after-returns-rate-limit64llx-0.0.1>   authentication-error-is-not-recoverable65llx-0.0.1>   retry-delay-exceeded-is-not-recoverable66llx-0.0.1>   should-retry-allows-transient-errors67llx-0.0.1>   should-retry-rejects-client-errors68llx-0.0.1>   retry-delay-uses-linear-backoff-for-connection-errors69llx-0.0.1>   http-status-unknown-4xx-returns-non-recoverable-provider-error70llx-0.0.1>   connection-error-is-recoverable71llx-0.0.1>   retry-loop-async-retries-transient-and-succeeds72llx-0.0.1>   extracts-retry-after-seconds-header73llx-0.0.1>   extract-retry-after-from-message-parses-seconds74llx-0.0.1>   retry-loop-async-does-not-retry-client-errors75llx-0.0.1> 76llx-0.0.1> ol.llx.ai.utils.overflow-test77llx-0.0.1>   context-overflow-detection78llx-0.0.1>     detects explicit provider messages79llx-0.0.1>     detects 400/413 status codes80llx-0.0.1>     detects silent overflow with context window81llx-0.0.1>     false for non-overflow errors82llx-0.0.1> 83llx-0.0.1> ol.llx.ai.transform-messages-test84llx-0.0.1>   tool-call-id-normalization-avoids-collision-for-mistral85llx-0.0.1>   same-model-replay-preserves-thinking-and-signatures86llx-0.0.1>   cross-model-replay-converts-thinking-and-drops-signatures87llx-0.0.1>   tool-call-id-normalization-propagates-to-tool-result88llx-0.0.1>   fixture-for-aborted-reasoning-skips-aborted-turn89llx-0.0.1>     aborted assistant turn is removed from replay90llx-0.0.1>   skipped-assistant-turns-with-error-or-aborted-stop-reasons91llx-0.0.1>   user-interruption-inserts-only-missing-tool-results92llx-0.0.1>   missing-tool-results-get-synthetic-error-message93llx-0.0.1>   google-gated-normalization-rewrites-assistant-and-tool-result-ids94llx-0.0.1>   synthetic-tool-result-uses-real-time-when-clock-missing95llx-0.0.1>   does-not-duplicate-existing-synthetic-tool-result96llx-0.0.1> 97llx-0.0.1> ol.llx.agent.loop-test98llx-0.0.1>   streaming-transition-llm-done-no-tools-test99llx-0.0.1>     transitions to idle and clears stream-message100llx-0.0.1>     appends the final message101llx-0.0.1>     emits message-end and turn-end102llx-0.0.1>   streaming-transition-llm-done-with-follow-up-queue-starts-next-turn-test103llx-0.0.1>     starts a new turn from follow-up messages when no steering exists104llx-0.0.1>     continues the run with another llm call105llx-0.0.1>   tool-executing-transition-tool-error-with-steering-interrupts-remaining-tools-test106llx-0.0.1>     does not execute the next real tool and resumes llm after synthetic skipped results107llx-0.0.1>     keeps one steering message queued in one-at-a-time mode108llx-0.0.1>     appends error result, skipped tool results, and dequeued steering message109llx-0.0.1>   handle-command-continue-with-follow-up-one-at-a-time-test110llx-0.0.1>   handle-command-clear-all-queues-test111llx-0.0.1>   closed-transition-is-terminal-test112llx-0.0.1>     any signal returns state unchanged with no effects113llx-0.0.1>   streaming-transition-llm-chunk-test114llx-0.0.1>   step-prompt-from-idle-to-streaming-test115llx-0.0.1>   handle-command-continue-when-not-idle-test116llx-0.0.1>   command-predicate-test117llx-0.0.1>     recognizes commands118llx-0.0.1>     rejects signals119llx-0.0.1>     rejects events120llx-0.0.1>   tool-executing-transition-unknown-signal-test121llx-0.0.1>   step-abort-from-tool-executing-to-idle-test122llx-0.0.1>   handle-command-continue-steering-before-follow-up-test123llx-0.0.1>   tool-executing-transition-tool-update-test124llx-0.0.1>   handle-command-set-schema-config-test125llx-0.0.1>   route-from-idle-test126llx-0.0.1>   step-full-happy-path-test127llx-0.0.1>     state progression128llx-0.0.1>     final state has both messages129llx-0.0.1>     agent-end is emitted on final step130llx-0.0.1>     agent-end is not emitted on intermediate steps131llx-0.0.1>   streaming-transition-llm-error-test132llx-0.0.1>     transitions to idle and sets error133llx-0.0.1>     emits message-end and turn-end134llx-0.0.1>   idle-transition-invalid-signal-test135llx-0.0.1>   handle-command-continue-with-steering-all-mode-test136llx-0.0.1>   handle-command-steer-test137llx-0.0.1>   route-from-tool-executing-test138llx-0.0.1>     with pending tool calls stays tool-executing139llx-0.0.1>     without pending tool calls routes to streaming140llx-0.0.1>     closed routes to closed141llx-0.0.1>   streaming-transition-llm-start-test142llx-0.0.1>   handle-command-prompt-from-idle-test143llx-0.0.1>   agent-end-emitted-on-error-to-idle-test144llx-0.0.1>   agent-end-not-emitted-on-streaming-to-tool-executing-test145llx-0.0.1>   handle-command-reset-test146llx-0.0.1>   handle-command-replace-messages-test147llx-0.0.1>   handle-command-abort-when-streaming-test148llx-0.0.1>   step-signal-llm-done-with-tools-test149llx-0.0.1>   handle-command-clear-steering-queue-test150llx-0.0.1>   streaming-transition-unknown-signal-test151llx-0.0.1>   handle-command-abort-when-idle-test152llx-0.0.1>   agent-end-emitted-on-streaming-to-idle-test153llx-0.0.1>   idle-transition-prompt-start-test154llx-0.0.1>     appends messages and transitions to streaming155llx-0.0.1>     emits agent-start, turn-start, message events, and call-llm156llx-0.0.1>     call-llm receives the full message history including new messages157llx-0.0.1>   streaming-transition-llm-done-prefers-steering-over-follow-up-test158llx-0.0.1>     uses steering messages first and leaves follow-up queued159llx-0.0.1>     continues immediately with call-llm160llx-0.0.1>   handle-command-append-message-test161llx-0.0.1>   tool-executing-transition-tool-result-with-remaining-test162llx-0.0.1>     processes result and keeps remaining tools163llx-0.0.1>     appends result to messages164llx-0.0.1>     emits tool-execution-end, message events, and starts next tool165llx-0.0.1>   initial-state-has-expected-shape-test166llx-0.0.1>   handle-command-set-steering-mode-test167llx-0.0.1>   handle-command-set-system-prompt-test168llx-0.0.1>   handle-command-set-model-test169llx-0.0.1>   tool-executing-transition-tool-error-last-tool-test170llx-0.0.1>     clears pending-tool-calls171llx-0.0.1>     records error result and resumes llm172llx-0.0.1>   tool-executing-transition-tool-result-with-steering-interrupts-remaining-tools-test173llx-0.0.1>     clears pending tool calls and keeps remaining steering queued in one-at-a-time mode174llx-0.0.1>     appends current tool result, synthetic skipped results, and dequeued steering message175llx-0.0.1>     emits current result events, skipped tool lifecycle events, steering message events, and resumes llm176llx-0.0.1>   route-from-streaming-test177llx-0.0.1>     idle routes to idle178llx-0.0.1>     tool-executing routes to tool-executing179llx-0.0.1>     closed routes to closed180llx-0.0.1>     streaming stays streaming181llx-0.0.1>   step-abort-from-streaming-to-idle-test182llx-0.0.1>     abort signal from streaming183llx-0.0.1>     abort command from streaming184llx-0.0.1>   handle-command-continue-with-follow-up-all-mode-test185llx-0.0.1>   step-tool-loop-test186llx-0.0.1>     state progression through tool loop187llx-0.0.1>     tool completion resumes llm188llx-0.0.1>     final state has all messages189llx-0.0.1>     agent-end emitted on final transition to idle190llx-0.0.1>   tool-executing-transition-abort-test191llx-0.0.1>     transitions to idle and clears pending-tool-calls192llx-0.0.1>     emits turn-end193llx-0.0.1>   streaming-transition-abort-test194llx-0.0.1>     transitions to idle and clears stream-message195llx-0.0.1>     emits message-end and turn-end196llx-0.0.1>   handle-command-follow-up-test197llx-0.0.1>   idle-transition-continue-start-test198llx-0.0.1>     appends messages and transitions to streaming199llx-0.0.1>     emits turn-start (no agent-start), message events, and call-llm200llx-0.0.1>     call-llm receives the full message history including new messages201llx-0.0.1>   tool-executing-transition-tool-result-with-steering-all-mode-dequeues-all-test202llx-0.0.1>     dequeues all steering messages in :all mode203llx-0.0.1>   handle-command-set-follow-up-mode-test204llx-0.0.1>   handle-command-continue-empty-queues-test205llx-0.0.1>   handle-command-set-thinking-level-test206llx-0.0.1>   handle-command-prompt-when-not-idle-test207llx-0.0.1>   tool-executing-transition-tool-error-with-remaining-test208llx-0.0.1>     records error result and keeps remaining tools209llx-0.0.1>     emits tool-execution-end, message events, and starts next tool210llx-0.0.1>   handle-command-continue-with-steering-one-at-a-time-test211llx-0.0.1>   streaming-transition-llm-done-with-tools-test212llx-0.0.1>     transitions to tool-executing213llx-0.0.1>     sets pending-tool-calls and clears stream-message214llx-0.0.1>     appends the message215llx-0.0.1>     emits message-end, tool-execution-start, and execute-tool216llx-0.0.1>   streaming-transition-llm-done-with-steering-queue-starts-next-turn-test217llx-0.0.1>     moves directly into the next streaming turn218llx-0.0.1>     appends the finished assistant message and queued steering message219llx-0.0.1>     continues the run by ending the turn and scheduling more llm work220llx-0.0.1>   handle-command-clear-follow-up-queue-test221llx-0.0.1>   agent-end-not-emitted-when-staying-idle-test222llx-0.0.1>   step-prompt-when-streaming-is-rejected-test223llx-0.0.1>   handle-command-set-tools-test224llx-0.0.1>   handle-command-clear-messages-test225llx-0.0.1>   step-signal-llm-done-no-tools-to-idle-test226llx-0.0.1>   tool-executing-transition-tool-result-last-tool-test227llx-0.0.1>     clears pending-tool-calls228llx-0.0.1>     appends result to messages and resumes llm229llx-0.0.1> 230llx-0.0.1> ol.llx.ai.oauth.cli-test231llx-0.0.1>   login-command-writes-auth-json-in-current-working-directory232llx-0.0.1>     persists oauth credentials to auth.json233llx-0.0.1> 234llx-0.0.1> ol.llx.ai.models-test235llx-0.0.1>   model-registry-and-lookup236llx-0.0.1>   model-utility-functions237llx-0.0.1>     calculate-cost238llx-0.0.1>     supports-xhigh?239llx-0.0.1>     direct anthropic 4.6 models use the larger context window240llx-0.0.1>     models-equal?241llx-0.0.1> 242llx-0.0.1> ol.llx.ai.utils.rate-limit-test243llx-0.0.1>   rate-limited-detection244llx-0.0.1>     detects structured error types245llx-0.0.1>     detects provider message patterns246llx-0.0.1>     false for non-rate-limit errors247llx-0.0.1> 248llx-0.0.1> ol.llx.ai.adapters.common-test249llx-0.0.1>   parse-json-lenient-falls-back-to-decode250llx-0.0.1>     uses decode-safe when it succeeds251llx-0.0.1>     falls back to decode when decode-safe returns nil252llx-0.0.1>     uses decode directly when decode-safe is absent253llx-0.0.1>   parse-json-safe-returns-decoded-or-empty-map254llx-0.0.1>   trim-trailing-slash-removes-single-trailing-slash255llx-0.0.1>   empty-usage-shape-is-canonical256llx-0.0.1> 257llx-0.0.1> ol.llx.ai.utils.tool-validation-test258llx-0.0.1>   validate-tool-call259llx-0.0.1>     success case260llx-0.0.1>     tool not found261llx-0.0.1>     validation errors are structured262llx-0.0.1>     missing required field263llx-0.0.1>     human-readable error message includes tool name and arguments264llx-0.0.1>     tool-not-found error message includes tool name265llx-0.0.1>     coerces string values using the input schema266llx-0.0.1>     applies schema defaults from the input schema267llx-0.0.1>       resolves custom schema references from the active registry268llx-0.0.1> 269llx-0.0.1> ol.llx.ai.adapters.google-generative-ai-test270llx-0.0.1>   open-stream-non-2xx-throws-structured-error271llx-0.0.1>   decode-event-stream-contract272llx-0.0.1>   reasoning-config-gemini-3-pro-uses-level273llx-0.0.1>   decode-event-stream-usage-calculates-costs274llx-0.0.1>   adapter-registers-tool-call-id-normalizer-with-model-id-gate275llx-0.0.1>   thought-signature-alone-is-not-thinking276llx-0.0.1>   reasoning-config-disables-thinking-by-default-for-gemini-3277llx-0.0.1>   finalize-throws-on-unknown-stop-reason278llx-0.0.1>   reasoning-config-omitted-when-model-not-reasoning279llx-0.0.1>   build-request-gemini-3-preserves-unsigned-tool-calls-with-sentinel280llx-0.0.1>   reasoning-config-disables-thinking-by-default-for-gemini-3-pro281llx-0.0.1>   build-request-converts-canonical-context-to-google-payload282llx-0.0.1>   map-stop-reason-fail-fast-on-unknown283llx-0.0.1>     unknown finish reason in stream decode fails fast284llx-0.0.1>   reasoning-config-gemini-3-pro-clamps-low-effort285llx-0.0.1>   build-request-emits-provider-payload-trove-signal286llx-0.0.1>   build-request-uses-custom-thinking-budgets287llx-0.0.1>   reasoning-config-gemini-3-flash-uses-level288llx-0.0.1>   build-request-preserves-valid-emoji-surrogate-pairs289llx-0.0.1>   reasoning-config-disables-thinking-by-default-for-gemini-25290llx-0.0.1>   stream-error-normalization-contract291llx-0.0.1>   build-request-tool-result-image-forwarding-by-model-capability292llx-0.0.1>     gemini-3 multimodal model forwards image in functionResponse parts293llx-0.0.1>     text-only model drops images from functionResponse294llx-0.0.1>   google-normalizer-matches-upstream-issue-1022-test-id-under-gate295llx-0.0.1>   finalize-calculates-usage-costs296llx-0.0.1>   decode-event-tool-call-missing-args-defaults-to-empty-map297llx-0.0.1>   build-request-sanitizes-unpaired-surrogates-in-user-and-system298llx-0.0.1>   reasoning-config-gemini-25-pro-budget-differs-from-flash299llx-0.0.1> 300llx-0.0.1> ol.llx.ai.client.jvm-test301llx-0.0.1>   run-stream-cancel-fn-closes-upstream-body302llx-0.0.1>   run-stream-emits-stream-lifecycle-trove-signals303llx-0.0.1>   run-stream-emits-stream-event-error-trove-signal304llx-0.0.1>   run-stream-wraps-untyped-stream-errors-as-streaming-error305llx-0.0.1>   run-stream-validation306llx-0.0.1>     rejects malformed decoded events307llx-0.0.1>     rejects malformed finalize output308llx-0.0.1>     malformed normalize-error still emits terminal error309llx-0.0.1> 310llx-0.0.1> ol.llx.ai.model-catalog.generate-test311llx-0.0.1>   render-generated-source-is-stable312llx-0.0.1>   build-catalog-rejects-invalid-override-shapes313llx-0.0.1>   build-catalog-supports-provider-qualified-override-keys314llx-0.0.1>   build-catalog-deep-merges-nested-override-fields315llx-0.0.1>   generate-models-uses-checked-in-overrides-and-emits-openai-codex-models316llx-0.0.1>   generate-models-writes-artifact-using-injected-paths317llx-0.0.1>   build-catalog-is-deterministically-sorted318llx-0.0.1>   build-catalog-rejects-duplicate-normalized-source-keys319llx-0.0.1>   build-catalog-rejects-provider-change-for-existing-id320llx-0.0.1>   build-catalog-normalizes-supported-providers-only321llx-0.0.1> 322llx-0.0.1> ol.llx.ai.utils.unicode-test323llx-0.0.1>   truncate-limits-string-length324llx-0.0.1>     truncates only when input exceeds max-len325llx-0.0.1>     coerces nil to empty string326llx-0.0.1>   sanitize-surrogates-handles-surrogate-edge-cases327llx-0.0.1>     preserves valid emoji surrogate pairs328llx-0.0.1>     removes unpaired high surrogate329llx-0.0.1>     removes unpaired low surrogate330llx-0.0.1>     removes high surrogate at end of string331llx-0.0.1>     removes multiple unpaired surrogates in one string332llx-0.0.1>     preserves mixed content: emoji, CJK, math symbols, special quotes333llx-0.0.1>     handles nil and empty input334llx-0.0.1>     passes through plain ASCII unchanged335llx-0.0.1>   sanitize-payload-deep-walks-data-structures336llx-0.0.1>     sanitizes strings nested in maps, vectors, and mixed structures337llx-0.0.1>     real-world LinkedIn data with emoji preserved338llx-0.0.1>     unpaired surrogates stripped from tool result content339llx-0.0.1>     handles bare string input340llx-0.0.1>     handles bare vector input341llx-0.0.1>     passes through non-string leaves unchanged342llx-0.0.1> 343llx-0.0.1> ol.llx.ai.guardrails-contract-test344llx-0.0.1>   guardrails-enforces-boundary-shapes345llx-0.0.1>     decode-event boundary is enforced for all adapters346llx-0.0.1> 347llx-0.0.1> ol.llx.agent-test348llx-0.0.1>   rehydrate-agent-custom-message-validation-test349llx-0.0.1>   tool-signal-and-event-schema-tightening-test350llx-0.0.1>   effect-execute-tool-tool-call-schema-test351llx-0.0.1>   set-model-validates-model-shape-test352llx-0.0.1>   set-schema-config-ignores-nil-fields-test353llx-0.0.1>     nil schema-registry preserves the current user registry354llx-0.0.1>     nil custom-message-schemas preserves the current dispatch map355llx-0.0.1>   prompt-validates-messages-test356llx-0.0.1>   set-schema-config-clears-user-additions-without-removing-canonical-schemas-test357llx-0.0.1>   custom-message-schema-may-reference-provided-schemas-test358llx-0.0.1>   tool-schema-tightening-on-commands-and-state-test359llx-0.0.1>     :ol.llx.agent/command-set-tools expects :ol.llx.agent/tool entries360llx-0.0.1>     :ol.llx.agent/create-agent-opts expects :ol.llx.agent/tool entries in :tools361llx-0.0.1>     :ol.llx.agent.loop/state expects :ol.llx.agent/tool entries in :tools362llx-0.0.1>   custom-message-public-api-validation-test363llx-0.0.1>   tool-call-schema-contract-test364llx-0.0.1>   set-schema-config-updates-custom-message-validation-on-live-agent-test365llx-0.0.1>   create-agent-default-convert-to-llm-test366llx-0.0.1>   rehydrate-agent-uses-snapshot-test367llx-0.0.1>   command-wrappers-dispatch-through-driver-run-test368llx-0.0.1>     prompt dispatches vector messages369llx-0.0.1>     continue dispatches the continue command370llx-0.0.1>     abort dispatches the abort command371llx-0.0.1>     state mutators dispatch commands372llx-0.0.1>   create-agent-requires-env-contract-test373llx-0.0.1>   create-agent-initializes-state-test374llx-0.0.1>   subscribe-unsubscribe-test375llx-0.0.1>   custom-message-schemas-validate-message-and-messages-test376llx-0.0.1>     :ol.llx.agent/custom-message-schemas requires namespace-qualified dispatch keys377llx-0.0.1>     :ol.llx.agent/message rejects custom roles when not registered378llx-0.0.1>     :ol.llx.agent/message accepts registered custom role379llx-0.0.1>     :ol.llx.agent/messages accepts canonical + registered custom messages380llx-0.0.1>     :ol.llx.agent/messages rejects invalid registered custom message payloads381llx-0.0.1>     canonical messages remain valid with custom registrations enabled382llx-0.0.1>   tool-and-pending-tool-call-schema-test383llx-0.0.1>   create-agent-ignores-initial-state-option-test384llx-0.0.1>   create-agent-rejects-missing-custom-schema-registration-test385llx-0.0.1> 386llx-0.0.1> ol.llx.ai.adapters.openai-codex-responses-test387llx-0.0.1>   build-request-rejects-token-missing-account-id388llx-0.0.1>   build-request-prefers-explicit-api-key-over-env389llx-0.0.1>   build-request-strips-codex-unsupported-payload-fields390llx-0.0.1>   build-request-shapes-codex-url-and-headers391llx-0.0.1>   build-request-disables-reasoning-when-no-reasoning-opts392llx-0.0.1> 393llx-0.0.1> ol.llx.ai.schema-test394llx-0.0.1>   adapter-and-env-schema395llx-0.0.1>     accepts valid adapter and runtime env396llx-0.0.1>     rejects adapter missing required function slots397llx-0.0.1>     rejects env missing required function slots398llx-0.0.1>   message-schemas399llx-0.0.1>     accepts all three canonical message roles400llx-0.0.1>     assistant message accepts unknown keys401llx-0.0.1>   event-schemas402llx-0.0.1>     accepts stream terminal events403llx-0.0.1>     rejects malformed events404llx-0.0.1>     accepts delta events with required payload405llx-0.0.1>   config-schema406llx-0.0.1>     accepts known provider config407llx-0.0.1>     accepts unknown provider keys408llx-0.0.1>   model-schema409llx-0.0.1>     accepts a valid model410llx-0.0.1>     accepts supported openai-completions compat profile keys411llx-0.0.1>     accepts unknown model keys412llx-0.0.1>   options-schema413llx-0.0.1>     accepts valid unified request options414llx-0.0.1>     accepts unknown unified request option keys415llx-0.0.1>     accepts valid provider request options including provider-specific keys416llx-0.0.1>     tool input schema field descriptions survive json schema conversion417llx-0.0.1>   schema-registry-rebuilds-when-component-schemas-change418llx-0.0.1>   options-schema-allows-provider-specific-option-keys419llx-0.0.1>   runtime-boundary-schemas420llx-0.0.1>     accepts runtime adapter boundary maps421llx-0.0.1>     rejects malformed runtime boundary maps422llx-0.0.1>     accepts run-stream argument map contract423llx-0.0.1>   usage-schema424llx-0.0.1>     accepts usage where total-tokens equals component sum425llx-0.0.1>     accepts usage where provider total-tokens does not match component sum (Google!)426llx-0.0.1>   oauth-schema-contracts427llx-0.0.1>     accepts OpenAI Codex provider and API enum values428llx-0.0.1>     accepts oauth credential and provider contracts429llx-0.0.1>     rejects oauth credential map missing required keys430llx-0.0.1>     rejects oauth provider missing required function slots431llx-0.0.1>   context-schema432llx-0.0.1>     context is an ordered vector of canonical messages433llx-0.0.1>     context-map enforces required :messages and optional envelope keys434llx-0.0.1> 435llx-0.0.1> ol.llx.ai.oauth-test436llx-0.0.1>   refresh-oauth-token-dispatch437llx-0.0.1>   oauth-provider-registry-operations438llx-0.0.1>   get-oauth-api-key-behavior439llx-0.0.1>     returns nil for missing provider credentials440llx-0.0.1>     returns existing api key when credential is not expired441llx-0.0.1>     refreshes expired credential before returning api key442llx-0.0.1> 443llx-0.0.1> ol.llx.agent.fx-test444llx-0.0.1>   fx-call-llm-runs-hooks-and-maps-events-test445llx-0.0.1>   fx-call-llm-emits-llm-error-on-non-canonical-event-type-test446llx-0.0.1>   fx-call-llm-uses-default-stream-fn-when-not-provided-test447llx-0.0.1>   fx-execute-tool-uses-active-schema-registry-for-input-coercion-test448llx-0.0.1>   execute-fx-validates-effect-shape-test449llx-0.0.1>   fx-call-llm-emits-llm-error-on-hook-failure-test450llx-0.0.1>   fx-execute-tool-uses-updated-schema-config-from-live-agent-test451llx-0.0.1> 452llx-0.0.1> ol.llx.ai.adapters.anthropic-messages-test453llx-0.0.1>   decode-event-stream-usage-calculates-costs454llx-0.0.1>   build-request-sanitizes-unpaired-surrogates-in-user-and-system455llx-0.0.1>   build-request-converts-canonical-context-to-anthropic-payload456llx-0.0.1>   build-request-disables-thinking-when-no-reasoning-opts457llx-0.0.1>   decode-event-stream-contract458llx-0.0.1>   build-request-enables-adaptive-thinking-for-sonnet-4-6459llx-0.0.1>   decode-event-redacted-thinking-round-trips-to-canonical-content460llx-0.0.1>   finalize-calculates-usage-costs461llx-0.0.1>   build-request-replays-redacted-thinking-as-anthropic-redacted-block462llx-0.0.1>   build-request-omits-temperature-when-thinking-is-enabled463llx-0.0.1>   build-request-uses-custom-thinking-budgets464llx-0.0.1>   build-request-clamps-sonnet-4-6-xhigh-to-high465llx-0.0.1>   build-request-preserves-valid-emoji-surrogate-pairs466llx-0.0.1>   normalize-tool-call-id-sanitizes-and-truncates467llx-0.0.1>   build-request-emits-provider-payload-trove-signal468llx-0.0.1>   image-only-content-does-not-inject-placeholder-text469llx-0.0.1>   build-request-enables-budget-thinking-for-older-reasoning-model470llx-0.0.1>   finalize-maps-anthropic-stop-reasons471llx-0.0.1>   build-request-enables-adaptive-thinking-for-opus-4-6472llx-0.0.1>   build-request-omits-thinking-when-model-not-reasoning473llx-0.0.1>   finalize-throws-on-unknown-stop-reason474llx-0.0.1> 475llx-0.0.1> ol.llx.ai.client.stream-test476llx-0.0.1>   run-stream-calls-cancel-when-output-channel-preclosed477llx-0.0.1>   run-stream-emits-start-and-done-events478llx-0.0.1>   runtime-run-stream-input-requires-runtime-hooks479llx-0.0.1>     requires stream runtime hooks480llx-0.0.1> 481llx-0.0.1> ol.llx.ai.adapters.openai-responses-test482llx-0.0.1>   cache-retention-mapping483llx-0.0.1>     cache-control none omits both prompt cache fields484llx-0.0.1>     cache-control long sets 24h retention for direct api.openai.com485llx-0.0.1>     cache-control long does not set retention for non-openai base url486llx-0.0.1>   finalize-throws-on-unknown-stop-reason487llx-0.0.1>   finalize-maps-responses-status-to-canonical-stop-reason488llx-0.0.1>   stream-error-normalization-contract489llx-0.0.1>   decode-event-response-failed-includes-provider-error-details490llx-0.0.1>   normalize-tool-call-id-trims-trailing-underscores-and-enforces-fc-prefix491llx-0.0.1>   normalize-tool-call-id-normalizes-pipe-ids-and-preserves-pairing492llx-0.0.1>   decode-event-reasoning-summary-part-done-requires-summary-part493llx-0.0.1>   normalize-tool-call-id-hashes-foreign-item-ids494llx-0.0.1>   normalize-tool-call-id-gates-by-provider-allowlist495llx-0.0.1>   build-request-replays-versioned-text-signature-metadata496llx-0.0.1>   decode-event-stream-contract497llx-0.0.1>   decode-event-message-output-item-done-encodes-versioned-text-signature498llx-0.0.1>   normalize-tool-call-id-preserves-same-provider-item-ids499llx-0.0.1>   build-request-emits-provider-payload-trove-signal500llx-0.0.1>   build-request-preserves-valid-emoji-surrogate-pairs501llx-0.0.1>   build-request-disables-reasoning-when-no-reasoning-opts502llx-0.0.1>   normalize-tool-call-id-matches-upstream-issue-1022-test-id503llx-0.0.1>   build-request-sanitizes-unpaired-surrogates-in-user-text504llx-0.0.1>   build-request-converts-context-to-openai-responses-input505llx-0.0.1>   finalize-calculates-tier-adjusted-cost-when-usage-present506llx-0.0.1> 507llx-0.0.1> ol.llx.ai.oauth.openai-codex-test508llx-0.0.1>   account-id-extraction509llx-0.0.1>   login-openai-codex-bind-failure-falls-back-to-manual-input510llx-0.0.1>   login-openai-codex-state-mismatch-fails511llx-0.0.1>   login-openai-codex-manual-fallback512llx-0.0.1>   parse-authorization-input-cases513llx-0.0.1>     accepts full redirect URL514llx-0.0.1>     accepts code#state format515llx-0.0.1>     accepts query-string format516llx-0.0.1>     falls back to raw code517llx-0.0.1> 518llx-0.0.1> ol.llx.ai.adapters.openai-completions-test519llx-0.0.1>   build-request-qwen-thinking-format-sends-enable-thinking520llx-0.0.1>   normalize-tool-call-id-mistral-shape521llx-0.0.1>     normalization is deterministic 9-char alphanumeric522llx-0.0.1>   decode-event-maps-provider-finish-reason-errors523llx-0.0.1>   normalize-tool-call-id-mistral-avoids-collision-for-distinct-source-ids524llx-0.0.1>   build-request-missing-api-key-message-includes-env-var-name525llx-0.0.1>   build-request-emits-provider-payload-trove-signal526llx-0.0.1>   build-request-sanitizes-unpaired-surrogates-in-tool-result-text527llx-0.0.1>   normalize-tool-call-id-pipe-ids-use-call-segment-sanitize-and-truncate528llx-0.0.1>   build-request-reads-provider-specific-env-api-key529llx-0.0.1>   build-request-openai-compatible-omits-auth-and-respects-compat-overrides530llx-0.0.1>   decode-event-stream-usage-calculates-costs531llx-0.0.1>   build-request-forwards-tools-and-tool-choice-with-compat-token-field532llx-0.0.1>   normalize-tool-call-id-matches-upstream-issue-1022-test-id533llx-0.0.1>   convert-message-restores-thinking-field-from-signature534llx-0.0.1>   normalize-tool-call-id-openai-non-pipe-ids-are-truncated-only535llx-0.0.1>   build-request-includes-reasoning-effort-for-reasoning-model536llx-0.0.1>   normalize-tool-call-id-openai-compatible-non-pipe-ids-are-unchanged537llx-0.0.1>   build-request-omits-reasoning-effort-when-model-lacks-reasoning538llx-0.0.1>   response->assistant-message-calculates-usage-costs539llx-0.0.1>   decode-event-thinking-to-text-transition540llx-0.0.1>   build-request-sanitizes-unpaired-surrogates-in-user-text541llx-0.0.1>   build-request-zai-thinking-format-sends-thinking-object542llx-0.0.1>   response->assistant-message-falls-back-to-choice-usage543llx-0.0.1>   convert-message-reconstructs-reasoning-details-from-tool-signatures544llx-0.0.1>   build-request-tool-choice-sentinel-strings-pass-through545llx-0.0.1>   build-request-batches-tool-result-images-for-openai-completions546llx-0.0.1>   decode-event-emits-thinking-events-for-reasoning-content547llx-0.0.1>   decode-event-stream-contract548llx-0.0.1>   decode-event-stream-falls-back-to-choice-usage549llx-0.0.1>   build-request-zai-disables-thinking-when-no-reasoning550llx-0.0.1>   response->assistant-message-maps-provider-finish-reason-errors551llx-0.0.1>   decode-event-extracts-reasoning-details-to-tool-call-signature552llx-0.0.1>   build-request-preserves-valid-emoji-surrogate-pairs553llx-0.0.1>   decode-event-tracks-thinking-signature554llx-0.0.1> 555llx-0.0.1> ol.llx.agent.driver-test556llx-0.0.1>   prompt-continues-through-queued-steering-without-stalling-test557llx-0.0.1>   abort-cancels-tool-execution-and-returns-to-idle-test558llx-0.0.1>   abort-drops-stale-llm-events-and-allows-reuse-test559llx-0.0.1> 560llx-0.0.1> ol.llx.ai.registry-test561llx-0.0.1>   registry-patterns562llx-0.0.1>     immutable registry returns new value563llx-0.0.1>     mutable registry564llx-0.0.1>     dynamic registry565llx-0.0.1>   registry-operations566llx-0.0.1>     unregister and clear adapters567llx-0.0.1>     rejects invalid api value568llx-0.0.1> 569llx-0.0.1> ol.llx.ai.client-test570llx-0.0.1>   stream-close-delegates-to-runtime-cancel-fn571llx-0.0.1>   complete-emits-error-lifecycle-trove-signals572llx-0.0.1>   complete-emits-lifecycle-trove-signals573llx-0.0.1>   stream-retries-open-stream-on-transient-error574llx-0.0.1>   stream-rejects-unsupported-xhigh-with-structured-error575llx-0.0.1>   complete-does-not-retry-on-client-error576llx-0.0.1>   complete-retries-without-thread-sleep-hook577llx-0.0.1>   complete-openai-completions-non-2xx578llx-0.0.1>   complete-rejects-unsupported-xhigh-with-structured-error579llx-0.0.1>   complete-surfaces-unknown-openai-completions-stop-reason-as-error-message580llx-0.0.1>   opts-registry-overrides-env-registry581llx-0.0.1>   complete-simple-wrapper-normalizes-options582llx-0.0.1>   complete-transforms-context-before-build-request583llx-0.0.1>   unified-opts->request-opts-rejects-provider-shape-in-unified-opts584llx-0.0.1>   complete-allows-xhigh-for-supported-model585llx-0.0.1>   stream-returns-csp-channel586llx-0.0.1>   complete-rejects-malformed-adapter-finalize-result587llx-0.0.1>   unified-opts->request-opts-normalizes-unified-shape588llx-0.0.1>   complete-retries-on-transient-error589llx-0.0.1>   complete-returns-deferred590llx-0.0.1>   stream-simple-wrapper-normalizes-options591llx-0.0.1>   complete-simple-wrapper-normalizes-openai-responses-reasoning-to-effort592llx-0.0.1> 593llx-0.0.1> 333 tests, 1549 assertions, 0 failures.594llx-0.0.1> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.tjnKtvEGg4595llx-0.0.1> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.tjnKtvEGg4596llx-0.0.1> Running phase: installPhase597llx-0.0.1> Running phase: fixupPhase598llx-0.0.1> shrinking RPATHs of ELF executables and libraries in /nix/store/hrx837rdcmvxa61bsag2pig7486kbnvz-llx-0.0.1599llx-0.0.1> checking for references to /build/ in /nix/store/hrx837rdcmvxa61bsag2pig7486kbnvz-llx-0.0.1...600llx-0.0.1> patching script interpreter paths in /nix/store/hrx837rdcmvxa61bsag2pig7486kbnvz-llx-0.0.1601602post-build step Upload to Mali Attic: ok603⚙️ Pushing 1 paths to "private" on "mali" (0 already cached, 0 in upstream)...604✅ hrx837rdcmvxa61bsag2pig7486kbnvz-llx-0.0.1 (2.02 MiB/s)