programasweights 0.1.0.dev9__tar.gz → 0.1.0.dev10__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 (491) hide show
  1. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/AGENTS.md +1 -1
  2. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/PKG-INFO +2 -2
  3. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/PYPI_README.md +1 -1
  4. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/getting-started/installation.md +6 -8
  5. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/index.md +1 -1
  6. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/__init__.py +1 -1
  7. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/cache.py +7 -2
  8. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/cli.py +9 -4
  9. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/pyproject.toml +1 -1
  10. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/routes/infer.py +1 -1
  11. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/routes/programs.py +67 -49
  12. programasweights-0.1.0.dev10/tests/test_sdk.py +330 -0
  13. programasweights-0.1.0.dev10/tests/test_sdk.sh +89 -0
  14. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/AgentsPage.tsx +4 -3
  15. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/DocsPage.tsx +6 -6
  16. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/LandingPage.tsx +1 -1
  17. programasweights-0.1.0.dev9/tests/test_programasweights.py +0 -239
  18. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/.cursor/rules/vllm-deployment.mdc +0 -0
  19. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/.git +0 -0
  20. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/.github/workflows/web-sdk.yml +0 -0
  21. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/.gitignore +0 -0
  22. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/.gitmodules +0 -0
  23. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/.hatch_build.toml +0 -0
  24. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/.readthedocs.yaml +0 -0
  25. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/1apple.jpg +0 -0
  26. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/1apple2.jpg +0 -0
  27. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/2apples.jpg +0 -0
  28. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/2apples2.jpg +0 -0
  29. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/3apples.jpg +0 -0
  30. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/3apples2.jpg +0 -0
  31. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/479400.png +0 -0
  32. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/4apples.jpg +0 -0
  33. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/4apples2.jpg +0 -0
  34. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/4apples3.jpg +0 -0
  35. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/4apples4.jpg +0 -0
  36. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/5apples.jpg +0 -0
  37. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/6apples.jpg +0 -0
  38. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/8apples.jpg +0 -0
  39. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/9apples.jpg +0 -0
  40. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/FLOW_SUMMARY.md +0 -0
  41. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/MANIFEST.in +0 -0
  42. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/ONNX_MIGRATION_PLAN.md +0 -0
  43. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/PREFIX_TOKENS_DESIGN.md +0 -0
  44. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/README.md +0 -0
  45. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/TRUNCATION_CHANGES.md +0 -0
  46. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/USE_CASES_AND_IDEAS.md +0 -0
  47. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/VERIFICATION_USAGE.md +0 -0
  48. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/analyze_dataset.py +0 -0
  49. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/analyze_lengths.py +0 -0
  50. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/code_prompt.md +0 -0
  51. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/evaluate_openai_python_code_baseline.py +0 -0
  52. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/openai_batch_request.py +0 -0
  53. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/prepare_alchemist_data.py +0 -0
  54. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/prepare_var_bench_data.py +0 -0
  55. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/python_code_sandbox.py +0 -0
  56. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/script_evaluation_var_bench.sh +0 -0
  57. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/script_evalution_evaluation.sh +0 -0
  58. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/script_evalution_request.sh +0 -0
  59. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/baselines/script_evalution_statistics.sh +0 -0
  60. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/benchmark_pytorch_vs_onnx.py +0 -0
  61. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/benchmark_user_experience.py +0 -0
  62. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/check_dataset.py +0 -0
  63. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/combine_datasets.py +0 -0
  64. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/compare_datasets.py +0 -0
  65. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/compare_old_vs_regen.py +0 -0
  66. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/convert_paw_to_svg.py +0 -0
  67. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/create_favicon_sizes.py +0 -0
  68. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/create_visualization_from_log.py +0 -0
  69. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/create_vqa_dataset.py +0 -0
  70. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/debug_cache.py +0 -0
  71. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/debug_eos_example.sh +0 -0
  72. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/adr/001-llama-cpp-over-pytorch.md +0 -0
  73. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/adr/002-q4_0-adapter-format.md +0 -0
  74. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/adr/003-single-spec-field.md +0 -0
  75. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/adr/004-compiler-naming.md +0 -0
  76. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/adr/005-vllm-hidden-states.md +0 -0
  77. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/adr/006-email-api-key-auth.md +0 -0
  78. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/advanced/adrs.md +0 -0
  79. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/advanced/architecture.md +0 -0
  80. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/api-reference/cli.md +0 -0
  81. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/api-reference/python-sdk.md +0 -0
  82. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/api-reference/rest-api.md +0 -0
  83. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/architecture.md +0 -0
  84. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/getting-started/first-program.md +0 -0
  85. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/getting-started/naming-programs.md +0 -0
  86. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/guide/browser-inference.md +0 -0
  87. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/guide/how-it-works.md +0 -0
  88. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/guide/local-inference.md +0 -0
  89. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/guide/writing-good-specs.md +0 -0
  90. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/hub/browsing-programs.md +0 -0
  91. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/hub/feedback-cases.md +0 -0
  92. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/hub/publishing-programs.md +0 -0
  93. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/docs/requirements.txt +0 -0
  94. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/estimate_data_gen_cost.py +0 -0
  95. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/eval.py +0 -0
  96. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/examples/flask_app.py +0 -0
  97. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/examples/jupyter_notebook.py +0 -0
  98. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/examples/langchain_integration.py +0 -0
  99. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/examples/replace_openai.py +0 -0
  100. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/export_to_onnx.py +0 -0
  101. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/extract_models.py +0 -0
  102. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/inspect_data_dirs.py +0 -0
  103. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/latest_export.csv +0 -0
  104. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/log.train.81920.morecategories.extraprefix +0 -0
  105. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/main_no_spec_direct_ans_mix_continuous_sampleref_shorterprompt_vllm.py +0 -0
  106. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/merge_datasets.py +0 -0
  107. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/mkdocs.yml +0 -0
  108. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/paw.png +0 -0
  109. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/paw.svg +0 -0
  110. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/process_im2latex_dataset.py +0 -0
  111. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/artifacts.py +0 -0
  112. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/client.py +0 -0
  113. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/compiler/__init__.py +0 -0
  114. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/compiler/dummy.py +0 -0
  115. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/config.py +0 -0
  116. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/convert_peft_to_paw.py +0 -0
  117. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/paw_format.py +0 -0
  118. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/runtime/__init__.py +0 -0
  119. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/runtime/interpreter.py +0 -0
  120. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/runtime/interpreter_onnx.py +0 -0
  121. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights/runtime_llamacpp.py +0 -0
  122. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/__init__.py +0 -0
  123. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/compiler/__init__.py +0 -0
  124. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/lora_format.py +0 -0
  125. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/runtime/__init__.py +0 -0
  126. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/runtime/interpreter_lora.py +0 -0
  127. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/tests/test_compile_and_run.py +0 -0
  128. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/tests/test_lora_format.py +0 -0
  129. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/tests/test_training.py +0 -0
  130. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/train_lora.py +0 -0
  131. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/training/__init__.py +0 -0
  132. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/programasweights_lora/training/loops/lora_tuning_sft.py +0 -0
  133. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/run_eval.sh +0 -0
  134. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/run_training.sh +0 -0
  135. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/scripts/filter_table_by_length.py +0 -0
  136. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/.env.example +0 -0
  137. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/alembic/env.py +0 -0
  138. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/alembic/script.py.mako +0 -0
  139. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/alembic/versions/001_initial_schema.py +0 -0
  140. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/alembic/versions/002_namespaced_aliases_hf_url.py +0 -0
  141. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/alembic/versions/003_fulltext_search_ranking.py +0 -0
  142. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/alembic/versions/004_fix_alias_slug_constraint.py +0 -0
  143. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/alembic.ini +0 -0
  144. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/__init__.py +0 -0
  145. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/config.py +0 -0
  146. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/dependencies.py +0 -0
  147. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/logging_config.py +0 -0
  148. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/main.py +0 -0
  149. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/middleware/__init__.py +0 -0
  150. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/middleware/rate_limit.py +0 -0
  151. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/models/__init__.py +0 -0
  152. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/models/database.py +0 -0
  153. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/models/orm.py +0 -0
  154. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/models/schemas.py +0 -0
  155. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/routes/__init__.py +0 -0
  156. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/routes/auth.py +0 -0
  157. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/routes/compile.py +0 -0
  158. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/routes/feedback.py +0 -0
  159. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/routes/health.py +0 -0
  160. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/routes/models_info.py +0 -0
  161. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/services/__init__.py +0 -0
  162. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/services/auto_tag_service.py +0 -0
  163. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/services/auto_title_service.py +0 -0
  164. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/services/compile_provider.py +0 -0
  165. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/services/compile_service.py +0 -0
  166. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/services/infer_service.py +0 -0
  167. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/services/search_service.py +0 -0
  168. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/api/services/storage_service.py +0 -0
  169. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/benchmarks/benchmark_api.py +0 -0
  170. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/benchmarks/handcrafted_specs.json +0 -0
  171. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/benchmarks/last_benchmark_results.json +0 -0
  172. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/benchmarks/last_stress_results.json +0 -0
  173. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/benchmarks/stress_test.py +0 -0
  174. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/compiler_registry.json +0 -0
  175. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/provider_configs/gpt2.json +0 -0
  176. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/provider_configs/qwen3-0.6b.json +0 -0
  177. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/requirements.txt +0 -0
  178. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/ab_test_hf_vs_vllm.py +0 -0
  179. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/ablation_search.py +0 -0
  180. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/backfill_hf_browser_assets.py +0 -0
  181. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/backfill_hf_safetensors.py +0 -0
  182. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/backfill_interestingness.py +0 -0
  183. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/backfill_tags.py +0 -0
  184. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/backfill_titles.py +0 -0
  185. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/benchmark_gpt2.py +0 -0
  186. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/cleanup_storage.py +0 -0
  187. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/eval_search.py +0 -0
  188. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/evict_cold_programs.py +0 -0
  189. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/generate_prefix_cache.py +0 -0
  190. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/launch_gpt2_compiler.py +0 -0
  191. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/launch_qwen3_compiler.py +0 -0
  192. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/patch_vllm.sh +0 -0
  193. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/restart.sh +0 -0
  194. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/start_all.sh +0 -0
  195. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/start_gpt2_services.sh +0 -0
  196. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/start_provider.sh +0 -0
  197. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/scripts/start_services.sh +0 -0
  198. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/__init__.py +0 -0
  199. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/conftest.py +0 -0
  200. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/test_auth.py +0 -0
  201. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/test_compile.py +0 -0
  202. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/test_errors.py +0 -0
  203. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/test_infer.py +0 -0
  204. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/test_integration_gpu.py +0 -0
  205. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/test_rate_limit.py +0 -0
  206. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/tests/test_storage.py +0 -0
  207. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/vllm_models/__init__.py +0 -0
  208. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/vllm_models/gpt2_lora_patch.py +0 -0
  209. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/vllm_models/paw_compiler.py +0 -0
  210. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/vllm_models/prepare_checkpoint.py +0 -0
  211. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/server/vllm_models/register.py +0 -0
  212. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.rollout_ppl.png +0 -0
  213. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.em_es.png +0 -0
  214. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.ppl.png +0 -0
  215. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.reward.png +0 -0
  216. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_1spec.py +0 -0
  217. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_all_caching.py +0 -0
  218. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_apple_count.py +0 -0
  219. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_batch_pilot.py +0 -0
  220. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_compile.py +0 -0
  221. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_e2e.py +0 -0
  222. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_execute.py +0 -0
  223. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_nspecs.py +0 -0
  224. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_one_vs_two_step.py +0 -0
  225. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_onnx_correctness.py +0 -0
  226. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_onnx_hf_model.py +0 -0
  227. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_onnx_hf_with_images.py +0 -0
  228. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_paw_format.py +0 -0
  229. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/test_thinking_comparison.py +0 -0
  230. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/tests/test_offline_cache.py +0 -0
  231. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/train.py +0 -0
  232. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/train_no_spec_direct_ans_mix_continuous_sampleref_trainonly_shorterprompt_withregularizer_generate_lora.py +0 -0
  233. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/README.md +0 -0
  234. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/__init__.py +0 -0
  235. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/DATASET_CHANGELOG.md +0 -0
  236. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/README.md +0 -0
  237. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/VERIFICATION_PIPELINE.md +0 -0
  238. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/build_user_bench.py +0 -0
  239. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/dry_run_batch.py +0 -0
  240. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/filter_test_data.py +0 -0
  241. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/generate_specs.py +0 -0
  242. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/generate_specs_batch.py +0 -0
  243. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/incremental_merge.py +0 -0
  244. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/merge_and_upload.py +0 -0
  245. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/regenerate_outputs_batch.py +0 -0
  246. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/synthesize_data.py +0 -0
  247. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/synthesize_data_batch.py +0 -0
  248. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/filter_system.txt +0 -0
  249. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/filter_user.txt +0 -0
  250. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/pairs_system.txt +0 -0
  251. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/pairs_user.txt +0 -0
  252. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/specs_system.txt +0 -0
  253. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/specs_user.txt +0 -0
  254. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/specs_user_freeform.txt +0 -0
  255. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/specs_user_freeform_with_examples.txt +0 -0
  256. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/specs_user_with_examples.txt +0 -0
  257. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/verify_system.txt +0 -0
  258. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates/verify_user.txt +0 -0
  259. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/filter_system.txt +0 -0
  260. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/filter_user.txt +0 -0
  261. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/pairs_system.txt +0 -0
  262. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/pairs_user.txt +0 -0
  263. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/specs_system.txt +0 -0
  264. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/specs_user.txt +0 -0
  265. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/specs_user_freeform.txt +0 -0
  266. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/specs_user_freeform_with_examples.txt +0 -0
  267. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/specs_user_with_examples.txt +0 -0
  268. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/verify_system.txt +0 -0
  269. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/templates_old/verify_user.txt +0 -0
  270. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/data_generation/verify_test_data.py +0 -0
  271. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/datasets/__init__.py +0 -0
  272. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/datasets/jsonl_text_pairs.py +0 -0
  273. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/loops/__init__.py +0 -0
  274. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/training/loops/prefix_tuning_sft.py +0 -0
  275. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/ttt.py +0 -0
  276. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/upload_model.py +0 -0
  277. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/upload_onnx_to_huggingface.py +0 -0
  278. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/upload_onnx_to_huggingface_with_token.py +0 -0
  279. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/utils.py +0 -0
  280. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/HANDOFF.md +0 -0
  281. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/README.md +0 -0
  282. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/__init__.py +0 -0
  283. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/config.py +0 -0
  284. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/main.py +0 -0
  285. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/middleware/__init__.py +0 -0
  286. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/middleware/rate_limit.py +0 -0
  287. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/models.py +0 -0
  288. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/__init__.py +0 -0
  289. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/auth_service.py +0 -0
  290. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/case_service.py +0 -0
  291. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/compiler_service.py +0 -0
  292. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/gpt_service.py +0 -0
  293. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/hub_service.py +0 -0
  294. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/image_service.py +0 -0
  295. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/interpreter_service.py +0 -0
  296. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/services/sql_manager.py +0 -0
  297. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/templates/gpt_test_generation.txt +0 -0
  298. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/utils/__init__.py +0 -0
  299. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/utils/image_placeholders.py +0 -0
  300. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/app/utils/program_hash.py +0 -0
  301. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/clear_db.sh +0 -0
  302. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/clear_tables.sql +0 -0
  303. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/data/programs.db +0 -0
  304. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/env_example.txt +0 -0
  305. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/example_images/README.md +0 -0
  306. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/get_data_examples.py +0 -0
  307. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/requirements.txt +0 -0
  308. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/run_server.py +0 -0
  309. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_analytics_tables.sql +0 -0
  310. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_auth_tables.sql +0 -0
  311. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_cache_tables.sql +0 -0
  312. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_cases_tables.sql +0 -0
  313. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_database.sql +0 -0
  314. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_database_simple.sql +0 -0
  315. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_db.sh +0 -0
  316. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_example_images.py +0 -0
  317. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/setup_hub_tables.sql +0 -0
  318. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/backend/test_compilation_cache.py +0 -0
  319. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/README.md +0 -0
  320. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/e2e/full.spec.ts +0 -0
  321. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/e2e/helpers.ts +0 -0
  322. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/e2e/smoke.spec.ts +0 -0
  323. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/eslint.config.js +0 -0
  324. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/index.html +0 -0
  325. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/package-lock.json +0 -0
  326. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/package.json +0 -0
  327. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/playwright.config.ts +0 -0
  328. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/postcss.config.js +0 -0
  329. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/apple-touch-icon.png +0 -0
  330. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/browser-worker.html +0 -0
  331. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/favicon-16x16.png +0 -0
  332. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/favicon-32x32.png +0 -0
  333. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/paw-192.png +0 -0
  334. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/paw-512.png +0 -0
  335. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/paw.svg +0 -0
  336. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/react-test.html +0 -0
  337. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/test.html +0 -0
  338. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/public/vite.svg +0 -0
  339. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/scripts/deploy.sh +0 -0
  340. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/App.css +0 -0
  341. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/App.tsx +0 -0
  342. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/assets/react.svg +0 -0
  343. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/AboutPage.tsx +0 -0
  344. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/AuthorPage.tsx +0 -0
  345. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/BrowserPage.tsx +0 -0
  346. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/CasesSection.tsx +0 -0
  347. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/CompileButtonWithConfig.tsx +0 -0
  348. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/CompileSection.tsx +0 -0
  349. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/ExamplesInput.tsx +0 -0
  350. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/Footer.tsx +0 -0
  351. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/Header.tsx +0 -0
  352. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/HubPage.tsx +0 -0
  353. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/HubProgramPage.tsx +0 -0
  354. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/HubUploadPage.tsx +0 -0
  355. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/MainInterface.tsx +0 -0
  356. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/ModelSelector.tsx +0 -0
  357. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/NavigationHelper.tsx +0 -0
  358. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/PrivacyPage.tsx +0 -0
  359. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/ProfilePage.tsx +0 -0
  360. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/SettingsPage.tsx +0 -0
  361. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/SpecSuggestions.tsx +0 -0
  362. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/TermsPage.tsx +0 -0
  363. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/components/TestSection.tsx +0 -0
  364. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/index.css +0 -0
  365. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/main.tsx +0 -0
  366. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/types/index.ts +0 -0
  367. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/src/utils/api.ts +0 -0
  368. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/tailwind.config.js +0 -0
  369. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/test-results/.last-run.json +0 -0
  370. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/tsconfig.app.json +0 -0
  371. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/tsconfig.json +0 -0
  372. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/tsconfig.node.json +0 -0
  373. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/frontend/vite.config.ts +0 -0
  374. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/nginx-paw.conf +0 -0
  375. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/nginx.conf +0 -0
  376. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/setup_mysql.sh +0 -0
  377. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/start.sh +0 -0
  378. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/test_setup.py +0 -0
  379. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-app/ttt.py +0 -0
  380. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/.gitignore +0 -0
  381. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/README.md +0 -0
  382. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/__tests__/loader.test.ts +0 -0
  383. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/__tests__/prompt.test.ts +0 -0
  384. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/examples/basic.html +0 -0
  385. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/package-lock.json +0 -0
  386. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/package.json +0 -0
  387. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/serve.py +0 -0
  388. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/src/index.ts +0 -0
  389. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/src/loader.ts +0 -0
  390. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/src/runtime.ts +0 -0
  391. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/src/types.ts +0 -0
  392. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/test-standalone.html +0 -0
  393. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/tsconfig.json +0 -0
  394. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/vitest.config.ts +0 -0
  395. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.git +0 -0
  396. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.github/workflows/build-hf-space.yml +0 -0
  397. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.github/workflows/ci.yml +0 -0
  398. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.github/workflows/generate-docs.yml +0 -0
  399. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.github/workflows/verify-generated-code.yml +0 -0
  400. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.gitignore +0 -0
  401. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.gitmodules +0 -0
  402. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.npmignore +0 -0
  403. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/.prettierignore +0 -0
  404. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/CMakeLists.txt +0 -0
  405. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/LICENCE +0 -0
  406. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/README.md +0 -0
  407. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/README_banner.png +0 -0
  408. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/assets/screenshot_0.png +0 -0
  409. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/actions.hpp +0 -0
  410. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/generate_glue_prototype.js +0 -0
  411. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/glue.hpp +0 -0
  412. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/helpers/wcommon.cpp +0 -0
  413. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/helpers/wcommon.h +0 -0
  414. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/helpers/wlog.cpp +0 -0
  415. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/helpers/wlog.h +0 -0
  416. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/helpers/wsampling.cpp +0 -0
  417. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/helpers/wsampling.h +0 -0
  418. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/test_glue.cpp +0 -0
  419. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/cpp/wllama.cpp +0 -0
  420. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/basic/index.html +0 -0
  421. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/embeddings/index.html +0 -0
  422. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/.eslintrc.cjs +0 -0
  423. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/.gitignore +0 -0
  424. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/README.md +0 -0
  425. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/index.html +0 -0
  426. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/package-lock.json +0 -0
  427. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/package.json +0 -0
  428. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/postcss.config.js +0 -0
  429. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/public/favicon.ico +0 -0
  430. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/public/wllama.png +0 -0
  431. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/App.tsx +0 -0
  432. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/components/ChatScreen.tsx +0 -0
  433. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/components/GuideScreen.tsx +0 -0
  434. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/components/LogScreen.tsx +0 -0
  435. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/components/MarkdownMessage.tsx +0 -0
  436. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/components/ModelScreen.tsx +0 -0
  437. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/components/Navbar.tsx +0 -0
  438. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/components/ScreenWrapper.tsx +0 -0
  439. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/components/Sidebar.tsx +0 -0
  440. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/config.ts +0 -0
  441. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/index.css +0 -0
  442. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/main.tsx +0 -0
  443. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/benchmark.ts +0 -0
  444. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/custom-models.tsx +0 -0
  445. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/displayed-model.tsx +0 -0
  446. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/messages.context.tsx +0 -0
  447. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/nl2br.tsx +0 -0
  448. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/types.ts +0 -0
  449. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/use-interval-when.ts +0 -0
  450. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/utils.ts +0 -0
  451. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/utils/wllama.context.tsx +0 -0
  452. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/src/vite-env.d.ts +0 -0
  453. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/tailwind.config.cjs +0 -0
  454. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/tsconfig.app.json +0 -0
  455. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/tsconfig.json +0 -0
  456. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/tsconfig.node.json +0 -0
  457. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/examples/main/vite.config.ts +0 -0
  458. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/guides/intro-v2.md +0 -0
  459. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/index.ts +0 -0
  460. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/package-lock.json +0 -0
  461. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/package.json +0 -0
  462. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/scripts/build_hf_space.sh +0 -0
  463. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/scripts/build_wasm.sh +0 -0
  464. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/scripts/build_worker.sh +0 -0
  465. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/scripts/docker-compose.yml +0 -0
  466. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/scripts/generate_wasm_from_cdn.js +0 -0
  467. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/scripts/http_server.js +0 -0
  468. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/scripts/post_build.sh +0 -0
  469. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/cache-manager.ts +0 -0
  470. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/glue/glue.ts +0 -0
  471. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/glue/messages.ts +0 -0
  472. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/index.ts +0 -0
  473. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/mjs.test.ts +0 -0
  474. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/model-manager.test.ts +0 -0
  475. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/model-manager.ts +0 -0
  476. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/multi-thread/wllama.js +0 -0
  477. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/multi-thread/wllama.wasm +0 -0
  478. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/single-thread/wllama.js +0 -0
  479. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/single-thread/wllama.wasm +0 -0
  480. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/utils.test.ts +0 -0
  481. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/utils.ts +0 -0
  482. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/wasm-from-cdn.ts +0 -0
  483. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/wllama.test.ts +0 -0
  484. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/wllama.ts +0 -0
  485. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/worker.ts +0 -0
  486. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/workers-code/generated.ts +0 -0
  487. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/workers-code/llama-cpp.js +0 -0
  488. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/src/workers-code/opfs-utils.js +0 -0
  489. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/tsconfig.build.json +0 -0
  490. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/tsup.config.ts +0 -0
  491. {programasweights-0.1.0.dev9 → programasweights-0.1.0.dev10}/web-sdk/wllama/vitest.config.ts +0 -0
