kiapi 0.5.2__tar.gz → 0.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. {kiapi-0.5.2 → kiapi-0.6.0}/CHANGELOG.md +12 -0
  2. {kiapi-0.5.2 → kiapi-0.6.0}/PKG-INFO +21 -83
  3. {kiapi-0.5.2 → kiapi-0.6.0}/README.md +19 -78
  4. {kiapi-0.5.2 → kiapi-0.6.0}/pyproject.toml +1 -8
  5. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/__init__.py +0 -3
  6. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/app.py +1 -23
  7. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/health/_views/health_response.py +0 -8
  8. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/health/router.py +4 -8
  9. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/README.md +1 -3
  10. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/README.md +0 -2
  11. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/README.md +0 -2
  12. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/README.md +0 -2
  13. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/README.md +0 -2
  14. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/README.md +0 -2
  15. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/README.md +0 -2
  16. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/README.md +0 -2
  17. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/README.md +0 -2
  18. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/README.md +0 -2
  19. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/README.md +0 -2
  20. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/README.md +0 -2
  21. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/README.md +0 -2
  22. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/template/cli.py +0 -4
  23. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/run/cli.py +0 -15
  24. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/_services/service_manager.py +1 -1
  25. kiapi-0.5.2/README.ja.md +0 -144
  26. kiapi-0.5.2/src/kiapi/api/_helpers/get_relay_runner.py +0 -7
  27. kiapi-0.5.2/src/kiapi/capabilities/acestep/README.ja.md +0 -174
  28. kiapi-0.5.2/src/kiapi/capabilities/audiogen/README.ja.md +0 -49
  29. kiapi-0.5.2/src/kiapi/capabilities/chat/README.ja.md +0 -822
  30. kiapi-0.5.2/src/kiapi/capabilities/depthpro/README.ja.md +0 -131
  31. kiapi-0.5.2/src/kiapi/capabilities/embedding/README.ja.md +0 -137
  32. kiapi-0.5.2/src/kiapi/capabilities/ernie/README.ja.md +0 -242
  33. kiapi-0.5.2/src/kiapi/capabilities/flux2/README.ja.md +0 -260
  34. kiapi-0.5.2/src/kiapi/capabilities/ideogram4/README.ja.md +0 -230
  35. kiapi-0.5.2/src/kiapi/capabilities/ltx2/README.ja.md +0 -287
  36. kiapi-0.5.2/src/kiapi/capabilities/qwen/README.ja.md +0 -251
  37. kiapi-0.5.2/src/kiapi/capabilities/seedvr2/README.ja.md +0 -234
  38. kiapi-0.5.2/src/kiapi/capabilities/web/README.ja.md +0 -187
  39. kiapi-0.5.2/src/kiapi/capabilities/zimage/README.ja.md +0 -249
  40. {kiapi-0.5.2 → kiapi-0.6.0}/.gitignore +0 -0
  41. {kiapi-0.5.2 → kiapi-0.6.0}/.mise/tasks/package/current +0 -0
  42. {kiapi-0.5.2 → kiapi-0.6.0}/.vscode/settings.json +0 -0
  43. {kiapi-0.5.2 → kiapi-0.6.0}/LICENSE +0 -0
  44. {kiapi-0.5.2 → kiapi-0.6.0}/Makefile +0 -0
  45. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/__init__.py +0 -0
  46. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/__main__.py +0 -0
  47. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_constants/require_auth.py +0 -0
  48. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/build_job_responses.py +0 -0
  49. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/build_openapi.py +0 -0
  50. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/build_train_responses.py +0 -0
  51. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/get_accept.py +0 -0
  52. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/get_ctx.py +0 -0
  53. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/get_worker.py +0 -0
  54. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/register_capability_endpoints.py +0 -0
  55. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_helpers/submit_and_maybe_wait.py +0 -0
  56. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_settings.py +0 -0
  57. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_views/async_job_response.py +0 -0
  58. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/_views/capability_model_spec.py +0 -0
  59. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/acestep/_views/extract_response.py +0 -0
  60. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/acestep/_views/track_response.py +0 -0
  61. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/acestep/router.py +0 -0
  62. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/audiogen/_views/audio_response.py +0 -0
  63. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/audio/audiogen/router.py +0 -0
  64. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/chat/_views/chat_completion_response.py +0 -0
  65. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/chat/router.py +0 -0
  66. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/embedding/_views/embedding_response.py +0 -0
  67. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/embedding/router.py +0 -0
  68. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/_operations/get_file.py +0 -0
  69. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/_operations/get_file_id.py +0 -0
  70. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/_views/file_delete_response.py +0 -0
  71. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/_views/file_list_response.py +0 -0
  72. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/files/router.py +0 -0
  73. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/depthpro/_views/estimate_response.py +0 -0
  74. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/depthpro/router.py +0 -0
  75. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/ernie/_views/image_response.py +0 -0
  76. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/ernie/router.py +0 -0
  77. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/flux2/_views/image_response.py +0 -0
  78. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/flux2/router.py +0 -0
  79. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/ideogram4/_views/image_response.py +0 -0
  80. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/ideogram4/router.py +0 -0
  81. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/qwen/_views/image_response.py +0 -0
  82. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/qwen/router.py +0 -0
  83. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/seedvr2/_views/image_response.py +0 -0
  84. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/seedvr2/router.py +0 -0
  85. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/zimage/_views/image_response.py +0 -0
  86. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/image/zimage/router.py +0 -0
  87. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/jobs/_operations/get_job_id.py +0 -0
  88. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/jobs/_views/job_delete_response.py +0 -0
  89. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/jobs/_views/job_list_response.py +0 -0
  90. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/jobs/router.py +0 -0
  91. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/models/_schemas/openai_model_spec.py +0 -0
  92. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/models/_views/model_list_response.py +0 -0
  93. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/models/router.py +0 -0
  94. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/video/ltx2/_views/__init__.py +0 -0
  95. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/video/ltx2/_views/video_response.py +0 -0
  96. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/video/ltx2/router.py +0 -0
  97. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/web/_views/__init__.py +0 -0
  98. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/web/_views/fetch_api_request.py +0 -0
  99. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/web/_views/fetch_error_response.py +0 -0
  100. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/api/web/router.py +0 -0
  101. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/__init__.py +0 -0
  102. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_exceptions/CapabilityError.py +0 -0
  103. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_exceptions/ValidationError.py +0 -0
  104. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_helpers/attach_mflux_progress.py +0 -0
  105. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_helpers/get_file_path.py +0 -0
  106. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/_helpers/resolve_file_ref.py +0 -0
  107. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/__init__.py +0 -0
  108. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_constants/description.py +0 -0
  109. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_exceptions/ace_step_engine_error.py +0 -0
  110. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_helpers/register.py +0 -0
  111. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_models/acestep.py +0 -0
  112. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/handle_cover.py +0 -0
  113. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/handle_extract.py +0 -0
  114. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/handle_generate.py +0 -0
  115. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/handle_repaint.py +0 -0
  116. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_ace_step_paths.py +0 -0
  117. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_cover_params.py +0 -0
  118. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_engine.py +0 -0
  119. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_extract_params.py +0 -0
  120. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_generate_params.py +0 -0
  121. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_operations/resolve_repaint_params.py +0 -0
  122. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_schemas/ace_step_paths.py +0 -0
  123. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_services/ace_step_engine.py +0 -0
  124. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_settings.py +0 -0
  125. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/ace_step_base.py +0 -0
  126. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/cover_params.py +0 -0
  127. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/cover_request.py +0 -0
  128. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/extract_params.py +0 -0
  129. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/extract_request.py +0 -0
  130. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/generate_params.py +0 -0
  131. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/generate_request.py +0 -0
  132. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/repaint_params.py +0 -0
  133. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/repaint_request.py +0 -0
  134. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/_views/track_params.py +0 -0
  135. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/acestep/worker_subprocess.py +0 -0
  136. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/__init__.py +0 -0
  137. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_constants/description.py +0 -0
  138. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_helpers/attach_audiogen_progress.py +0 -0
  139. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_helpers/register.py +0 -0
  140. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_helpers/validate_generate.py +0 -0
  141. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_models/audiogen.py +0 -0
  142. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_operations/handle_generate.py +0 -0
  143. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_operations/resolve_generate_params.py +0 -0
  144. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_settings.py +0 -0
  145. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_views/generate_params.py +0 -0
  146. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/audiogen/_views/generate_request.py +0 -0
  147. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/__init__.py +0 -0
  148. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_constants/description.py +0 -0
  149. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_helpers/register.py +0 -0
  150. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_models/qwen3_5.py +0 -0
  151. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_models/qwen3_omni.py +0 -0
  152. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/apply_template.py +0 -0
  153. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/completed_hermes_tool_call_text.py +0 -0
  154. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/emit_streaming_response.py +0 -0
  155. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/ensure_streaming_detokenizer_compat.py +0 -0
  156. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/format_response.py +0 -0
  157. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/handle_chat.py +0 -0
  158. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/parse_hermes_tool_calls.py +0 -0
  159. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/parse_json_tool_calls.py +0 -0
  160. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/parse_messages.py +0 -0
  161. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/resolve_chat_params.py +0 -0
  162. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/stream_text_from_tokens.py +0 -0
  163. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_operations/strip_tool_calls.py +0 -0
  164. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_settings.py +0 -0
  165. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/apply_parallel_tool_call_policy.py +0 -0
  166. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/apply_seed.py +0 -0
  167. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/load_audio_mono.py +0 -0
  168. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/load_mlx_vlm.py +0 -0
  169. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_utils/warmup_params.py +0 -0
  170. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_views/chat_params.py +0 -0
  171. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/chat/_views/chat_request.py +0 -0
  172. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/__init__.py +0 -0
  173. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_constants/description.py +0 -0
  174. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_helpers/register.py +0 -0
  175. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_helpers/validate_estimate.py +0 -0
  176. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_models/depthpro.py +0 -0
  177. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_operations/handle_estimate.py +0 -0
  178. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_operations/is_quantize_override.py +0 -0
  179. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_operations/resolve_estimate_params.py +0 -0
  180. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_settings.py +0 -0
  181. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_views/estimate_params.py +0 -0
  182. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/depthpro/_views/estimate_request.py +0 -0
  183. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/__init__.py +0 -0
  184. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_constants/description.py +0 -0
  185. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_helpers/register.py +0 -0
  186. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_models/qwen3_text.py +0 -0
  187. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_models/qwen3_vl.py +0 -0
  188. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_operations/format_response.py +0 -0
  189. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_operations/handle_embed.py +0 -0
  190. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_operations/parse_inputs.py +0 -0
  191. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_operations/resolve_embed_params.py +0 -0
  192. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_settings.py +0 -0
  193. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_utils/to_vector.py +0 -0
  194. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_views/embed_params.py +0 -0
  195. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/embedding/_views/embed_request.py +0 -0
  196. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/__init__.py +0 -0
  197. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_constants/description.py +0 -0
  198. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_helpers/register.py +0 -0
  199. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_helpers/validate_edit.py +0 -0
  200. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_helpers/validate_generate.py +0 -0
  201. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_models/ernie.py +0 -0
  202. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/handle_edit.py +0 -0
  203. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/handle_generate.py +0 -0
  204. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/handle_train.py +0 -0
  205. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/is_quantize_override.py +0 -0
  206. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/resolve_edit_params.py +0 -0
  207. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/resolve_generate_params.py +0 -0
  208. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/resolve_lora_params.py +0 -0
  209. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/resolve_train_params.py +0 -0
  210. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_operations/validate_common.py +0 -0
  211. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_schemas/lora_ref.py +0 -0
  212. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_settings.py +0 -0
  213. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/edit_params.py +0 -0
  214. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/edit_request.py +0 -0
  215. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/generate_params.py +0 -0
  216. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/generate_request.py +0 -0
  217. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/train_params.py +0 -0
  218. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ernie/_views/train_request.py +0 -0
  219. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/__init__.py +0 -0
  220. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_constants/description.py +0 -0
  221. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_helpers/register.py +0 -0
  222. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_helpers/validate_edit.py +0 -0
  223. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_helpers/validate_generate.py +0 -0
  224. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_models/flux2.py +0 -0
  225. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/handle_edit.py +0 -0
  226. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/handle_generate.py +0 -0
  227. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/handle_train.py +0 -0
  228. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/is_quantize_override.py +0 -0
  229. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/resolve_edit_params.py +0 -0
  230. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/resolve_generate_params.py +0 -0
  231. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/resolve_lora_params.py +0 -0
  232. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/resolve_train_params.py +0 -0
  233. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/role_spec.py +0 -0
  234. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/split_repo.py +0 -0
  235. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_operations/validate_common.py +0 -0
  236. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_schemas/lora_ref.py +0 -0
  237. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_settings.py +0 -0
  238. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/edit_params.py +0 -0
  239. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/edit_request.py +0 -0
  240. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/generate_params.py +0 -0
  241. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/generate_request.py +0 -0
  242. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/train_params.py +0 -0
  243. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/flux2/_views/train_request.py +0 -0
  244. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/__init__.py +0 -0
  245. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_constants/description.py +0 -0
  246. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_helpers/register.py +0 -0
  247. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_helpers/validate_generate.py +0 -0
  248. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_models/ideogram4.py +0 -0
  249. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_operations/handle_generate.py +0 -0
  250. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_operations/is_quantize_override.py +0 -0
  251. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_operations/resolve_generate_params.py +0 -0
  252. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_settings.py +0 -0
  253. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_views/generate_params.py +0 -0
  254. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ideogram4/_views/generate_request.py +0 -0
  255. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/__init__.py +0 -0
  256. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_constants/description.py +0 -0
  257. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_helpers/register.py +0 -0
  258. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_helpers/validate_generate.py +0 -0
  259. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_models/ltx2.py +0 -0
  260. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_operations/detect_mode.py +0 -0
  261. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_operations/handle_generate.py +0 -0
  262. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_operations/resolve_generate_params.py +0 -0
  263. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_settings.py +0 -0
  264. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_views/generate_params.py +0 -0
  265. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/ltx2/_views/generate_request.py +0 -0
  266. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/__init__.py +0 -0
  267. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_constants/description.py +0 -0
  268. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_helpers/register.py +0 -0
  269. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_helpers/validate_edit.py +0 -0
  270. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_helpers/validate_generate.py +0 -0
  271. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_models/qwen.py +0 -0
  272. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/handle_edit.py +0 -0
  273. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/handle_generate.py +0 -0
  274. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/is_quantize_override.py +0 -0
  275. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/resolve_edit_params.py +0 -0
  276. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/resolve_generate_params.py +0 -0
  277. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/resolve_lora_params.py +0 -0
  278. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_operations/validate_common.py +0 -0
  279. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_schemas/lora_ref.py +0 -0
  280. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_settings.py +0 -0
  281. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_views/edit_params.py +0 -0
  282. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_views/edit_request.py +0 -0
  283. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_views/generate_params.py +0 -0
  284. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/qwen/_views/generate_request.py +0 -0
  285. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/__init__.py +0 -0
  286. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_constants/description.py +0 -0
  287. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_helpers/register.py +0 -0
  288. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_helpers/validate_upscale.py +0 -0
  289. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_models/seedvr2.py +0 -0
  290. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_operations/handle_upscale.py +0 -0
  291. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_operations/is_quantize_override.py +0 -0
  292. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_operations/resolve_upscale_params.py +0 -0
  293. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_settings.py +0 -0
  294. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_views/upscale_params.py +0 -0
  295. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/seedvr2/_views/upscale_request.py +0 -0
  296. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/__init__.py +0 -0
  297. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_constants/description.py +0 -0
  298. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_exceptions/FetchError.py +0 -0
  299. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_exceptions/SearchBackendError.py +0 -0
  300. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_helpers/register.py +0 -0
  301. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_models/crawl4ai.py +0 -0
  302. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_models/searxng.py +0 -0
  303. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/handle_fetch.py +0 -0
  304. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/handle_search.py +0 -0
  305. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/resolve_fetch_params.py +0 -0
  306. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/resolve_search_params.py +0 -0
  307. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_operations/resolve_searxng_config_dir.py +0 -0
  308. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_services/__init__.py +0 -0
  309. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_services/web_backend_process.py +0 -0
  310. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_settings.py +0 -0
  311. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/fetch_params.py +0 -0
  312. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/fetch_request.py +0 -0
  313. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/fetch_result.py +0 -0
  314. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/search_params.py +0 -0
  315. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/search_request.py +0 -0
  316. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/_views/search_response.py +0 -0
  317. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/resources/__init__.py +0 -0
  318. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/resources/searxng/__init__.py +0 -0
  319. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/web/resources/searxng/settings.yml +0 -0
  320. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/__init__.py +0 -0
  321. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_constants/description.py +0 -0
  322. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_helpers/register.py +0 -0
  323. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_helpers/validate_generate.py +0 -0
  324. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_models/zimage.py +0 -0
  325. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/handle_generate.py +0 -0
  326. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/handle_train.py +0 -0
  327. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/is_quantize_override.py +0 -0
  328. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/resolve_generate_params.py +0 -0
  329. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/resolve_lora_params.py +0 -0
  330. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_operations/resolve_train_params.py +0 -0
  331. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_schemas/lora_ref.py +0 -0
  332. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_settings.py +0 -0
  333. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_views/generate_params.py +0 -0
  334. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_views/generate_request.py +0 -0
  335. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_views/train_params.py +0 -0
  336. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/capabilities/zimage/_views/train_request.py +0 -0
  337. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/__init__.py +0 -0
  338. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/_helpers/dedupe_resources.py +0 -0
  339. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/_helpers/register_all_capabilities.py +0 -0
  340. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/_helpers/run_resources.py +0 -0
  341. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/_helpers/select_specs.py +0 -0
  342. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/activate/_operations/preflight_hf_access.py +0 -0
  343. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/activate/cli.py +0 -0
  344. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_audio_acestep_turbo.py +0 -0
  345. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_audio_acestep_xl_base.py +0 -0
  346. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_audio_audiogen_medium.py +0 -0
  347. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_chat_chat_qwen3_6_27b.py +0 -0
  348. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_chat_chat_qwen3_omni.py +0 -0
  349. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_embedding_embedding_qwen3_embedding_8b.py +0 -0
  350. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_embedding_embedding_qwen3_vl_embedding_2b.py +0 -0
  351. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_depthpro_base.py +0 -0
  352. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_ernie_base.py +0 -0
  353. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_ernie_turbo.py +0 -0
  354. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_9b.py +0 -0
  355. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_base_4b.py +0 -0
  356. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_flux2_klein_base_9b.py +0 -0
  357. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_ideogram4_fp8.py +0 -0
  358. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_qwen_edit_2509.py +0 -0
  359. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_qwen_image.py +0 -0
  360. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_seedvr2_3b.py +0 -0
  361. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_seedvr2_7b.py +0 -0
  362. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_zimage_base.py +0 -0
  363. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_image_zimage_turbo.py +0 -0
  364. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_video_ltx2_distilled.py +0 -0
  365. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_web_web_fetch.py +0 -0
  366. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_helpers/check_web_web_search.py +0 -0
  367. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_operations/build_check_result.py +0 -0
  368. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_operations/check_context.py +0 -0
  369. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_operations/create_sample_image.py +0 -0
  370. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/_schemas/check_result.py +0 -0
  371. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/check/cli.py +0 -0
  372. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/cli.py +0 -0
  373. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/cli.py +0 -0
  374. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/edit/cli.py +0 -0
  375. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/init/cli.py +0 -0
  376. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/config/show/cli.py +0 -0
  377. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/deactivate/cli.py +0 -0
  378. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/run/asgi.py +0 -0
  379. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/__init__.py +0 -0
  380. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/cli.py +0 -0
  381. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/install/cli.py +0 -0
  382. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/show/__init__.py +0 -0
  383. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/show/cli.py +0 -0
  384. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/start/cli.py +0 -0
  385. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/status/cli.py +0 -0
  386. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/stop/cli.py +0 -0
  387. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/service/uninstall/cli.py +0 -0
  388. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/cli/status/cli.py +0 -0
  389. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/app/__init__.py +0 -0
  390. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/app/_schemas/app_context.py +0 -0
  391. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/capability/__init__.py +0 -0
  392. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/capability/_schemas/capability_spec.py +0 -0
  393. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/capability/_services/capability_spec_registry.py +0 -0
  394. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/config/__init__.py +0 -0
  395. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/config/_exceptions/user_config_error.py +0 -0
  396. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/config/_helpers/get_user_settings_path.py +0 -0
  397. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/config/_helpers/load_user_settings.py +0 -0
  398. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/__init__.py +0 -0
  399. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_helpers/create_file_store.py +0 -0
  400. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_helpers/resolve_file_ref.py +0 -0
  401. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_schemas/file_data_url_ref.py +0 -0
  402. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_schemas/file_id_ref.py +0 -0
  403. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_schemas/file_record.py +0 -0
  404. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_schemas/file_url_ref.py +0 -0
  405. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_services/file_store.py +0 -0
  406. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_settings.py +0 -0
  407. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_types/file_id.py +0 -0
  408. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_types/file_ref.py +0 -0
  409. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/file/_views/resolved_file_ref.py +0 -0
  410. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/__init__.py +0 -0
  411. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_enums/job_status.py +0 -0
  412. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_helpers/creep_progress.py +0 -0
  413. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_models/job.py +0 -0
  414. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_services/job_store.py +0 -0
  415. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_services/progress_reporter.py +0 -0
  416. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_types/job_id.py +0 -0
  417. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_types/job_result.py +0 -0
  418. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/job/_types/job_type.py +0 -0
  419. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/__init__.py +0 -0
  420. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/_helpers/get_log_level.py +0 -0
  421. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/_helpers/setup_logger.py +0 -0
  422. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/_settings.py +0 -0
  423. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/logging/_types/log_level.py +0 -0
  424. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/__init__.py +0 -0
  425. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_exceptions/memory_budget_error.py +0 -0
  426. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_helpers/create_memory_manager.py +0 -0
  427. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_operations/log_memory_limit.py +0 -0
  428. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_operations/resolve_effective_memory_limit_gb.py +0 -0
  429. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_operations/resolve_framework_strategy.py +0 -0
  430. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_schemas/framework_strategy.py +0 -0
  431. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_schemas/memory_stats.py +0 -0
  432. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_schemas/resident_model.py +0 -0
  433. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_schemas/resident_model_stats.py +0 -0
  434. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_services/memory_manager.py +0 -0
  435. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_settings.py +0 -0
  436. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_types/framework_name.py +0 -0
  437. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/memory/_types/resident_key.py +0 -0
  438. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/__init__.py +0 -0
  439. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_exceptions/unknown_model_error.py +0 -0
  440. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_schemas/model_spec.py +0 -0
  441. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_services/model_registry.py +0 -0
  442. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_alias.py +0 -0
  443. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_domain.py +0 -0
  444. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_family.py +0 -0
  445. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_key.py +0 -0
  446. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_name.py +0 -0
  447. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/model/_types/model_repo.py +0 -0
  448. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/net/__init__.py +0 -0
  449. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/net/_exceptions/unsafe_url_error.py +0 -0
  450. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/net/_helpers/verify_public_url.py +0 -0
  451. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/net/_settings.py +0 -0
  452. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/__init__.py +0 -0
  453. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_exceptions/setup_required_error.py +0 -0
  454. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/docker_image_resource.py +0 -0
  455. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/hf_snapshot_resource.py +0 -0
  456. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/local_path_resource.py +0 -0
  457. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/python_package_resource.py +0 -0
  458. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/python_venv_resource.py +0 -0
  459. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/setup_status.py +0 -0
  460. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_schemas/url_file_resource.py +0 -0
  461. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_services/setup_manager.py +0 -0
  462. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_types/setup_resource.py +0 -0
  463. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/setup/_types/setup_target.py +0 -0
  464. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/workdir/__init__.py +0 -0
  465. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/workdir/_helpers/create_work_dir.py +0 -0
  466. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/workdir/_settings.py +0 -0
  467. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/__init__.py +0 -0
  468. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/_helpers/create_worker.py +0 -0
  469. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/_services/worker.py +0 -0
  470. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/_settings.py +0 -0
  471. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/core/worker/_types/job_thunk.py +0 -0
  472. {kiapi-0.5.2 → kiapi-0.6.0}/src/kiapi/py.typed +0 -0
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.6.0] - 2026-09-01
10
+
11
+ ### Removed
12
+
13
+ - **BREAKING**: Removed the relay transport. `kiapi run --relay`, the `relay-gcp` extra, the `relay` field of `/health`, and the `KIAPI_RELAY_*` settings are gone, and kiapi no longer depends on `kiapi-relay`. To reach kiapi from other machines, expose it over your own private network layer instead — for example, run `tailscale serve --bg --https=8500 8500` on the kiapi machine and point clients at `https://<machine>.<tailnet>.ts.net:8500`. Remove any `kiapi_relay*` and relay-related `kiarina.lib.google` sections from your `settings.yaml`.
14
+
15
+ ## [0.5.3] - 2026-07-30
16
+
17
+ ### Fixed
18
+
19
+ - `kiapi service install` now preserves `PATH` in the launchd property list so background capabilities can find external tools such as Homebrew FFmpeg.
20
+
9
21
  ## [0.5.2] - 2026-07-29
