diff --git a/server/backend/commons.py b/server/backend/commons.py index e688ff9..ef79d16 100644 --- a/server/backend/commons.py +++ b/server/backend/commons.py @@ -1,4 +1,3 @@ - import json import time from ..schemas import OutputItemDeltaModel, ResponsesRequest @@ -65,10 +64,13 @@ def normalize_harmony_tool_name( if tool_name in valid_tool_names: return tool_name - normalized = tool_name.removeprefix("functions.") + # The final split is to counter model emitting stuff like + # functions.read<|channel|>analysis as tool name somtimes + normalized = tool_name.removeprefix("functions.").split("<")[0] if normalized in valid_tool_names: return normalized + # TODO: why are returning this invalid tool lul return tool_name @@ -113,9 +115,13 @@ def build_harmony_conversation( case CUserMessageItemParam(): content = "" if isinstance(item.content, list): - content = item.content[0].text # pyright: ignore[reportAttributeAccessIssue] + content = item.content[ + 0 + ].text # pyright: ignore[reportAttributeAccessIssue] else: - content = item.content.root # pyright: ignore[reportAttributeAccessIssue] + content = ( + item.content.root + ) # pyright: ignore[reportAttributeAccessIssue] convo_list.append( Message.from_role_and_content(Role.USER, content) # pyright: ignore ) @@ -131,9 +137,13 @@ def build_harmony_conversation( case CAssistantMessageItemParam(): content = "" if isinstance(item.content, list): - content = item.content[0].text # pyright: ignore[reportAttributeAccessIssue] + content = item.content[ + 0 + ].text # pyright: ignore[reportAttributeAccessIssue] else: - content = item.content.root # pyright: ignore[reportAttributeAccessIssue] + content = ( + item.content.root + ) # pyright: ignore[reportAttributeAccessIssue] convo_list.append( Message.from_role_and_content( @@ -142,7 +152,9 @@ def build_harmony_conversation( ) case CSystemMessageItemParam(): convo_list.append( - Message.from_role_and_content(Role.SYSTEM, item.content.root) # pyright: ignore[reportAttributeAccessIssue] + Message.from_role_and_content( + Role.SYSTEM, item.content.root + ) # pyright: ignore[reportAttributeAccessIssue] ) case CFunctionCallItemParam(): function_name = item.name @@ -165,7 +177,9 @@ def build_harmony_conversation( Message.from_author_and_content( Author.new(Role.TOOL, function_name), item.output, # pyright: ignore - ).with_channel("commentary") + ) + .with_channel("commentary") + .with_recipient(Role.ASSISTANT) ) case CReasoningItemParam(): continue @@ -173,6 +187,8 @@ def build_harmony_conversation( raise TypeError("unknown type") convo = Conversation.from_messages(convo_list) + + # print(f"HARMONY CONVO\n{convo}") return convo @@ -190,14 +206,19 @@ def handle_response_input(request: ResponsesRequest): user_msg_item = request.input[-1] if isinstance(user_msg_item, CUserMessageItemParam): if isinstance(user_msg_item.content, list): - user_input_content = user_msg_item.content[0].text # pyright: ignore[reportAttributeAccessIssue] + user_input_content = user_msg_item.content[ + 0 + ].text # pyright: ignore[reportAttributeAccessIssue] else: - user_input_content = user_msg_item.content.root # pyright: ignore[reportAttributeAccessIssue] + user_input_content = ( + user_msg_item.content.root + ) # pyright: ignore[reportAttributeAccessIssue] else: # FIXME: Not a user input should handle this for non-harmonic later user_input_content = "" return user_input_content + def _sse(event_name: str, payload: dict, current_seq_no: int) -> tuple[str, int]: seq_no = current_seq_no + 1 event = { diff --git a/server/backend/mlx.py b/server/backend/mlx.py index f1aad7b..a4c2b08 100644 --- a/server/backend/mlx.py +++ b/server/backend/mlx.py @@ -24,6 +24,7 @@ from .commons import ( get_reasoning_effort, handle_response_input, is_harmony_family, + normalize_harmony_tool_name, ) from ..schemas import ( @@ -99,6 +100,8 @@ async def generate_response_chat_stream( convo = build_harmony_conversation( reasoning_effort, request.input, # pyright: ignore + replay_function_calls=True, + tools=request.tools, ) input_tokens = len(runner.tokenizer.encode(user_input_content)) # pyright: ignore @@ -149,7 +152,7 @@ async def generate_response_chat_stream( continue if isinstance(token, ToolCallStart): - tool_name = token.name + tool_name = normalize_harmony_tool_name(token.name, request.tools) token = "**[ToolCall]**\n\n" if not isinstance(token, str): @@ -166,7 +169,6 @@ async def generate_response_chat_stream( last_state = state state = "toolcall" tool_id = f"toolcall_{uuid.uuid4()}" - # Start fresh so arguments from the last tool call are not reused. I did the same in Linux. tool_call_text = "" content_index = 0 @@ -199,7 +201,7 @@ async def generate_response_chat_stream( ) output_items.append(item) yield resp_str - elif state == "answer": + elif last_state == "answer": resp_str, sequence_number, output_index, item = ( _process_output_item_done( "message", @@ -244,7 +246,7 @@ async def generate_response_chat_stream( yield resp_str # To avoid toolcall tag in the final arguments txt if content_index != 0: - tool_call_text += token + tool_call_text += token output_item = OutputItemDeltaModel( item_name="function_call_arguments", item_id=tool_id, diff --git a/server/backend/mlx_runner.py b/server/backend/mlx_runner.py index b0dc96e..d61b452 100644 --- a/server/backend/mlx_runner.py +++ b/server/backend/mlx_runner.py @@ -45,7 +45,7 @@ def get_model_context_length(model_path: str) -> int: Maximum context length for the model (defaults to 4096 if not found) """ config_path = os.path.join(model_path, "config.json") - + # return 40000 try: with open(config_path) as f: config = json.load(f) @@ -415,6 +415,7 @@ class MLXRunner: Returns: Effective max tokens to use """ + if not self._context_length: # Fallback when context length is unknown fallback = 4096 if interactive else 2048 @@ -454,6 +455,7 @@ class MLXRunner: raise RuntimeError("Model not loaded. Call load_model() first.") effective_max_tokens = self.get_effective_max_tokens(max_tokens, True) + # effective_max_tokens = 30000 encoding = load_harmony_encoding(HarmonyEncodingName.HARMONY_GPT_OSS) @@ -463,6 +465,9 @@ class MLXRunner: conversation, Role.ASSISTANT ) + # print(f"{self.tokenizer.decode(prompt_tokens)}") + + # print("----------END OF CONVO------------") prompt_array = mx.array(prompt_tokens) # pyright: ignore start_time = time.time() @@ -491,27 +496,45 @@ class MLXRunner: # Collect tokens and yield text generated_tokens = [] - is_analysis = None - is_final = None - is_commentary = None + current_channel = None for token, _ in generator: token_id = token.item() if hasattr(token, "item") else token + # print(f"{self.tokenizer.decode(token_id)}", end="") + parser.process(token_id) # pyright: ignore generated_tokens.append(token_id) - if is_analysis is None and parser.current_channel == "analysis": - is_analysis = True + # if ( + # parser.current_channel == "analysis" + # and parser.current_recipient != None + # ): + # print("FOUND TOOL CALL IN REASONING ANOMALY") + + if ( + current_channel != "analysis" + and parser.current_channel == "analysis" + and parser.current_recipient == None + and parser.current_content_type == None + ): + current_channel = "analysis" yield "\n\n**[Reasoning]**\n\n" - if is_commentary is None and parser.current_channel == "commentary": + if ( + current_channel != "commentary" + and parser.current_channel == "commentary" + ) or ( + current_channel != "commentary" + and parser.current_channel == "analysis" + and parser.current_recipient != None + ): if not parser.current_recipient: # No business with an empty tool name continue - is_commentary = True - yield ToolCallStart(name=parser.current_recipient or "bash") + current_channel = "commentary" + yield ToolCallStart(name=parser.current_recipient or "") - if is_final is None and parser.current_channel == "final": - is_final = True + if current_channel != "final" and parser.current_channel == "final": + current_channel = "final" yield "\n---\n**[Answer]**\n\n" if ttft is None: diff --git a/server/uv.lock b/server/uv.lock index 9dee00e..f088da2 100644 --- a/server/uv.lock +++ b/server/uv.lock @@ -5,15 +5,6 @@ requires-python = "==3.13.*" [options] exclude-newer = "2026-06-02T14:14:30Z" -[[package]] -name = "annotated-doc" -version = "0.0.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, -] - [[package]] name = "annotated-types" version = "0.7.0" @@ -65,15 +56,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] -[[package]] -name = "diskcache" -version = "5.6.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916, upload-time = "2023-08-31T06:12:00.316Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550, upload-time = "2023-08-31T06:11:58.822Z" }, -] - [[package]] name = "fastapi" version = "0.119.0" @@ -88,24 +70,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ce/70/584c4d7cad80f5e833715c0a29962d7c93b4d18eed522a02981a6d1b6ee5/fastapi-0.119.0-py3-none-any.whl", hash = "sha256:90a2e49ed19515320abb864df570dd766be0662c5d577688f1600170f7f73cf2", size = 107095, upload-time = "2025-10-11T17:13:39.048Z" }, ] -[[package]] -name = "filelock" -version = "3.25.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/b8/00651a0f559862f3bb7d6f7477b192afe3f583cc5e26403b44e59a55ab34/filelock-3.25.2.tar.gz", hash = "sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694", size = 40480, upload-time = "2026-03-11T20:45:38.487Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759, upload-time = "2026-03-11T20:45:37.437Z" }, -] - -[[package]] -name = "fsspec" -version = "2026.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e1/cf/b50ddf667c15276a9ab15a70ef5f257564de271957933ffea49d2cdbcdfb/fsspec-2026.3.0.tar.gz", hash = "sha256:1ee6a0e28677557f8c2f994e3eea77db6392b4de9cd1f5d7a9e87a0ae9d01b41", size = 313547, upload-time = "2026-03-27T19:11:14.892Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl", hash = "sha256:d2ceafaad1b3457968ed14efa28798162f1638dbb5d2a6868a2db002a5ee39a4", size = 202595, upload-time = "2026-03-27T19:11:13.595Z" }, -] - [[package]] name = "h11" version = "0.16.0" @@ -115,16 +79,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] -[[package]] -name = "hf-xet" -version = "1.4.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/92/ec9ad04d0b5728dca387a45af7bc98fbb0d73b2118759f5f6038b61a57e8/hf_xet-1.4.3.tar.gz", hash = "sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113", size = 670477, upload-time = "2026-03-31T22:40:07.874Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/d2/8bee5996b699262edb87dbb54118d287c0e1b2fc78af7cdc41857ba5e3c4/hf_xet-1.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bee693ada985e7045997f05f081d0e12c4c08bd7626dc397f8a7c487e6c04f7f", size = 3558942, upload-time = "2026-03-31T22:39:47.938Z" }, - { url = "https://files.pythonhosted.org/packages/0b/f8/7aacb8e5f4a7899d39c787b5984e912e6c18b11be136ef13947d7a66d265/hf_xet-1.4.3-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583", size = 3562178, upload-time = "2026-03-31T22:39:51.295Z" }, -] - [[package]] name = "httpcore" version = "1.0.9" @@ -153,26 +107,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] -[[package]] -name = "huggingface-hub" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "filelock" }, - { name = "fsspec" }, - { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, - { name = "httpx" }, - { name = "packaging" }, - { name = "pyyaml" }, - { name = "tqdm" }, - { name = "typer" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/88/bb/62c7aa86f63a05e2f9b96642fdef9b94526a23979820b09f5455deff4983/huggingface_hub-1.9.0.tar.gz", hash = "sha256:0ea5be7a56135c91797cae6ad726e38eaeb6eb4b77cefff5c9d38ba0ecf874f7", size = 750326, upload-time = "2026-04-03T08:35:55.888Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/73/37/0d15d16150e1829f3e90962c99f28257f6de9e526a680b4c6f5acdb54fd2/huggingface_hub-1.9.0-py3-none-any.whl", hash = "sha256:2999328c058d39fd19ab748dd09bd4da2fbaa4f4c1ddea823eab103051e14a1f", size = 637355, upload-time = "2026-04-03T08:35:53.897Z" }, -] - [[package]] name = "idna" version = "3.11" @@ -191,182 +125,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] -[[package]] -name = "jinja2" -version = "3.1.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, -] - -[[package]] -name = "llama-cpp-python" -version = "0.3.25" -source = { url = "https://github.com/abetlen/llama-cpp-python/releases/download/v0.3.25-cu124/llama_cpp_python-0.3.25-py3-none-linux_x86_64.whl" } -dependencies = [ - { name = "diskcache" }, - { name = "jinja2" }, - { name = "numpy" }, - { name = "typing-extensions" }, -] -wheels = [ - { url = "https://github.com/abetlen/llama-cpp-python/releases/download/v0.3.25-cu124/llama_cpp_python-0.3.25-py3-none-linux_x86_64.whl", hash = "sha256:d4651fe74e66275aa1f6f16027bc9113c91cc828c421c156151c3d392a27020d" }, -] - -[package.metadata] -requires-dist = [ - { name = "diskcache", specifier = ">=5.6.1" }, - { name = "fastapi", marker = "extra == 'server'", specifier = ">=0.100.0" }, - { name = "fastapi", marker = "extra == 'test'", specifier = ">=0.100.0" }, - { name = "httpx", marker = "extra == 'dev'", specifier = ">=0.24.1" }, - { name = "httpx", marker = "extra == 'test'", specifier = ">=0.24.1" }, - { name = "huggingface-hub", marker = "extra == 'test'", specifier = ">=0.23.0" }, - { name = "jinja2", specifier = ">=2.11.3" }, - { name = "llama-cpp-python", extras = ["dev", "server", "test"], marker = "extra == 'all'" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.4.3" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.1.18" }, - { name = "mkdocstrings", extras = ["python"], marker = "extra == 'dev'", specifier = ">=0.22.0" }, - { name = "numpy", specifier = ">=1.20.0" }, - { name = "pydantic-settings", marker = "extra == 'server'", specifier = ">=2.0.1" }, - { name = "pydantic-settings", marker = "extra == 'test'", specifier = ">=2.0.1" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=7.4.0" }, - { name = "pytest", marker = "extra == 'test'", specifier = ">=7.4.0" }, - { name = "pyyaml", marker = "extra == 'server'", specifier = ">=5.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.15.7" }, - { name = "scipy", marker = "extra == 'test'", specifier = ">=1.10" }, - { name = "sse-starlette", marker = "extra == 'server'", specifier = ">=1.6.1" }, - { name = "sse-starlette", marker = "extra == 'test'", specifier = ">=1.6.1" }, - { name = "starlette-context", marker = "extra == 'server'", specifier = ">=0.3.6,<0.4" }, - { name = "starlette-context", marker = "extra == 'test'", specifier = ">=0.3.6,<0.4" }, - { name = "twine", marker = "extra == 'dev'", specifier = ">=4.0.2" }, - { name = "typing-extensions", specifier = ">=4.5.0" }, - { name = "uvicorn", marker = "extra == 'server'", specifier = ">=0.22.0" }, -] -provides-extras = ["server", "test", "dev", "all"] - -[[package]] -name = "markdown-it-py" -version = "4.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mdurl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, - { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, - { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, - { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, - { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, - { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, -] - -[[package]] -name = "mdurl" -version = "0.1.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, -] - -[[package]] -name = "mlx" -version = "0.31.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mlx-metal", marker = "sys_platform == 'darwin'" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/44/45/04465da443634b23fb11670bbd2f7538b1ed43ffc5e0de44a95b3c29e9c1/mlx-0.31.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9a6d3410fc951bd28508fed9c1ab5d9903f6f6bb101c3a5d63d4191d49a384a1", size = 574268, upload-time = "2026-03-12T02:16:17.27Z" }, - { url = "https://files.pythonhosted.org/packages/85/7b/84956960356ff36e8c1bbed68fac96709e98e6a1adbc8e3d0ff71022d84e/mlx-0.31.1-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:20bd7ba19882603ac22711092d0e799f1ff7b5183c2c641d417dab4d2423d99e", size = 574265, upload-time = "2026-03-12T02:16:18.479Z" }, - { url = "https://files.pythonhosted.org/packages/86/01/d6f0ef5b8c0b390af08246d1301e9717dfb076b3920012b53105a888ed8c/mlx-0.31.1-cp313-cp313-macosx_26_0_arm64.whl", hash = "sha256:4c4565d6f4f8ce295613ee342d313ee5ab0b0eab9a6272954450f8343f7876bc", size = 574172, upload-time = "2026-03-12T02:16:19.898Z" }, -] - -[[package]] -name = "mlx-lm" -version = "0.31.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jinja2" }, - { name = "mlx", marker = "sys_platform == 'darwin'" }, - { name = "numpy" }, - { name = "protobuf" }, - { name = "pyyaml" }, - { name = "sentencepiece" }, - { name = "transformers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/8b/4bec3e9c70ccbeac5d9af81f492ef36b98dc7dabb6a7a9d343fe407b7e40/mlx_lm-0.31.0.tar.gz", hash = "sha256:9c8922ecc934a531649548439f99fba48b274611235bc05498daca3ced4f1250", size = 284105, upload-time = "2026-03-07T03:49:29.759Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/a3/7ec46abe6a0ee519d28bb676aede49a68c70bd1db6c05a7a480d018079cb/mlx_lm-0.31.0-py3-none-any.whl", hash = "sha256:112a2f18bfc95bd8bb0517f9f7cee00262f54fe0f18ed36d9b0fc2059c4a91bc", size = 393259, upload-time = "2026-03-07T03:49:27.909Z" }, -] - -[[package]] -name = "mlx-metal" -version = "0.31.1" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/39/66/2313497fdbc7fbadf8e026c09366e3f049f9114e65ca4edc23cdb8699186/mlx_metal-0.31.1-py3-none-macosx_14_0_arm64.whl", hash = "sha256:70741174131dbf7fdd479cb730e06e08c358eac3bf7905d9e884e7960cfdd5b8", size = 38624074, upload-time = "2026-03-12T02:15:48.036Z" }, - { url = "https://files.pythonhosted.org/packages/c7/34/4c3c6890ce6095b2ab2ba2f5f15c9a7ba17208d47f8cacb572885a2dc0eb/mlx_metal-0.31.1-py3-none-macosx_15_0_arm64.whl", hash = "sha256:6c56bd8cd27743e635f5a90a22535af7c31bd22b4b126d46b6da2da52d72e413", size = 38618950, upload-time = "2026-03-12T02:15:51.908Z" }, - { url = "https://files.pythonhosted.org/packages/51/bc/987cb99e3aafb296aa11ce5133838a10eae8447edd53168d0804d4fb3a14/mlx_metal-0.31.1-py3-none-macosx_26_0_arm64.whl", hash = "sha256:e7324b7c56b519ae67c025d3ced07e5d35bc3a9f19d4c45fe4927f385148c59e", size = 49256543, upload-time = "2026-03-12T02:15:54.851Z" }, -] - -[[package]] -name = "numpy" -version = "2.4.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/9f/b8cef5bffa569759033adda9481211426f12f53299629b410340795c2514/numpy-2.4.4.tar.gz", hash = "sha256:2d390634c5182175533585cc89f3608a4682ccb173cc9bb940b2881c8d6f8fa0", size = 20731587, upload-time = "2026-03-29T13:22:01.298Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/62/2b7a48fbb745d344742c0277f01286dead15f3f68e4f359fbfcf7b48f70f/numpy-2.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e823b8b6edc81e747526f70f71a9c0a07ac4e7ad13020aa736bb7c9d67196115", size = 14694532, upload-time = "2026-03-29T13:19:25.581Z" }, - { url = "https://files.pythonhosted.org/packages/e5/87/499737bfba066b4a3bebff24a8f1c5b2dee410b209bc6668c9be692580f0/numpy-2.4.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4a19d9dba1a76618dd86b164d608566f393f8ec6ac7c44f0cc879011c45e65af", size = 5199661, upload-time = "2026-03-29T13:19:28.31Z" }, - { url = "https://files.pythonhosted.org/packages/d1/73/a9d864e42a01896bb5974475438f16086be9ba1f0d19d0bb7a07427c4a8b/numpy-2.4.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c901b15172510173f5cb310eae652908340f8dede90fff9e3bf6c0d8dfd92f83", size = 16632682, upload-time = "2026-03-29T13:19:37.336Z" }, - { url = "https://files.pythonhosted.org/packages/8a/77/2ba9d87081fd41f6d640c83f26fb7351e536b7ce6dd9061b6af5904e8e46/numpy-2.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0aec54fd785890ecca25a6003fd9a5aed47ad607bbac5cd64f836ad8666f4959", size = 18357394, upload-time = "2026-03-29T13:19:44.859Z" }, - { url = "https://files.pythonhosted.org/packages/99/5d/dab4339177a905aad3e2221c915b35202f1ec30d750dd2e5e9d9a72b804b/numpy-2.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4bbc7f303d125971f60ec0aaad5e12c62d0d2c925f0ab1273debd0e4ba37aba5", size = 14822302, upload-time = "2026-03-29T13:19:57.585Z" }, - { url = "https://files.pythonhosted.org/packages/eb/e4/0564a65e7d3d97562ed6f9b0fd0fb0a6f559ee444092f105938b50043876/numpy-2.4.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:4d6d57903571f86180eb98f8f0c839fa9ebbfb031356d87f1361be91e433f5b7", size = 5327407, upload-time = "2026-03-29T13:20:00.601Z" }, - { url = "https://files.pythonhosted.org/packages/e6/db/338535d9b152beabeb511579598418ba0212ce77cf9718edd70262cc4370/numpy-2.4.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a285b3b96f951841799528cd1f4f01cd70e7e0204b4abebac9463eecfcf2a40", size = 16681241, upload-time = "2026-03-29T13:20:09.417Z" }, - { url = "https://files.pythonhosted.org/packages/b5/1a/3b88ccd3694681356f70da841630e4725a7264d6a885c8d442a697e1146b/numpy-2.4.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4e874c976154687c1f71715b034739b45c7711bec81db01914770373d125e392", size = 18403169, upload-time = "2026-03-29T13:20:17.096Z" }, -] - -[[package]] -name = "nvidia-cublas-cu12" -version = "12.9.2.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "nvidia-cuda-nvrtc-cu12" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/c0/0a517bfe63ccd3b92eb254d264e28fca3c7cab75d07daea315250fb1bf73/nvidia_cublas_cu12-12.9.2.10-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:e4f53a8ca8c5d6e8c492d0d0a3d565ecb59a751b19cfdaa4f6da0ab2104c1702", size = 581240110, upload-time = "2026-04-08T18:52:31.532Z" }, -] - -[[package]] -name = "nvidia-cuda-nvrtc-cu12" -version = "12.9.86" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/85/e4af82cc9202023862090bfca4ea827d533329e925c758f0cde964cb54b7/nvidia_cuda_nvrtc_cu12-12.9.86-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:210cf05005a447e29214e9ce50851e83fc5f4358df8b453155d5e1918094dcb4", size = 89568129, upload-time = "2025-06-05T20:02:41.973Z" }, -] - -[[package]] -name = "nvidia-cuda-runtime-cu12" -version = "12.9.79" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/46/a92db19b8309581092a3add7e6fceb4c301a3fd233969856a8cbf042cd3c/nvidia_cuda_runtime_cu12-12.9.79-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:25bba2dfb01d48a9b59ca474a1ac43c6ebf7011f1b0b8cc44f54eb6ac48a96c3", size = 3493179, upload-time = "2025-06-05T20:00:53.735Z" }, -] - [[package]] name = "openai-harmony" version = "0.0.8" @@ -420,16 +178,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] -[[package]] -name = "protobuf" -version = "7.34.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/6b/a0e95cad1ad7cc3f2c6821fcab91671bd5b78bd42afb357bb4765f29bc41/protobuf-7.34.1.tar.gz", hash = "sha256:9ce42245e704cc5027be797c1db1eb93184d44d1cdd71811fb2d9b25ad541280", size = 454708, upload-time = "2026-03-20T17:34:47.036Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/11/3325d41e6ee15bf1125654301211247b042563bcc898784351252549a8ad/protobuf-7.34.1-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8b2cc79c4d8f62b293ad9b11ec3aebce9af481fa73e64556969f7345ebf9fc7", size = 429247, upload-time = "2026-03-20T17:34:37.024Z" }, - { url = "https://files.pythonhosted.org/packages/88/95/608f665226bca68b736b79e457fded9a2a38c4f4379a4a7614303d9db3bc/protobuf-7.34.1-py3-none-any.whl", hash = "sha256:bb3812cd53aefea2b028ef42bd780f5b96407247f20c6ef7c679807e9d188f11", size = 170715, upload-time = "2026-03-20T17:34:45.384Z" }, -] - [[package]] name = "pydantic" version = "2.12.5" @@ -507,61 +255,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e5/35/f8b19922b6a25bc0880171a2f1a003eaeb93657475193ab516fd87cac9da/pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5", size = 15075, upload-time = "2025-11-10T16:07:45.537Z" }, ] -[[package]] -name = "pyyaml" -version = "6.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, -] - -[[package]] -name = "regex" -version = "2026.4.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cb/0e/3a246dbf05666918bd3664d9d787f84a9108f6f43cc953a077e4a7dfdb7e/regex-2026.4.4.tar.gz", hash = "sha256:e08270659717f6973523ce3afbafa53515c4dc5dcad637dc215b6fd50f689423", size = 416000, upload-time = "2026-04-03T20:56:28.155Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/83/c4373bc5f31f2cf4b66f9b7c31005bd87fe66f0dce17701f7db4ee79ee29/regex-2026.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:62f5519042c101762509b1d717b45a69c0139d60414b3c604b81328c01bd1943", size = 490273, upload-time = "2026-04-03T20:54:11.202Z" }, - { url = "https://files.pythonhosted.org/packages/5a/92/4712b9fe6a33d232eeb1c189484b80c6c4b8422b90e766e1195d6e758207/regex-2026.4.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8fae3c6e795d7678963f2170152b0d892cf6aee9ee8afc8c45e6be38d5107fe7", size = 289487, upload-time = "2026-04-03T20:54:15.824Z" }, - { url = "https://files.pythonhosted.org/packages/f1/1e/3a2b9672433bef02f5d39aa1143ca2c08f311c1d041c464a42be9ae648dc/regex-2026.4.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f94a11a9d05afcfcfa640e096319720a19cc0c9f7768e1a61fceee6a3afc6c7c", size = 494126, upload-time = "2026-04-03T20:54:43.602Z" }, - { url = "https://files.pythonhosted.org/packages/f4/5f/eaa38092ce7a023656280f2341dbbd4ad5f05d780a70abba7bb4f4bea54c/regex-2026.4.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:261c015b3e2ed0919157046d768774ecde57f03d8fa4ba78d29793447f70e717", size = 292334, upload-time = "2026-04-03T20:54:47.051Z" }, -] - -[[package]] -name = "rich" -version = "14.3.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markdown-it-py" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b3/c6/f3b320c27991c46f43ee9d856302c70dc2d0fb2dba4842ff739d5f46b393/rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b", size = 230582, upload-time = "2026-02-19T17:23:12.474Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458, upload-time = "2026-02-19T17:23:13.732Z" }, -] - -[[package]] -name = "safetensors" -version = "0.7.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/29/9c/6e74567782559a63bd040a236edca26fd71bc7ba88de2ef35d75df3bca5e/safetensors-0.7.0.tar.gz", hash = "sha256:07663963b67e8bd9f0b8ad15bb9163606cd27cc5a1b96235a50d8369803b96b0", size = 200878, upload-time = "2025-11-19T15:18:43.199Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/00/374c0c068e30cd31f1e1b46b4b5738168ec79e7689ca82ee93ddfea05109/safetensors-0.7.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:94fd4858284736bb67a897a41608b5b0c2496c9bdb3bf2af1fa3409127f20d57", size = 447058, upload-time = "2025-11-19T15:18:34.416Z" }, -] - -[[package]] -name = "sentencepiece" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/15/2e7a025fc62d764b151ae6d0f2a92f8081755ebe8d4a64099accc6f77ba6/sentencepiece-0.2.1.tar.gz", hash = "sha256:8138cec27c2f2282f4a34d9a016e3374cd40e5c6e9cb335063db66a0a3b71fad", size = 3228515, upload-time = "2025-08-12T07:00:51.718Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/4a/85fbe1706d4d04a7e826b53f327c4b80f849cf1c7b7c5e31a20a97d8f28b/sentencepiece-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dcd8161eee7b41aae57ded06272905dbd680a0a04b91edd0f64790c796b2f706", size = 1943150, upload-time = "2025-08-12T06:59:53.588Z" }, - { url = "https://files.pythonhosted.org/packages/8d/de/5a007fb53b1ab0aafc69d11a5a3dd72a289d5a3e78dcf2c3a3d9b14ffe93/sentencepiece-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:097f3394e99456e9e4efba1737c3749d7e23563dd1588ce71a3d007f25475fff", size = 1253641, upload-time = "2025-08-12T06:59:56.562Z" }, - { url = "https://files.pythonhosted.org/packages/4a/b6/08fe2ce819e02ccb0296f4843e3f195764ce9829cbda61b7513f29b95718/sentencepiece-0.2.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:8dd4b477a7b069648d19363aad0cab9bad2f4e83b2d179be668efa672500dc94", size = 1946052, upload-time = "2025-08-12T07:00:08.136Z" }, - { url = "https://files.pythonhosted.org/packages/99/7e/1fb26e8a21613f6200e1ab88824d5d203714162cf2883248b517deb500b7/sentencepiece-0.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ad8493bea8432dae8d6830365352350f3b4144415a1d09c4c8cb8d30cf3b6c3c", size = 1254857, upload-time = "2025-08-12T07:00:11.021Z" }, -] - [[package]] name = "server" version = "0.1.0" @@ -595,15 +288,6 @@ dev = [ { name = "pytest-asyncio" }, ] -[[package]] -name = "shellingham" -version = "1.5.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, -] - [[package]] name = "starlette" version = "0.48.0" @@ -616,65 +300,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/72/2db2f49247d0a18b4f1bb9a5a39a0162869acf235f3a96418363947b3d46/starlette-0.48.0-py3-none-any.whl", hash = "sha256:0764ca97b097582558ecb498132ed0c7d942f233f365b86ba37770e026510659", size = 73736, upload-time = "2025-09-13T08:41:03.869Z" }, ] -[[package]] -name = "tokenizers" -version = "0.22.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "huggingface-hub" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz", hash = "sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917", size = 372115, upload-time = "2026-01-05T10:45:15.988Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001", size = 2981472, upload-time = "2026-01-05T10:41:00.276Z" }, -] - -[[package]] -name = "tqdm" -version = "4.67.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, -] - -[[package]] -name = "transformers" -version = "5.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "huggingface-hub" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "pyyaml" }, - { name = "regex" }, - { name = "safetensors" }, - { name = "tokenizers" }, - { name = "tqdm" }, - { name = "typer" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ff/9d/fb46e729b461985f41a5740167688b924a4019141e5c164bea77548d3d9e/transformers-5.5.0.tar.gz", hash = "sha256:c8db656cf51c600cd8c75f06b20ef85c72e8b8ff9abc880c5d3e8bc70e0ddcbd", size = 8237745, upload-time = "2026-04-02T16:13:08.113Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/28/35f7411ff80a3640c1f4fc907dcbb6a65061ebb82f66950e38bfc9f7f740/transformers-5.5.0-py3-none-any.whl", hash = "sha256:821a9ff0961abbb29eb1eb686d78df1c85929fdf213a3fe49dc6bd94f9efa944", size = 10245591, upload-time = "2026-04-02T16:13:03.462Z" }, -] - -[[package]] -name = "typer" -version = "0.24.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-doc" }, - { name = "click" }, - { name = "rich" }, - { name = "shellingham" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f5/24/cb09efec5cc954f7f9b930bf8279447d24618bb6758d4f6adf2574c41780/typer-0.24.1.tar.gz", hash = "sha256:e39b4732d65fbdcde189ae76cf7cd48aeae72919dea1fdfc16593be016256b45", size = 118613, upload-time = "2026-02-21T16:54:40.609Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085, upload-time = "2026-02-21T16:54:41.616Z" }, -] - [[package]] name = "typing-extensions" version = "4.15.0" -- 2.51.2 From e57e5593f29be3a05e3ccb7f02d8856fcb540b5a Mon Sep 17 00:00:00 2001 From: madclaws Date: Fri, 19 Jun 2026 00:02:10 +0530 Subject: [PATCH 2/5] build: Using tiles fork of harmony renderer 0.0.8-rc.2 - Fixes unexpected tokens remaining in header error https://github.com/tilesprivacy/tiles/issues/145 --- server/pyproject.toml | 1 - server/requirements-linux.txt | 1 + server/requirements-macos.txt | 1 + server/uv.lock | 25 ------------------------- 4 files changed, 2 insertions(+), 26 deletions(-) diff --git a/server/pyproject.toml b/server/pyproject.toml index 4ef23d1..00eee89 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -6,7 +6,6 @@ requires-python = "==3.13.*" dependencies = [ "fastapi==0.119.0", "uvicorn==0.38.0", - "openai-harmony==0.0.8", "httpx==0.28.1", "openresponses-types", ] diff --git a/server/requirements-linux.txt b/server/requirements-linux.txt index 18ac970..97194c6 100644 --- a/server/requirements-linux.txt +++ b/server/requirements-linux.txt @@ -1,3 +1,4 @@ llama-cpp-python @ https://github.com/abetlen/llama-cpp-python/releases/download/v0.3.25-cu124/llama_cpp_python-0.3.25-py3-none-linux_x86_64.whl#sha256=d4651fe74e66275aa1f6f16027bc9113c91cc828c421c156151c3d392a27020d nvidia-cuda-runtime-cu12 nvidia-cublas-cu12 +openai-harmony @ https://github.com/tilesprivacy/tiles-harmony/releases/download/v0.0.8-rc.2/openai_harmony-0.0.8rc2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=4cceb53ecb0ff2a5a2fa8b17672fb7af89ccc4afd97dfa525844995686250b46 diff --git a/server/requirements-macos.txt b/server/requirements-macos.txt index 8c6cadb..4d15c43 100644 --- a/server/requirements-macos.txt +++ b/server/requirements-macos.txt @@ -1,2 +1,3 @@ mlx==0.31.1 mlx-lm==0.31.0 +openai-harmony @ https://github.com/tilesprivacy/tiles-harmony/releases/download/v0.0.8-rc.2/openai_harmony-0.0.8rc2-cp38-abi3-macosx_11_0_arm64.whl#sha256=43d85451b30c7f4e78e3285fb8e807a7506b0acb939853d4f6b0898e12c044df diff --git a/server/uv.lock b/server/uv.lock index f088da2..cf25480 100644 --- a/server/uv.lock +++ b/server/uv.lock @@ -125,29 +125,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] -[[package]] -name = "openai-harmony" -version = "0.0.8" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pydantic" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3e/92/2d038d096f29179c7c9571b431f9e739f87a487121901725e23fe338dd9d/openai_harmony-0.0.8.tar.gz", hash = "sha256:6e43f98e6c242fa2de6f8ea12eab24af63fa2ed3e89c06341fb9d92632c5cbdf", size = 284777, upload-time = "2025-11-05T19:07:06.727Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/45/c6/2502f416d46be3ec08bb66d696cccffb57781a499e3ff2e4d7c174af4e8f/openai_harmony-0.0.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:029ec25ca74abe48fdb58eb9fdd2a8c1618581fc33ce8e5653f8a1ffbfbd9326", size = 2627806, upload-time = "2025-11-05T19:06:57.063Z" }, - { url = "https://files.pythonhosted.org/packages/d3/d2/ce6953ca87db9cae3e775024184da7d1c5cb88cead19a2d75b42f00a959c/openai_harmony-0.0.8-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4f709815924ec325b9a890e6ab2bbb0ceec8e319a4e257328eb752cf36b2efc", size = 2948463, upload-time = "2025-11-05T19:06:48.17Z" }, - { url = "https://files.pythonhosted.org/packages/fa/4c/b553c9651662d6ce102ca7f3629d268b23df1abe5841e24bed81e8a8e949/openai_harmony-0.0.8-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5cfcfd963b50a41fc656c84d3440ca6eecdccd6c552158ce790b8f2e33dfb5a9", size = 2704083, upload-time = "2025-11-05T19:06:50.205Z" }, - { url = "https://files.pythonhosted.org/packages/9b/af/4eec8f9ab9c27bcdb444460c72cf43011d176fc44c79d6e113094ca1e152/openai_harmony-0.0.8-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a3a16972aa1cee38ea958470cd04ac9a2d5ac38fdcf77ab686611246220c158", size = 2959765, upload-time = "2025-11-05T19:06:53.62Z" }, - { url = "https://files.pythonhosted.org/packages/11/3c/33f3374e4624e0e776f6b13b73c45a7ead7f9c4529f8369ed5bfcaa30cac/openai_harmony-0.0.8-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4d5cfa168e74d08f8ba6d58a7e49bc7daef4d58951ec69b66b0d56f4927a68d", size = 3427031, upload-time = "2025-11-05T19:06:51.829Z" }, - { url = "https://files.pythonhosted.org/packages/25/3f/1a192b93bb47c6b44cd98ba8cc1d3d2a9308f1bb700c3017e6352da11bda/openai_harmony-0.0.8-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c007d277218a50db8839e599ed78e0fffe5130f614c3f6d93ae257f282071a29", size = 2953260, upload-time = "2025-11-05T19:06:55.406Z" }, - { url = "https://files.pythonhosted.org/packages/5b/f8/93b582cad3531797c3db7c2db5400fd841538ccddfd9f5e3df61be99a630/openai_harmony-0.0.8-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8565d4f5a0638da1bffde29832ed63c9e695c558611053add3b2dc0b56c92dbc", size = 3127044, upload-time = "2025-11-05T19:06:59.553Z" }, - { url = "https://files.pythonhosted.org/packages/1d/10/4327dbf87f75ae813405fd9a9b4a5cde63d506ffed0a096a440a4cabd89c/openai_harmony-0.0.8-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:cbaa3bda75ef0d8836e1f8cc84af62f971b1d756d740efc95c38c3e04c0bfde2", size = 2932931, upload-time = "2025-11-05T19:07:01.437Z" }, - { url = "https://files.pythonhosted.org/packages/8a/c8/1774eec4f6f360ef57618fb8f52e3d3af245b2491bd0297513aa09eec04b/openai_harmony-0.0.8-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:772922a9bd24e133950fad71eb1550836f415a88e8c77870e12d0c3bd688ddc2", size = 2996140, upload-time = "2025-11-05T19:07:03.438Z" }, - { url = "https://files.pythonhosted.org/packages/60/c3/3d1e01e2dba517a91760e4a03e4f20ffc75039a6fe584d0e6f9b5c78fd15/openai_harmony-0.0.8-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:007b0476a1f331f8130783f901f1da6f5a7057af1a4891f1b6a31dec364189b5", size = 3205080, upload-time = "2025-11-05T19:07:05.078Z" }, - { url = "https://files.pythonhosted.org/packages/14/63/119de431572d7c70a7bf1037034a9be6ed0a7502a7498ba7302bca5b3242/openai_harmony-0.0.8-cp38-abi3-win32.whl", hash = "sha256:a9b5f893326b28d9e935ade14b4f655f5a840942473bc89b201c25f7a15af9cf", size = 2082457, upload-time = "2025-11-05T19:07:09.631Z" }, - { url = "https://files.pythonhosted.org/packages/40/1f/c83cf5a206c263ee70448a5ae4264682555f4d0b5bed0d2cc6ca1108103d/openai_harmony-0.0.8-cp38-abi3-win_amd64.whl", hash = "sha256:39d44f0d8f466bd56698e7ead708bead3141e27b9b87e3ab7d5a6d0e4a869ee5", size = 2438369, upload-time = "2025-11-05T19:07:08.1Z" }, -] - [[package]] name = "openresponses-types" version = "2.3.0.post1" @@ -262,7 +239,6 @@ source = { editable = "." } dependencies = [ { name = "fastapi" }, { name = "httpx" }, - { name = "openai-harmony" }, { name = "openresponses-types" }, { name = "uvicorn" }, ] @@ -277,7 +253,6 @@ dev = [ requires-dist = [ { name = "fastapi", specifier = "==0.119.0" }, { name = "httpx", specifier = "==0.28.1" }, - { name = "openai-harmony", specifier = "==0.0.8" }, { name = "openresponses-types" }, { name = "uvicorn", specifier = "==0.38.0" }, ] -- 2.51.2 From c0a72b49ff343a81266c4437fad281574eec6800 Mon Sep 17 00:00:00 2001 From: madclaws Date: Fri, 19 Jun 2026 08:07:36 +0530 Subject: [PATCH 3/5] build: ci fixes --- Cargo.lock | 2 +- server/stack/macos/venvstacks.toml | 2 +- tiles/Cargo.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8cac7f7..843f664 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5996,7 +5996,7 @@ dependencies = [ [[package]] name = "tiles" -version = "0.4.12" +version = "0.4.13-rc.1" dependencies = [ "anyhow", "apple-native-keyring-store", diff --git a/server/stack/macos/venvstacks.toml b/server/stack/macos/venvstacks.toml index 1efc23c..27d3c17 100644 --- a/server/stack/macos/venvstacks.toml +++ b/server/stack/macos/venvstacks.toml @@ -24,8 +24,8 @@ requirements = [ "fastapi==0.119.0", "uvicorn==0.38.0", "mlx-lm==0.31.0", - "openai-harmony==0.0.8", "openresponses-types", + "openai-harmony @ https://github.com/tilesprivacy/tiles-harmony/releases/download/v0.0.8-rc.2/openai_harmony-0.0.8rc2-cp38-abi3-macosx_arm64.whl#sha256=43d85451b30c7f4e78e3285fb8e807a7506b0acb939853d4f6b0898e12c044df", "httpx==0.28.1", ] diff --git a/tiles/Cargo.toml b/tiles/Cargo.toml index f6848b4..e811f11 100644 --- a/tiles/Cargo.toml +++ b/tiles/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tiles" -version = "0.4.12" +version = "0.4.13-rc.1" edition = "2024" [dependencies] -- 2.51.2 From c6f6ce1f3c62feb05ea8e77f81eba6f23ee2ba70 Mon Sep 17 00:00:00 2001 From: madclaws Date: Fri, 19 Jun 2026 12:30:16 +0530 Subject: [PATCH 4/5] build: using `tiles-harmony 0.0.8rc4` --- server/pyproject.toml | 6 +++++- server/requirements-linux.txt | 1 - server/requirements-macos.txt | 2 +- server/stack/linux/venvstacks.toml | 2 +- server/stack/macos/venvstacks.toml | 2 +- server/uv.lock | 24 ++++++++++++++++++++++++ 6 files changed, 32 insertions(+), 5 deletions(-) diff --git a/server/pyproject.toml b/server/pyproject.toml index 00eee89..33f3d77 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -8,6 +8,7 @@ dependencies = [ "uvicorn==0.38.0", "httpx==0.28.1", "openresponses-types", + "tiles-harmony==0.0.8rc4" ] [build-system] @@ -18,7 +19,10 @@ build-backend = "setuptools.build_meta" exclude = ["backend", "backend.*"] [tool.uv] -exclude-newer="2026-06-02T19:44:30+05:30" +exclude-newer = "2026-06-02T19:44:30+05:30" + +[tool.uv.exclude-newer-package] + tiles-harmony="2026-06-20T03:01:00Z" [dependency-groups] dev = [ diff --git a/server/requirements-linux.txt b/server/requirements-linux.txt index 97194c6..18ac970 100644 --- a/server/requirements-linux.txt +++ b/server/requirements-linux.txt @@ -1,4 +1,3 @@ llama-cpp-python @ https://github.com/abetlen/llama-cpp-python/releases/download/v0.3.25-cu124/llama_cpp_python-0.3.25-py3-none-linux_x86_64.whl#sha256=d4651fe74e66275aa1f6f16027bc9113c91cc828c421c156151c3d392a27020d nvidia-cuda-runtime-cu12 nvidia-cublas-cu12 -openai-harmony @ https://github.com/tilesprivacy/tiles-harmony/releases/download/v0.0.8-rc.2/openai_harmony-0.0.8rc2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=4cceb53ecb0ff2a5a2fa8b17672fb7af89ccc4afd97dfa525844995686250b46 diff --git a/server/requirements-macos.txt b/server/requirements-macos.txt index 4d15c43..b763a6c 100644 --- a/server/requirements-macos.txt +++ b/server/requirements-macos.txt @@ -1,3 +1,3 @@ mlx==0.31.1 mlx-lm==0.31.0 -openai-harmony @ https://github.com/tilesprivacy/tiles-harmony/releases/download/v0.0.8-rc.2/openai_harmony-0.0.8rc2-cp38-abi3-macosx_11_0_arm64.whl#sha256=43d85451b30c7f4e78e3285fb8e807a7506b0acb939853d4f6b0898e12c044df + diff --git a/server/stack/linux/venvstacks.toml b/server/stack/linux/venvstacks.toml index 86c6d82..0bffa68 100644 --- a/server/stack/linux/venvstacks.toml +++ b/server/stack/linux/venvstacks.toml @@ -22,7 +22,7 @@ dynlib_exclude = [ requirements = [ "fastapi==0.119.0", "uvicorn==0.38.0", - "openai-harmony==0.0.8", + "tiles-harmony==0.0.8rc4", "llama-cpp-python @ https://github.com/abetlen/llama-cpp-python/releases/download/v0.3.25-cu124/llama_cpp_python-0.3.25-py3-none-linux_x86_64.whl#sha256=d4651fe74e66275aa1f6f16027bc9113c91cc828c421c156151c3d392a27020d", "nvidia-cuda-runtime-cu12", "nvidia-cublas-cu12", diff --git a/server/stack/macos/venvstacks.toml b/server/stack/macos/venvstacks.toml index 27d3c17..4e26e62 100644 --- a/server/stack/macos/venvstacks.toml +++ b/server/stack/macos/venvstacks.toml @@ -25,7 +25,7 @@ requirements = [ "uvicorn==0.38.0", "mlx-lm==0.31.0", "openresponses-types", - "openai-harmony @ https://github.com/tilesprivacy/tiles-harmony/releases/download/v0.0.8-rc.2/openai_harmony-0.0.8rc2-cp38-abi3-macosx_arm64.whl#sha256=43d85451b30c7f4e78e3285fb8e807a7506b0acb939853d4f6b0898e12c044df", + "tiles-harmony==0.0.8rc4", "httpx==0.28.1", ] diff --git a/server/uv.lock b/server/uv.lock index cf25480..e8edb6f 100644 --- a/server/uv.lock +++ b/server/uv.lock @@ -5,6 +5,9 @@ requires-python = "==3.13.*" [options] exclude-newer = "2026-06-02T14:14:30Z" +[options.exclude-newer-package] +tiles-harmony = "2026-06-20T03:01:00Z" + [[package]] name = "annotated-types" version = "0.7.0" @@ -240,6 +243,7 @@ dependencies = [ { name = "fastapi" }, { name = "httpx" }, { name = "openresponses-types" }, + { name = "tiles-harmony" }, { name = "uvicorn" }, ] @@ -254,6 +258,7 @@ requires-dist = [ { name = "fastapi", specifier = "==0.119.0" }, { name = "httpx", specifier = "==0.28.1" }, { name = "openresponses-types" }, + { name = "tiles-harmony", specifier = "==0.0.8rc4" }, { name = "uvicorn", specifier = "==0.38.0" }, ] @@ -275,6 +280,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/72/2db2f49247d0a18b4f1bb9a5a39a0162869acf235f3a96418363947b3d46/starlette-0.48.0-py3-none-any.whl", hash = "sha256:0764ca97b097582558ecb498132ed0c7d942f233f365b86ba37770e026510659", size = 73736, upload-time = "2025-09-13T08:41:03.869Z" }, ] +[[package]] +name = "tiles-harmony" +version = "0.0.8rc4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d4/a7/b6397afe75df77442d70a74202f89741bb71e670a426d465631d090a5dd5/tiles_harmony-0.0.8rc4.tar.gz", hash = "sha256:c610adbba18883f9bef6cd0ffd50cc38a8d423d2550cc504ef8d963f2572252d", size = 281259, upload-time = "2026-06-19T03:00:54.396Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/23/95dba0ed01c85ff7820ee046010b7d7261e3a396b7b03a82e342b7e46323/tiles_harmony-0.0.8rc4-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:44d4a5c7d37443a98e4bc082554800aa7f0d7f69d6846806b612527ed3872995", size = 2671604, upload-time = "2026-06-19T03:00:40.052Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8e/c2e458fbae7a027509b4e95245ab4b4fc69e6b4d993029a01809c3fa36c3/tiles_harmony-0.0.8rc4-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d2992b85a01d38ffc8c7b46d2be6590b1c4f18c356459c34f19bef96e2402f6", size = 3014065, upload-time = "2026-06-19T03:00:41.835Z" }, + { url = "https://files.pythonhosted.org/packages/f3/2a/c82479dece72852dd10ba07010256042fa345adfc617718087aa40d2ad38/tiles_harmony-0.0.8rc4-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57053d264f9970696b7dfe797a827159282dcca3123784883e596653e714736e", size = 2996619, upload-time = "2026-06-19T03:00:43.568Z" }, + { url = "https://files.pythonhosted.org/packages/0d/f0/86b58e8b6ff8ea818f5587116fa2d05b173c8ca74902acbd1999c98a4b3c/tiles_harmony-0.0.8rc4-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d619bcab1ab24f0f09ff27050f88c7a9006e8f594344d2a0875908883a19d350", size = 3169877, upload-time = "2026-06-19T03:00:45.272Z" }, + { url = "https://files.pythonhosted.org/packages/12/e6/3ebe416bd20eab423140bf3a852ace45e3e1ce75dd49f2f2dd5d56655a83/tiles_harmony-0.0.8rc4-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:2b68a7faa3cbe8d18f80e10f618fda53e7e634183ba681b1c6a511d9c502cd77", size = 2990539, upload-time = "2026-06-19T03:00:47.259Z" }, + { url = "https://files.pythonhosted.org/packages/40/2f/5696e93369b76ee682fc9e890b258c0db9ec45a889b97ab084ed8e0567f2/tiles_harmony-0.0.8rc4-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:f75d8f03d784407484ed2e1d00efe403cc3f8faec714ce65b73f4ee6d4a612c1", size = 3095503, upload-time = "2026-06-19T03:00:49.313Z" }, + { url = "https://files.pythonhosted.org/packages/f1/06/1bc6c5c6a8f9905e4a1d2e44b39ff0c95fbf244fd3e862cfd91c50517d83/tiles_harmony-0.0.8rc4-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:bb7ad633275b709229d6b516e0c18bb81d4f04e9b09a56a805900ec9bd94ed73", size = 3285792, upload-time = "2026-06-19T03:00:51.071Z" }, + { url = "https://files.pythonhosted.org/packages/1b/35/572ea9f1032ec77bc2d191f64bc0865c24d0b73b61886087be9ebf994f23/tiles_harmony-0.0.8rc4-cp38-abi3-win_amd64.whl", hash = "sha256:620f447660b97fd7a87a413fdb47fabe92947eeffa3b7b23000f899d29b74ee6", size = 2521556, upload-time = "2026-06-19T03:00:52.793Z" }, +] + [[package]] name = "typing-extensions" version = "4.15.0" -- 2.51.2 From d063f5e6fef182d0742f337d2da9b46b5055e806 Mon Sep 17 00:00:00 2001 From: madclaws Date: Fri, 19 Jun 2026 13:33:23 +0530 Subject: [PATCH 5/5] refactor: Removed old venvstacks.toml and its artefacts --- .../app-server/packages-app-server.txt | 49 - .../app-server/pylock.app-server.meta.json | 8 - .../app-server/pylock.app-server.toml | 902 ------------------ .../app-server/requirements-app-server.in | 9 - .../cpython3.13/packages-cpython3.13.txt | 2 - .../cpython3.13/pylock.cpython3_13.meta.json | 8 - .../cpython3.13/pylock.cpython3_13.toml | 6 - .../cpython3.13/requirements-cpython3_13.in | 2 - .../framework-mlx/packages-framework-mlx.txt | 4 - .../pylock.framework-mlx.meta.json | 8 - .../framework-mlx/pylock.framework-mlx.toml | 73 -- .../requirements-framework-mlx.in | 3 - server/stack/venvstacks.toml | 46 - 13 files changed, 1120 deletions(-) delete mode 100644 server/stack/requirements/app-server/packages-app-server.txt delete mode 100644 server/stack/requirements/app-server/pylock.app-server.meta.json delete mode 100644 server/stack/requirements/app-server/pylock.app-server.toml delete mode 100644 server/stack/requirements/app-server/requirements-app-server.in delete mode 100644 server/stack/requirements/cpython3.13/packages-cpython3.13.txt delete mode 100644 server/stack/requirements/cpython3.13/pylock.cpython3_13.meta.json delete mode 100644 server/stack/requirements/cpython3.13/pylock.cpython3_13.toml delete mode 100644 server/stack/requirements/cpython3.13/requirements-cpython3_13.in delete mode 100644 server/stack/requirements/framework-mlx/packages-framework-mlx.txt delete mode 100644 server/stack/requirements/framework-mlx/pylock.framework-mlx.meta.json delete mode 100644 server/stack/requirements/framework-mlx/pylock.framework-mlx.toml delete mode 100644 server/stack/requirements/framework-mlx/requirements-framework-mlx.in delete mode 100644 server/stack/venvstacks.toml diff --git a/server/stack/requirements/app-server/packages-app-server.txt b/server/stack/requirements/app-server/packages-app-server.txt deleted file mode 100644 index 996036f..0000000 --- a/server/stack/requirements/app-server/packages-app-server.txt +++ /dev/null @@ -1,49 +0,0 @@ -# Package summary for app-server -# Auto-generated by venvstacks (DO NOT EDIT) -annotated-doc==0.0.4 -annotated-types==0.7.0 -anyio==4.13.0 -certifi==2026.5.20 -click==8.4.1 -diskcache==5.6.3 ; platform_machine == 'x86_64' and sys_platform == 'linux' -fastapi==0.119.0 -filelock==3.29.1 -fsspec==2026.4.0 -h11==0.16.0 -hf-xet==1.5.0 -httpcore==1.0.9 -httpx==0.28.1 -huggingface-hub==1.17.0 -idna==3.18 -jinja2==3.1.6 -llama-cpp-python==0.3.25 ; platform_machine == 'x86_64' and sys_platform == 'linux' -markdown-it-py==4.2.0 -markupsafe==3.0.3 -mdurl==0.1.2 -mlx-lm==0.31.0 -numpy==2.4.6 -openai-harmony==0.0.8 -openresponses-types==2.3.0.post1 -packaging==26.2 -protobuf==7.35.0 -pydantic==2.13.4 -pydantic-core==2.46.4 -pygments==2.20.0 -pyyaml==6.0.3 -regex==2026.5.9 -rich==15.0.0 -safetensors==0.7.0 -sentencepiece==0.2.1 -shellingham==1.5.4 -starlette==0.48.0 -tokenizers==0.22.2 -tqdm==4.67.3 -transformers==5.10.2 -typer==0.25.1 -typing-extensions==4.15.0 -typing-inspection==0.4.2 -uvicorn==0.38.0 - -# Shared packages inherited from other layers -mlx-metal==0.31.1 ; platform_machine == 'arm64' and sys_platform == 'darwin' -mlx==0.31.1 ; platform_machine == 'arm64' and sys_platform == 'darwin' diff --git a/server/stack/requirements/app-server/pylock.app-server.meta.json b/server/stack/requirements/app-server/pylock.app-server.meta.json deleted file mode 100644 index b2d0a2a..0000000 --- a/server/stack/requirements/app-server/pylock.app-server.meta.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "lock_input_hash": "sha256:0337b74bb2981e6a62e952247cc07cfdcf1c53103260bbebf4ad8d52a9080192", - "lock_version": 1, - "locked_at": "2026-06-05T05:35:15.842211+00:00", - "other_inputs_hash": "sha256:b6e3f918a29cd57ba53717cbdd726a48d63b5ff61e6d244441409d73f089c908", - "requirements_hash": "sha256:f3622f271a1d7b6e068ba96b5b006de9b41c55314987140fe284dee98ba8e943", - "version_inputs_hash": "sha256:58db986b7cd72eeded675f7c9afd8138fe024fb51451131b5562922bbde3cf43" -} diff --git a/server/stack/requirements/app-server/pylock.app-server.toml b/server/stack/requirements/app-server/pylock.app-server.toml deleted file mode 100644 index 26403cd..0000000 --- a/server/stack/requirements/app-server/pylock.app-server.toml +++ /dev/null @@ -1,902 +0,0 @@ -# Locked requirements for app-server (DO NOT EDIT) -# Auto-generated by venvstacks with the following command: -# python -Im venvstacks lock -lock-version = "1.0" -created-by = "uv" -requires-python = "==3.13.*" - -[[packages]] -name = "annotated-doc" -version = "0.0.4" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl" -upload-time = 2025-11-10T22:07:40Z -size = 5303 - -[packages.wheels.hashes] -sha256 = "571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320" - -[[packages]] -name = "annotated-types" -version = "0.7.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl" -upload-time = 2024-05-20T21:33:24Z -size = 13643 - -[packages.wheels.hashes] -sha256 = "1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53" - -[[packages]] -name = "anyio" -version = "4.13.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl" -upload-time = 2026-03-24T12:59:08Z -size = 114353 - -[packages.wheels.hashes] -sha256 = "08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708" - -[[packages]] -name = "certifi" -version = "2026.5.20" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/59/8c/57e832b7af6d7c5abe66eb3fbe3a3a32f4d11ea23a1aa7131371035be991/certifi-2026.5.20-py3-none-any.whl" -upload-time = 2026-05-20T11:46:48Z -size = 134134 - -[packages.wheels.hashes] -sha256 = "3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897" - -[[packages]] -name = "click" -version = "8.4.1" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl" -upload-time = 2026-05-22T04:08:35Z -size = 116639 - -[packages.wheels.hashes] -sha256 = "482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2" - -[[packages]] -name = "diskcache" -version = "5.6.3" -marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl" -upload-time = 2023-08-31T06:11:58Z -size = 45550 - -[packages.wheels.hashes] -sha256 = "5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19" - -[[packages]] -name = "fastapi" -version = "0.119.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/ce/70/584c4d7cad80f5e833715c0a29962d7c93b4d18eed522a02981a6d1b6ee5/fastapi-0.119.0-py3-none-any.whl" -upload-time = 2025-10-11T17:13:39Z -size = 107095 - -[packages.wheels.hashes] -sha256 = "90a2e49ed19515320abb864df570dd766be0662c5d577688f1600170f7f73cf2" - -[[packages]] -name = "filelock" -version = "3.29.1" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/4c/a0/614c5fe402fd88951df45f4dda2fa3b4e17a99ecd92340771929169b3b95/filelock-3.29.1-py3-none-any.whl" -upload-time = 2026-06-03T15:19:02Z -size = 40750 - -[packages.wheels.hashes] -sha256 = "85199dfd706869641b72b2e8955d5416a4b2b7dc4b0e8e6d97b4cc1299a6983b" - -[[packages]] -name = "fsspec" -version = "2026.4.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl" -upload-time = 2026-04-29T20:42:36Z -size = 203402 - -[packages.wheels.hashes] -sha256 = "11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2" - -[[packages]] -name = "h11" -version = "0.16.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl" -upload-time = 2025-04-24T03:35:24Z -size = 37515 - -[packages.wheels.hashes] -sha256 = "63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86" - -[[packages]] -name = "hf-xet" -version = "1.5.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/0f/6d/9563cfde59b5d8128a9c7ec972a087f4c782e4f7bac5a85234edfd5d5e49/hf_xet-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl" -upload-time = 2026-05-06T06:17:51Z -size = 3792751 - -[packages.wheels.hashes] -sha256 = "73a0dae8c71de3b0633a45c73f4a4a5ed09e94b43441d82981a781d4f12baa42" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/07/a5/ed5a0cf35b49a0571af5a8f53416dad1877a718c021c9937c3a53cb45781/hf_xet-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" -upload-time = 2026-05-06T06:17:40Z -size = 4456058 - -[packages.wheels.hashes] -sha256 = "a60290ec57e9b71767fba7c3645ddafdd0759974b540441510c629c6db6db24a" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/13/59/c74efbbd4e8728172b2cc72a2bc014d2947a4b7bdced932fbd3f5da1a4e5/hf_xet-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl" -upload-time = 2026-05-06T06:18:06Z -size = 4663995 - -[packages.wheels.hashes] -sha256 = "2baea1b0b989e5c152fe81425f7745ddc8901280ba3d97c98d8cdece7b706c60" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/9b/ff/edcc2b40162bef3ff78e14ab637e5f3b89243d6aee72f5949d3bb6a5af83/hf_xet-1.5.0-cp37-abi3-macosx_11_0_arm64.whl" -upload-time = 2026-05-06T06:17:55Z -size = 3798444 - -[packages.wheels.hashes] -sha256 = "fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/49/4d/103f76b04310e5e57656696cc184690d20c466af0bca3ca88f8c8ea5d4f3/hf_xet-1.5.0-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl" -upload-time = 2026-05-06T06:17:44Z -size = 4465986 - -[packages.wheels.hashes] -sha256 = "3531b1823a0e6d77d80f9ed15ca0e00f0d115094f8ac033d5cae88f4564cc949" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/aa/b2/703569fc881f3284487e68cda7b42179978480da3c438042a6bbbb4a671c/hf_xet-1.5.0-cp37-abi3-musllinux_1_2_x86_64.whl" -upload-time = 2026-05-06T06:18:09Z -size = 4672414 - -[packages.wheels.hashes] -sha256 = "4b35549ce62601b84da4ff9b24d970032ace3d4430f52d91bcbb26c901d6c690" - -[[packages]] -name = "httpcore" -version = "1.0.9" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl" -upload-time = 2025-04-24T22:06:20Z -size = 78784 - -[packages.wheels.hashes] -sha256 = "2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55" - -[[packages]] -name = "httpx" -version = "0.28.1" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl" -upload-time = 2024-12-06T15:37:21Z -size = 73517 - -[packages.wheels.hashes] -sha256 = "d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad" - -[[packages]] -name = "huggingface-hub" -version = "1.17.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/02/28/d7cef5e477b855c25d415b8f57e5bc7347c7a90cad3acf1725d0c92ca294/huggingface_hub-1.17.0-py3-none-any.whl" -upload-time = 2026-05-28T15:12:11Z -size = 671546 - -[packages.wheels.hashes] -sha256 = "3b8156d23118e87f6a587648bfbc04f04a12a757ccb4ed298b35c4ae638bf24c" - -[[packages]] -name = "idna" -version = "3.18" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl" -upload-time = 2026-06-02T14:34:06Z -size = 65455 - -[packages.wheels.hashes] -sha256 = "7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2" - -[[packages]] -name = "jinja2" -version = "3.1.6" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl" -upload-time = 2025-03-05T20:05:00Z -size = 134899 - -[packages.wheels.hashes] -sha256 = "85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67" - -[[packages]] -name = "llama-cpp-python" -version = "0.3.25" -marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" -index = "https://abetlen.github.io/llama-cpp-python/whl/cu124" - -[[packages.wheels]] -url = "https://github.com/abetlen/llama-cpp-python/releases/download/v0.3.25-cu124/llama_cpp_python-0.3.25-py3-none-linux_x86_64.whl" - -[packages.wheels.hashes] - -[[packages]] -name = "markdown-it-py" -version = "4.2.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl" -upload-time = 2026-05-07T12:08:27Z -size = 91687 - -[packages.wheels.hashes] -sha256 = "9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a" - -[[packages]] -name = "markupsafe" -version = "3.0.3" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl" -upload-time = 2025-09-27T18:36:43Z -size = 12029 - -[packages.wheels.hashes] -sha256 = "116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2025-09-27T18:36:45Z -size = 22980 - -[packages.wheels.hashes] -sha256 = "ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl" -upload-time = 2025-09-27T18:36:49Z -size = 23041 - -[packages.wheels.hashes] -sha256 = "8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl" -upload-time = 2025-09-27T18:36:55Z -size = 12066 - -[packages.wheels.hashes] -sha256 = "3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2025-09-27T18:36:57Z -size = 23569 - -[packages.wheels.hashes] -sha256 = "8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl" -upload-time = 2025-09-27T18:37:01Z -size = 23642 - -[packages.wheels.hashes] -sha256 = "8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009" - -[[packages]] -name = "mdurl" -version = "0.1.2" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl" -upload-time = 2022-08-14T12:40:09Z -size = 9979 - -[packages.wheels.hashes] -sha256 = "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8" - -[[packages]] -name = "mlx" -version = "0.31.1" -marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') and sys_platform == 'from_lower_layer'" - -[[packages]] -name = "mlx-lm" -version = "0.31.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/20/a3/7ec46abe6a0ee519d28bb676aede49a68c70bd1db6c05a7a480d018079cb/mlx_lm-0.31.0-py3-none-any.whl" -upload-time = 2026-03-07T03:49:27Z -size = 393259 - -[packages.wheels.hashes] -sha256 = "112a2f18bfc95bd8bb0517f9f7cee00262f54fe0f18ed36d9b0fc2059c4a91bc" - -[[packages]] -name = "mlx-metal" -version = "0.31.1" -marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') and sys_platform == 'from_lower_layer'" - -[[packages]] -name = "numpy" -version = "2.4.6" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/1b/30/a80189bcc7f5e4258b3fbc3968d909d1756f54d023299ecc39ad6fdb9ef8/numpy-2.4.6-cp313-cp313-macosx_11_0_arm64.whl" -upload-time = 2026-05-18T23:34:33Z -size = 14693902 - -[packages.wheels.hashes] -sha256 = "bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/97/12/70b5d0d7c15e1ebb8a6a84a8caa1d19e181d84fb58bb6d70aca29099dec1/numpy-2.4.6-cp313-cp313-macosx_14_0_arm64.whl" -upload-time = 2026-05-18T23:34:36Z -size = 5198992 - -[packages.wheels.hashes] -sha256 = "043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/a5/9d/3584b9984ca4c047aea75214ce1a4c4c73d849bd71b604264b7f5653f8a8/numpy-2.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2026-05-18T23:34:45Z -size = 16633220 - -[packages.wheels.hashes] -sha256 = "a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/d9/5d/3b6725cb31d983c5e66916f5d36f6d7e5521129e4c4404d64f918292a5b6/numpy-2.4.6-cp313-cp313-musllinux_1_2_x86_64.whl" -upload-time = 2026-05-18T23:34:52Z -size = 18357600 - -[packages.wheels.hashes] -sha256 = "dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/63/6d/cc5619247c8f4204e507f5883528372e4ac4bb189e579fb859a12e480b1f/numpy-2.4.6-cp313-cp313t-macosx_11_0_arm64.whl" -upload-time = 2026-05-18T23:35:05Z -size = 14821197 - -[packages.wheels.hashes] -sha256 = "112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/00/58/f1c39161c87d9e9bed660f1ed4bafc0e403d5ec9650b6dd77aead07d489b/numpy-2.4.6-cp313-cp313t-macosx_14_0_arm64.whl" -upload-time = 2026-05-18T23:35:08Z -size = 5326287 - -[packages.wheels.hashes] -sha256 = "eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/21/a6/5d2bae9c9542eb4df16dc9c46dc79c186e9bad53805dfa5399a6023c6db0/numpy-2.4.6-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2026-05-18T23:35:18Z -size = 16681752 - -[packages.wheels.hashes] -sha256 = "ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/4b/6e/23595a2c642cdf3bc567877064bdd7f91c8b0038a4453cf2daf7248eafe9/numpy-2.4.6-cp313-cp313t-musllinux_1_2_x86_64.whl" -upload-time = 2026-05-18T23:35:26Z -size = 18403398 - -[packages.wheels.hashes] -sha256 = "a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd" - -[[packages]] -name = "openai-harmony" -version = "0.0.8" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/45/c6/2502f416d46be3ec08bb66d696cccffb57781a499e3ff2e4d7c174af4e8f/openai_harmony-0.0.8-cp38-abi3-macosx_11_0_arm64.whl" -upload-time = 2025-11-05T19:06:57Z -size = 2627806 - -[packages.wheels.hashes] -sha256 = "029ec25ca74abe48fdb58eb9fdd2a8c1618581fc33ce8e5653f8a1ffbfbd9326" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/25/3f/1a192b93bb47c6b44cd98ba8cc1d3d2a9308f1bb700c3017e6352da11bda/openai_harmony-0.0.8-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" -upload-time = 2025-11-05T19:06:55Z -size = 2953260 - -[packages.wheels.hashes] -sha256 = "c007d277218a50db8839e599ed78e0fffe5130f614c3f6d93ae257f282071a29" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/60/c3/3d1e01e2dba517a91760e4a03e4f20ffc75039a6fe584d0e6f9b5c78fd15/openai_harmony-0.0.8-cp38-abi3-musllinux_1_2_x86_64.whl" -upload-time = 2025-11-05T19:07:05Z -size = 3205080 - -[packages.wheels.hashes] -sha256 = "007b0476a1f331f8130783f901f1da6f5a7057af1a4891f1b6a31dec364189b5" - -[[packages]] -name = "openresponses-types" -version = "2.3.0.post1" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/b2/5f/e16dad89ed24f586da5b01b9b206d3adbf21fe1af8e4dc55d5b93158fde6/openresponses_types-2.3.0.post1-py3-none-any.whl" -upload-time = 2026-01-22T20:02:02Z -size = 13847 - -[packages.wheels.hashes] -sha256 = "88f6abcef9cad839203abff420dd080978bf6eb33cc06ddc5d78da4ccdba7613" - -[[packages]] -name = "packaging" -version = "26.2" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl" -upload-time = 2026-04-24T20:15:22Z -size = 100195 - -[packages.wheels.hashes] -sha256 = "5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e" - -[[packages]] -name = "protobuf" -version = "7.35.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/83/ee/93d06e358a4aa32280b00e722d3ea0a1f25fc3cc5778d80581c9cca2c10e/protobuf-7.35.0-cp310-abi3-macosx_10_9_universal2.whl" -upload-time = 2026-05-19T23:02:19Z -size = 433225 - -[packages.wheels.hashes] -sha256 = "66be6c513931c794fa92c080ffee41671390da3d79da219cf9c0c0907f035dda" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/70/5b/6baf9008817964454055ff3fe65f1de0b5f1e26c80c82f7fb108b7cd4ea3/protobuf-7.35.0-cp310-abi3-manylinux2014_x86_64.whl" -upload-time = 2026-05-19T23:02:24Z -size = 327130 - -[packages.wheels.hashes] -sha256 = "6c0f98f10c8a05ea30f8993dfef2de093d27b490fdae78bb60c8343795d55011" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/b8/ef/50433d346c56657a70d27f156c7b349ac59a068b01de4eb796e747eecc43/protobuf-7.35.0-py3-none-any.whl" -upload-time = 2026-05-19T23:02:27Z -size = 171659 - -[packages.wheels.hashes] -sha256 = "c13f325cf242bad135c350629eeb5d54b24228eb472fb3e2e9ebbd4c5dc20ca0" - -[[packages]] -name = "pydantic" -version = "2.13.4" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl" -upload-time = 2026-05-06T13:43:02Z -size = 472262 - -[packages.wheels.hashes] -sha256 = "45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba" - -[[packages]] -name = "pydantic-core" -version = "2.46.4" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl" -upload-time = 2026-05-06T13:37:17Z -size = 1951906 - -[packages.wheels.hashes] -sha256 = "c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" -upload-time = 2026-05-06T13:39:18Z -size = 2094467 - -[packages.wheels.hashes] -sha256 = "9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl" -upload-time = 2026-05-06T13:39:34Z -size = 2372986 - -[packages.wheels.hashes] -sha256 = "82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d" - -[[packages]] -name = "pygments" -version = "2.20.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl" -upload-time = 2026-03-29T13:29:30Z -size = 1231151 - -[packages.wheels.hashes] -sha256 = "81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176" - -[[packages]] -name = "pyyaml" -version = "6.0.3" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl" -upload-time = 2025-09-25T21:32:25Z -size = 173252 - -[packages.wheels.hashes] -sha256 = "2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2025-09-25T21:32:28Z -size = 801626 - -[packages.wheels.hashes] -sha256 = "0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl" -upload-time = 2025-09-25T21:32:31Z -size = 794115 - -[packages.wheels.hashes] -sha256 = "eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be" - -[[packages]] -name = "regex" -version = "2026.5.9" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/aa/da/797e91ecec6f84135da778ddce78c20e0af5d2a15c26f87a81bc3eadb6db/regex-2026.5.9-cp313-cp313-macosx_10_13_universal2.whl" -upload-time = 2026-05-09T23:13:04Z -size = 490303 - -[packages.wheels.hashes] -sha256 = "d626b84406444b165fc0ba981604edea39f0588ff1f92baa23fe50799ea9afdb" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/2d/e7/d0eaf5713828417b9e5648cf81fa9bacd4961f6ab98c380c2034f8716e35/regex-2026.5.9-cp313-cp313-macosx_11_0_arm64.whl" -upload-time = 2026-05-09T23:13:08Z -size = 289468 - -[packages.wheels.hashes] -sha256 = "a8820737949116ffff55fe18f9fc644530063ba6ebfcb8314239416e78f1347c" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/30/e1/c93444052cf41581f3c884ab3fb5823daf0992f11cd4388d4275ca610558/regex-2026.5.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2026-05-09T23:13:16Z -size = 801269 - -[packages.wheels.hashes] -sha256 = "b6d189041f15691cfa2b6c4290448ec221244d225b3f5fe9e7771b34ffcdf6e2" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/5b/92/7eebc0d0a01e78629695f342ba17e0deaff8fb45e79cc0d7b98287da6e3e/regex-2026.5.9-cp313-cp313-musllinux_1_2_x86_64.whl" -upload-time = 2026-05-09T23:13:27Z -size = 789577 - -[packages.wheels.hashes] -sha256 = "2efa205e6d98b24d1f3ab395c11aa15cdf10935bca283d0285e0499c284fba21" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/e8/e9/d21346f7b60ed58789371358ed66b09d00f832e1bd7c06e55d9da5679882/regex-2026.5.9-cp313-cp313t-macosx_10_13_universal2.whl" -upload-time = 2026-05-09T23:13:35Z -size = 494172 - -[packages.wheels.hashes] -sha256 = "01f28d868834624c934b8d2e0aa1c8341337e37831f4a012f18a5afcba4cbaf3" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/f2/7d/9fbf919768368d3f8a4f6c692cf2aa61e482b2b81ec6a298ace4cbf02480/regex-2026.5.9-cp313-cp313t-macosx_11_0_arm64.whl" -upload-time = 2026-05-09T23:13:40Z -size = 292314 - -[packages.wheels.hashes] -sha256 = "b96350aa424e79d4fd6b567b344dcbe2b2d6bfc48dfe7717587e1fa6d43da6ff" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/ae/ff/8db60211e2286e396aad7dc7725356c502bff0901ea05bd6cdc2e1a042b9/regex-2026.5.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2026-05-09T23:13:49Z -size = 816311 - -[packages.wheels.hashes] -sha256 = "728d8bfd28a8845c8b6bc5dc7ce010453d206396786c0765c2740cb65f37791e" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/a9/29/92ff47f75990131ea4f24ba17819e5a9d141e10819807e09addd73409af6/regex-2026.5.9-cp313-cp313t-musllinux_1_2_x86_64.whl" -upload-time = 2026-05-09T23:14:01Z -size = 803453 - -[packages.wheels.hashes] -sha256 = "dfbe4579b9f08036aa7d101d1835437a20783574ac66327e6b29b4018a138081" - -[[packages]] -name = "rich" -version = "15.0.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl" -upload-time = 2026-04-12T08:24:02Z -size = 310654 - -[packages.wheels.hashes] -sha256 = "33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb" - -[[packages]] -name = "safetensors" -version = "0.7.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/e8/00/374c0c068e30cd31f1e1b46b4b5738168ec79e7689ca82ee93ddfea05109/safetensors-0.7.0-cp38-abi3-macosx_11_0_arm64.whl" -upload-time = 2025-11-19T15:18:34Z -size = 447058 - -[packages.wheels.hashes] -sha256 = "94fd4858284736bb67a897a41608b5b0c2496c9bdb3bf2af1fa3409127f20d57" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/a0/60/429e9b1cb3fc651937727befe258ea24122d9663e4d5709a48c9cbfceecb/safetensors-0.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" -upload-time = 2025-11-19T15:18:33Z -size = 507152 - -[packages.wheels.hashes] -sha256 = "dac7252938f0696ddea46f5e855dd3138444e82236e3be475f54929f0c510d48" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/4a/d8/0c8a7dc9b41dcac53c4cbf9df2b9c83e0e0097203de8b37a712b345c0be5/safetensors-0.7.0-cp38-abi3-musllinux_1_2_x86_64.whl" -upload-time = 2025-11-19T15:18:41Z -size = 677368 - -[packages.wheels.hashes] -sha256 = "b0f6d66c1c538d5a94a73aa9ddca8ccc4227e6c9ff555322ea40bdd142391dd4" - -[[packages]] -name = "sentencepiece" -version = "0.2.1" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/ba/4a/85fbe1706d4d04a7e826b53f327c4b80f849cf1c7b7c5e31a20a97d8f28b/sentencepiece-0.2.1-cp313-cp313-macosx_10_13_universal2.whl" -upload-time = 2025-08-12T06:59:53Z -size = 1943150 - -[packages.wheels.hashes] -sha256 = "dcd8161eee7b41aae57ded06272905dbd680a0a04b91edd0f64790c796b2f706" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/8d/de/5a007fb53b1ab0aafc69d11a5a3dd72a289d5a3e78dcf2c3a3d9b14ffe93/sentencepiece-0.2.1-cp313-cp313-macosx_11_0_arm64.whl" -upload-time = 2025-08-12T06:59:56Z -size = 1253641 - -[packages.wheels.hashes] -sha256 = "097f3394e99456e9e4efba1737c3749d7e23563dd1588ce71a3d007f25475fff" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/96/df/0cfe748ace5485be740fed9476dee7877f109da32ed0d280312c94ec259f/sentencepiece-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2025-08-12T07:00:00Z -size = 1387882 - -[packages.wheels.hashes] -sha256 = "c7f0fd2f2693309e6628aeeb2e2faf6edd221134dfccac3308ca0de01f8dab47" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/4a/b6/08fe2ce819e02ccb0296f4843e3f195764ce9829cbda61b7513f29b95718/sentencepiece-0.2.1-cp313-cp313t-macosx_10_13_universal2.whl" -upload-time = 2025-08-12T07:00:08Z -size = 1946052 - -[packages.wheels.hashes] -sha256 = "8dd4b477a7b069648d19363aad0cab9bad2f4e83b2d179be668efa672500dc94" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/99/7e/1fb26e8a21613f6200e1ab88824d5d203714162cf2883248b517deb500b7/sentencepiece-0.2.1-cp313-cp313t-macosx_11_0_arm64.whl" -upload-time = 2025-08-12T07:00:11Z -size = 1254857 - -[packages.wheels.hashes] -sha256 = "ad8493bea8432dae8d6830365352350f3b4144415a1d09c4c8cb8d30cf3b6c3c" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/4a/e8/661e5bd82a8aa641fd6c1020bd0e890ef73230a2b7215ddf9c8cd8e941c2/sentencepiece-0.2.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl" -upload-time = 2025-08-12T07:00:15Z -size = 1387452 - -[packages.wheels.hashes] -sha256 = "0a81799d0a68d618e89063fb423c3001a034c893069135ffe51fee439ae474d6" - -[[packages]] -name = "shellingham" -version = "1.5.4" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl" -upload-time = 2023-10-24T04:13:38Z -size = 9755 - -[packages.wheels.hashes] -sha256 = "7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686" - -[[packages]] -name = "starlette" -version = "0.48.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/be/72/2db2f49247d0a18b4f1bb9a5a39a0162869acf235f3a96418363947b3d46/starlette-0.48.0-py3-none-any.whl" -upload-time = 2025-09-13T08:41:03Z -size = 73736 - -[packages.wheels.hashes] -sha256 = "0764ca97b097582558ecb498132ed0c7d942f233f365b86ba37770e026510659" - -[[packages]] -name = "tokenizers" -version = "0.22.2" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl" -upload-time = 2026-01-05T10:41:00Z -size = 2981472 - -[packages.wheels.hashes] -sha256 = "1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" -upload-time = 2026-01-05T10:40:58Z -size = 3274982 - -[packages.wheels.hashes] -sha256 = "369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/05/a1/d62dfe7376beaaf1394917e0f8e93ee5f67fea8fcf4107501db35996586b/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_x86_64.whl" -upload-time = 2026-01-05T10:45:14Z -size = 10033429 - -[packages.wheels.hashes] -sha256 = "38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5" - -[[packages]] -name = "tqdm" -version = "4.67.3" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl" -upload-time = 2026-02-03T17:35:50Z -size = 78374 - -[packages.wheels.hashes] -sha256 = "ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf" - -[[packages]] -name = "transformers" -version = "5.10.2" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/73/6f/e1564b0cc182afa05e219a8e09a8e770ffaab879b6b824b56c819bd221da/transformers-5.10.2-py3-none-any.whl" -upload-time = 2026-06-04T18:43:45Z -size = 11003830 - -[packages.wheels.hashes] -sha256 = "8a669db546f82c7c3618cb46ceb0f0afd89292bc70f319c058f8332ec63e268d" - -[[packages]] -name = "typer" -version = "0.25.1" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl" -upload-time = 2026-04-30T19:32:18Z -size = 58409 - -[packages.wheels.hashes] -sha256 = "75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89" - -[[packages]] -name = "typing-extensions" -version = "4.15.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl" -upload-time = 2025-08-25T13:49:24Z -size = 44614 - -[packages.wheels.hashes] -sha256 = "f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548" - -[[packages]] -name = "typing-inspection" -version = "0.4.2" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl" -upload-time = 2025-10-01T02:14:40Z -size = 14611 - -[packages.wheels.hashes] -sha256 = "4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7" - -[[packages]] -name = "uvicorn" -version = "0.38.0" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/ee/d9/d88e73ca598f4f6ff671fb5fde8a32925c2e08a637303a1d12883c7305fa/uvicorn-0.38.0-py3-none-any.whl" -upload-time = 2025-10-18T13:46:42Z -size = 68109 - -[packages.wheels.hashes] -sha256 = "48c0afd214ceb59340075b4a052ea1ee91c16fbc2a9b1469cca0e54566977b02" diff --git a/server/stack/requirements/app-server/requirements-app-server.in b/server/stack/requirements/app-server/requirements-app-server.in deleted file mode 100644 index bd6518b..0000000 --- a/server/stack/requirements/app-server/requirements-app-server.in +++ /dev/null @@ -1,9 +0,0 @@ -# DO NOT EDIT. Automatically generated by venvstacks. -# Relock layer dependencies to update. -fastapi==0.119.0 -uvicorn==0.38.0 -mlx-lm==0.31.0 -openai-harmony==0.0.8 -llama-cpp-python==0.3.25; sys_platform == "linux" -openresponses-types -httpx==0.28.1 diff --git a/server/stack/requirements/cpython3.13/packages-cpython3.13.txt b/server/stack/requirements/cpython3.13/packages-cpython3.13.txt deleted file mode 100644 index 200a2a4..0000000 --- a/server/stack/requirements/cpython3.13/packages-cpython3.13.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Package summary for cpython3.13 -# Auto-generated by venvstacks (DO NOT EDIT) diff --git a/server/stack/requirements/cpython3.13/pylock.cpython3_13.meta.json b/server/stack/requirements/cpython3.13/pylock.cpython3_13.meta.json deleted file mode 100644 index 5173bbd..0000000 --- a/server/stack/requirements/cpython3.13/pylock.cpython3_13.meta.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "lock_input_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "lock_version": 1, - "locked_at": "2026-06-02T14:14:30+00:00", - "other_inputs_hash": "sha256:c64981dc69ad92a6a4daa4a8e044f3b181bfd2e9b7100272612199e5bf84734f", - "requirements_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "version_inputs_hash": "sha256:083d4af739b0bca1ef56cddec2d51068dcae912c76221925758d8f7339585e48" -} diff --git a/server/stack/requirements/cpython3.13/pylock.cpython3_13.toml b/server/stack/requirements/cpython3.13/pylock.cpython3_13.toml deleted file mode 100644 index f9358f0..0000000 --- a/server/stack/requirements/cpython3.13/pylock.cpython3_13.toml +++ /dev/null @@ -1,6 +0,0 @@ -# Locked requirements for cpython3.13 (DO NOT EDIT) -# Auto-generated by venvstacks with the following command: -# python -Im venvstacks lock -lock-version = "1.0" -created-by = "uv" -requires-python = "==3.13.*" diff --git a/server/stack/requirements/cpython3.13/requirements-cpython3_13.in b/server/stack/requirements/cpython3.13/requirements-cpython3_13.in deleted file mode 100644 index 5f4e546..0000000 --- a/server/stack/requirements/cpython3.13/requirements-cpython3_13.in +++ /dev/null @@ -1,2 +0,0 @@ -# DO NOT EDIT. Automatically generated by venvstacks. -# Relock layer dependencies to update. diff --git a/server/stack/requirements/framework-mlx/packages-framework-mlx.txt b/server/stack/requirements/framework-mlx/packages-framework-mlx.txt deleted file mode 100644 index 34188fb..0000000 --- a/server/stack/requirements/framework-mlx/packages-framework-mlx.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Package summary for framework-mlx -# Auto-generated by venvstacks (DO NOT EDIT) -mlx==0.31.1 -mlx-metal==0.31.1 ; platform_machine == 'arm64' and sys_platform == 'darwin' diff --git a/server/stack/requirements/framework-mlx/pylock.framework-mlx.meta.json b/server/stack/requirements/framework-mlx/pylock.framework-mlx.meta.json deleted file mode 100644 index 54d54d7..0000000 --- a/server/stack/requirements/framework-mlx/pylock.framework-mlx.meta.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "lock_input_hash": "sha256:bce5319f3ba3e0866b90b1e4a8df7101d0c0b069d41453a97f887e8319f8da1e", - "lock_version": 1, - "locked_at": "2026-03-28T12:15:39.167142+00:00", - "other_inputs_hash": "sha256:8ae37e5fb61c1ad51a71c4431d6198113003b9f7187e4ebedcfd197470212b16", - "requirements_hash": "sha256:0e055489c518921915771d94744c3de913f3aaa48bb4d735fa7461999fd2dee7", - "version_inputs_hash": "sha256:314f7b4901cc866e8472e2a9c5b1bbf74eed7b4df8c1f3fe4bc1c6502d02b8f3" -} diff --git a/server/stack/requirements/framework-mlx/pylock.framework-mlx.toml b/server/stack/requirements/framework-mlx/pylock.framework-mlx.toml deleted file mode 100644 index ea1cba7..0000000 --- a/server/stack/requirements/framework-mlx/pylock.framework-mlx.toml +++ /dev/null @@ -1,73 +0,0 @@ -# Locked requirements for framework-mlx (DO NOT EDIT) -# Auto-generated by venvstacks with the following command: -# python -Im venvstacks lock -lock-version = "1.0" -created-by = "uv" -requires-python = "==3.13.*" - -[[packages]] -name = "mlx" -version = "0.31.1" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/44/45/04465da443634b23fb11670bbd2f7538b1ed43ffc5e0de44a95b3c29e9c1/mlx-0.31.1-cp313-cp313-macosx_14_0_arm64.whl" -upload-time = 2026-03-12T02:16:17Z -size = 574268 - -[packages.wheels.hashes] -sha256 = "9a6d3410fc951bd28508fed9c1ab5d9903f6f6bb101c3a5d63d4191d49a384a1" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/85/7b/84956960356ff36e8c1bbed68fac96709e98e6a1adbc8e3d0ff71022d84e/mlx-0.31.1-cp313-cp313-macosx_15_0_arm64.whl" -upload-time = 2026-03-12T02:16:18Z -size = 574265 - -[packages.wheels.hashes] -sha256 = "20bd7ba19882603ac22711092d0e799f1ff7b5183c2c641d417dab4d2423d99e" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/86/01/d6f0ef5b8c0b390af08246d1301e9717dfb076b3920012b53105a888ed8c/mlx-0.31.1-cp313-cp313-macosx_26_0_arm64.whl" -upload-time = 2026-03-12T02:16:19Z -size = 574172 - -[packages.wheels.hashes] -sha256 = "4c4565d6f4f8ce295613ee342d313ee5ab0b0eab9a6272954450f8343f7876bc" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/25/45/ecb746fbb6acb75d03760e41cc7bd21c2e2b544528b3033f7d70402334ac/mlx-0.31.1-cp313-cp313-manylinux_2_35_x86_64.whl" -upload-time = 2026-03-12T02:16:23Z -size = 668625 - -[packages.wheels.hashes] -sha256 = "78f51ab929278366006ee7793dbb5c942b121542c793c33eb9b894a2ce8e27e1" - -[[packages]] -name = "mlx-metal" -version = "0.31.1" -marker = "platform_machine == 'arm64' and sys_platform == 'darwin'" -index = "https://pypi.org/simple" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/39/66/2313497fdbc7fbadf8e026c09366e3f049f9114e65ca4edc23cdb8699186/mlx_metal-0.31.1-py3-none-macosx_14_0_arm64.whl" -upload-time = 2026-03-12T02:15:48Z -size = 38624074 - -[packages.wheels.hashes] -sha256 = "70741174131dbf7fdd479cb730e06e08c358eac3bf7905d9e884e7960cfdd5b8" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/c7/34/4c3c6890ce6095b2ab2ba2f5f15c9a7ba17208d47f8cacb572885a2dc0eb/mlx_metal-0.31.1-py3-none-macosx_15_0_arm64.whl" -upload-time = 2026-03-12T02:15:51Z -size = 38618950 - -[packages.wheels.hashes] -sha256 = "6c56bd8cd27743e635f5a90a22535af7c31bd22b4b126d46b6da2da52d72e413" - -[[packages.wheels]] -url = "https://files.pythonhosted.org/packages/51/bc/987cb99e3aafb296aa11ce5133838a10eae8447edd53168d0804d4fb3a14/mlx_metal-0.31.1-py3-none-macosx_26_0_arm64.whl" -upload-time = 2026-03-12T02:15:54Z -size = 49256543 - -[packages.wheels.hashes] -sha256 = "e7324b7c56b519ae67c025d3ced07e5d35bc3a9f19d4c45fe4927f385148c59e" diff --git a/server/stack/requirements/framework-mlx/requirements-framework-mlx.in b/server/stack/requirements/framework-mlx/requirements-framework-mlx.in deleted file mode 100644 index 898c057..0000000 --- a/server/stack/requirements/framework-mlx/requirements-framework-mlx.in +++ /dev/null @@ -1,3 +0,0 @@ -# DO NOT EDIT. Automatically generated by venvstacks. -# Relock layer dependencies to update. -mlx==0.31.1 diff --git a/server/stack/venvstacks.toml b/server/stack/venvstacks.toml deleted file mode 100644 index e23027e..0000000 --- a/server/stack/venvstacks.toml +++ /dev/null @@ -1,46 +0,0 @@ -[[runtimes]] -name = "cpython3.13" -python_implementation = "cpython@3.13.11" -requirements = [] -platforms = [ - "macosx_arm64", - "linux_x86_64", -] - - -[[frameworks]] -name = "mlx" -runtime = "cpython3.13" -linux_target = "glibc@2.35" -macosx_target = "14" -requirements = [ - "mlx==0.31.1" -] - -[[applications]] -name = "server" -launch_module = "../main.py" -frameworks = ["mlx"] -requirements = [ - "fastapi==0.119.0", - "uvicorn==0.38.0", - "mlx-lm==0.31.0", - "openai-harmony==0.0.8", - "llama-cpp-python==0.3.25; sys_platform == 'linux'", - "nvidia-cuda-runtime-cu12; sys_platform == 'linux'", - "nvidia-cublas-cu12; sys_platform == 'linux'", - "openresponses-types", - "httpx==0.28.1", - ] - -[[tool.uv.index]] -url = "https://abetlen.github.io/llama-cpp-python/whl/cu124" -name = "llama_cpp-python-cuda" - -# This index does not include upload times, so exclude-newer filters its Linux wheels. -# Only resolve for the relevant target platforms -[tool.uv] -environments = [ - "sys_platform == 'darwin' and platform_machine == 'arm64'", - "sys_platform == 'linux' and platform_machine == 'x86_64'", -]