@@ -8,7 +8,7 @@ Docs: https://programasweights.readthedocs.io
8
8
  ## Install
9
9
 
10
10
  ```bash
11
- pip install --pre programasweights
11
+ pip install --pre programasweights --extra-index-url https://pypi.programasweights.com/simple/
12
12
  ```
13
13
 
14
14
  ## Usage
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: programasweights
3
- Version: 0.1.0.dev9
3
+ Version: 0.1.0.dev10
4
4
  Summary: Compile natural language specifications into neural programs that run locally via llama.cpp.
5
5
  Project-URL: Homepage, https://programasweights.com
6
6
  Project-URL: Repository, https://github.com/programasweights/programasweights-python
@@ -36,7 +36,7 @@ Define what a function should do in plain English. PAW compiles it into a small
36
36
  ## Install
37
37
 
38
38
  ```bash
39
- pip install programasweights
39
+ pip install programasweights --extra-index-url https://pypi.programasweights.com/simple/
40
40
  ```
41
41
 
42
42
  ## Quick Start
@@ -7,7 +7,7 @@ Define what a function should do in plain English. PAW compiles it into a small
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- pip install programasweights
10
+ pip install programasweights --extra-index-url https://pypi.programasweights.com/simple/
11
11
  ```
12
12
 
13
13
  ## Quick Start
@@ -3,23 +3,21 @@
3
3
  Install the ProgramAsWeights SDK from PyPI:
4
4
 
5
5
  ```bash