10
22
 
11
23
  ### Fixed
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: kiapi
3
- Version: 0.5.2
3
+ Version: 0.6.0
4
4
  Summary: Unified local inference API server for LLM agents on Apple Silicon (MLX): chat, embedding, image, music, sound-effect, and video — one process, one global memory budget, one single-flight queue, unified jobs and files.
5
5
  Project-URL: Homepage, https://github.com/kiarina/kiapi
6
6
  Project-URL: Repository, https://github.com/kiarina/kiapi
@@ -25,7 +25,6 @@ Requires-Python: <3.13,>=3.12
25
25
  Requires-Dist: click
26
26
  Requires-Dist: fastapi<0.137
27
27
  Requires-Dist: httpx
28
- Requires-Dist: kiapi-relay
29
28
  Requires-Dist: kiarina-utils-app>=2.3.0
30
29
  Requires-Dist: kiarina-utils-common>=2.2.0
31
30
  Requires-Dist: mflux>=0.18.0
@@ -45,8 +44,6 @@ Requires-Dist: torch
45
44
  Requires-Dist: torchaudio
46
45
  Requires-Dist: torchvision
47
46
  Requires-Dist: uvicorn[standard]
48
- Provides-Extra: relay-gcp
49
- Requires-Dist: kiapi-relay[gcp]; extra == 'relay-gcp'
50
47
  Description-Content-Type: text/markdown
