1this derivation will be built:2 /nix/store/gm0sx1p5n1ny1nkryzagr0qk65abrvza-llx-cljs-tests-0.0.1.drv3building '/nix/store/gm0sx1p5n1ny1nkryzagr0qk65abrvza-llx-cljs-tests-0.0.1.drv' on 'ssh-ng://nix-remote-build@quine.prim.private.invalid'4building '/nix/store/gm0sx1p5n1ny1nkryzagr0qk65abrvza-llx-cljs-tests-0.0.1.drv'5llx-cljs-tests-0.0.1> Running phase: unpackPhase6llx-cljs-tests-0.0.1> unpacking source archive /nix/store/0f5asq7xxr7rrj7z3sk9jm1xb70iqk5n-source7llx-cljs-tests-0.0.1> source root is source8llx-cljs-tests-0.0.1> Running phase: patchPhase9llx-cljs-tests-0.0.1> Executing npmConfigHook10llx-cljs-tests-0.0.1> Configuring npm11llx-cljs-tests-0.0.1> Validating consistency between /build/source/package-lock.json and /nix/store/pi7aas1jmgm5q9bgvpx2zmckk7wc15sp-npm-deps/package-lock.json12llx-cljs-tests-0.0.1> Setting npm_config_cache to /nix/store/pi7aas1jmgm5q9bgvpx2zmckk7wc15sp-npm-deps13llx-cljs-tests-0.0.1> Installing dependencies14llx-cljs-tests-0.0.1> npm warn Unknown env config "nodedir". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.15llx-cljs-tests-0.0.1> npm warn Unknown env config "platform". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.16llx-cljs-tests-0.0.1> npm warn Unknown env config "arch". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.17llx-cljs-tests-0.0.1> 18llx-cljs-tests-0.0.1> added 64 packages, and audited 65 packages in 516ms19llx-cljs-tests-0.0.1> 20llx-cljs-tests-0.0.1> 10 packages are looking for funding21llx-cljs-tests-0.0.1> run `npm fund` for details22llx-cljs-tests-0.0.1> 23llx-cljs-tests-0.0.1> found 0 vulnerabilities24llx-cljs-tests-0.0.1> patching script interpreter paths in node_modules25llx-cljs-tests-0.0.1> node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/5a8ysg1jnj8jmzzyfcfw7rvpvnp5rfpa-nodejs-24.15.0/bin/node"26llx-cljs-tests-0.0.1> node_modules/loose-envify/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/5a8ysg1jnj8jmzzyfcfw7rvpvnp5rfpa-nodejs-24.15.0/bin/node"27llx-cljs-tests-0.0.1> node_modules/JSONStream/bin.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/5a8ysg1jnj8jmzzyfcfw7rvpvnp5rfpa-nodejs-24.15.0/bin/node"28llx-cljs-tests-0.0.1> node_modules/@cljs-oss/module-deps/bin/cmd.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/5a8ysg1jnj8jmzzyfcfw7rvpvnp5rfpa-nodejs-24.15.0/bin/node"29llx-cljs-tests-0.0.1> node_modules/resolve/bin/resolve: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/5a8ysg1jnj8jmzzyfcfw7rvpvnp5rfpa-nodejs-24.15.0/bin/node"30llx-cljs-tests-0.0.1> node_modules/which/bin/which.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/5a8ysg1jnj8jmzzyfcfw7rvpvnp5rfpa-nodejs-24.15.0/bin/node"31llx-cljs-tests-0.0.1> node_modules/shadow-cljs/cli/runner.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/5a8ysg1jnj8jmzzyfcfw7rvpvnp5rfpa-nodejs-24.15.0/bin/node"32llx-cljs-tests-0.0.1> npm warn Unknown env config "nodedir". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.33llx-cljs-tests-0.0.1> npm warn Unknown env config "platform". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.34llx-cljs-tests-0.0.1> npm warn Unknown env config "arch". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.35llx-cljs-tests-0.0.1> rebuilt dependencies successfully36llx-cljs-tests-0.0.1> patching script interpreter paths in node_modules37llx-cljs-tests-0.0.1> Finished npmConfigHook38llx-cljs-tests-0.0.1> Running phase: updateAutotoolsGnuConfigScriptsPhase39llx-cljs-tests-0.0.1> Running phase: configurePhase40llx-cljs-tests-0.0.1> no configure script, doing nothing41llx-cljs-tests-0.0.1> Running phase: buildPhase42llx-cljs-tests-0.0.1> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.0XRd7FCuXB43llx-cljs-tests-0.0.1> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.0XRd7FCuXB44llx-cljs-tests-0.0.1> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.0XRd7FCuXB45llx-cljs-tests-0.0.1> Picked up JAVA_TOOL_OPTIONS: -Duser.home=/build/tmp.0XRd7FCuXB46llx-cljs-tests-0.0.1> [2026-06-11 09:15:45.760 - WARNING] failed to inspect resource "jar:file:/build/tmp.0XRd7FCuXB/.m2/repository/com/clojure-goes-fast/clj-async-profiler/1.7.0/clj-async-profiler-1.7.0.jar!/flamegraph-rendering/script.js", it will not be available.47llx-cljs-tests-0.0.1> [:kaocha-test] Compiling ...48llx-cljs-tests-0.0.1> WARNING: A terminally deprecated method in sun.misc.Unsafe has been called49llx-cljs-tests-0.0.1> WARNING: sun.misc.Unsafe::arrayBaseOffset has been called by com.google.javascript.jscomp.jarjar.com.google.protobuf.UnsafeUtil$MemoryAccessor (file:/build/tmp.0XRd7FCuXB/.m2/repository/com/google/javascript/closure-compiler/v20250407/closure-compiler-v20250407.jar)50llx-cljs-tests-0.0.1> WARNING: Please consider reporting this to the maintainers of class com.google.javascript.jscomp.jarjar.com.google.protobuf.UnsafeUtil$MemoryAccessor51llx-cljs-tests-0.0.1> WARNING: sun.misc.Unsafe::arrayBaseOffset will be removed in a future release52llx-cljs-tests-0.0.1> GUARDRAILS IS ENABLED. RUNTIME PERFORMANCE WILL BE AFFECTED.53llx-cljs-tests-0.0.1> Mode: :runtime config: {:throw? true, :guardrails/use-stderr? true}54llx-cljs-tests-0.0.1> Guardrails was enabled because the CLJS Compiler config enabled it55llx-cljs-tests-0.0.1> [:kaocha-test] Build completed. (306 files, 305 compiled, 0 warnings, 5.25s)56llx-cljs-tests-0.0.1> --- cljs (cljs2) ---------------------------57llx-cljs-tests-0.0.1> node-share-model (Node.js 24.15.0 on Linux 64-bit)58llx-cljs-tests-0.0.1> ol.llx.ai.utils.tool-validation-test59llx-cljs-tests-0.0.1> ol.llx.ai.utils.tool-validation-test/validate-tool-call60llx-cljs-tests-0.0.1> 61llx-cljs-tests-0.0.1> ol.llx.agent.fx-test62llx-cljs-tests-0.0.1> ol.llx.agent.fx-test/fx-call-llm-emits-llm-error-on-non-canonical-event-type-test63llx-cljs-tests-0.0.1> ol.llx.agent.fx-test/fx-call-llm-runs-hooks-and-maps-events-test64llx-cljs-tests-0.0.1> ol.llx.agent.fx-test/execute-fx-validates-effect-shape-test65llx-cljs-tests-0.0.1> ol.llx.agent.fx-test/fx-call-llm-emits-llm-error-on-hook-failure-test66llx-cljs-tests-0.0.1> ol.llx.agent.fx-test/fx-execute-tool-uses-active-schema-registry-for-input-coercion-test67llx-cljs-tests-0.0.1> ol.llx.agent.fx-test/fx-call-llm-uses-default-stream-fn-when-not-provided-test68llx-cljs-tests-0.0.1> ol.llx.agent.fx-test/fx-execute-tool-uses-updated-schema-config-from-live-agent-test69llx-cljs-tests-0.0.1> 70llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test71llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/build-request-emits-provider-payload-trove-signal72llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/decode-event-stream-usage-calculates-costs73llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/build-request-uses-custom-thinking-budgets74llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/open-stream-non-2xx-throws-structured-error75llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/reasoning-config-gemini-3-pro-uses-level76llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/reasoning-config-disables-thinking-by-default-for-gemini-377llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/google-normalizer-matches-upstream-issue-1022-test-id-under-gate78llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/thought-signature-alone-is-not-thinking79llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/build-request-tool-result-image-forwarding-by-model-capability80llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/build-request-preserves-valid-emoji-surrogate-pairs81llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/reasoning-config-gemini-3-flash-uses-level82llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/finalize-throws-on-unknown-stop-reason83llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/reasoning-config-omitted-when-model-not-reasoning84llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/finalize-calculates-usage-costs85llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/decode-event-tool-call-missing-args-defaults-to-empty-map86llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/build-request-sanitizes-unpaired-surrogates-in-user-and-system87llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/reasoning-config-disables-thinking-by-default-for-gemini-2588llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/build-request-converts-canonical-context-to-google-payload89llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/adapter-registers-tool-call-id-normalizer-with-model-id-gate90llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/map-stop-reason-fail-fast-on-unknown91llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/build-request-gemini-3-preserves-unsigned-tool-calls-with-sentinel92llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/decode-event-stream-contract93llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/stream-error-normalization-contract94llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/reasoning-config-gemini-25-pro-budget-differs-from-flash95llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/reasoning-config-gemini-3-pro-clamps-low-effort96llx-cljs-tests-0.0.1> ol.llx.ai.adapters.google-generative-ai-test/reasoning-config-disables-thinking-by-default-for-gemini-3-pro97llx-cljs-tests-0.0.1> 98llx-cljs-tests-0.0.1> ol.llx.ai.guardrails-contract-test99llx-cljs-tests-0.0.1> ol.llx.ai.guardrails-contract-test/guardrails-enforces-boundary-shapes100llx-cljs-tests-0.0.1> 101llx-cljs-tests-0.0.1> ol.llx.agent-test102llx-cljs-tests-0.0.1> ol.llx.agent-test/custom-message-schemas-validate-message-and-messages-test103llx-cljs-tests-0.0.1> ol.llx.agent-test/create-agent-default-convert-to-llm-test104llx-cljs-tests-0.0.1> ol.llx.agent-test/create-agent-rejects-missing-custom-schema-registration-test105llx-cljs-tests-0.0.1> ol.llx.agent-test/effect-execute-tool-tool-call-schema-test106llx-cljs-tests-0.0.1> ol.llx.agent-test/create-agent-ignores-initial-state-option-test107llx-cljs-tests-0.0.1> ol.llx.agent-test/create-agent-initializes-state-test108llx-cljs-tests-0.0.1> ol.llx.agent-test/custom-message-public-api-validation-test109llx-cljs-tests-0.0.1> ol.llx.agent-test/subscribe-unsubscribe-test110llx-cljs-tests-0.0.1> ol.llx.agent-test/tool-and-pending-tool-call-schema-test111llx-cljs-tests-0.0.1> ol.llx.agent-test/rehydrate-agent-custom-message-validation-test112llx-cljs-tests-0.0.1> ol.llx.agent-test/set-schema-config-ignores-nil-fields-test113llx-cljs-tests-0.0.1> ol.llx.agent-test/set-schema-config-clears-user-additions-without-removing-canonical-schemas-test114llx-cljs-tests-0.0.1> ol.llx.agent-test/custom-message-schema-may-reference-provided-schemas-test115llx-cljs-tests-0.0.1> ol.llx.agent-test/tool-schema-tightening-on-commands-and-state-test116llx-cljs-tests-0.0.1> ol.llx.agent-test/set-model-validates-model-shape-test117llx-cljs-tests-0.0.1> ol.llx.agent-test/set-schema-config-updates-custom-message-validation-on-live-agent-test118llx-cljs-tests-0.0.1> ol.llx.agent-test/create-agent-requires-env-contract-test119llx-cljs-tests-0.0.1> ol.llx.agent-test/tool-signal-and-event-schema-tightening-test120llx-cljs-tests-0.0.1> ol.llx.agent-test/tool-call-schema-contract-test121llx-cljs-tests-0.0.1> ol.llx.agent-test/rehydrate-agent-uses-snapshot-test122llx-cljs-tests-0.0.1> ol.llx.agent-test/command-wrappers-dispatch-through-driver-run-test123llx-cljs-tests-0.0.1> ol.llx.agent-test/prompt-validates-messages-test124llx-cljs-tests-0.0.1> 125llx-cljs-tests-0.0.1> ol.llx.ai.errors-test126llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/should-retry-respects-max-retries127llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/provider-error-with-custom-recoverability128llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-delay-adds-jitter-for-server-errors129llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/model-not-found-is-not-recoverable130llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/extract-retry-after-from-message-returns-nil-when-missing131llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-delay-uses-linear-backoff-for-connection-errors132llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/http-status-unknown-4xx-returns-non-recoverable-provider-error133llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-loop-async-succeeds-on-first-attempt134llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/authentication-error-is-not-recoverable135llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/extracts-retry-after-ms-header136llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/http-status-unknown-5xx-returns-recoverable-provider-error137llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-delay-uses-server-retry-after-for-rate-limit138llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/http-status-429-with-quota-and-retry-after-returns-rate-limit139llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/extracts-retry-after-seconds-header140llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-loop-async-emits-retry-scheduled-trove-signal141llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/timeout-error-is-recoverable142llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/should-retry-rejects-client-errors143llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/invalid-request-is-not-recoverable144llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/returns-nil-when-no-header145llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-delay-exceeded-is-not-recoverable146llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/rate-limit-error-has-correct-type-and-recoverable147llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/extracts-x-ratelimit-reset-after-header148llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/caps-at-max-seconds149llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/content-filter-is-not-recoverable150llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/http-status-429-with-quota-body-returns-quota-exceeded151llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/predicates-match-error-categories152llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/http-status-429-without-quota-returns-rate-limit153llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-loop-async-retries-transient-and-succeeds154llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/server-error-is-recoverable155llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/quota-exceeded-is-not-recoverable156llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-after-ms-takes-priority157llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/connection-error-is-recoverable158llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-loop-async-exhausts-retries-and-throws159llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/should-retry-allows-transient-errors160llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-delay-uses-exponential-backoff-for-rate-limit-without-header161llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/http-status->error-maps-common-codes162llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/extract-retry-after-from-message-parses-seconds163llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-loop-async-does-not-retry-client-errors164llx-cljs-tests-0.0.1> ol.llx.ai.errors-test/retry-loop-async-fails-when-server-retry-delay-exceeds-cap165llx-cljs-tests-0.0.1> 166llx-cljs-tests-0.0.1> ol.llx.ai.adapters.common-test167llx-cljs-tests-0.0.1> ol.llx.ai.adapters.common-test/parse-json-safe-returns-decoded-or-empty-map168llx-cljs-tests-0.0.1> ol.llx.ai.adapters.common-test/trim-trailing-slash-removes-single-trailing-slash169llx-cljs-tests-0.0.1> ol.llx.ai.adapters.common-test/empty-usage-shape-is-canonical170llx-cljs-tests-0.0.1> ol.llx.ai.adapters.common-test/parse-json-lenient-falls-back-to-decode171llx-cljs-tests-0.0.1> 172llx-cljs-tests-0.0.1> ol.llx.ai.client-test173llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-returns-deferred174llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-transforms-context-before-build-request175llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-simple-wrapper-normalizes-openai-responses-reasoning-to-effort176llx-cljs-tests-0.0.1> ol.llx.ai.client-test/unified-opts->request-opts-rejects-provider-shape-in-unified-opts177llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-rejects-unsupported-xhigh-with-structured-error178llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-surfaces-unknown-openai-completions-stop-reason-as-error-message179llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-emits-error-lifecycle-trove-signals180llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-simple-wrapper-normalizes-options181llx-cljs-tests-0.0.1> ol.llx.ai.client-test/stream-rejects-unsupported-xhigh-with-structured-error182llx-cljs-tests-0.0.1> ol.llx.ai.client-test/stream-close-delegates-to-runtime-cancel-fn183llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-rejects-malformed-adapter-finalize-result184llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-retries-without-thread-sleep-hook185llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-openai-completions-non-2xx186llx-cljs-tests-0.0.1> ol.llx.ai.client-test/unified-opts->request-opts-normalizes-unified-shape187llx-cljs-tests-0.0.1> ol.llx.ai.client-test/stream-returns-csp-channel188llx-cljs-tests-0.0.1> ol.llx.ai.client-test/stream-simple-wrapper-normalizes-options189llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-retries-on-transient-error190llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-does-not-retry-on-client-error191llx-cljs-tests-0.0.1> ol.llx.ai.client-test/opts-registry-overrides-env-registry192llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-allows-xhigh-for-supported-model193llx-cljs-tests-0.0.1> ol.llx.ai.client-test/stream-retries-open-stream-on-transient-error194llx-cljs-tests-0.0.1> ol.llx.ai.client-test/complete-emits-lifecycle-trove-signals195llx-cljs-tests-0.0.1> 196llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test197llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-qwen-thinking-format-sends-enable-thinking198llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/decode-event-maps-provider-finish-reason-errors199llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/normalize-tool-call-id-openai-compatible-non-pipe-ids-are-unchanged200llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/decode-event-stream-contract201llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/decode-event-thinking-to-text-transition202llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-zai-disables-thinking-when-no-reasoning203llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/normalize-tool-call-id-mistral-shape204llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-sanitizes-unpaired-surrogates-in-user-text205llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/normalize-tool-call-id-mistral-avoids-collision-for-distinct-source-ids206llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-emits-provider-payload-trove-signal207llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-includes-reasoning-effort-for-reasoning-model208llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/decode-event-tracks-thinking-signature209llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-preserves-valid-emoji-surrogate-pairs210llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-batches-tool-result-images-for-openai-completions211llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-sanitizes-unpaired-surrogates-in-tool-result-text212llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/convert-message-restores-thinking-field-from-signature213llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-omits-reasoning-effort-when-model-lacks-reasoning214llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/decode-event-stream-falls-back-to-choice-usage215llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-openai-compatible-omits-auth-and-respects-compat-overrides216llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-reads-provider-specific-env-api-key217llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/response->assistant-message-falls-back-to-choice-usage218llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/decode-event-stream-usage-calculates-costs219llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-forwards-tools-and-tool-choice-with-compat-token-field220llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/convert-message-reconstructs-reasoning-details-from-tool-signatures221llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-tool-choice-sentinel-strings-pass-through222llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/response->assistant-message-calculates-usage-costs223llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/normalize-tool-call-id-matches-upstream-issue-1022-test-id224llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-zai-thinking-format-sends-thinking-object225llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/normalize-tool-call-id-pipe-ids-use-call-segment-sanitize-and-truncate226llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/build-request-missing-api-key-message-includes-env-var-name227llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/decode-event-extracts-reasoning-details-to-tool-call-signature228llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/normalize-tool-call-id-openai-non-pipe-ids-are-truncated-only229llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/decode-event-emits-thinking-events-for-reasoning-content230llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-completions-test/response->assistant-message-maps-provider-finish-reason-errors231llx-cljs-tests-0.0.1> 232llx-cljs-tests-0.0.1> ol.llx.ai.utils.unicode-test233llx-cljs-tests-0.0.1> ol.llx.ai.utils.unicode-test/sanitize-surrogates-handles-surrogate-edge-cases234llx-cljs-tests-0.0.1> ol.llx.ai.utils.unicode-test/sanitize-payload-deep-walks-data-structures235llx-cljs-tests-0.0.1> ol.llx.ai.utils.unicode-test/truncate-limits-string-length236llx-cljs-tests-0.0.1> 237llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-codex-responses-test238llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-codex-responses-test/build-request-disables-reasoning-when-no-reasoning-opts239llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-codex-responses-test/build-request-prefers-explicit-api-key-over-env240llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-codex-responses-test/build-request-shapes-codex-url-and-headers241llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-codex-responses-test/build-request-strips-codex-unsupported-payload-fields242llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-codex-responses-test/build-request-rejects-token-missing-account-id243llx-cljs-tests-0.0.1> 244llx-cljs-tests-0.0.1> ol.llx.ai.utils.rate-limit-test245llx-cljs-tests-0.0.1> ol.llx.ai.utils.rate-limit-test/rate-limited-detection246llx-cljs-tests-0.0.1> 247llx-cljs-tests-0.0.1> ol.llx.ai.client.stream-test248llx-cljs-tests-0.0.1> ol.llx.ai.client.stream-test/runtime-run-stream-input-requires-runtime-hooks249llx-cljs-tests-0.0.1> ol.llx.ai.client.stream-test/run-stream-calls-cancel-when-output-channel-preclosed250llx-cljs-tests-0.0.1> ol.llx.ai.client.stream-test/run-stream-emits-start-and-done-events251llx-cljs-tests-0.0.1> 252llx-cljs-tests-0.0.1> ol.llx.ai.oauth-test253llx-cljs-tests-0.0.1> ol.llx.ai.oauth-test/oauth-provider-registry-operations254llx-cljs-tests-0.0.1> ol.llx.ai.oauth-test/refresh-oauth-token-dispatch255llx-cljs-tests-0.0.1> ol.llx.ai.oauth-test/get-oauth-api-key-behavior256llx-cljs-tests-0.0.1> 257llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test258llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/decode-event-message-output-item-done-encodes-versioned-text-signature259llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/build-request-emits-provider-payload-trove-signal260llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/finalize-maps-responses-status-to-canonical-stop-reason261llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/build-request-converts-context-to-openai-responses-input262llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/stream-error-normalization-contract263llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/build-request-replays-versioned-text-signature-metadata264llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/decode-event-stream-contract265llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/normalize-tool-call-id-trims-trailing-underscores-and-enforces-fc-prefix266llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/normalize-tool-call-id-normalizes-pipe-ids-and-preserves-pairing267llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/decode-event-reasoning-summary-part-done-requires-summary-part268llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/cache-retention-mapping269llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/finalize-calculates-tier-adjusted-cost-when-usage-present270llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/build-request-sanitizes-unpaired-surrogates-in-user-text271llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/normalize-tool-call-id-matches-upstream-issue-1022-test-id272llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/normalize-tool-call-id-preserves-same-provider-item-ids273llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/decode-event-response-failed-includes-provider-error-details274llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/normalize-tool-call-id-gates-by-provider-allowlist275llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/normalize-tool-call-id-hashes-foreign-item-ids276llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/build-request-disables-reasoning-when-no-reasoning-opts277llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/finalize-throws-on-unknown-stop-reason278llx-cljs-tests-0.0.1> ol.llx.ai.adapters.openai-responses-test/build-request-preserves-valid-emoji-surrogate-pairs279llx-cljs-tests-0.0.1> 280llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test281llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-enables-adaptive-thinking-for-sonnet-4-6282llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-omits-temperature-when-thinking-is-enabled283llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-preserves-valid-emoji-surrogate-pairs284llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/finalize-throws-on-unknown-stop-reason285llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/decode-event-redacted-thinking-round-trips-to-canonical-content286llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-uses-custom-thinking-budgets287llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/decode-event-stream-usage-calculates-costs288llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-omits-thinking-when-model-not-reasoning289llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/finalize-maps-anthropic-stop-reasons290llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-sanitizes-unpaired-surrogates-in-user-and-system291llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-replays-redacted-thinking-as-anthropic-redacted-block292llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/normalize-tool-call-id-sanitizes-and-truncates293llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-enables-budget-thinking-for-older-reasoning-model294llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-emits-provider-payload-trove-signal295llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-enables-adaptive-thinking-for-opus-4-6296llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-disables-thinking-when-no-reasoning-opts297llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/finalize-calculates-usage-costs298llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-clamps-sonnet-4-6-xhigh-to-high299llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/decode-event-stream-contract300llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/build-request-converts-canonical-context-to-anthropic-payload301llx-cljs-tests-0.0.1> ol.llx.ai.adapters.anthropic-messages-test/image-only-content-does-not-inject-placeholder-text302llx-cljs-tests-0.0.1> 303llx-cljs-tests-0.0.1> ol.llx.ai.registry-test304llx-cljs-tests-0.0.1> ol.llx.ai.registry-test/registry-patterns305llx-cljs-tests-0.0.1> ol.llx.ai.registry-test/registry-operations306llx-cljs-tests-0.0.1> 307llx-cljs-tests-0.0.1> ol.llx.ai.schema-test308llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/context-schema309llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/oauth-schema-contracts310llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/runtime-boundary-schemas311llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/message-schemas312llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/event-schemas313llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/adapter-and-env-schema314llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/usage-schema315llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/model-schema316llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/options-schema-allows-provider-specific-option-keys317llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/config-schema318llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/options-schema319llx-cljs-tests-0.0.1> ol.llx.ai.schema-test/schema-registry-rebuilds-when-component-schemas-change320llx-cljs-tests-0.0.1> 321llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test322llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/missing-tool-results-get-synthetic-error-message323llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/does-not-duplicate-existing-synthetic-tool-result324llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/synthetic-tool-result-uses-real-time-when-clock-missing325llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/skipped-assistant-turns-with-error-or-aborted-stop-reasons326llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/google-gated-normalization-rewrites-assistant-and-tool-result-ids327llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/tool-call-id-normalization-propagates-to-tool-result328llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/cross-model-replay-converts-thinking-and-drops-signatures329llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/user-interruption-inserts-only-missing-tool-results330llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/same-model-replay-preserves-thinking-and-signatures331llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/fixture-for-aborted-reasoning-skips-aborted-turn332llx-cljs-tests-0.0.1> ol.llx.ai.transform-messages-test/tool-call-id-normalization-avoids-collision-for-mistral333llx-cljs-tests-0.0.1> 334llx-cljs-tests-0.0.1> ol.llx.ai.models-test335llx-cljs-tests-0.0.1> ol.llx.ai.models-test/model-utility-functions336llx-cljs-tests-0.0.1> ol.llx.ai.models-test/model-registry-and-lookup337llx-cljs-tests-0.0.1> 338llx-cljs-tests-0.0.1> ol.llx.ai.client.node-test339llx-cljs-tests-0.0.1> ol.llx.ai.client.node-test/closing-stream-channel-aborts-upstream-request340llx-cljs-tests-0.0.1> ol.llx.ai.client.node-test/default-env-exposes-cljs-node-runtime-hooks341llx-cljs-tests-0.0.1> ol.llx.ai.client.node-test/stream-path-decodes-sse-across-chunk-boundaries342llx-cljs-tests-0.0.1> ol.llx.ai.client.node-test/complete-path-uses-node-fetch343llx-cljs-tests-0.0.1> ol.llx.ai.client.node-test/stream-failure-emits-terminal-error-event344llx-cljs-tests-0.0.1> 345llx-cljs-tests-0.0.1> ol.llx.ai.utils.overflow-test346llx-cljs-tests-0.0.1> ol.llx.ai.utils.overflow-test/context-overflow-detection347llx-cljs-tests-0.0.1> 348llx-cljs-tests-0.0.1> ol.llx.agent.loop-test349llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/step-abort-from-streaming-to-idle-test350llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-tool-error-with-remaining-test351llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-set-follow-up-mode-test352llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-unknown-signal-test353llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/step-signal-llm-done-with-tools-test354llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-continue-with-steering-one-at-a-time-test355llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-set-thinking-level-test356llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-replace-messages-test357llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/idle-transition-prompt-start-test358llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-llm-done-no-tools-test359llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-llm-chunk-test360llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/step-prompt-from-idle-to-streaming-test361llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-continue-with-follow-up-all-mode-test362llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/idle-transition-continue-start-test363llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/agent-end-emitted-on-error-to-idle-test364llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-llm-error-test365llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-set-model-test366llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-tool-error-last-tool-test367llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-set-steering-mode-test368llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-tool-result-with-steering-interrupts-remaining-tools-test369llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-continue-with-follow-up-one-at-a-time-test370llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-abort-when-streaming-test371llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-clear-messages-test372llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/idle-transition-invalid-signal-test373llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-continue-when-not-idle-test374llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-tool-result-with-remaining-test375llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-clear-follow-up-queue-test376llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-set-schema-config-test377llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-tool-error-with-steering-interrupts-remaining-tools-test378llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-follow-up-test379llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-abort-test380llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-tool-result-last-tool-test381llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/initial-state-has-expected-shape-test382llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-llm-done-prefers-steering-over-follow-up-test383llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-append-message-test384llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/step-prompt-when-streaming-is-rejected-test385llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/step-abort-from-tool-executing-to-idle-test386llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/route-from-tool-executing-test387llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-set-tools-test388llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/step-tool-loop-test389llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-unknown-signal-test390llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-llm-start-test391llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/agent-end-not-emitted-on-streaming-to-tool-executing-test392llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/route-from-idle-test393llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-continue-with-steering-all-mode-test394llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/step-signal-llm-done-no-tools-to-idle-test395llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-abort-when-idle-test396llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-clear-steering-queue-test397llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/route-from-streaming-test398llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-continue-steering-before-follow-up-test399llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/closed-transition-is-terminal-test400llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/command-predicate-test401llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-tool-update-test402llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/tool-executing-transition-tool-result-with-steering-all-mode-dequeues-all-test403llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-llm-done-with-tools-test404llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/step-full-happy-path-test405llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-prompt-from-idle-test406llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-clear-all-queues-test407llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-continue-empty-queues-test408llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-steer-test409llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/agent-end-not-emitted-when-staying-idle-test410llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-prompt-when-not-idle-test411llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/agent-end-emitted-on-streaming-to-idle-test412llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-reset-test413llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-llm-done-with-steering-queue-starts-next-turn-test414llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-abort-test415llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/handle-command-set-system-prompt-test416llx-cljs-tests-0.0.1> ol.llx.agent.loop-test/streaming-transition-llm-done-with-follow-up-queue-starts-next-turn-test417llx-cljs-tests-0.0.1> 418llx-cljs-tests-0.0.1> 419llx-cljs-tests-0.0.1> 314 tests, 1415 assertions, 0 failures.420llx-cljs-tests-0.0.1> buildPhase completed in 42 seconds421llx-cljs-tests-0.0.1> Running phase: installPhase422llx-cljs-tests-0.0.1> Running phase: fixupPhase423llx-cljs-tests-0.0.1> shrinking RPATHs of ELF executables and libraries in /nix/store/hw2fwlxhsggs397vpbd8g8p5zizlafyl-llx-cljs-tests-0.0.1424llx-cljs-tests-0.0.1> checking for references to /build/ in /nix/store/hw2fwlxhsggs397vpbd8g8p5zizlafyl-llx-cljs-tests-0.0.1...425llx-cljs-tests-0.0.1> patching script interpreter paths in /nix/store/hw2fwlxhsggs397vpbd8g8p5zizlafyl-llx-cljs-tests-0.0.1426427post-build step Upload to Mali Attic: ok428⚙️ Pushing 1 paths to "private" on "mali" (0 already cached, 0 in upstream)...429✅ hw2fwlxhsggs397vpbd8g8p5zizlafyl-llx-cljs-tests-0.0.1 (deduplicated)