6
- pip install --pre programasweights
6
+ pip install --pre programasweights --extra-index-url https://pypi.programasweights.com/simple/
7
7
  ```
8
8
 
9
- ## Requirements
10
-
11
- - **Python:** 3.9 through 3.12. Python 3.13 is not supported yet because `llama-cpp-python` does not support it.
9
+ The `--extra-index-url` flag provides pre-built binaries for `llama-cpp-python`, making installation fast (~10 seconds). Without it, the C++ backend compiles from source (~5 minutes).
12
10
 
13
- ## First-time build
11
+ ## Requirements
14
12
 
15
- `llama-cpp-python` may compile from source on first install. Expect roughly five minutes; this is normal.
13
+ - **Python:** 3.9 through 3.13.
16
14
 
17
15
  ## Anaconda on Linux: OpenMP / libgomp errors
18
16
 
19
- If the build fails with `libgomp`-related errors, disable OpenMP for the GGML build:
17
+ If the build fails with `libgomp`-related errors, disable OpenMP:
20
18
 
21
19
  ```bash
22
- CMAKE_ARGS="-DGGML_OPENMP=OFF" pip install --pre programasweights
20
+ CMAKE_ARGS="-DGGML_OPENMP=OFF" pip install --pre programasweights --extra-index-url https://pypi.programasweights.com/simple/
23
21
  ```
24
22
 
25
23
  ## Cache and configuration
@@ -7,7 +7,7 @@ ProgramAsWeights lets you define functions in English and compile them into tiny
7
7
  ## Quick Start
8
8
 
9
9
  ```bash