51
48
 
52
49
  # kiapi
@@ -56,8 +53,6 @@ Description-Content-Type: text/markdown
56
53
  ![Platform](https://img.shields.io/badge/Platform-Apple%20Silicon-lightgrey.svg)
57
54
  [![API Docs](https://img.shields.io/badge/API%20Docs-GitHub%20Pages-green.svg)](https://kiarina.github.io/kiapi/)
58
55
 
59
- **English** | [日本語](README.ja.md)
60
-
61
56
  ## Summary
62
57
 
63
58
  kiapi is a local API server that uses Apple Silicon and MLX to provide generative AI capabilities for LLM agents.
@@ -66,19 +61,19 @@ kiapi is a local API server that uses Apple Silicon and MLX to provide generativ
66
61
 
67
62
  | Domain | Family | Endpoint | Description |
68
63
  |---|---|---|---|
69
- | chat | | `POST /v1/chat` | [Chat API details](./kiapi/capabilities/chat/README.md) |
70
- | embedding | | `POST /v1/embedding` | [Embedding API details](./kiapi/capabilities/embedding/README.md) |
71
- | image | zimage | `POST /v1/image/zimage` | [Z-Image API details](./kiapi/capabilities/zimage/README.md) |
72
- | | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](./kiapi/capabilities/flux2/README.md) |
73
- | | qwen | `POST /v1/image/qwen` | [Qwen Image API details](./kiapi/capabilities/qwen/README.md) |
74
- | | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](./kiapi/capabilities/ideogram4/README.md) |
75
- | | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](./kiapi/capabilities/ernie/README.md) |
76
- | | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](./kiapi/capabilities/seedvr2/README.md) |
77
- | | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](./kiapi/capabilities/depthpro/README.md) |
78
- | audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](./kiapi/capabilities/acestep/README.md) |
79
- | | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](./kiapi/capabilities/audiogen/README.md) |
80
- | video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](./kiapi/capabilities/ltx2/README.md) |
81
- | web | | `POST /v1/web` | [Web API details](./kiapi/capabilities/web/README.md) |
64
+ | chat | | `POST /v1/chat` | [Chat API details](./src/kiapi/capabilities/chat/README.md) |
65
+ | embedding | | `POST /v1/embedding` | [Embedding API details](./src/kiapi/capabilities/embedding/README.md) |
66
+ | image | zimage | `POST /v1/image/zimage` | [Z-Image API details](./src/kiapi/capabilities/zimage/README.md) |
67
+ | | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](./src/kiapi/capabilities/flux2/README.md) |
68
+ | | qwen | `POST /v1/image/qwen` | [Qwen Image API details](./src/kiapi/capabilities/qwen/README.md) |
69
+ | | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](./src/kiapi/capabilities/ideogram4/README.md) |
70
+ | | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](./src/kiapi/capabilities/ernie/README.md) |
71
+ | | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](./src/kiapi/capabilities/seedvr2/README.md) |
72
+ | | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](./src/kiapi/capabilities/depthpro/README.md) |
73
+ | audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](./src/kiapi/capabilities/acestep/README.md) |
74
+ | | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](./src/kiapi/capabilities/audiogen/README.md) |
75
+ | video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](./src/kiapi/capabilities/ltx2/README.md) |
76
+ | web | | `POST /v1/web` | [Web API details](./src/kiapi/capabilities/web/README.md) |
82
77
  | core | files | `POST /v1/files` | Upload input files, LoRA adapters, and other files, then issue a `file_id`. |
