commit ad5ae6cd1b9ff7f564b49e030e1b461effaec081 parent d4562200900157a0c4747cfeca8a23348814d234 Author: triesap <tyson@radroots.org> Date: Sun, 14 Jun 2026 14:46:01 -0700 codec: migrate to json package - replace mojson imports with the synced json package surface - isolate stdio bootstrap code from the deferred flare provider runtime - preserve deterministic assisted-request fallback behavior - refresh the Pixi lock without the conflicting flare json package Diffstat:
34 files changed, 291 insertions(+), 723 deletions(-)
diff --git a/pixi.lock b/pixi.lock @@ -61,11 +61,10 @@ environments: - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0-release.conda - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda - - conda_source: envo[e7828da6] @ git+https://github.com/triesap/mojo_envo?rev=50e1a62ef333862427d32e63098e782816475549#50e1a62ef333862427d32e63098e782816475549 - - conda_source: flare[b0372e33] @ git+https://github.com/triesap/mojo_flare?rev=6d4788422f0940ea2ccb3dfe59f16be0330b3f0a#6d4788422f0940ea2ccb3dfe59f16be0330b3f0a - - conda_source: json[147b6793] @ git+https://github.com/triesap/mojo_json?rev=56025d73631054d7803143fa5e68c5de578e33f5#56025d73631054d7803143fa5e68c5de578e33f5 - - conda_source: morph[6163b2d1] @ git+https://github.com/triesap/mojo_morph?rev=ea73f909990f3d3f5d12b786fec2f09e1e09f462#ea73f909990f3d3f5d12b786fec2f09e1e09f462 - - conda_source: tempo[924afba3] @ git+https://github.com/triesap/mojo_tempo?rev=4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd#4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd + - conda_source: envo[19b7a3fd] @ git+https://github.com/triesap/mojo_envo?rev=50e1a62ef333862427d32e63098e782816475549#50e1a62ef333862427d32e63098e782816475549 + - conda_source: json[9dd23c1f] @ git+https://github.com/triesap/mojo_json?rev=56025d73631054d7803143fa5e68c5de578e33f5#56025d73631054d7803143fa5e68c5de578e33f5 + - conda_source: morph[39ce1c7e] @ git+https://github.com/triesap/mojo_morph?rev=ea73f909990f3d3f5d12b786fec2f09e1e09f462#ea73f909990f3d3f5d12b786fec2f09e1e09f462 + - conda_source: tempo[8d2678e8] @ git+https://github.com/triesap/mojo_tempo?rev=4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd#4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda @@ -112,11 +111,10 @@ environments: - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/osx-arm64/mojo-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/osx-arm64/mojo-compiler-1.0.0b1-release.conda - - conda_source: envo[e96e7303] @ git+https://github.com/triesap/mojo_envo?rev=50e1a62ef333862427d32e63098e782816475549#50e1a62ef333862427d32e63098e782816475549 - - conda_source: flare[4d6d1dff] @ git+https://github.com/triesap/mojo_flare?rev=6d4788422f0940ea2ccb3dfe59f16be0330b3f0a#6d4788422f0940ea2ccb3dfe59f16be0330b3f0a - - conda_source: json[97607ca2] @ git+https://github.com/triesap/mojo_json?rev=56025d73631054d7803143fa5e68c5de578e33f5#56025d73631054d7803143fa5e68c5de578e33f5 - - conda_source: morph[15bae4a2] @ git+https://github.com/triesap/mojo_morph?rev=ea73f909990f3d3f5d12b786fec2f09e1e09f462#ea73f909990f3d3f5d12b786fec2f09e1e09f462 - - conda_source: tempo[74e2282f] @ git+https://github.com/triesap/mojo_tempo?rev=4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd#4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd + - conda_source: envo[25995647] @ git+https://github.com/triesap/mojo_envo?rev=50e1a62ef333862427d32e63098e782816475549#50e1a62ef333862427d32e63098e782816475549 + - conda_source: json[1efb775d] @ git+https://github.com/triesap/mojo_json?rev=56025d73631054d7803143fa5e68c5de578e33f5#56025d73631054d7803143fa5e68c5de578e33f5 + - conda_source: morph[70142729] @ git+https://github.com/triesap/mojo_morph?rev=ea73f909990f3d3f5d12b786fec2f09e1e09f462#ea73f909990f3d3f5d12b786fec2f09e1e09f462 + - conda_source: tempo[8f0a7ebb] @ git+https://github.com/triesap/mojo_tempo?rev=4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd#4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda build_number: 20 @@ -161,16 +159,6 @@ packages: license_family: BSD size: 260182 timestamp: 1771350215188 -- conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda - sha256: cc9accf72fa028d31c2a038460787751127317dcfa991f8d1f1babf216bb454e - md5: 920bb03579f15389b9e512095ad995b7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: MIT - license_family: MIT - size: 207882 - timestamp: 1765214722852 - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.2.0-he0086c7_19.conda sha256: a48400ec4b73369c1c59babe4ad35821b63a88bba0ec40a80cea5f8c53a26b83 md5: e3be72048d3c4a78b8e27ec48ba06252 @@ -198,23 +186,6 @@ packages: license_family: BSD size: 29330 timestamp: 1781279944230 -- conda: https://conda.anaconda.org/conda-forge/linux-64/git-2.54.0-pl5321h6d3cee1_1.conda - sha256: bc98305103a2754f1b143bc525db9f2c2b0aee6ca278e909ee9eba28c1558c10 - md5: ef4ced80193d2a6d4cd92e4b46636b07 - depends: - - __glibc >=2.28,<3.0.a0 - - libcurl >=8.20.0,<9.0a0 - - libexpat >=2.8.1,<3.0a0 - - libgcc >=14 - - libiconv >=1.18,<2.0a0 - - libzlib >=1.3.2,<2.0a0 - - openssl >=3.5.6,<4.0a0 - - pcre2 >=10.47,<10.48.0a0 - - perl 5.* - license: GPL-2.0-or-later and LGPL-2.1-or-later - run_exports: {} - size: 11507059 - timestamp: 1780737102525 - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-15.2.0-hda75c37_19.conda sha256: 3f5288346b9fe233352443b3c2e31f1fde845e39d3e96475fc05ec2e782af158 md5: 9d41f3899b512199af0a4bb939b83e21 @@ -290,22 +261,6 @@ packages: license_family: GPL size: 728002 timestamp: 1774197446916 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.20.0-hcf29cc6_0.conda - sha256: 75963a5dd913311f59a35dbd307592f4fa754c4808aff9c33edb430c415e38eb - md5: c3cc2864f82a944bc90a7beb4d3b0e88 - depends: - - __glibc >=2.17,<3.0.a0 - - krb5 >=1.22.2,<1.23.0a0 - - libgcc >=14 - - libnghttp2 >=1.68.1,<2.0a0 - - libssh2 >=1.11.1,<2.0a0 - - libzlib >=1.3.2,<2.0a0 - - openssl >=3.5.6,<4.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: curl - license_family: MIT - size: 468706 - timestamp: 1777461492876 - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 md5: c277e0a4d549b03ac1e9d6cbbe3d017b @@ -318,15 +273,6 @@ packages: license_family: BSD size: 134676 timestamp: 1738479519902 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 - md5: 172bf1cd1ff8629f2b1179945ed45055 - depends: - - libgcc-ng >=12 - license: BSD-2-Clause - license_family: BSD - size: 112766 - timestamp: 1702146165126 - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.5-hecca717_0.conda sha256: e8c2b57f6aacabdf2f1b0924bd4831ce5071ba080baa4a9e8c0d720588b6794c md5: 49f570f3bc4c874a06ea69b7225753af @@ -388,15 +334,6 @@ packages: run_exports: {} size: 1041084 timestamp: 1778269013026 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_19.conda - sha256: 9dcf54adfaa5e861123c2da4f2f0451a685464ea7e5a41ad91cf67b31d658d98 - md5: 331ee9b72b9dff570d56b1302c5ab37d - depends: - - libgcc 15.2.0 he0feb66_19 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 27694 - timestamp: 1778269016987 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda sha256: 21337ab58e5e0649d869ab168d4e609b033509de22521de1bfed0c031bfc5110 md5: 239c5e9546c38a1e884d69effcf4c882 @@ -415,15 +352,6 @@ packages: license_family: GPL size: 603817 timestamp: 1778268942614 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f - md5: 915f5995e94f60e9a4826e0b0920ee88 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: LGPL-2.1-only - size: 790176 - timestamp: 1754908768807 - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb md5: c7c83eecbb72d88b940c249af56c8b17 @@ -456,22 +384,6 @@ packages: license_family: BSD size: 92400 timestamp: 1769482286018 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h877daf1_0.conda - sha256: 663444d77a42f2265f54fb8b48c5450bfff4388d9c0f8253dd7855f0d993153f - md5: 2a45e7f8af083626f009645a6481f12d - depends: - - __glibc >=2.17,<3.0.a0 - - c-ares >=1.34.6,<2.0a0 - - libev >=4.33,<4.34.0a0 - - libev >=4.33,<5.0a0 - - libgcc >=14 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.5,<4.0a0 - license: MIT - license_family: MIT - size: 663344 - timestamp: 1773854035739 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.2.0-h90f66d4_19.conda sha256: 7a58892a52739ce4c0f7109de9e91b4353104748eb04fc6441d88e8af444ba99 md5: 67eef12ce33f7ff99900c212d7076fc2 @@ -522,18 +434,6 @@ packages: license: blessing size: 957849 timestamp: 1780574429573 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - sha256: fa39bfd69228a13e553bd24601332b7cfeb30ca11a3ca50bb028108fe90a7661 - md5: eecce068c7e4eddeb169591baac20ac4 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.0,<4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 304790 - timestamp: 1745608545575 - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda sha256: 78668020064fdaa27e9ab65cd2997e2c837b564ab26ce3bf0e58a2ce1a525c6e md5: 1b08cd684f34175e4514474793d44bcb @@ -579,14 +479,6 @@ packages: license_family: BSD size: 40163 timestamp: 1779118517630 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c - md5: 5aa797f8787fe7a17d1b0821485b5adc - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - size: 100393 - timestamp: 1702724383534 - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda sha256: 55044c403570f0dc26e6364de4dc5368e5f3fc7ff103e867c487e2b5ab2bcda9 md5: d87ff7921124eccd67248aa483c23fec @@ -630,28 +522,6 @@ packages: - openssl >=3.6.3,<4.0a0 size: 3159683 timestamp: 1781069855778 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-haa7fec5_0.conda - sha256: 5e6f7d161356fefd981948bea5139c5aa0436767751a6930cb1ca801ebb113ff - md5: 7a3bff861a6583f1889021facefc08b1 - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 1222481 - timestamp: 1763655398280 -- conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda - build_number: 7 - sha256: 9ec32b6936b0e37bcb0ed34f22ec3116e75b3c0964f9f50ecea5f58734ed6ce9 - md5: f2cfec9406850991f4e3d960cc9e3321 - depends: - - libgcc-ng >=12 - - libxcrypt >=4.4.36 - license: GPL-1.0-or-later OR Artistic-1.0-Perl - size: 13344463 - timestamp: 1703310653947 - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda build_number: 101 sha256: cb0628c5f1732f889f53a877484da98f5a0e0f47326622671396fb4f2b0cd6bd @@ -1218,15 +1088,6 @@ packages: license_family: BSD size: 124834 timestamp: 1771350416561 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.6-hc919400_0.conda - sha256: 2995f2aed4e53725e5efbc28199b46bf311c3cab2648fc4f10c2227d6d5fa196 - md5: bcb3cba70cf1eec964a03b4ba7775f01 - depends: - - __osx >=11.0 - license: MIT - license_family: MIT - size: 180327 - timestamp: 1765215064054 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_hb5e89dc_4.conda sha256: 97075a1afeac8a7a4dca258ac10efb70638e3c734cbf5a6328ca1e0718e09c41 md5: 97768bb89683757d7e535f9b7dcba39d @@ -1357,23 +1218,6 @@ packages: license_family: APACHE size: 98795 timestamp: 1780457649475 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/git-2.54.0-pl5321hc9deb11_1.conda - sha256: 19c17176cc5b8b4744507a1f667c68b848c726408d9b06b3d3f5e34ac3d85133 - md5: 806c2eb350d47d227593d8509b1ff4f3 - depends: - - __osx >=11.0 - - libcurl >=8.20.0,<9.0a0 - - libexpat >=2.8.1,<3.0a0 - - libiconv >=1.18,<2.0a0 - - libintl >=0.25.1,<1.0a0 - - libzlib >=1.3.2,<2.0a0 - - openssl >=3.5.6,<4.0a0 - - pcre2 >=10.47,<10.48.0a0 - - perl 5.* - license: GPL-2.0-or-later and LGPL-2.1-or-later - run_exports: {} - size: 12936868 - timestamp: 1780737820572 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.3-hef89b57_0.conda sha256: 3a7907a17e9937d3a46dfd41cffaf815abad59a569440d1e25177c15fd0684e5 md5: f1182c91c0de31a7abd40cedf6a5ebef @@ -1447,21 +1291,6 @@ packages: license_family: APACHE size: 1373087 timestamp: 1780457641235 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.20.0-hd5a2499_0.conda - sha256: 38c0bc634b61e542776e97cfd15d5d41edd304d4e47c333004d2d622439b2381 - md5: 2f57b7d0c6adda88957586b7afd78438 - depends: - - __osx >=11.0 - - krb5 >=1.22.2,<1.23.0a0 - - libnghttp2 >=1.68.1,<2.0a0 - - libssh2 >=1.11.1,<2.0a0 - - libzlib >=1.3.2,<2.0a0 - - openssl >=3.5.6,<4.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: curl - license_family: MIT - size: 400568 - timestamp: 1777462251987 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.2-h55c6f16_0.conda sha256: d1402087c8792461bfc081629e8aa97e6e577a31ae0b84e6b9cc144a18f48067 md5: 4280e0a7fd613b271e022e60dea0138c @@ -1502,13 +1331,6 @@ packages: license_family: BSD size: 107691 timestamp: 1738479560845 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - sha256: 95cecb3902fbe0399c3a7e67a5bed1db813e5ab0e22f4023a5e0f722f2cc214f - md5: 36d33e440c31857372a72137f78bacf5 - license: BSD-2-Clause - license_family: BSD - size: 107458 - timestamp: 1702146414478 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.5-hf6b4638_0.conda sha256: 06780dec91dd25770c8cf01e158e1062fbf7c576b1406427475ce69a8af75b7e md5: a32123f93e168eaa4080d87b0fb5da8a @@ -1548,15 +1370,6 @@ packages: license: LGPL-2.1-only size: 750379 timestamp: 1754909073836 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda - sha256: 99d2cebcd8f84961b86784451b010f5f0a795ed1c08f1e7c76fbb3c22abf021a - md5: 5103f6a6b210a3912faf8d7db516918c - depends: - - __osx >=11.0 - - libiconv >=1.18,<2.0a0 - license: LGPL-2.1-or-later - size: 90957 - timestamp: 1751558394144 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm22-22.1.7-h89af1be_0.conda sha256: 533929d04a94ee43431c6f7f0916b0f5a387f6b02b5339f06301bbfa9e180c84 md5: 0525fa45bcc945c301ee8f583a442ce1 @@ -1600,21 +1413,6 @@ packages: license_family: BSD size: 73690 timestamp: 1769482560514 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.68.1-h8f3e76b_0.conda - sha256: 2bc7bc3978066f2c274ebcbf711850cc9ab92e023e433b9631958a098d11e10a - md5: 6ea18834adbc3b33df9bd9fb45eaf95b - depends: - - __osx >=11.0 - - c-ares >=1.34.6,<2.0a0 - - libcxx >=19 - - libev >=4.33,<4.34.0a0 - - libev >=4.33,<5.0a0 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.5,<4.0a0 - license: MIT - license_family: MIT - size: 576526 - timestamp: 1773854624224 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsigtool-0.1.3-h98dc951_0.conda sha256: 421f7bd7caaa945d9cd5d374cc3f01e75637ca7372a32d5e7695c825a48a30d1 md5: c08557d00807785decafb932b5be7ef5 @@ -1661,16 +1459,6 @@ packages: license: blessing size: 927724 timestamp: 1780575223548 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h1590b86_0.conda - sha256: 8bfe837221390ffc6f111ecca24fa12d4a6325da0c8d131333d63d6c37f27e0a - md5: b68e8f66b94b44aaa8de4583d3d4cc40 - depends: - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.0,<4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 279193 - timestamp: 1745608793272 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.3-h6967ea9_0.conda sha256: 43895a7517c055b8893531290f9dc48bd751eb04be04f14bbce3b6c71b052be6 md5: 6c8292c2ee808aeef2406083beaa6da7 @@ -1770,24 +1558,6 @@ packages: - openssl >=3.6.3,<4.0a0 size: 3102584 timestamp: 1781069820667 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-h30297fc_0.conda - sha256: 5e2e443f796f2fd92adf7978286a525fb768c34e12b1ee9ded4000a41b2894ba - md5: 9b4190c4055435ca3502070186eba53a - depends: - - __osx >=11.0 - - bzip2 >=1.0.8,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 850231 - timestamp: 1763655726735 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/perl-5.32.1-7_h4614cfb_perl5.conda - build_number: 7 - sha256: b0c55040d2994fd6bf2f83786561d92f72306d982d6ea12889acad24a9bf43b8 - md5: ba3cbe93f99e896765422cc5f7c3a79e - license: GPL-1.0-or-later OR Artistic-1.0-Perl - size: 14439531 - timestamp: 1703311335652 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.3-h4c637c5_101_cp314.conda build_number: 101 sha256: fccce2af62d11328d232df9f6bbf63464fd45f81f718c661757f9c628c4378ce @@ -2046,7 +1816,7 @@ packages: run_exports: {} size: 67503416 timestamp: 1777596016502 -- conda_source: envo[e7828da6] @ git+https://github.com/triesap/mojo_envo?rev=50e1a62ef333862427d32e63098e782816475549#50e1a62ef333862427d32e63098e782816475549 +- conda_source: envo[19b7a3fd] @ git+https://github.com/triesap/mojo_envo?rev=50e1a62ef333862427d32e63098e782816475549#50e1a62ef333862427d32e63098e782816475549 version: 0.1.2 build: hb0f4dca_0 subdir: linux-64 @@ -2105,7 +1875,7 @@ packages: - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0-release.conda - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda -- conda_source: envo[e96e7303] @ git+https://github.com/triesap/mojo_envo?rev=50e1a62ef333862427d32e63098e782816475549#50e1a62ef333862427d32e63098e782816475549 +- conda_source: envo[25995647] @ git+https://github.com/triesap/mojo_envo?rev=50e1a62ef333862427d32e63098e782816475549#50e1a62ef333862427d32e63098e782816475549 version: 0.1.2 build: h60d57d3_0 subdir: osx-arm64 @@ -2159,29 +1929,24 @@ packages: - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/osx-arm64/mojo-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/osx-arm64/mojo-compiler-1.0.0b1-release.conda -- conda_source: flare[4d6d1dff] @ git+https://github.com/triesap/mojo_flare?rev=6d4788422f0940ea2ccb3dfe59f16be0330b3f0a#6d4788422f0940ea2ccb3dfe59f16be0330b3f0a - version: 0.8.0 +- conda_source: json[1efb775d] @ git+https://github.com/triesap/mojo_json?rev=56025d73631054d7803143fa5e68c5de578e33f5#56025d73631054d7803143fa5e68c5de578e33f5 + version: 0.2.0 build: h60d57d3_0 subdir: osx-arm64 variants: target_platform: osx-arm64 depends: - mojo ==1.0.0b1 - - openssl >=3.0,<4 - - openssl >=3.6.3,<4.0a0 - - ca-certificates - simdjson >=4.2.4,<5 - simdjson >=4.6.4,<4.7.0a0 - libcxx >=22 - license: MIT + license: Apache-2.0 build_packages: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_osx-arm64-22.1.7-h7e67a1e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-22.1.7-hce30654_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/libcxx-headers-22.1.7-h707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sdkroot_env_osx-arm64-26.0-ha3f98da_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_9.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.6-hc919400_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_hb5e89dc_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1030.6.3-llvm22_1_hbe26303_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-22-22.1.7-default_hd632d02_1.conda @@ -2192,25 +1957,16 @@ packages: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx_osx-arm64-22.1.7-hf119d2b_32.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-22.1.7-hce30654_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt22-22.1.7-hd34ed20_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/git-2.54.0-pl5321hc9deb11_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.22.2-h385eeb1_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm22_1_h692d5aa_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp22.1-22.1.7-default_h8e162e0_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-22.1.7-default_h6dd9417_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcompiler-rt-22.1.7-hd34ed20_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.20.0-hd5a2499_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.7-h55c6f16_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-22.1.7-h6dc3340_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20250104-pl5321hafb1f1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.1-hf6b4638_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm22-22.1.7-h89af1be_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.68.1-h8f3e76b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsigtool-0.1.3-h98dc951_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h1590b86_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.3-h6967ea9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.3-heed7d32_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_2.conda @@ -2218,66 +1974,40 @@ packages: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22.1.7-hd34ed20_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.3-hd24854e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-h30297fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/perl-5.32.1-7_h4614cfb_perl5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-codesign-0.1.3-h98dc951_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda host_packages: - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.7-h55c6f16_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.3-hd24854e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/simdjson-4.6.4-h4ddebb9_0.conda -- conda_source: flare[b0372e33] @ git+https://github.com/triesap/mojo_flare?rev=6d4788422f0940ea2ccb3dfe59f16be0330b3f0a#6d4788422f0940ea2ccb3dfe59f16be0330b3f0a - version: 0.8.0 +- conda_source: json[9dd23c1f] @ git+https://github.com/triesap/mojo_json?rev=56025d73631054d7803143fa5e68c5de578e33f5#56025d73631054d7803143fa5e68c5de578e33f5 + version: 0.2.0 build: hb0f4dca_0 subdir: linux-64 variants: target_platform: linux-64 depends: - mojo ==1.0.0b1 - - openssl >=3.0,<4 - - openssl >=3.6.3,<4.0a0 - - ca-certificates - simdjson >=4.2.4,<5 - simdjson >=4.6.4,<4.7.0a0 - libstdcxx >=15 - libgcc >=15 - license: MIT + license: Apache-2.0 build_packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45.1-default_hfdba357_102.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.45.1-default_h4852527_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.2.0-he0086c7_19.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-15.2.0-h7be306e_27.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/git-2.54.0-pl5321h6d3cee1_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-15.2.0-hda75c37_19.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-15.2.0-hcb00b6d_27.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.20.0-hcf29cc6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.1-hecca717_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_19.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h877daf1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.2.0-h90f66d4_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.3-h35e630c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-haa7fec5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_9.conda - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.2.0-hcc6f6b0_119.conda - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.2.0-hd446a21_119.conda @@ -2288,100 +2018,67 @@ packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.3-h35e630c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/simdjson-4.6.4-hb700be7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda -- conda_source: json[147b6793] @ git+https://github.com/triesap/mojo_json?rev=56025d73631054d7803143fa5e68c5de578e33f5#56025d73631054d7803143fa5e68c5de578e33f5 - version: 0.2.0 +- conda_source: morph[39ce1c7e] @ git+https://github.com/triesap/mojo_morph?rev=ea73f909990f3d3f5d12b786fec2f09e1e09f462#ea73f909990f3d3f5d12b786fec2f09e1e09f462 + version: 0.1.2 build: hb0f4dca_0 subdir: linux-64 variants: target_platform: linux-64 depends: - mojo ==1.0.0b1 - - simdjson >=4.2.4,<5 - - simdjson >=4.6.4,<4.7.0a0 - - libstdcxx >=15 - - libgcc >=15 - license: Apache-2.0 - build_packages: + license: MIT + host_packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45.1-default_hfdba357_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.45.1-default_h4852527_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.2.0-he0086c7_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-15.2.0-h7be306e_27.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-15.2.0-hda75c37_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-15.2.0-hcb00b6d_27.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.1-hecca717_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.2.0-h90f66d4_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.22-h280c20c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.2-h0c1763c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_19.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.3-h35e630c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.6-habeac84_100_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.7-py314h5bd0f2a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h09e67af_11.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.2.0-hcc6f6b0_119.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.2.0-hd446a21_119.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - host_packages: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/simdjson-4.6.4-hb700be7_0.conda -- conda_source: json[97607ca2] @ git+https://github.com/triesap/mojo_json?rev=56025d73631054d7803143fa5e68c5de578e33f5#56025d73631054d7803143fa5e68c5de578e33f5 - version: 0.2.0 - build: h60d57d3_0 - subdir: osx-arm64 - variants: - target_platform: osx-arm64 - depends: - - mojo ==1.0.0b1 - - simdjson >=4.2.4,<5 - - simdjson >=4.6.4,<4.7.0a0 - - libcxx >=22 - license: Apache-2.0 - build_packages: + - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt22_osx-arm64-22.1.7-h7e67a1e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-arm64-22.1.7-hce30654_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libcxx-headers-22.1.7-h707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sdkroot_env_osx-arm64-26.0-ha3f98da_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_impl_osx-arm64-1030.6.3-llvm22_1_hb5e89dc_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cctools_osx-arm64-1030.6.3-llvm22_1_hbe26303_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-22-22.1.7-default_hd632d02_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-scan-deps-22.1.7-default_h8e162e0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_impl_osx-arm64-22.1.7-default_h17d1ed9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang_osx-arm64-22.1.7-hf119d2b_32.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx_impl_osx-arm64-22.1.7-default_h17d1ed9_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx_osx-arm64-22.1.7-hf119d2b_32.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt-22.1.7-hce30654_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt22-22.1.7-hd34ed20_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm22_1_h692d5aa_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp22.1-22.1.7-default_h8e162e0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-22.1.7-default_h6dd9417_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcompiler-rt-22.1.7-hd34ed20_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.7-h55c6f16_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-22.1.7-h6dc3340_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm22-22.1.7-h89af1be_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsigtool-0.1.3-h98dc951_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.3-h6967ea9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.3-heed7d32_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22-22.1.7-hb545844_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-22.1.7-hd34ed20_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-h1d4f5a5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.3-hd24854e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-codesign-0.1.3-h98dc951_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda - host_packages: - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-22.1.7-h55c6f16_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/simdjson-4.6.4-h4ddebb9_0.conda -- conda_source: morph[15bae4a2] @ git+https://github.com/triesap/mojo_morph?rev=ea73f909990f3d3f5d12b786fec2f09e1e09f462#ea73f909990f3d3f5d12b786fec2f09e1e09f462 + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.4.1-pyhc90fa1f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.6-py314hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.2-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.10.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.6-h4df99d1_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.15.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda + - conda: https://conda.modular.com/max-nightly/linux-64/mojo-1.0.0b1-release.conda + - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-1.0.0b1-release.conda + - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0-release.conda + - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda +- conda_source: morph[70142729] @ git+https://github.com/triesap/mojo_morph?rev=ea73f909990f3d3f5d12b786fec2f09e1e09f462#ea73f909990f3d3f5d12b786fec2f09e1e09f462 version: 0.1.2 build: h60d57d3_0 subdir: osx-arm64 @@ -2435,7 +2132,7 @@ packages: - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/osx-arm64/mojo-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/osx-arm64/mojo-compiler-1.0.0b1-release.conda -- conda_source: morph[6163b2d1] @ git+https://github.com/triesap/mojo_morph?rev=ea73f909990f3d3f5d12b786fec2f09e1e09f462#ea73f909990f3d3f5d12b786fec2f09e1e09f462 +- conda_source: tempo[8d2678e8] @ git+https://github.com/triesap/mojo_tempo?rev=4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd#4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd version: 0.1.2 build: hb0f4dca_0 subdir: linux-64 @@ -2494,7 +2191,7 @@ packages: - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0-release.conda - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda -- conda_source: tempo[74e2282f] @ git+https://github.com/triesap/mojo_tempo?rev=4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd#4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd +- conda_source: tempo[8f0a7ebb] @ git+https://github.com/triesap/mojo_tempo?rev=4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd#4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd version: 0.1.2 build: h60d57d3_0 subdir: osx-arm64 @@ -2548,62 +2245,3 @@ packages: - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/osx-arm64/mojo-1.0.0b1-release.conda - conda: https://conda.modular.com/max-nightly/osx-arm64/mojo-compiler-1.0.0b1-release.conda -- conda_source: tempo[924afba3] @ git+https://github.com/triesap/mojo_tempo?rev=4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd#4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd - version: 0.1.2 - build: hb0f4dca_0 - subdir: linux-64 - variants: - target_platform: linux-64 - depends: - - mojo ==1.0.0b1 - license: MIT - host_packages: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.1-hecca717_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.22-h280c20c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.2-h0c1763c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_19.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.1-h5347b49_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.3-h35e630c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.6-habeac84_100_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.7-py314h5bd0f2a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h09e67af_11.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.5.20-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.4.1-pyhc90fa1f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.6-py314hd8ed1ab_100.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.2-pyhc364b38_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.10.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.6-h4df99d1_100.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.15.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda - - conda: https://conda.modular.com/max-nightly/linux-64/mojo-1.0.0b1-release.conda - - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-1.0.0b1-release.conda - - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0-release.conda - - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b1-release.conda diff --git a/pixi.toml b/pixi.toml @@ -17,7 +17,6 @@ json = { git = "https://github.com/triesap/mojo_json.git", rev = "56025d73631054 morph = { git = "https://github.com/triesap/mojo_morph.git", rev = "ea73f909990f3d3f5d12b786fec2f09e1e09f462" } envo = { git = "https://github.com/triesap/mojo_envo.git", rev = "50e1a62ef333862427d32e63098e782816475549" } tempo = { git = "https://github.com/triesap/mojo_tempo.git", rev = "4a4b9f051286f2ef24cb0c8b0614f7ac7314e4bd" } -flare = { git = "https://github.com/triesap/mojo_flare.git", rev = "6d4788422f0940ea2ccb3dfe59f16be0330b3f0a" } [tasks] run = "mojo run -I src src/main.mojo" diff --git a/src/hyf_assist/bridge.mojo b/src/hyf_assist/bridge.mojo @@ -3,7 +3,7 @@ from std.ffi import CStringSlice, c_int, external_call from std.os import Pipe, Process from std.sys._libc import close -from mojson import Value, dumps, loads +from json import Value, dumps, loads from hyf_core.capabilities.query_analysis import ( ExtractedFilters, diff --git a/src/hyf_core/backends/heuristic_backend.mojo b/src/hyf_core/backends/heuristic_backend.mojo @@ -1,4 +1,4 @@ -from mojson import Value +from json import Value from hyf_core.capabilities.registry import ( execute_registered_business_capability, diff --git a/src/hyf_core/backends/selector.mojo b/src/hyf_core/backends/selector.mojo @@ -1,12 +1,9 @@ -from mojson import Value +from json import Value from hyf_core.backends.heuristic_backend import ( backend_name as heuristic_backend_name, execute_capability as execute_heuristic_capability, ) -from hyf_core.capabilities.registry import ( - execute_registered_business_capability_with_runtime_config, -) from hyf_core.errors import ( CapabilityResult, backend_unavailable_error, @@ -16,7 +13,6 @@ from hyf_core.request_context import ( RequestContext, assisted_execution_requested, ) -from hyf_runtime.config import HyfLoadedRuntimeConfig @fieldwise_init @@ -27,9 +23,7 @@ struct BackendSelection(Copyable, Movable): def resolve_backend(context: RequestContext) -> BackendSelection: if assisted_execution_requested(context): - return BackendSelection( - backend_name="assisted_execution", available=False - ) + return BackendSelection(backend_name=heuristic_backend_name(), available=True) return BackendSelection( backend_name=heuristic_backend_name(), available=True @@ -49,17 +43,3 @@ def execute_capability( return execute_heuristic_capability(capability_id, input, context) return failed_capability(backend_unavailable_error(selection.backend_name)) - - -def execute_capability_with_runtime_config( - capability_id: String, - input: Value, - context: RequestContext, - runtime_config: HyfLoadedRuntimeConfig, -) raises -> CapabilityResult: - if assisted_execution_requested(context) and capability_id != "query_rewrite": - return failed_capability(backend_unavailable_error("assisted_execution")) - - return execute_registered_business_capability_with_runtime_config( - capability_id, input, context, runtime_config - ) diff --git a/src/hyf_core/capabilities/explain_result.mojo b/src/hyf_core/capabilities/explain_result.mojo @@ -1,6 +1,6 @@ from std.collections import List -from mojson import Value, loads +from json import Value, loads from hyf_core.capabilities.query_analysis import ( analyze_query_text, diff --git a/src/hyf_core/capabilities/query_analysis.mojo b/src/hyf_core/capabilities/query_analysis.mojo @@ -1,6 +1,6 @@ from std.collections import List, Optional -from mojson import Value, loads +from json import Value, loads from hyf_core.provenance import ( CoreResponseMeta, diff --git a/src/hyf_core/capabilities/query_rewrite.mojo b/src/hyf_core/capabilities/query_rewrite.mojo @@ -1,15 +1,7 @@ from std.collections import List, Optional -from mojson import Value, loads +from json import Value, loads -from hyf_assist.bridge import ( - execute_query_rewrite_via_assist_bridge, - resolve_assist_bridge_status, -) -from hyf_assist.contract import ( - AssistQueryRewriteResult, - assist_bridge_fake_endpoint_prefix, -) from hyf_core.capabilities.query_analysis import ( QueryAnalysis, QueryRewriteRequest, @@ -33,16 +25,6 @@ from hyf_core.provenance import ( ProvenanceSourceRef, ) from hyf_core.request_context import RequestContext, assisted_execution_requested -from hyf_provider.config import load_max_local_provider_config -from hyf_provider.max_local import ( - execute_query_rewrite_via_max_local_provider, - max_local_provider_status, -) -from hyf_runtime.config import ( - HyfLoadedRuntimeConfig, - assist_bridge_configured, - assisted_execution_enabled, -) def _build_output(analysis: QueryAnalysis) raises -> Value: @@ -83,34 +65,6 @@ def _base_source_refs( return source_refs^ -def _build_assisted_meta( - context: RequestContext, - result: AssistQueryRewriteResult, - backend: String, -) -> CoreResponseMeta: - var provenance: Optional[ExecutionProvenance] = None - if context.return_provenance: - provenance = ExecutionProvenance( - kind="assisted", - signal_tags=query_signal_tags(result.analysis), - source_refs=_base_source_refs(context, "query_rewrite"), - fallback=None, - evidence_set_id=None, - ) - - return CoreResponseMeta( - execution_mode="assisted", - backend=String(backend), - provider=Optional[String](String(result.provider)), - route=Optional[String](String(result.route)), - model=Optional[String](String(result.model)), - latency_ms=Optional[Int](result.latency_ms), - schema_version=Optional[Int](result.schema_version), - prompt_version=None, - provenance=provenance^, - ) - - def _build_deterministic_fallback_meta( context: RequestContext, analysis: QueryAnalysis, @@ -148,6 +102,16 @@ def execute_query_rewrite( try: var request: QueryRewriteRequest = parse_query_rewrite_request(input) var analysis = analyze_query_text(request.text, context) + if assisted_execution_requested(context): + return successful_capability( + _build_output(analysis), + meta=_build_deterministic_fallback_meta( + context, + analysis, + "assisted_execution", + "deferred_bootstrap_runtime", + ), + ) var source_refs = List[ProvenanceSourceRef]() return successful_capability( @@ -161,125 +125,3 @@ def execute_query_rewrite( ) except e: return failed_capability(invalid_input_error(String(e))) - - -def execute_query_rewrite_with_runtime_config( - input: Value, - context: RequestContext, - runtime_config: HyfLoadedRuntimeConfig, -) raises -> CapabilityResult: - try: - var request: QueryRewriteRequest = parse_query_rewrite_request(input) - if assisted_execution_requested(context): - if not assisted_execution_enabled(runtime_config): - var fallback_analysis = analyze_query_text(request.text, context) - return successful_capability( - _build_output(fallback_analysis), - meta=_build_deterministic_fallback_meta( - context, - fallback_analysis, - "provider_runtime", - "disabled_by_runtime_config", - ), - ) - - if not assist_bridge_configured(runtime_config): - var fallback_analysis = analyze_query_text(request.text, context) - return successful_capability( - _build_output(fallback_analysis), - meta=_build_deterministic_fallback_meta( - context, - fallback_analysis, - "provider_runtime", - "unconfigured", - ), - ) - - var endpoint = String(runtime_config.effective.assist.endpoint).strip() - if endpoint.startswith(assist_bridge_fake_endpoint_prefix()): - var bridge_status = resolve_assist_bridge_status(runtime_config) - if bridge_status.reachable: - try: - var assisted_result = execute_query_rewrite_via_assist_bridge( - bridge_status, request.text, context - ) - return successful_capability( - _build_output(assisted_result.analysis), - meta=_build_assisted_meta( - context, - assisted_result, - "assist_bridge", - ), - ) - except e: - var fallback_analysis = analyze_query_text( - request.text, context - ) - return successful_capability( - _build_output(fallback_analysis), - meta=_build_deterministic_fallback_meta( - context, - fallback_analysis, - "assist_bridge", - "bridge_execution_failed", - ), - ) - - var fallback_analysis = analyze_query_text(request.text, context) - return successful_capability( - _build_output(fallback_analysis), - meta=_build_deterministic_fallback_meta( - context, - fallback_analysis, - "assist_bridge", - bridge_status.state, - ), - ) - - try: - var provider_config = load_max_local_provider_config() - var provider_status = max_local_provider_status(provider_config) - if provider_status.reachable: - try: - var assisted_result = - execute_query_rewrite_via_max_local_provider( - provider_config, request.text, context - ) - return successful_capability( - _build_output(assisted_result.analysis), - meta=_build_assisted_meta( - context, - assisted_result, - "provider_runtime", - ), - ) - except e: - var fallback_analysis = analyze_query_text( - request.text, context - ) - return successful_capability( - _build_output(fallback_analysis), - meta=_build_deterministic_fallback_meta( - context, - fallback_analysis, - "provider_runtime", - "provider_execution_failed", - ), - ) - except e: - pass - - var fallback_analysis = analyze_query_text(request.text, context) - return successful_capability( - _build_output(fallback_analysis), - meta=_build_deterministic_fallback_meta( - context, - fallback_analysis, - "provider_runtime", - "unavailable", - ), - ) - - return execute_query_rewrite(input, context) - except e: - return failed_capability(invalid_input_error(String(e))) diff --git a/src/hyf_core/capabilities/ranking_support.mojo b/src/hyf_core/capabilities/ranking_support.mojo @@ -1,7 +1,7 @@ from std.collections import List -from mojson import Value -from mojson.deserialize import get_float, get_int, get_string +from json import Value +from json.deserialize import get_float, get_int, get_string from hyf_core.capabilities.query_analysis import ( QueryAnalysis, diff --git a/src/hyf_core/capabilities/registry.mojo b/src/hyf_core/capabilities/registry.mojo @@ -1,12 +1,9 @@ from std.collections import List, Optional -from mojson import Value +from json import Value from hyf_core.capabilities.explain_result import execute_explain_result from hyf_core.capabilities.query_rewrite import execute_query_rewrite -from hyf_core.capabilities.query_rewrite import ( - execute_query_rewrite_with_runtime_config, -) from hyf_core.capabilities.semantic_rank import execute_semantic_rank from hyf_core.errors import ( CapabilityResult, @@ -14,7 +11,6 @@ from hyf_core.errors import ( failed_capability, ) from hyf_core.request_context import RequestContext -from hyf_runtime.config import HyfLoadedRuntimeConfig @fieldwise_init @@ -175,7 +171,6 @@ def _dispatch_heuristic_registered_business_capability( return execute_explain_result(input, context) return failed_capability(capability_not_implemented_error(capability_id)) - def execute_registered_business_capability( capability_id: String, input: Value, context: RequestContext ) raises -> CapabilityResult: @@ -197,18 +192,3 @@ def execute_registered_business_capability( ) return failed_capability(capability_not_implemented_error(capability_id)) - - -def execute_registered_business_capability_with_runtime_config( - capability_id: String, - input: Value, - context: RequestContext, - runtime_config: HyfLoadedRuntimeConfig, -) raises -> CapabilityResult: - if capability_id == "query_rewrite": - return execute_query_rewrite_with_runtime_config( - input, context, runtime_config - ) - return execute_registered_business_capability( - capability_id, input, context - ) diff --git a/src/hyf_core/capabilities/semantic_rank.mojo b/src/hyf_core/capabilities/semantic_rank.mojo @@ -1,6 +1,6 @@ from std.collections import List -from mojson import Value, loads +from json import Value, loads from hyf_core.capabilities.query_analysis import ( analyze_query_text, diff --git a/src/hyf_core/errors.mojo b/src/hyf_core/errors.mojo @@ -1,6 +1,6 @@ from std.collections import Optional -from mojson import Value +from json import Value from hyf_core.provenance import CoreResponseMeta diff --git a/src/hyf_core/metadata.mojo b/src/hyf_core/metadata.mojo @@ -41,5 +41,5 @@ def current_build_identity() raises -> HyfBuildIdentity: protocol_version=hyf_protocol_version(), default_execution_mode="deterministic", deterministic_execution_available=True, - assisted_execution_available=True, + assisted_execution_available=False, ) diff --git a/src/hyf_core/request_context.mojo b/src/hyf_core/request_context.mojo @@ -1,7 +1,7 @@ from std.collections import List, Optional -from mojson import Value -from mojson.deserialize import get_bool, get_int, get_string +from json import Value +from json.deserialize import get_bool, get_int, get_string def _has_key(value: Value, key: String) -> Bool: diff --git a/src/hyf_provider/result.mojo b/src/hyf_provider/result.mojo @@ -1,6 +1,6 @@ from std.collections import List -from mojson import Value, loads, validate +from json import Value, loads, validate from hyf_core.capabilities.query_analysis import ( ExtractedFilters, diff --git a/src/hyf_provider/schema.mojo b/src/hyf_provider/schema.mojo @@ -1,4 +1,4 @@ -from mojson import Value, loads +from json import Value, loads from hyf_core.request_context import RequestContext from hyf_provider.config import MaxLocalProviderConfig diff --git a/src/hyf_runtime/status.mojo b/src/hyf_runtime/status.mojo @@ -1,4 +1,4 @@ -from mojson import Value, loads +from json import Value, loads from hyf_runtime.config import assist_bridge_configured from hyf_runtime.diagnostics import ( diff --git a/src/hyf_stdio/codec.mojo b/src/hyf_stdio/codec.mojo @@ -1,6 +1,6 @@ from std.collections import Optional -from mojson import Value, dumps, loads +from json import Value, dumps, loads from hyf_stdio.envelope import ( WireErrorResponse, diff --git a/src/hyf_stdio/control/assisted_runtime.mojo b/src/hyf_stdio/control/assisted_runtime.mojo @@ -0,0 +1,84 @@ +from std.collections import List + +from json import Value, loads + +from hyf_assist.contract import ( + AssistBridgeStatus, + assist_bridge_contract_version, + assist_bridge_supported_business_capabilities, + provider_runtime_id, +) +from hyf_runtime.config import ( + HyfLoadedRuntimeConfig, + assist_bridge_configured, + assisted_execution_enabled, +) + + +def resolve_assisted_runtime_status( + config: HyfLoadedRuntimeConfig, +) -> AssistBridgeStatus: + var configured = assist_bridge_configured(config) + var state = "disabled_by_runtime_config" + if assisted_execution_enabled(config): + state = "bridge_unavailable" if configured else "bridge_unconfigured" + + var endpoint = String("") + if configured: + endpoint = String(config.effective.assist.endpoint) + + return AssistBridgeStatus( + id=provider_runtime_id(), + kind="deferred_provider_runtime", + contract_version=assist_bridge_contract_version(), + transport="deferred", + endpoint=endpoint, + backend_kind="deferred", + provider="", + route="", + model="", + configured=configured, + reachable=False, + state=state, + fallback_contract="deterministic_baseline_preserved", + supported_business_capabilities=assist_bridge_supported_business_capabilities(), + ) + + +def assisted_execution_state_for_capability( + status: AssistBridgeStatus, capability_id: String +) -> String: + if capability_id != "query_rewrite": + return "deferred" + if status.state == "disabled_by_runtime_config": + return "disabled_by_runtime_config" + return status.state + + +def assisted_backend_available_for_capability( + status: AssistBridgeStatus, capability_id: String +) -> Bool: + return False + + +def serialize_assisted_runtime_status_value( + status: AssistBridgeStatus, +) raises -> Value: + var value = loads("{}") + value.set("id", Value(String(status.id))) + value.set("kind", Value(String(status.kind))) + value.set("contract_version", Value(status.contract_version)) + value.set("transport", Value(String(status.transport))) + if status.endpoint != "": + value.set("endpoint", Value(String(status.endpoint))) + value.set("backend_kind", Value(String(status.backend_kind))) + value.set("configured", Value(status.configured)) + value.set("reachable", Value(status.reachable)) + value.set("state", Value(String(status.state))) + value.set("fallback_contract", Value(String(status.fallback_contract))) + + var capabilities = loads("[]") + for capability in status.supported_business_capabilities: + capabilities.append(Value(String(capability))) + value.set("supported_business_capabilities", capabilities) + return value^ diff --git a/src/hyf_stdio/control/capabilities.mojo b/src/hyf_stdio/control/capabilities.mojo @@ -1,12 +1,12 @@ from std.collections import List -from mojson import Value, loads +from json import Value, loads -from hyf_assist.bridge import ( +from hyf_stdio.control.assisted_runtime import ( assisted_backend_available_for_capability, assisted_execution_state_for_capability, - resolve_assist_bridge_status, - serialize_assist_bridge_status_value, + resolve_assisted_runtime_status, + serialize_assisted_runtime_status_value, ) from hyf_core.capabilities.registry import canonical_business_capabilities from hyf_runtime.startup import ( @@ -35,7 +35,7 @@ def build_capabilities_output_with_runtime_context( runtime_context: RuntimeStartupContext, ) raises -> Value: var output = loads("{}") - var assist_bridge = resolve_assist_bridge_status(runtime_context.config) + var assist_runtime = resolve_assisted_runtime_status(runtime_context.config) var control_routes = List[String]() control_routes.append("sys.status") control_routes.append("sys.capabilities") @@ -70,7 +70,7 @@ def build_capabilities_output_with_runtime_context( "assisted_execution", Value( assisted_execution_state_for_capability( - assist_bridge, capability.id + assist_runtime, capability.id ) ), ) @@ -78,7 +78,7 @@ def build_capabilities_output_with_runtime_context( "assisted_backend_available", Value( assisted_backend_available_for_capability( - assist_bridge, capability.id + assist_runtime, capability.id ) ), ) @@ -91,7 +91,7 @@ def build_capabilities_output_with_runtime_context( output.set("business_capabilities", capabilities) var assisted_runtime_capabilities = loads("[]") assisted_runtime_capabilities.append( - serialize_assist_bridge_status_value(assist_bridge) + serialize_assisted_runtime_status_value(assist_runtime) ) output.set( "assisted_runtime_capabilities", assisted_runtime_capabilities.copy() diff --git a/src/hyf_stdio/control/request_context_contract.mojo b/src/hyf_stdio/control/request_context_contract.mojo @@ -1,6 +1,6 @@ from std.collections import List -from mojson import Value, loads +from json import Value, loads from hyf_core.request_context import ( accepted_request_context_feature_names, diff --git a/src/hyf_stdio/control/status.mojo b/src/hyf_stdio/control/status.mojo @@ -1,10 +1,10 @@ from std.collections import List -from mojson import Value, loads +from json import Value, loads -from hyf_assist.bridge import ( - resolve_assist_bridge_status, - serialize_assist_bridge_status_value, +from hyf_stdio.control.assisted_runtime import ( + resolve_assisted_runtime_status, + serialize_assisted_runtime_status_value, ) from hyf_core.capabilities.registry import ( all_deterministic_capabilities_implemented, @@ -68,7 +68,7 @@ def build_status_output_with_runtime_context( var output = loads("{}") var build_identity = _build_identity_value() var assisted_enabled = assisted_execution_enabled(runtime_context.config) - var assist_bridge = resolve_assist_bridge_status(runtime_context.config) + var assist_runtime = resolve_assisted_runtime_status(runtime_context.config) output.set("build_identity", build_identity.copy()) output.set("daemon", build_identity["daemon_name"].clone()) output.set("transport", build_identity["transport"].clone()) @@ -90,18 +90,22 @@ def build_status_output_with_runtime_context( var execution_mode_request_behavior = loads("{}") execution_mode_request_behavior.set("deterministic", Value("execute")) var assisted_request_behavior = "provider_unavailable" - if assist_bridge.kind == "assist_bridge": + if assist_runtime.kind == "assist_bridge": assisted_request_behavior = "bridge_unavailable" - if assist_bridge.state == "ready": + if assist_runtime.state == "ready": assisted_request_behavior = "execute" - elif assist_bridge.state == "disabled_by_runtime_config": + elif assist_runtime.state == "disabled_by_runtime_config": assisted_request_behavior = "disabled_by_runtime_config" - elif assist_bridge.state == "unconfigured": + elif assist_runtime.state == "unconfigured": assisted_request_behavior = ( "bridge_unconfigured" - if assist_bridge.kind == "assist_bridge" + if assist_runtime.kind == "assist_bridge" else "provider_unconfigured" ) + elif assist_runtime.state == "bridge_unavailable": + assisted_request_behavior = "bridge_unavailable" + elif assist_runtime.state == "bridge_unconfigured": + assisted_request_behavior = "bridge_unconfigured" execution_mode_request_behavior.set( "assisted", Value(String(assisted_request_behavior)) ) @@ -119,14 +123,14 @@ def build_status_output_with_runtime_context( "partially_available" ), ) - backends.set("assisted_backend", Value(String(assist_bridge.state))) + backends.set("assisted_backend", Value(String(assist_runtime.state))) output.set("backend_reachability", backends) output.set( "assisted_runtime", - serialize_assist_bridge_status_value(assist_bridge), + serialize_assisted_runtime_status_value(assist_runtime), ) output.set( - "assist_bridge", serialize_assist_bridge_status_value(assist_bridge) + "assist_bridge", serialize_assisted_runtime_status_value(assist_runtime) ) var counts = loads("{}") diff --git a/src/hyf_stdio/envelope.mojo b/src/hyf_stdio/envelope.mojo @@ -1,7 +1,7 @@ from std.collections import Optional -from mojson import Value, loads -from mojson.deserialize import Deserializable, get_string +from json import Value, loads +from json.deserialize import Deserializable, get_string from hyf_core.metadata import hyf_protocol_version from hyf_core.request_context import RequestContext, parse_request_context diff --git a/src/hyf_stdio/errors.mojo b/src/hyf_stdio/errors.mojo @@ -1,4 +1,4 @@ -from mojson import Value, loads +from json import Value, loads @fieldwise_init diff --git a/src/hyf_stdio/meta.mojo b/src/hyf_stdio/meta.mojo @@ -1,6 +1,6 @@ from std.collections import List -from mojson import Value, loads +from json import Value, loads from hyf_core.provenance import CoreResponseMeta, ExecutionProvenance diff --git a/src/hyf_stdio/server.mojo b/src/hyf_stdio/server.mojo @@ -2,7 +2,7 @@ from std.collections import Optional from std.io.io import _fdopen from std.sys import stdin -from mojson import Value +from json import Value from hyf_runtime.diagnostics import ( append_internal_diagnostic as append_internal_diagnostic_to_dir, @@ -13,7 +13,7 @@ from hyf_runtime.startup import ( resolve_startup_context_from_process, ) from hyf_core.backends.selector import ( - execute_capability_with_runtime_config as execute_backend_capability_with_runtime_config, + execute_capability as execute_backend_capability, ) from hyf_core.capabilities.registry import ( canonical_business_capability, @@ -181,11 +181,10 @@ def _dispatch_business_capability( request_id: String, runtime_context: RuntimeStartupContext, ) raises -> String: - var result = execute_backend_capability_with_runtime_config( + var result = execute_backend_capability( request.capability, request.input.clone(), request.context.copy(), - runtime_context.config, ) return _dispatch_capability_result(request_id, request.trace_id, result) @@ -277,41 +276,63 @@ def handle_request_with_runtime_context_and_control_builders[ def handle_request(request: WireRequest) raises -> String: - return handle_request_with_control_builders[ - build_status_output, build_capabilities_output - ](request) + return handle_request_with_runtime_context( + request, resolve_startup_context_from_process() + ) def handle_request_with_runtime_context( request: WireRequest, runtime_context: RuntimeStartupContext ) raises -> String: - if request.capability == "sys.status": - return encode_success( - WireSuccessResponse( - version=hyf_protocol_version(), - request_id=String(request.request_id), - trace_id=request.trace_id, - output=build_status_output_with_runtime_context( - runtime_context - ), - meta=None, + var request_id = String(request.request_id) + var trace_id = request.trace_id + var diagnostics_dir = effective_diagnostics_dir_for_runtime_paths( + runtime_context.paths + ) + try: + if request.capability == "sys.status": + return encode_success( + WireSuccessResponse( + version=hyf_protocol_version(), + request_id=request_id, + trace_id=trace_id, + output=build_status_output_with_runtime_context( + runtime_context + ), + meta=None, + ) ) + if request.capability == "sys.capabilities": + return encode_success( + WireSuccessResponse( + version=hyf_protocol_version(), + request_id=request_id, + trace_id=trace_id, + output=build_capabilities_output_with_runtime_context( + runtime_context + ), + meta=None, + ) + ) + return _route_business_capability( + request.copy(), request_id, runtime_context + ) + except e: + _emit_internal_diagnostic( + request_id, + trace_id, + String(request.capability), + String(e), + diagnostics_dir, ) - if request.capability == "sys.capabilities": - return encode_success( - WireSuccessResponse( + return encode_error( + WireErrorResponse( version=hyf_protocol_version(), - request_id=String(request.request_id), - trace_id=request.trace_id, - output=build_capabilities_output_with_runtime_context( - runtime_context - ), - meta=None, + request_id=request_id, + trace_id=trace_id, + error=internal_error(), ) ) - return handle_request_with_runtime_context_and_control_builders[ - build_status_output, build_capabilities_output - ](request, runtime_context) @parameter @@ -359,17 +380,37 @@ def handle_request_line_with_runtime_context_and_control_builders[ def handle_request_line(line: String) raises -> String: - return handle_request_line_with_control_builders[ - build_status_output, build_capabilities_output - ](line) + try: + var request = decode_request(line) + return handle_request(request^) + except e: + var correlation = extract_request_correlation(line) + return encode_error( + WireErrorResponse( + version=hyf_protocol_version(), + request_id=correlation.request_id, + trace_id=correlation.trace_id, + error=invalid_request_error(String(e)), + ) + ) def handle_request_line_with_runtime_context( line: String, runtime_context: RuntimeStartupContext ) raises -> String: - return handle_request_line_with_runtime_context_and_control_builders[ - build_status_output, build_capabilities_output - ](line, runtime_context) + try: + var request = decode_request(line) + return handle_request_with_runtime_context(request^, runtime_context) + except e: + var correlation = extract_request_correlation(line) + return encode_error( + WireErrorResponse( + version=hyf_protocol_version(), + request_id=correlation.request_id, + trace_id=correlation.trace_id, + error=invalid_request_error(String(e)), + ) + ) def run_stdio_server() raises: diff --git a/tests/fixture_assertions.mojo b/tests/fixture_assertions.mojo @@ -1,6 +1,6 @@ from std.testing import assert_equal, assert_true -from mojson import Value, dumps, loads +from json import Value, dumps, loads from fixture_loader import ( load_fixture_scenario_expected, diff --git a/tests/fixture_loader.mojo b/tests/fixture_loader.mojo @@ -1,6 +1,6 @@ from std.pathlib import Path, _dir_of_current_file -from mojson import Value, loads +from json import Value, loads def fixture_root_path() raises -> Path: diff --git a/tests/internal_error_stdio_main.mojo b/tests/internal_error_stdio_main.mojo @@ -1,7 +1,7 @@ from std.io.io import _fdopen from std.sys import stdin -from mojson import Value, loads +from json import Value, loads from hyf_runtime.startup import resolve_startup_context_from_process from hyf_stdio.server import ( diff --git a/tests/max_local_http_stub.mojo b/tests/max_local_http_stub.mojo @@ -5,7 +5,7 @@ from flare.http import Request, Response, Status from flare.http.server import _handle_connection from flare.net import SocketAddr from flare.tcp import TcpListener -from mojson import Value, dumps, loads +from json import Value, dumps, loads def _arg_value(flag: String) raises -> String: diff --git a/tests/stdio_process_helper.mojo b/tests/stdio_process_helper.mojo @@ -4,7 +4,7 @@ from std.ffi import CStringSlice, c_int, external_call from std.sys._libc import close from std.tempfile import TemporaryDirectory -from mojson import Value, loads +from json import Value, loads comptime HYF_PATHS_PROFILE_ENV = "HYF_PATHS_PROFILE" diff --git a/tests/test_hyf.mojo b/tests/test_hyf.mojo @@ -9,7 +9,7 @@ from std.testing import ( ) from std.tempfile import TemporaryDirectory -from mojson import Value, loads +from json import Value, loads from fixture_assertions import ( assert_matches_scenario_response, diff --git a/tests/test_repo_local_process_contract.mojo b/tests/test_repo_local_process_contract.mojo @@ -1,7 +1,7 @@ from std.testing import TestSuite, assert_equal, assert_true from std.tempfile import TemporaryDirectory -from mojson import Value +from json import Value from fixture_assertions import load_scenario_request_json from stdio_process_helper import ( HYF_PATHS_PROFILE_ENV, diff --git a/tests/test_stdio_contract.mojo b/tests/test_stdio_contract.mojo @@ -4,7 +4,7 @@ from std.pathlib import Path from std.testing import assert_equal, assert_true, TestSuite from std.tempfile import TemporaryDirectory -from mojson import Value +from json import Value from fixture_assertions import ( assert_matches_scenario_response, load_scenario_request_json,