10
- pip install --pre programasweights
10
+ pip install --pre programasweights --extra-index-url https://pypi.programasweights.com/simple/
11
11
  ```
12
12
 
13
13
  ```python
@@ -22,7 +22,7 @@ API reference:
22
22
  paw.api_key API key (set via login() or PAW_API_KEY env var)
23
23
  """
24
24
 
25
- __version__ = "0.1.0.dev9"
25
+ __version__ = "0.1.0.dev10"
26
26
 
27
27
  from .config import get_api_url, get_api_key, set_api_key
28
28
 
@@ -4,7 +4,7 @@ Local cache management for base models and compiled programs.
4
4
  Cache structure:
5
5
  ~/.cache/programasweights/
6
6
  base_models/
7
- qwen3-0.6b-q6k.gguf # ~623 MB, downloaded once
7
+ qwen3-0.6b-q6_k.gguf # ~623 MB, downloaded once
8
8
  programs/
9
9
  <program_id>/
10
10
  adapter.gguf # ~23 MB, Q4_0 LoRA
@@ -36,7 +36,12 @@ INTERPRETER_TO_GGUF = {
36
36
 
37
37
  def get_base_model_path(interpreter: str = "Qwen/Qwen3-0.6B") -> Path:
38
38
  """Get the path to the base model GGUF, downloading if needed."""
39
- gguf_name = INTERPRETER_TO_GGUF.get(interpreter, "qwen3-0.6b-q6k")
39
+ gguf_name = INTERPRETER_TO_GGUF.get(interpreter)
40
+ if not gguf_name:
41
+ raise ValueError(
42
+ f"Unknown interpreter: '{interpreter}'. "
43
+ f"Supported: {list(INTERPRETER_TO_GGUF.keys())}"
44
+ )
40
45
  gguf_path = config.get_base_models_dir() / f"{gguf_name}.gguf"
41
46
 
42
47
  if gguf_path.exists():
@@ -3,10 +3,11 @@
3
3
  ProgramAsWeights CLI.
4
4
 
5
5
  Usage:
6
- paw compile <spec> Compile a spec on the server
7
- paw run <program_id> <input> Run a program locally
8
- paw login Authenticate with email
9
- paw info <program_id> Show program metadata
6
+ paw compile --spec "..." Compile a spec on the server
7
+ paw run --program <id> --input "..." Run a program locally
8
+ paw rename <program> <slug> Set or change a program's slug
9
+ paw info <program> Show program metadata
10
+ paw login [key] Save API key for authentication
10
11
 
11
12
  All commands support --json for structured output (agent-friendly).
12
13
  """