83
78
  | | | `GET /v1/files` | Return a list of stored files. |
84
79
  | | | `GET /v1/files/{file_id}` | Return file metadata. |
@@ -115,69 +110,12 @@ return 503 as an insufficient memory budget error.
115
110
  model weights and Docker images. At first, it is recommended to use `kiapi activate`
116
111
  to set up only the capabilities you need.
117
112
 
118
- ## Remote Job Relay
119
-
120
- The optional GCP relay lets a kiapi node inside a closed network receive API
121
- work without exposing an inbound socket. Firebase Realtime Database carries
122
- small notifications, while Cloud Storage carries request and response bodies.
123
- Install kiapi with the `relay-gcp` extra to enable it:
124
-
125
- ```sh
126
- python3.12 -m pip install --upgrade "kiapi[relay-gcp]"
127
- uv tool install --python 3.12 "kiapi[relay-gcp]"
128
- ```
129
-
130
- ```sh
131
- export KIAPI_RELAY_GCP_DATABASE_URL="https://PROJECT.firebaseio.com"
132
- export KIAPI_RELAY_GCP_BUCKET="PRIVATE_RELAY_BUCKET"
133
-
134
- # Uses Application Default Credentials by default.
135
- kiapi run --relay gcp
136
- ```
137
-
138
- Each node generates its own `node_id` on first start, persists it in the user
139
- data directory, and publishes a liveness heartbeat under `liveness`.
140
- A requester picks the most recently seen node and writes
141
- `sessions/{session_id}/request.json` in GCS, then writes a notification
142
- to `nodes/{node_id}/requests/{session_id}` in RTDB. The relay reports
143
- `queued`, `running`, and the terminal result below the requester node's
144
- `responses` path.
145
-
146
- - Requests are dispatched directly to the in-process FastAPI app and handled
147
- one at a time by the relay.
148
- - JSON responses use `response.json`. Binary responses write `response.body`
149
- before `response.json`.
150
- - `response.json` uses a GCS create-only generation precondition. A completed
151
- response found after restart is reported without executing the API again.
152
- - The terminal RTDB response and request deletion use one atomic multi-location
153
- update.
154
- - Startup installs a session-scoped lifecycle rule that deletes session objects
155
- after one day. Set `KIAPI_RELAY_GCP_MANAGE_BUCKET_LIFECYCLE=false` when
156
- infrastructure manages this rule.
157
-
158
- Use a dedicated bucket and narrowly scoped RTDB/GCS permissions. Google
159
- credentials are configured through
160
- [`kiarina-lib-google`](https://github.com/kiarina/kiarina-python/tree/main/packages/kiarina-lib-google).
161
-
162
- See [GCP Relay setup](../kiapi-relay/src/kiapi_relay/impl/gcp/README.md) for resource
163
- creation, IAM, authentication, configuration, and verification steps.
164
-
165
- For local relay verification without GCP, use `local`. It uses the same
166
- in-process dispatch path but stores notifications and payloads under a local
167
- directory:
168
-
169
- ```sh
170
- export KIAPI_RELAY_LOCAL_ROOT="/tmp/kiapi/relay"
171
- export KIAPI_RELAY_LOCAL_PREFIX="private/kiapi"
172
-
173
- kiapi run --relay local
174
- ```
175
-
176
- The requester writes `{root}/{prefix}/sessions/{session_id}/request.json`, then
177
- writes `{root}/{prefix}/nodes/{node_id}/requests/{session_id}.json` with
178
- `{"session_id":"...","source_node_id":"..."}`. The relay writes bridge status
179
- to `{root}/{prefix}/nodes/{source_node_id}/responses/{session_id}.json` and
180
- stores the committed response in the session directory.
113
+ ## Remote Access
114
+
115
+ kiapi binds to `127.0.0.1` by default and does not expose an inbound socket.
116
+ For access from other machines, put it behind your own private network layer —
117
+ for example `tailscale serve` for a TLS endpoint reachable only inside your
118
+ tailnet.
181
119
 
182
120
  ## Local Storage
183
121
 
@@ -5,8 +5,6 @@
5
5
  ![Platform](https://img.shields.io/badge/Platform-Apple%20Silicon-lightgrey.svg)
6
6
  [![API Docs](https://img.shields.io/badge/API%20Docs-GitHub%20Pages-green.svg)](https://kiarina.github.io/kiapi/)
7
7
 
8
- **English** | [日本語](README.ja.md)
9
-
10
8
  ## Summary
11
9
 
12
10
  kiapi is a local API server that uses Apple Silicon and MLX to provide generative AI capabilities for LLM agents.
@@ -15,19 +13,19 @@ kiapi is a local API server that uses Apple Silicon and MLX to provide generativ
15
13
 
16
14
  | Domain | Family | Endpoint | Description |
17
15
  |---|---|---|---|
18
- | chat | | `POST /v1/chat` | [Chat API details](./kiapi/capabilities/chat/README.md) |
19
- | embedding | | `POST /v1/embedding` | [Embedding API details](./kiapi/capabilities/embedding/README.md) |
20
- | image | zimage | `POST /v1/image/zimage` | [Z-Image API details](./kiapi/capabilities/zimage/README.md) |
21
- | | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](./kiapi/capabilities/flux2/README.md) |
22
- | | qwen | `POST /v1/image/qwen` | [Qwen Image API details](./kiapi/capabilities/qwen/README.md) |
23
- | | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](./kiapi/capabilities/ideogram4/README.md) |
24
- | | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](./kiapi/capabilities/ernie/README.md) |
25
- | | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](./kiapi/capabilities/seedvr2/README.md) |
26
- | | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](./kiapi/capabilities/depthpro/README.md) |
27
- | audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](./kiapi/capabilities/acestep/README.md) |
28
- | | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](./kiapi/capabilities/audiogen/README.md) |
29
- | video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](./kiapi/capabilities/ltx2/README.md) |
30
- | web | | `POST /v1/web` | [Web API details](./kiapi/capabilities/web/README.md) |
16
+ | chat | | `POST /v1/chat` | [Chat API details](./src/kiapi/capabilities/chat/README.md) |
17
+ | embedding | | `POST /v1/embedding` | [Embedding API details](./src/kiapi/capabilities/embedding/README.md) |
18
+ | image | zimage | `POST /v1/image/zimage` | [Z-Image API details](./src/kiapi/capabilities/zimage/README.md) |
19
+ | | flux2 | `POST /v1/image/flux2` | [FLUX.2 API details](./src/kiapi/capabilities/flux2/README.md) |
20
+ | | qwen | `POST /v1/image/qwen` | [Qwen Image API details](./src/kiapi/capabilities/qwen/README.md) |
21
+ | | ideogram4 | `POST /v1/image/ideogram4` | [Ideogram 4 API details](./src/kiapi/capabilities/ideogram4/README.md) |
22
+ | | ernie | `POST /v1/image/ernie` | [ERNIE-Image API details](./src/kiapi/capabilities/ernie/README.md) |
23
+ | | seedvr2 | `POST /v1/image/seedvr2` | [SeedVR2 API details](./src/kiapi/capabilities/seedvr2/README.md) |
24
+ | | depthpro | `POST /v1/image/depthpro` | [Depth Pro API details](./src/kiapi/capabilities/depthpro/README.md) |
25
+ | audio | acestep | `POST /v1/audio/acestep` | [ACE-Step API details](./src/kiapi/capabilities/acestep/README.md) |
26
+ | | audiogen | `POST /v1/audio/audiogen` | [AudioGen API details](./src/kiapi/capabilities/audiogen/README.md) |
27
+ | video | ltx2 | `POST /v1/video/ltx2` | [LTX-2 API details](./src/kiapi/capabilities/ltx2/README.md) |
28
+ | web | | `POST /v1/web` | [Web API details](./src/kiapi/capabilities/web/README.md) |
31
29
  | core | files | `POST /v1/files` | Upload input files, LoRA adapters, and other files, then issue a `file_id`. |
32
30
  | | | `GET /v1/files` | Return a list of stored files. |
33
31
  | | | `GET /v1/files/{file_id}` | Return file metadata. |
@@ -64,69 +62,12 @@ return 503 as an insufficient memory budget error.
64
62
  model weights and Docker images. At first, it is recommended to use `kiapi activate`
65
63
  to set up only the capabilities you need.
66
64
 
67
- ## Remote Job Relay
68
-
69
- The optional GCP relay lets a kiapi node inside a closed network receive API
70
- work without exposing an inbound socket. Firebase Realtime Database carries
71
- small notifications, while Cloud Storage carries request and response bodies.
72
- Install kiapi with the `relay-gcp` extra to enable it:
73
-
74
- ```sh
75
- python3.12 -m pip install --upgrade "kiapi[relay-gcp]"
76
- uv tool install --python 3.12 "kiapi[relay-gcp]"
77
- ```
78
-
79
- ```sh
80
- export KIAPI_RELAY_GCP_DATABASE_URL="https://PROJECT.firebaseio.com"
81
- export KIAPI_RELAY_GCP_BUCKET="PRIVATE_RELAY_BUCKET"
82
-
83
- # Uses Application Default Credentials by default.
84
- kiapi run --relay gcp
85
- ```
86
-
87
- Each node generates its own `node_id` on first start, persists it in the user
88
- data directory, and publishes a liveness heartbeat under `liveness`.
89
- A requester picks the most recently seen node and writes
90
- `sessions/{session_id}/request.json` in GCS, then writes a notification
91
- to `nodes/{node_id}/requests/{session_id}` in RTDB. The relay reports
92
- `queued`, `running`, and the terminal result below the requester node's
93
- `responses` path.
94
-
95
- - Requests are dispatched directly to the in-process FastAPI app and handled
96
- one at a time by the relay.
97
- - JSON responses use `response.json`. Binary responses write `response.body`
98
- before `response.json`.
99
- - `response.json` uses a GCS create-only generation precondition. A completed
100
- response found after restart is reported without executing the API again.
101
- - The terminal RTDB response and request deletion use one atomic multi-location
102
- update.
103
- - Startup installs a session-scoped lifecycle rule that deletes session objects
104
- after one day. Set `KIAPI_RELAY_GCP_MANAGE_BUCKET_LIFECYCLE=false` when
105
- infrastructure manages this rule.
106
-
107
- Use a dedicated bucket and narrowly scoped RTDB/GCS permissions. Google
108
- credentials are configured through
109
- [`kiarina-lib-google`](https://github.com/kiarina/kiarina-python/tree/main/packages/kiarina-lib-google).
110
-
111
- See [GCP Relay setup](../kiapi-relay/src/kiapi_relay/impl/gcp/README.md) for resource
112
- creation, IAM, authentication, configuration, and verification steps.
113
-
114
- For local relay verification without GCP, use `local`. It uses the same
115
- in-process dispatch path but stores notifications and payloads under a local
116
- directory:
117
-
118
- ```sh
119
- export KIAPI_RELAY_LOCAL_ROOT="/tmp/kiapi/relay"
120
- export KIAPI_RELAY_LOCAL_PREFIX="private/kiapi"
121
-
122
- kiapi run --relay local
123
- ```
124
-
125
- The requester writes `{root}/{prefix}/sessions/{session_id}/request.json`, then
126
- writes `{root}/{prefix}/nodes/{node_id}/requests/{session_id}.json` with
127
- `{"session_id":"...","source_node_id":"..."}`. The relay writes bridge status
128
- to `{root}/{prefix}/nodes/{source_node_id}/responses/{session_id}.json` and
129
- stores the committed response in the session directory.
65
+ ## Remote Access
66
+
67
+ kiapi binds to `127.0.0.1` by default and does not expose an inbound socket.
68
+ For access from other machines, put it behind your own private network layer —
69
+ for example `tailscale serve` for a TLS endpoint reachable only inside your
70
+ tailnet.
130
71
 
131
72
  ## Local Storage
132
73
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kiapi"
3
- version = "0.5.2"
3
+ version = "0.6.0"
4
4
  description = "Unified local inference API server for LLM agents on Apple Silicon (MLX): chat, embedding, image, music, sound-effect, and video — one process, one global memory budget, one single-flight queue, unified jobs and files."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12,<3.13"
@@ -47,8 +47,6 @@ dependencies = [
47
47
  "httpx", # web search capability: async HTTP client for the SearXNG backend
48
48
  "kiarina-utils-common>=2.2.0",
49
49
  "kiarina-utils-app>=2.3.0", # user directory resolution (replaces core/app internals)
50
- # --- relay (shared request/response transport, split into its own package) ---
51
- "kiapi-relay",
52
50
  # --- embedding capability (mlx-embeddings) ---
53
51
  "mlx-embeddings>=0.1.0",
54
52
  # --- sound-effect capability (mlx-audiocraft / AudioGen) ---
@@ -72,11 +70,6 @@ dependencies = [
72
70
  "pydantic-settings-manager>=3.8.0",
73
71
  ]
74
72
 
75
- [project.optional-dependencies]
76
- relay-gcp = [
77
- "kiapi-relay[gcp]",
78
- ]
79
-
80
73
  [project.scripts]
81
74
  kiapi = "kiapi.cli.cli:main"
82
75
 
@@ -8,7 +8,6 @@ if TYPE_CHECKING:
8
8
  from ._helpers.build_train_responses import build_train_responses
9
9
  from ._helpers.get_accept import get_accept
10
10
  from ._helpers.get_ctx import get_ctx
11
- from ._helpers.get_relay_runner import get_relay_runner
12
11
  from ._helpers.get_worker import get_worker
13
12
  from ._helpers.register_capability_endpoints import register_capability_endpoints
14
13
  from ._helpers.submit_and_maybe_wait import submit_and_maybe_wait
@@ -21,7 +20,6 @@ __all__ = [
21
20
  "build_train_responses",
22
21
  "get_accept",
23
22
  "get_ctx",
24
- "get_relay_runner",
25
23
  "get_worker",
26
24
  "register_capability_endpoints",
27
25
  "settings_manager",
@@ -40,7 +38,6 @@ def __getattr__(name: str) -> object:
40
38
  "build_train_responses": "._helpers.build_train_responses",
41
39
  "get_accept": "._helpers.get_accept",
42
40
  "get_ctx": "._helpers.get_ctx",
43
- "get_relay_runner": "._helpers.get_relay_runner",
44
41
  "get_worker": "._helpers.get_worker",
45
42
  "register_capability_endpoints": "._helpers.register_capability_endpoints",
46
43
  "settings_manager": "._settings",
@@ -5,7 +5,7 @@ from contextlib import asynccontextmanager
5
5
  from fastapi import FastAPI
6
6
  from fastapi.openapi.docs import get_redoc_html, get_swagger_ui_html
7
7
  from fastapi.responses import HTMLResponse
8
- from kiarina.utils.app import single_instance, user_directory
8
+ from kiarina.utils.app import single_instance
9
9
 
10
10
  from kiapi.api import build_openapi
11
11
  from kiapi.core.app import AppContext
@@ -13,12 +13,6 @@ from kiapi.core.capability import capability_spec_registry
13
13
  from kiapi.core.logging import setup_logger
14
14
  from kiapi.core.model import model_registry
15
15
  from kiapi.core.worker import create_worker
16
- from kiapi_relay import (
17
- RelayRunner,
18
- get_or_create_node_id,
19
- relay_registry,
20
- )
21
- from kiapi_relay import settings_manager as relay_settings_manager
22
16
 
23
17
  from .audio.acestep.router import router as acestep_router
24
18
  from .audio.audiogen.router import router as audiogen_router
@@ -65,11 +59,7 @@ async def lifespan(app: FastAPI): # type: ignore
65
59
  "Start the server with `kiapi run` instead of importing the ASGI app directly."
66
60
  )
67
61
 
68
- # Prevent a second kiapi from sharing this node identity and double-consuming
69
- # relay requests, then resolve the persistent node ID for this data dir.
70
62
  single_instance.acquire()
71
- data_dir = user_directory.get_user_data_dir()
72
- node_id = get_or_create_node_id(data_dir)
73
63
 
74
64
  ctx = AppContext.create()
75
65
  worker = create_worker(ctx)
@@ -80,20 +70,8 @@ async def lifespan(app: FastAPI): # type: ignore
80
70
  worker.start()
81
71
  asyncio.create_task(worker.warmup()) # noqa: RUF006
82
72
 
83
- relay_runner: RelayRunner | None = None
84
-
85
- if relay_settings_manager.get_settings().default is not None:
86
- relay = relay_registry.resolve()
87
- relay.node_id = node_id
88
- relay_runner = RelayRunner(relay, app)
89
- relay_runner.start()
90
- app.state.relay_runner = relay_runner
91
-
92
73
  yield
93
74
 
94
- if relay_runner is not None:
95
- await relay_runner.stop()
96
-
97
75
  await worker.stop()
98
76
  single_instance.release()
99
77
 
@@ -1,7 +1,6 @@
1
1
  from pydantic import BaseModel, Field
2
2
 
3
3
  from kiapi.core.memory import MemoryStats
4
- from kiapi_relay import RelayHealth
5
4
 
6
5
 
7
6
  class HealthResponse(BaseModel):
@@ -25,10 +24,3 @@ class HealthResponse(BaseModel):
25
24
  ...,
26
25
  description="Resident model memory budget and loaded model snapshot.",
27
26
  )
28
- relay: RelayHealth | None = Field(
29
- default=None,
30
- description=(
31
- "Status of the relay started with the API server. "
32
- "Null when no relay is configured."
33
- ),
34
- )
@@ -1,9 +1,8 @@
1
1
  from fastapi import APIRouter, Depends
2
2
 
3
- from kiapi.api import get_ctx, get_relay_runner, get_worker
3
+ from kiapi.api import get_ctx, get_worker
4
4
  from kiapi.core.app import AppContext
5
5
  from kiapi.core.worker import Worker
6
- from kiapi_relay import RelayRunner
7
6
 
8
7
  from ._views.health_response import HealthResponse
9
8
 
@@ -14,19 +13,16 @@ router = APIRouter()
14
13
  async def health(
15
14
  ctx: AppContext = Depends(get_ctx),
16
15
  worker: Worker = Depends(get_worker),
17
- relay_runner: RelayRunner | None = Depends(get_relay_runner),
18
16
  ) -> dict:
19
- """Inspect server readiness, queue depth, resident model memory, and relay.
17
+ """Inspect server readiness, queue depth, and resident model memory.
20
18
 
21
19
  Use this endpoint to see whether warmup has finished, how many jobs are
22
- queued behind the single-flight worker, which resident models currently
23
- count against the global memory budget, and whether the relay started with
24
- the server is running.
20
+ queued behind the single-flight worker, and which resident models currently
21
+ count against the global memory budget.
25
22
  """
26
23
  return {
27
24
  "status": "ok",
28
25
  "warm": worker.warm,
29
26
  "queue_len": worker.queue.qsize(),
30
27
  "memory": ctx.memory_manager.stats(),
31
- "relay": relay_runner.status() if relay_runner is not None else None,
32
28
  }
@@ -1,7 +1,5 @@
1
1
  # acestep
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5) provides the following functions.
6
4
  - Music generation
7
5
  - Style conversion of existing songs
@@ -159,7 +157,7 @@ curl -sS -X POST http://localhost:${PORT:-8000}/v1/audio/acestep/extract \
159
157
  --data-binary @-
160
158
  )
161
159
 
162
- # 各音源をダウンロード(stems[] にターゲット名が入る)
160
+ # Download each stem (stems[] carries the target name)
163
161
  echo "$RESP" | jq -c '.result.stems[]' | while read -r s; do
164
162
  TARGET=$(echo "$s" | jq -r .target); FID=$(echo "$s" | jq -r .file_id)
165
163
  curl -o "${TARGET}.wav" http://localhost:${PORT:-8000}/v1/files/$FID/download
@@ -1,7 +1,5 @@
1
1
  # audiogen
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [AudioGen](https://huggingface.co/facebook/audiogen-medium) provides sound effect generation functionality.
6
4
 
7
5
  ## API
@@ -1,7 +1,5 @@
1
1
  # chat
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mlx-vlm](https://github.com/Blaizzy/mlx-vlm) provides an OpenAI-compatible chat completion API.
6
4
 
7
5
  - **vlm** (text + image):
@@ -1,7 +1,5 @@
1
1
  # depthpro
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mflux Depth Pro](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/depth_pro/README.md) estimates a depth map from a single image and produces the following:
6
4
 
7
5
  - Depth map in grayscale PNG
@@ -1,7 +1,5 @@
1
1
  # embedding
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mlx-embeddings](https://github.com/Blaizzy/mlx-embeddings) provides a text/image embedding API.
6
4
 
7
5
  - **text embedding**:
@@ -1,7 +1,5 @@
1
1
  # ernie
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mflux ERNIE-Image](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/ernie_image/README.md) provides image generation, image editing, and LoRA fine tuning functions.
6
4
 
7
5
  - **generate**: Generate image from text
@@ -1,7 +1,5 @@
1
1
  # flux2
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mflux FLUX.2 Klein](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/flux2/README.md) provides image generation, image editing, and LoRA learning functions.
6
4
 
7
5
  - **generate**:
@@ -1,7 +1,5 @@
1
1
  # ideogram4
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mflux Ideogram 4 FP8](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/ideogram4/README.md) provides typography-friendly text image generation functionality.
6
4
  Ideogram 4 is a model suitable for situations where you want to handle text, signs, labels, logo-like text, etc. in images.
7
5
  kiapi only exposes txt2img and saves the generated results as Files API artifacts.
@@ -1,7 +1,5 @@
1
1
  # ltx2
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mlx-video LTX-2](https://github.com/Blaizzy/mlx-video) provides short video generation functionality.
6
4
 
7
5
  - **T2V**: Generate video from text
@@ -1,7 +1,5 @@
1
1
  # qwen
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mflux Qwen Image](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/qwen/README.md) provides image generation and image editing functions.
6
4
  Qwen Image is a strong model for multilingual prompts and text in images.
7
5
 
@@ -1,7 +1,5 @@
1
1
  # seedvr2
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mflux SeedVR2](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/seedvr2/README.md) provides single-image diffusion-based super-resolution/upscaling functionality.
6
4
  SeedVR2 is an image-to-image super-resolution model that reconstructs details based on input images rather than prompt-driven image generation.
7
5
 
@@ -1,7 +1,5 @@
1
1
  # web
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  **web capability** for using SearXNG and Crawl4AI from kiapi.
6
4
 
7
5
  - **search**: Search the web with SearXNG and return JSON search results.
@@ -1,7 +1,5 @@
1
1
  # zimage
2
2
 
3
- **English** | [日本語](README.ja.md)
4
-
5
3
  [mflux Z-Image](https://github.com/filipstrand/mflux/blob/main/src/mflux/models/z_image/README.md) provides image generation and LoRA fine-tuning functionality.
6
4
 
7
5
  Z-Image is a relatively lightweight image generation model.
@@ -10,10 +10,6 @@ _SETTINGS_IMPORT_PATHS = [
10
10
  "kiapi.core.memory",
11
11
  "kiapi.core.worker",
12
12
  "kiapi.core.net",
13
- "kiapi_relay",
14
- "kiapi_relay.impl.gcp",
15
- "kiapi_relay.impl.local",
16
- "kiarina.lib.google",
17
13
  "kiapi.capabilities.chat",
18
14
  "kiapi.capabilities.embedding",
19
15
  "kiapi.capabilities.depthpro",
@@ -7,22 +7,15 @@ from kiapi.api import settings_manager as api_settings_manager
7
7
  from kiapi.cli import register_all_capabilities
8
8
  from kiapi.core.logging import get_log_level
9
9
  from kiapi.core.logging import settings_manager as logging_settings_manager
10
- from kiapi_relay import settings_manager as relay_settings_manager
11
10
 
12
11
 
13
12
  @click.command()
14
13
  @click.option("--host", type=str, help="Bind socket to this host")
15
14
  @click.option("--port", type=int, help="Bind socket to this port")
16
- @click.option(
17
- "--relay",
18
- type=str,
19
- help="Start a relay, for example: gcp. Pass 'none' to disable the relay.",
20
- )
21
15
  @click.option("--debug", is_flag=True, help="Enable debug logging and hot reload")
22
16
  def run(
23
17
  host: str | None,
24
18
  port: int | None,
25
- relay: str | None,
26
19
  debug: bool,
27
20
  ) -> None:
28
21
  """Run the kiapi API server."""
@@ -36,11 +29,6 @@ def run(
36
29
  if api_cli_args:
37
30
  api_settings_manager.cli_args = api_cli_args
38
31
 
39
- if relay is not None:
40
- relay_settings_manager.cli_args = {
41
- "default": None if relay == "none" else relay
42
- }
43
-
44
32
  settings = api_settings_manager.get_settings()
45
33
 
46
34
  if debug:
@@ -49,9 +37,6 @@ def run(
49
37
  # in-process cli_args, so propagate the log level via the environment.
50
38
  os.environ["KIAPI_LOG_LEVEL"] = "DEBUG"
51
39
 
52
- if relay is not None:
53
- os.environ["KIAPI_RELAY_DEFAULT"] = relay
54
-
55
40
  # Hot reload requires an import string (the worker subprocess
56
41
  # re-imports the app), so use the ASGI factory that registers
57
42
  # capabilities on import.
@@ -62,7 +62,7 @@ def install() -> None:
62
62
  def _build_environment_variables() -> dict[str, str]:
63
63
  env = {"PYTHONUNBUFFERED": "1"}
64
64
 
65
- for name in ("XDG_CACHE_HOME", "XDG_CONFIG_HOME", "XDG_DATA_HOME"):
65
+ for name in ("PATH", "XDG_CACHE_HOME", "XDG_CONFIG_HOME", "XDG_DATA_HOME"):
66
66
  value = os.environ.get(name)
67
67
  if value:
68
68
  env[name] = value