@@ -63,6 +64,8 @@ def cmd_run(args):
63
64
  import programasweights as paw
64
65
  if args.api_url:
65
66
  paw.api_url = args.api_url
67
+ if args.api_key:
68
+ paw.api_key = args.api_key
66
69
 
67
70
  fn = paw.function(
68
71
  args.program, verbose=args.verbose,
@@ -119,6 +122,8 @@ def cmd_info(args):
119
122
  import programasweights as paw
120
123
  if args.api_url:
121
124
  paw.api_url = args.api_url
125
+ if args.api_key:
126
+ paw.api_key = args.api_key
122
127
 
123
128
  from programasweights.client import PAWClient
124
129
  client = PAWClient(api_url=paw.api_url, api_key=paw.api_key)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "programasweights"
7
- version = "0.1.0.dev9"
7
+ version = "0.1.0.dev10"
8
8
  description = "Compile natural language specifications into neural programs that run locally via llama.cpp."
9
9
  readme = "PYPI_README.md"
10
10
  requires-python = ">=3.9"
@@ -43,7 +43,7 @@ async def run_inference(
43
43
  logger.info("infer_request", program_id=req.program_id,
44
44
  input_len=len(req.input), max_tokens=req.max_tokens)
45
45
 
46
- program = await resolve_program(req.program_id, db)
46
+ program = await resolve_program(req.program_id, db, user=user)
47
47
 
48
48
  if not program:
49
49
  raise HTTPException(status_code=404, detail={
@@ -47,37 +47,49 @@ async def _get_owner_slug(program: Program, db: AsyncSession) -> str | None:
47
47
  return f"{row[0]}/{row[1]}" if row and row[0] else None
48
48
 
49
49
 
50
- async def resolve_program(id_or_slug: str, db: AsyncSession) -> Program | None:
50
+ async def resolve_program(
51
+ id_or_slug: str,
52
+ db: AsyncSession,
53
+ user: User | None = None,
54
+ require_public: bool = True,
55
+ ) -> Program | None:
51
56
  """Resolve a program by hash ID or username/slug handle.
52
57
 
53
58
  Resolution order:
54
59
  1. Exact hash ID match
55
60
  2. If 'username/slug-name': join Alias + User where username and slug_name match
56
61
  3. If bare name (no /): try as programasweights official namespace
62
+
63
+ Privacy: if require_public is True (default), private programs are only
64
+ returned when the requesting user is the owner. Otherwise returns None.
57
65
  """
58
66
  result = await db.execute(select(Program).where(Program.id == id_or_slug))
59
67
  program = result.scalar_one_or_none()
60
- if program:
61
- return program
62
-
63
- if "/" in id_or_slug:
64
- username, slug_name = id_or_slug.split("/", 1)
65
- result = await db.execute(
66
- select(Program)
67
- .join(Alias, Alias.program_id == Program.id)
68
- .join(User, User.id == Alias.owner_id)
69
- .where(User.username == username, Alias.slug_name == slug_name)
70
- )
71
- return result.scalar_one_or_none()
72
68
 
73
- # Bare name: try official namespace (programasweights)
74
- result = await db.execute(
75
- select(Program)
76
- .join(Alias, Alias.program_id == Program.id)
77
- .join(User, User.id == Alias.owner_id)
78
- .where(User.username == SYSTEM_NAMESPACE, Alias.slug_name == id_or_slug)
79
- )
80
- return result.scalar_one_or_none()
69
+ if not program:
70
+ if "/" in id_or_slug:
71
+ username, slug_name = id_or_slug.split("/", 1)
72
+ result = await db.execute(
73
+ select(Program)
74
+ .join(Alias, Alias.program_id == Program.id)
75
+ .join(User, User.id == Alias.owner_id)
76
+ .where(User.username == username, Alias.slug_name == slug_name)
77
+ )
78
+ program = result.scalar_one_or_none()
79
+ else:
80
+ result = await db.execute(
81
+ select(Program)
82
+ .join(Alias, Alias.program_id == Program.id)
83
+ .join(User, User.id == Alias.owner_id)
84
+ .where(User.username == SYSTEM_NAMESPACE, Alias.slug_name == id_or_slug)
85
+ )
86
+ program = result.scalar_one_or_none()
87
+
88
+ if program and require_public and not program.public:
89
+ if not user or user.id != program.author_id:
90
+ return None
91
+
92
+ return program
81
93
 
82
94
 
83
95
  # --- Tags ---
@@ -308,28 +320,19 @@ async def list_programs(
308
320
 
309
321
 
310
322
  @router.get("/programs/resolve/{slug:path}")
311
- async def resolve_slug(slug: str, db: AsyncSession = Depends(get_db)):
312
- if "/" in slug:
313
- username, slug_name = slug.split("/", 1)
314
- result = await db.execute(
315
- select(Alias.program_id, User.username, Alias.slug_name)
316
- .join(User, User.id == Alias.owner_id)
317
- .where(User.username == username, Alias.slug_name == slug_name)
318
- )
319
- else:
320
- result = await db.execute(
321
- select(Alias.program_id, User.username, Alias.slug_name)
322
- .join(User, User.id == Alias.owner_id)
323
- .where(User.username == SYSTEM_NAMESPACE, Alias.slug_name == slug)
324
- )
325
-
326
- row = result.first()
327
- if not row:
323
+ async def resolve_slug(
324
+ slug: str,
325
+ db: AsyncSession = Depends(get_db),
326
+ user: User | None = Depends(get_current_user),
327
+ ):
328
+ program = await resolve_program(slug, db, user=user)
329
+ if not program:
328
330
  raise HTTPException(status_code=404, detail={
329
331
  "error": "alias_not_found",
330
332
  "message": f"No program found with alias '{slug}'",
331
333
  })
332
- return {"slug": f"{row[1]}/{row[2]}", "program_id": row[0]}
334
+ owner_slug = await _get_owner_slug(program, db)
335
+ return {"slug": owner_slug or slug, "program_id": program.id}
333
336
 
334
337
 
335
338
  @router.get("/programs/{id_or_slug}")
@@ -338,7 +341,7 @@ async def get_program(
338
341
  db: AsyncSession = Depends(get_db),
339
342
  user: User | None = Depends(get_current_user),
340
343
  ):
341
- program = await resolve_program(id_or_slug, db)
344
+ program = await resolve_program(id_or_slug, db, user=user)
342
345
  if not program:
343
346
  raise HTTPException(status_code=404, detail={
344
347
  "error": "not_found",
@@ -397,8 +400,12 @@ async def get_program(
397
400
 
398
401
 
399
402
  @router.get("/programs/{id_or_slug}/download")
400
- async def download_program(id_or_slug: str, db: AsyncSession = Depends(get_db)):
401
- program = await resolve_program(id_or_slug, db)
403
+ async def download_program(
404
+ id_or_slug: str,
405
+ db: AsyncSession = Depends(get_db),
406
+ user: User | None = Depends(get_current_user),
407
+ ):
408
+ program = await resolve_program(id_or_slug, db, user=user)
402
409
  if not program:
403
410
  raise HTTPException(status_code=404, detail=f"Program '{id_or_slug}' not found")
404
411
 
@@ -412,12 +419,21 @@ async def download_program(id_or_slug: str, db: AsyncSession = Depends(get_db)):
412
419
  ALLOWED_ASSETS = {"adapter.gguf", "prompt_template.txt", "prefix_cache.bin", "prefix_tokens.json"}
413
420
 
414
421
  @router.get("/programs/{program_id}/asset/{filename}")
415
- async def serve_program_asset(program_id: str, filename: str):
422
+ async def serve_program_asset(
423
+ program_id: str,
424
+ filename: str,
425
+ db: AsyncSession = Depends(get_db),
426
+ user: User | None = Depends(get_current_user),
427
+ ):
416
428
  if filename not in ALLOWED_ASSETS:
417
429
  raise HTTPException(status_code=400, detail="Invalid asset filename")
418
430
 
431
+ program = await resolve_program(program_id, db, user=user)
432
+ if not program:
433
+ raise HTTPException(status_code=404, detail="Asset not found")
434
+
419
435
  settings = get_settings()
420
- asset_path = Path(settings.STORAGE_PATH) / program_id / filename
436
+ asset_path = Path(settings.STORAGE_PATH) / program.id / filename
421
437
  if not asset_path.exists():
422
438
  raise HTTPException(status_code=404, detail="Asset not found on this server")
423
439
 
@@ -439,7 +455,7 @@ async def update_program(
439
455
  user: User = Depends(require_user),
440
456
  db: AsyncSession = Depends(get_db),
441
457
  ):
442
- program = await resolve_program(id_or_slug, db)
458
+ program = await resolve_program(id_or_slug, db, user=user)
443
459
  if not program:
444
460
  raise HTTPException(status_code=404, detail="Program not found")
445
461
 
@@ -512,7 +528,7 @@ async def vote_program(
512
528
  user: User = Depends(require_user),
513
529
  db: AsyncSession = Depends(get_db),
514
530
  ):
515
- program = await resolve_program(id_or_slug, db)
531
+ program = await resolve_program(id_or_slug, db, user=user)
516
532
  if not program:
517
533
  raise HTTPException(status_code=404, detail="Program not found")
518
534
 
@@ -565,8 +581,9 @@ async def get_cases(
565
581
  page: int = 1,
566
582
  page_size: int = 20,
567
583
  db: AsyncSession = Depends(get_db),
584
+ user: User | None = Depends(get_current_user),
568
585
  ):
569
- program = await resolve_program(id_or_slug, db)
586
+ program = await resolve_program(id_or_slug, db, user=user)
570
587
  if not program:
571
588
  raise HTTPException(status_code=404, detail="Program not found")
572
589
 
@@ -621,8 +638,9 @@ async def create_case(
621
638
  id_or_slug: str,
622
639
  request: Request,
623
640
  db: AsyncSession = Depends(get_db),
641
+ user: User | None = Depends(get_current_user),
624
642
  ):
625
- program = await resolve_program(id_or_slug, db)
643
+ program = await resolve_program(id_or_slug, db, user=user)
626
644
  if not program:
627
645
  raise HTTPException(status_code=404, detail="Program not found")
628
646
 
@@ -649,7 +667,7 @@ async def create_alias(
649
667
  user: User = Depends(require_user),
650
668
  db: AsyncSession = Depends(get_db),
651
669
  ):
652
- program = await resolve_program(program_id, db)
670
+ program = await resolve_program(program_id, db, user=user)
653
671
  if not program:
654
672
  raise HTTPException(status_code=404, detail="Program not found")
655
673