programasweights 0.2.0__tar.gz → 0.2.2__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 (504) hide show
  1. programasweights-0.2.2/.cursor/rules/sdk-publishing.mdc +53 -0
  2. {programasweights-0.2.0 → programasweights-0.2.2}/.cursor/rules/vllm-deployment.mdc +17 -5
  3. programasweights-0.2.2/AGENTS.md +194 -0
  4. {programasweights-0.2.0 → programasweights-0.2.2}/CHANGELOG.md +8 -0
  5. {programasweights-0.2.0 → programasweights-0.2.2}/PKG-INFO +5 -1
  6. {programasweights-0.2.0 → programasweights-0.2.2}/PYPI_README.md +4 -0
  7. programasweights-0.2.2/docs/api-reference/cli.md +90 -0
  8. programasweights-0.2.2/docs/api-reference/python-sdk.md +137 -0
  9. {programasweights-0.2.0 → programasweights-0.2.2}/docs/api-reference/rest-api.md +25 -14
  10. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/__init__.py +59 -3
  11. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/cli.py +3 -1
  12. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/client.py +25 -7
  13. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/runtime_llamacpp.py +19 -6
  14. {programasweights-0.2.0 → programasweights-0.2.2}/pyproject.toml +1 -1
  15. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/compile.py +10 -3
  16. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/programs.py +19 -7
  17. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/compile_provider.py +26 -5
  18. {programasweights-0.2.0 → programasweights-0.2.2}/tests/test_sdk.py +196 -0
  19. {programasweights-0.2.0 → programasweights-0.2.2}/tests/test_sdk.sh +1 -1
  20. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/e2e/full.spec.ts +12 -14
  21. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/AboutPage.tsx +1 -1
  22. programasweights-0.2.2/web-app/frontend/src/components/AgentsPage.tsx +302 -0
  23. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/AuthorPage.tsx +10 -5
  24. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/HubProgramPage.tsx +15 -21
  25. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/LandingPage.tsx +4 -2
  26. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/MainInterface.tsx +53 -37
  27. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/NavigationHelper.tsx +1 -1
  28. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/ProfilePage.tsx +27 -20
  29. programasweights-0.2.2/web-sdk/LICENSE +21 -0
  30. programasweights-0.2.2/web-sdk/__tests__/e2e/browser.spec.ts +223 -0
  31. programasweights-0.2.2/web-sdk/__tests__/e2e/server.ts +69 -0
  32. programasweights-0.2.2/web-sdk/__tests__/e2e/start-server.ts +2 -0
  33. programasweights-0.2.2/web-sdk/__tests__/e2e/test-page.html +122 -0
  34. programasweights-0.2.2/web-sdk/__tests__/loader.test.ts +244 -0
  35. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/package-lock.json +61 -2
  36. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/package.json +4 -3
  37. programasweights-0.2.2/web-sdk/playwright.config.ts +19 -0
  38. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/src/runtime.ts +3 -1
  39. programasweights-0.2.0/AGENTS.md +0 -127
  40. programasweights-0.2.0/docs/api-reference/cli.md +0 -76
  41. programasweights-0.2.0/docs/api-reference/python-sdk.md +0 -75
  42. programasweights-0.2.0/web-app/frontend/src/components/AgentsPage.tsx +0 -170
  43. programasweights-0.2.0/web-app/frontend/test-results/.last-run.json +0 -4
  44. programasweights-0.2.0/web-sdk/__tests__/loader.test.ts +0 -110
  45. {programasweights-0.2.0 → programasweights-0.2.2}/.git +0 -0
  46. {programasweights-0.2.0 → programasweights-0.2.2}/.github/workflows/web-sdk.yml +0 -0
  47. {programasweights-0.2.0 → programasweights-0.2.2}/.gitignore +0 -0
  48. {programasweights-0.2.0 → programasweights-0.2.2}/.gitmodules +0 -0
  49. {programasweights-0.2.0 → programasweights-0.2.2}/.hatch_build.toml +0 -0
  50. {programasweights-0.2.0 → programasweights-0.2.2}/.readthedocs.yaml +0 -0
  51. {programasweights-0.2.0 → programasweights-0.2.2}/1apple.jpg +0 -0
  52. {programasweights-0.2.0 → programasweights-0.2.2}/1apple2.jpg +0 -0
  53. {programasweights-0.2.0 → programasweights-0.2.2}/2apples.jpg +0 -0
  54. {programasweights-0.2.0 → programasweights-0.2.2}/2apples2.jpg +0 -0
  55. {programasweights-0.2.0 → programasweights-0.2.2}/3apples.jpg +0 -0
  56. {programasweights-0.2.0 → programasweights-0.2.2}/3apples2.jpg +0 -0
  57. {programasweights-0.2.0 → programasweights-0.2.2}/479400.png +0 -0
  58. {programasweights-0.2.0 → programasweights-0.2.2}/4apples.jpg +0 -0
  59. {programasweights-0.2.0 → programasweights-0.2.2}/4apples2.jpg +0 -0
  60. {programasweights-0.2.0 → programasweights-0.2.2}/4apples3.jpg +0 -0
  61. {programasweights-0.2.0 → programasweights-0.2.2}/4apples4.jpg +0 -0
  62. {programasweights-0.2.0 → programasweights-0.2.2}/5apples.jpg +0 -0
  63. {programasweights-0.2.0 → programasweights-0.2.2}/6apples.jpg +0 -0
  64. {programasweights-0.2.0 → programasweights-0.2.2}/8apples.jpg +0 -0
  65. {programasweights-0.2.0 → programasweights-0.2.2}/9apples.jpg +0 -0
  66. {programasweights-0.2.0 → programasweights-0.2.2}/FLOW_SUMMARY.md +0 -0
  67. {programasweights-0.2.0 → programasweights-0.2.2}/LICENSE +0 -0
  68. {programasweights-0.2.0 → programasweights-0.2.2}/MANIFEST.in +0 -0
  69. {programasweights-0.2.0 → programasweights-0.2.2}/ONNX_MIGRATION_PLAN.md +0 -0
  70. {programasweights-0.2.0 → programasweights-0.2.2}/PREFIX_TOKENS_DESIGN.md +0 -0
  71. {programasweights-0.2.0 → programasweights-0.2.2}/README.md +0 -0
  72. {programasweights-0.2.0 → programasweights-0.2.2}/TRUNCATION_CHANGES.md +0 -0
  73. {programasweights-0.2.0 → programasweights-0.2.2}/USE_CASES_AND_IDEAS.md +0 -0
  74. {programasweights-0.2.0 → programasweights-0.2.2}/VERIFICATION_USAGE.md +0 -0
  75. {programasweights-0.2.0 → programasweights-0.2.2}/analyze_dataset.py +0 -0
  76. {programasweights-0.2.0 → programasweights-0.2.2}/analyze_lengths.py +0 -0
  77. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/code_prompt.md +0 -0
  78. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/evaluate_openai_python_code_baseline.py +0 -0
  79. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/openai_batch_request.py +0 -0
  80. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/prepare_alchemist_data.py +0 -0
  81. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/prepare_var_bench_data.py +0 -0
  82. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/python_code_sandbox.py +0 -0
  83. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/script_evaluation_var_bench.sh +0 -0
  84. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/script_evalution_evaluation.sh +0 -0
  85. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/script_evalution_request.sh +0 -0
  86. {programasweights-0.2.0 → programasweights-0.2.2}/baselines/script_evalution_statistics.sh +0 -0
  87. {programasweights-0.2.0 → programasweights-0.2.2}/benchmark_pytorch_vs_onnx.py +0 -0
  88. {programasweights-0.2.0 → programasweights-0.2.2}/benchmark_user_experience.py +0 -0
  89. {programasweights-0.2.0 → programasweights-0.2.2}/check_dataset.py +0 -0
  90. {programasweights-0.2.0 → programasweights-0.2.2}/combine_datasets.py +0 -0
  91. {programasweights-0.2.0 → programasweights-0.2.2}/compare_datasets.py +0 -0
  92. {programasweights-0.2.0 → programasweights-0.2.2}/compare_old_vs_regen.py +0 -0
  93. {programasweights-0.2.0 → programasweights-0.2.2}/convert_paw_to_svg.py +0 -0
  94. {programasweights-0.2.0 → programasweights-0.2.2}/create_favicon_sizes.py +0 -0
  95. {programasweights-0.2.0 → programasweights-0.2.2}/create_visualization_from_log.py +0 -0
  96. {programasweights-0.2.0 → programasweights-0.2.2}/create_vqa_dataset.py +0 -0
  97. {programasweights-0.2.0 → programasweights-0.2.2}/debug_cache.py +0 -0
  98. {programasweights-0.2.0 → programasweights-0.2.2}/debug_eos_example.sh +0 -0
  99. {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/001-llama-cpp-over-pytorch.md +0 -0
  100. {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/002-q4_0-adapter-format.md +0 -0
  101. {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/003-single-spec-field.md +0 -0
  102. {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/004-compiler-naming.md +0 -0
  103. {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/005-vllm-hidden-states.md +0 -0
  104. {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/006-email-api-key-auth.md +0 -0
  105. {programasweights-0.2.0 → programasweights-0.2.2}/docs/advanced/adrs.md +0 -0
  106. {programasweights-0.2.0 → programasweights-0.2.2}/docs/advanced/architecture.md +0 -0
  107. {programasweights-0.2.0 → programasweights-0.2.2}/docs/architecture.md +0 -0
  108. {programasweights-0.2.0 → programasweights-0.2.2}/docs/getting-started/first-program.md +0 -0
  109. {programasweights-0.2.0 → programasweights-0.2.2}/docs/getting-started/installation.md +0 -0
  110. {programasweights-0.2.0 → programasweights-0.2.2}/docs/getting-started/naming-programs.md +0 -0
  111. {programasweights-0.2.0 → programasweights-0.2.2}/docs/guide/browser-inference.md +0 -0
  112. {programasweights-0.2.0 → programasweights-0.2.2}/docs/guide/how-it-works.md +0 -0
  113. {programasweights-0.2.0 → programasweights-0.2.2}/docs/guide/local-inference.md +0 -0
  114. {programasweights-0.2.0 → programasweights-0.2.2}/docs/guide/writing-good-specs.md +0 -0
  115. {programasweights-0.2.0 → programasweights-0.2.2}/docs/hub/browsing-programs.md +0 -0
  116. {programasweights-0.2.0 → programasweights-0.2.2}/docs/hub/feedback-cases.md +0 -0
  117. {programasweights-0.2.0 → programasweights-0.2.2}/docs/hub/publishing-programs.md +0 -0
  118. {programasweights-0.2.0 → programasweights-0.2.2}/docs/index.md +0 -0
  119. {programasweights-0.2.0 → programasweights-0.2.2}/docs/requirements.txt +0 -0
  120. {programasweights-0.2.0 → programasweights-0.2.2}/estimate_data_gen_cost.py +0 -0
  121. {programasweights-0.2.0 → programasweights-0.2.2}/eval.py +0 -0
  122. {programasweights-0.2.0 → programasweights-0.2.2}/examples/flask_app.py +0 -0
  123. {programasweights-0.2.0 → programasweights-0.2.2}/examples/jupyter_notebook.py +0 -0
  124. {programasweights-0.2.0 → programasweights-0.2.2}/examples/langchain_integration.py +0 -0
  125. {programasweights-0.2.0 → programasweights-0.2.2}/examples/replace_openai.py +0 -0
  126. {programasweights-0.2.0 → programasweights-0.2.2}/export_to_onnx.py +0 -0
  127. {programasweights-0.2.0 → programasweights-0.2.2}/extract_models.py +0 -0
  128. {programasweights-0.2.0 → programasweights-0.2.2}/inspect_data_dirs.py +0 -0
  129. {programasweights-0.2.0 → programasweights-0.2.2}/latest_export.csv +0 -0
  130. {programasweights-0.2.0 → programasweights-0.2.2}/log.train.81920.morecategories.extraprefix +0 -0
  131. {programasweights-0.2.0 → programasweights-0.2.2}/main_no_spec_direct_ans_mix_continuous_sampleref_shorterprompt_vllm.py +0 -0
  132. {programasweights-0.2.0 → programasweights-0.2.2}/merge_datasets.py +0 -0
  133. {programasweights-0.2.0 → programasweights-0.2.2}/mkdocs.yml +0 -0
  134. {programasweights-0.2.0 → programasweights-0.2.2}/paw.png +0 -0
  135. {programasweights-0.2.0 → programasweights-0.2.2}/paw.svg +0 -0
  136. {programasweights-0.2.0 → programasweights-0.2.2}/process_im2latex_dataset.py +0 -0
  137. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/artifacts.py +0 -0
  138. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/cache.py +0 -0
  139. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/compiler/__init__.py +0 -0
  140. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/compiler/dummy.py +0 -0
  141. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/config.py +0 -0
  142. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/convert_peft_to_paw.py +0 -0
  143. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/paw_format.py +0 -0
  144. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/runtime/__init__.py +0 -0
  145. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/runtime/interpreter.py +0 -0
  146. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/runtime/interpreter_onnx.py +0 -0
  147. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/__init__.py +0 -0
  148. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/compiler/__init__.py +0 -0
  149. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/lora_format.py +0 -0
  150. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/runtime/__init__.py +0 -0
  151. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/runtime/interpreter_lora.py +0 -0
  152. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/tests/test_compile_and_run.py +0 -0
  153. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/tests/test_lora_format.py +0 -0
  154. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/tests/test_training.py +0 -0
  155. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/train_lora.py +0 -0
  156. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/training/__init__.py +0 -0
  157. {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/training/loops/lora_tuning_sft.py +0 -0
  158. {programasweights-0.2.0 → programasweights-0.2.2}/run_eval.sh +0 -0
  159. {programasweights-0.2.0 → programasweights-0.2.2}/run_training.sh +0 -0
  160. {programasweights-0.2.0 → programasweights-0.2.2}/scripts/filter_table_by_length.py +0 -0
  161. {programasweights-0.2.0 → programasweights-0.2.2}/server/.env.example +0 -0
  162. {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/env.py +0 -0
  163. {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/script.py.mako +0 -0
  164. {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/versions/001_initial_schema.py +0 -0
  165. {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/versions/002_namespaced_aliases_hf_url.py +0 -0
  166. {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/versions/003_fulltext_search_ranking.py +0 -0
  167. {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/versions/004_fix_alias_slug_constraint.py +0 -0
  168. {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic.ini +0 -0
  169. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/__init__.py +0 -0
  170. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/config.py +0 -0
  171. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/dependencies.py +0 -0
  172. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/logging_config.py +0 -0
  173. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/main.py +0 -0
  174. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/middleware/__init__.py +0 -0
  175. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/middleware/rate_limit.py +0 -0
  176. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/models/__init__.py +0 -0
  177. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/models/database.py +0 -0
  178. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/models/orm.py +0 -0
  179. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/models/schemas.py +0 -0
  180. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/__init__.py +0 -0
  181. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/auth.py +0 -0
  182. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/feedback.py +0 -0
  183. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/health.py +0 -0
  184. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/infer.py +0 -0
  185. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/models_info.py +0 -0
  186. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/__init__.py +0 -0
  187. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/auto_tag_service.py +0 -0
  188. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/auto_title_service.py +0 -0
  189. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/compile_service.py +0 -0
  190. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/infer_service.py +0 -0
  191. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/search_service.py +0 -0
  192. {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/storage_service.py +0 -0
  193. {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/benchmark_api.py +0 -0
  194. {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/handcrafted_specs.json +0 -0
  195. {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/last_benchmark_results.json +0 -0
  196. {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/last_stress_results.json +0 -0
  197. {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/stress_test.py +0 -0
  198. {programasweights-0.2.0 → programasweights-0.2.2}/server/compiler_registry.json +0 -0
  199. {programasweights-0.2.0 → programasweights-0.2.2}/server/provider_configs/gpt2.json +0 -0
  200. {programasweights-0.2.0 → programasweights-0.2.2}/server/provider_configs/qwen3-0.6b.json +0 -0
  201. {programasweights-0.2.0 → programasweights-0.2.2}/server/requirements.txt +0 -0
  202. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/ab_test_hf_vs_vllm.py +0 -0
  203. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/ablation_search.py +0 -0
  204. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_hf_browser_assets.py +0 -0
  205. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_hf_safetensors.py +0 -0
  206. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_interestingness.py +0 -0
  207. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_tags.py +0 -0
  208. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_titles.py +0 -0
  209. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/benchmark_gpt2.py +0 -0
  210. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/cleanup_storage.py +0 -0
  211. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/eval_search.py +0 -0
  212. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/evict_cold_programs.py +0 -0
  213. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/generate_prefix_cache.py +0 -0
  214. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/launch_gpt2_compiler.py +0 -0
  215. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/launch_qwen3_compiler.py +0 -0
  216. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/patch_vllm.sh +0 -0
  217. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/restart.sh +0 -0
  218. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/start_all.sh +0 -0
  219. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/start_gpt2_services.sh +0 -0
  220. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/start_provider.sh +0 -0
  221. {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/start_services.sh +0 -0
  222. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/__init__.py +0 -0
  223. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/conftest.py +0 -0
  224. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_auth.py +0 -0
  225. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_compile.py +0 -0
  226. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_errors.py +0 -0
  227. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_infer.py +0 -0
  228. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_integration_gpu.py +0 -0
  229. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_rate_limit.py +0 -0
  230. {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_storage.py +0 -0
  231. {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/__init__.py +0 -0
  232. {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/gpt2_lora_patch.py +0 -0
  233. {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/paw_compiler.py +0 -0
  234. {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/prepare_checkpoint.py +0 -0
  235. {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/register.py +0 -0
  236. {programasweights-0.2.0 → programasweights-0.2.2}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.rollout_ppl.png +0 -0
  237. {programasweights-0.2.0 → programasweights-0.2.2}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.em_es.png +0 -0
  238. {programasweights-0.2.0 → programasweights-0.2.2}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.ppl.png +0 -0
  239. {programasweights-0.2.0 → programasweights-0.2.2}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.reward.png +0 -0
  240. {programasweights-0.2.0 → programasweights-0.2.2}/test_1spec.py +0 -0
  241. {programasweights-0.2.0 → programasweights-0.2.2}/test_all_caching.py +0 -0
  242. {programasweights-0.2.0 → programasweights-0.2.2}/test_apple_count.py +0 -0
  243. {programasweights-0.2.0 → programasweights-0.2.2}/test_batch_pilot.py +0 -0
  244. {programasweights-0.2.0 → programasweights-0.2.2}/test_compile.py +0 -0
  245. {programasweights-0.2.0 → programasweights-0.2.2}/test_e2e.py +0 -0
  246. {programasweights-0.2.0 → programasweights-0.2.2}/test_execute.py +0 -0
  247. {programasweights-0.2.0 → programasweights-0.2.2}/test_nspecs.py +0 -0
  248. {programasweights-0.2.0 → programasweights-0.2.2}/test_one_vs_two_step.py +0 -0
  249. {programasweights-0.2.0 → programasweights-0.2.2}/test_onnx_correctness.py +0 -0
  250. {programasweights-0.2.0 → programasweights-0.2.2}/test_onnx_hf_model.py +0 -0
  251. {programasweights-0.2.0 → programasweights-0.2.2}/test_onnx_hf_with_images.py +0 -0
  252. {programasweights-0.2.0 → programasweights-0.2.2}/test_paw_format.py +0 -0
  253. {programasweights-0.2.0 → programasweights-0.2.2}/test_thinking_comparison.py +0 -0
  254. {programasweights-0.2.0 → programasweights-0.2.2}/tests/test_offline_cache.py +0 -0
  255. {programasweights-0.2.0 → programasweights-0.2.2}/train.py +0 -0
  256. {programasweights-0.2.0 → programasweights-0.2.2}/train_no_spec_direct_ans_mix_continuous_sampleref_trainonly_shorterprompt_withregularizer_generate_lora.py +0 -0
  257. {programasweights-0.2.0 → programasweights-0.2.2}/training/README.md +0 -0
  258. {programasweights-0.2.0 → programasweights-0.2.2}/training/__init__.py +0 -0
  259. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/DATASET_CHANGELOG.md +0 -0
  260. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/README.md +0 -0
  261. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/VERIFICATION_PIPELINE.md +0 -0
  262. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/build_user_bench.py +0 -0
  263. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/dry_run_batch.py +0 -0
  264. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/filter_test_data.py +0 -0
  265. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/generate_specs.py +0 -0
  266. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/generate_specs_batch.py +0 -0
  267. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/incremental_merge.py +0 -0
  268. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/merge_and_upload.py +0 -0
  269. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/regenerate_outputs_batch.py +0 -0
  270. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/synthesize_data.py +0 -0
  271. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/synthesize_data_batch.py +0 -0
  272. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/filter_system.txt +0 -0
  273. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/filter_user.txt +0 -0
  274. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/pairs_system.txt +0 -0
  275. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/pairs_user.txt +0 -0
  276. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_system.txt +0 -0
  277. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_user.txt +0 -0
  278. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_user_freeform.txt +0 -0
  279. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_user_freeform_with_examples.txt +0 -0
  280. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_user_with_examples.txt +0 -0
  281. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/verify_system.txt +0 -0
  282. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/verify_user.txt +0 -0
  283. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/filter_system.txt +0 -0
  284. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/filter_user.txt +0 -0
  285. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/pairs_system.txt +0 -0
  286. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/pairs_user.txt +0 -0
  287. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_system.txt +0 -0
  288. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_user.txt +0 -0
  289. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_user_freeform.txt +0 -0
  290. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_user_freeform_with_examples.txt +0 -0
  291. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_user_with_examples.txt +0 -0
  292. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/verify_system.txt +0 -0
  293. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/verify_user.txt +0 -0
  294. {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/verify_test_data.py +0 -0
  295. {programasweights-0.2.0 → programasweights-0.2.2}/training/datasets/__init__.py +0 -0
  296. {programasweights-0.2.0 → programasweights-0.2.2}/training/datasets/jsonl_text_pairs.py +0 -0
  297. {programasweights-0.2.0 → programasweights-0.2.2}/training/loops/__init__.py +0 -0
  298. {programasweights-0.2.0 → programasweights-0.2.2}/training/loops/prefix_tuning_sft.py +0 -0
  299. {programasweights-0.2.0 → programasweights-0.2.2}/ttt.py +0 -0
  300. {programasweights-0.2.0 → programasweights-0.2.2}/upload_model.py +0 -0
  301. {programasweights-0.2.0 → programasweights-0.2.2}/upload_onnx_to_huggingface.py +0 -0
  302. {programasweights-0.2.0 → programasweights-0.2.2}/upload_onnx_to_huggingface_with_token.py +0 -0
  303. {programasweights-0.2.0 → programasweights-0.2.2}/utils.py +0 -0
  304. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/HANDOFF.md +0 -0
  305. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/README.md +0 -0
  306. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/__init__.py +0 -0
  307. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/config.py +0 -0
  308. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/main.py +0 -0
  309. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/middleware/__init__.py +0 -0
  310. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/middleware/rate_limit.py +0 -0
  311. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/models.py +0 -0
  312. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/__init__.py +0 -0
  313. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/auth_service.py +0 -0
  314. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/case_service.py +0 -0
  315. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/compiler_service.py +0 -0
  316. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/gpt_service.py +0 -0
  317. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/hub_service.py +0 -0
  318. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/image_service.py +0 -0
  319. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/interpreter_service.py +0 -0
  320. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/sql_manager.py +0 -0
  321. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/templates/gpt_test_generation.txt +0 -0
  322. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/utils/__init__.py +0 -0
  323. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/utils/image_placeholders.py +0 -0
  324. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/utils/program_hash.py +0 -0
  325. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/clear_db.sh +0 -0
  326. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/clear_tables.sql +0 -0
  327. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/data/programs.db +0 -0
  328. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/env_example.txt +0 -0
  329. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/example_images/README.md +0 -0
  330. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/get_data_examples.py +0 -0
  331. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/requirements.txt +0 -0
  332. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/run_server.py +0 -0
  333. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_analytics_tables.sql +0 -0
  334. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_auth_tables.sql +0 -0
  335. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_cache_tables.sql +0 -0
  336. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_cases_tables.sql +0 -0
  337. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_database.sql +0 -0
  338. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_database_simple.sql +0 -0
  339. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_db.sh +0 -0
  340. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_example_images.py +0 -0
  341. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_hub_tables.sql +0 -0
  342. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/test_compilation_cache.py +0 -0
  343. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/README.md +0 -0
  344. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/e2e/helpers.ts +0 -0
  345. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/e2e/smoke.spec.ts +0 -0
  346. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/eslint.config.js +0 -0
  347. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/index.html +0 -0
  348. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/package-lock.json +0 -0
  349. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/package.json +0 -0
  350. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/playwright.config.ts +0 -0
  351. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/postcss.config.js +0 -0
  352. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/apple-touch-icon.png +0 -0
  353. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/browser-worker.html +0 -0
  354. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/favicon-16x16.png +0 -0
  355. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/favicon-32x32.png +0 -0
  356. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/paw-192.png +0 -0
  357. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/paw-512.png +0 -0
  358. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/paw.svg +0 -0
  359. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/react-test.html +0 -0
  360. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/test.html +0 -0
  361. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/vite.svg +0 -0
  362. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/scripts/deploy.sh +0 -0
  363. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/App.css +0 -0
  364. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/App.tsx +0 -0
  365. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/assets/react.svg +0 -0
  366. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/BrowserPage.tsx +0 -0
  367. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/CasesSection.tsx +0 -0
  368. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/CompileButtonWithConfig.tsx +0 -0
  369. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/CompileSection.tsx +0 -0
  370. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/DocsPage.tsx +0 -0
  371. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/ExamplesInput.tsx +0 -0
  372. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/Footer.tsx +0 -0
  373. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/Header.tsx +0 -0
  374. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/HubPage.tsx +0 -0
  375. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/HubUploadPage.tsx +0 -0
  376. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/ModelSelector.tsx +0 -0
  377. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/PrivacyPage.tsx +0 -0
  378. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/SettingsPage.tsx +0 -0
  379. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/SpecSuggestions.tsx +0 -0
  380. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/TermsPage.tsx +0 -0
  381. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/TestSection.tsx +0 -0
  382. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/index.css +0 -0
  383. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/main.tsx +0 -0
  384. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/types/index.ts +0 -0
  385. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/utils/api.ts +0 -0
  386. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/tailwind.config.js +0 -0
  387. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/tsconfig.app.json +0 -0
  388. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/tsconfig.json +0 -0
  389. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/tsconfig.node.json +0 -0
  390. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/vite.config.ts +0 -0
  391. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/nginx-paw.conf +0 -0
  392. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/nginx.conf +0 -0
  393. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/setup_mysql.sh +0 -0
  394. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/start.sh +0 -0
  395. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/test_setup.py +0 -0
  396. {programasweights-0.2.0 → programasweights-0.2.2}/web-app/ttt.py +0 -0
  397. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/.gitignore +0 -0
  398. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/README.md +0 -0
  399. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/__tests__/prompt.test.ts +0 -0
  400. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/examples/basic.html +0 -0
  401. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/serve.py +0 -0
  402. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/src/index.ts +0 -0
  403. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/src/loader.ts +0 -0
  404. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/src/types.ts +0 -0
  405. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/test-standalone.html +0 -0
  406. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/tsconfig.json +0 -0
  407. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/vitest.config.ts +0 -0
  408. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.git +0 -0
  409. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.github/workflows/build-hf-space.yml +0 -0
  410. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.github/workflows/ci.yml +0 -0
  411. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.github/workflows/generate-docs.yml +0 -0
  412. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.github/workflows/verify-generated-code.yml +0 -0
  413. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.gitignore +0 -0
  414. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.gitmodules +0 -0
  415. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.npmignore +0 -0
  416. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.prettierignore +0 -0
  417. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/CMakeLists.txt +0 -0
  418. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/LICENCE +0 -0
  419. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/README.md +0 -0
  420. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/README_banner.png +0 -0
  421. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/assets/screenshot_0.png +0 -0
  422. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/actions.hpp +0 -0
  423. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/generate_glue_prototype.js +0 -0
  424. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/glue.hpp +0 -0
  425. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wcommon.cpp +0 -0
  426. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wcommon.h +0 -0
  427. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wlog.cpp +0 -0
  428. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wlog.h +0 -0
  429. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wsampling.cpp +0 -0
  430. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wsampling.h +0 -0
  431. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/test_glue.cpp +0 -0
  432. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/wllama.cpp +0 -0
  433. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/basic/index.html +0 -0
  434. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/embeddings/index.html +0 -0
  435. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/.eslintrc.cjs +0 -0
  436. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/.gitignore +0 -0
  437. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/README.md +0 -0
  438. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/index.html +0 -0
  439. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/package-lock.json +0 -0
  440. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/package.json +0 -0
  441. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/postcss.config.js +0 -0
  442. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/public/favicon.ico +0 -0
  443. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/public/wllama.png +0 -0
  444. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/App.tsx +0 -0
  445. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/ChatScreen.tsx +0 -0
  446. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/GuideScreen.tsx +0 -0
  447. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/LogScreen.tsx +0 -0
  448. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/MarkdownMessage.tsx +0 -0
  449. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/ModelScreen.tsx +0 -0
  450. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/Navbar.tsx +0 -0
  451. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/ScreenWrapper.tsx +0 -0
  452. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/Sidebar.tsx +0 -0
  453. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/config.ts +0 -0
  454. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/index.css +0 -0
  455. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/main.tsx +0 -0
  456. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/benchmark.ts +0 -0
  457. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/custom-models.tsx +0 -0
  458. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/displayed-model.tsx +0 -0
  459. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/messages.context.tsx +0 -0
  460. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/nl2br.tsx +0 -0
  461. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/types.ts +0 -0
  462. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/use-interval-when.ts +0 -0
  463. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/utils.ts +0 -0
  464. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/wllama.context.tsx +0 -0
  465. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/vite-env.d.ts +0 -0
  466. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/tailwind.config.cjs +0 -0
  467. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/tsconfig.app.json +0 -0
  468. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/tsconfig.json +0 -0
  469. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/tsconfig.node.json +0 -0
  470. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/vite.config.ts +0 -0
  471. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/guides/intro-v2.md +0 -0
  472. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/index.ts +0 -0
  473. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/package-lock.json +0 -0
  474. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/package.json +0 -0
  475. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/build_hf_space.sh +0 -0
  476. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/build_wasm.sh +0 -0
  477. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/build_worker.sh +0 -0
  478. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/docker-compose.yml +0 -0
  479. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/generate_wasm_from_cdn.js +0 -0
  480. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/http_server.js +0 -0
  481. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/post_build.sh +0 -0
  482. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/cache-manager.ts +0 -0
  483. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/glue/glue.ts +0 -0
  484. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/glue/messages.ts +0 -0
  485. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/index.ts +0 -0
  486. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/mjs.test.ts +0 -0
  487. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/model-manager.test.ts +0 -0
  488. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/model-manager.ts +0 -0
  489. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/multi-thread/wllama.js +0 -0
  490. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/multi-thread/wllama.wasm +0 -0
  491. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/single-thread/wllama.js +0 -0
  492. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/single-thread/wllama.wasm +0 -0
  493. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/utils.test.ts +0 -0
  494. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/utils.ts +0 -0
  495. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/wasm-from-cdn.ts +0 -0
  496. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/wllama.test.ts +0 -0
  497. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/wllama.ts +0 -0
  498. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/worker.ts +0 -0
  499. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/workers-code/generated.ts +0 -0
  500. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/workers-code/llama-cpp.js +0 -0
  501. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/workers-code/opfs-utils.js +0 -0
  502. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/tsconfig.build.json +0 -0
  503. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/tsup.config.ts +0 -0
  504. {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/vitest.config.ts +0 -0
@@ -0,0 +1,53 @@
1
+ ---
2
+ description: SDK publishing workflow for Python and JavaScript packages
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # SDK Publishing Rules
7
+
8
+ ## Public repos are the source of truth for published packages
9
+
10
+ - **Python SDK**: https://github.com/programasweights/programasweights-python
11
+ - **JS SDK**: https://github.com/programasweights/programasweights-js
12
+
13
+ ## Release workflow
14
+
15
+ 1. Make changes in the public repo (feature branch -> PR -> main)
16
+ 2. Bump version in `pyproject.toml` / `__init__.py` (Python) or `package.json` (JS)
17
+ 3. Run tests: `bash tests/test_sdk.sh` (Python) or `npm test && npx playwright test` (JS)
18
+ 4. Tag: `git tag -a vX.Y.Z -m "Release vX.Y.Z"`
19
+ 5. Build and publish from the tagged commit:
20
+ - Python: `python -m build && twine upload dist/*`
21
+ - JS: `npm publish --access public`
22
+ 6. Push tag: `git push origin vX.Y.Z`
23
+ 7. Verify: compare published package with repo (`pip download` / `npm pack` then diff)
24
+
25
+ ## Never do
26
+
27
+ - Do NOT publish from the monorepo (`paw_discrete/programasweights/`) -- always use the public repos
28
+ - Do NOT publish without tagging first
29
+ - Do NOT forget to sync the monorepo after publishing (if changes originated there)
30
+ - Do NOT use rsync/scp for code deployment -- always git push + git pull
31
+ - Do NOT deploy to server without committing to git first
32
+
33
+ ## All repos are under github.com/programasweights/
34
+
35
+ - `website` -- monorepo deployed to server (git push website main)
36
+ - `programasweights-python` -- Python SDK (published to PyPI)
37
+ - `programasweights-js` -- JS SDK (published to npm)
38
+
39
+ ## Wheel index
40
+
41
+ Pre-built `llama-cpp-python` wheels are hosted at `pypi.programasweights.com`.
42
+ Install command: `pip install programasweights --extra-index-url https://pypi.programasweights.com/simple/`
43
+ If `llama-cpp-python` releases a new version, rebuild wheels on our servers and update the index.
44
+
45
+ ## PyPI credentials
46
+
47
+ - Token in `~/.bashrc` on server 31.22.104.226 as `PYPI_API_TOKEN`
48
+ - Upload via: `twine upload --username __token__ --password $PYPI_API_TOKEN`
49
+
50
+ ## npm credentials
51
+
52
+ - Token in `~/.bashrc` on server 31.22.104.226 as `NPM_TOKEN`
53
+ - Granular access token with publish permissions for `@programasweights` scope
@@ -13,14 +13,26 @@ All server code lives at `/root/paw-website/` (git clone of `programasweights/we
13
13
 
14
14
  **Deployment (the ONLY way to update code):**
15
15
  ```bash
16
- # Local: push changes
17
- git push origin main
16
+ # Local: commit and push to the website repo
17
+ git push website main
18
18
 
19
- # Server: pull and restart
20
- cd /root/paw-website && git pull
21
- cd server && bash scripts/start_all.sh
19
+ # Server: pull, build frontend, restart backend
20
+ cd /root/paw-website && git fetch origin && git reset --hard origin/main
21
+ cd web-app/frontend && npm run build && rsync -a --delete dist/ /data/paw-frontend/
22
+ cd /root/paw-website/server && bash scripts/restart.sh
22
23
  ```
23
24
 
25
+ **IMPORTANT:** `dist/` is in `.gitignore`. Frontend must be built on the server after pull.
26
+
27
+ **Repos (all under github.com/programasweights/):**
28
+ - `website` -- monorepo (server, frontend, web-sdk, docs). Deployed to server.
29
+ - `programasweights-python` -- Python SDK source. Published to PyPI.
30
+ - `programasweights-js` -- JS SDK source. Published to npm.
31
+
32
+ **Local remote setup:**
33
+ - `origin` = `yuntian-group/programasweights` (private monorepo)
34
+ - `website` = `programasweights/website` (public, deployed to server)
35
+
24
36
  **NEVER use rsync or scp for code.** Model weights use scp between servers.
25
37
 
26
38
  ### GPU Layout
@@ -0,0 +1,194 @@
1
+ # ProgramAsWeights (PAW)
2
+
3
+ PAW compiles natural language specifications into tiny neural functions that run locally. Each function takes a single text input and returns a single text output. Use PAW when you need fuzzy text processing — classification, extraction, format repair, search, triage — that regex can't handle but a full LLM is overkill for.
4
+
5
+ Website: https://programasweights.com
6
+ Docs: https://programasweights.readthedocs.io
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ pip install programasweights --extra-index-url https://pypi.programasweights.com/simple/
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ ```python
17
+ import programasweights as paw
18
+
19
+ # Use a pre-compiled function (downloads once, runs locally forever)
20
+ # "email-triage" is an official pre-compiled program (slug)
21
+ fn = paw.function("email-triage")
22
+ fn("Urgent: server is down!") # "immediate"
23
+ fn("Newsletter: spring picnic") # "wait"
24
+
25
+ # Compile your own from a description
26
+ program = paw.compile(
27
+ "Fix malformed JSON: repair missing quotes and trailing commas",
28
+ compiler="paw-4b-qwen3-0.6b" # or "paw-4b-gpt2" for smaller/faster
29
+ )
30
+ fn = paw.function(program.id)
31
+ fn("{name: 'Alice',}") # '{"name": "Alice"}'
32
+
33
+ # Or compile and load in one step
34
+ fn = paw.compile_and_load("Classify sentiment as positive or negative")
35
+ fn("I love this!") # "positive"
36
+ ```
37
+
38
+ ## Two Compilers
39
+
40
+ | | Standard (Qwen3 0.6B) | Compact (GPT-2 124M) |
41
+ |---|---|---|
42
+ | Compiler name | `paw-4b-qwen3-0.6b` | `paw-4b-gpt2` |
43
+ | Accuracy | Higher | Lower |
44
+ | Base model size | 594 MB | 105 MB |
45
+ | Program size | ~22 MB | ~5 MB |
46
+ | Inference speed | ~90ms (server) | ~50ms (server) |
47
+ | Runs in browser | No | Yes (must use this compiler) |
48
+
49
+ Default is Standard. Use Compact when you need smaller files or browser deployment.
50
+
51
+ ## When to Use PAW
52
+
53
+ - **Fuzzy search** — typo-tolerant matching, semantic search, near-duplicate detection
54
+ - **Format repair** — fix broken JSON, normalize dates, repair malformed inputs
55
+ - **Classification** — sentiment, urgency, categories defined in your own words
56
+ - **Extraction** — emails, names, dates from messy unstructured text
57
+ - **Log triage** — extract errors from verbose output, filter noise
58
+ - **Intent routing** — map user descriptions to the closest URL, menu item, or setting
59
+ - **Agent preprocessing** — parse tool calls, validate outputs, route tasks
60
+
61
+ ## Writing Good Specs
62
+
63
+ The spec is the most important input. It defines what your function does.
64
+
65
+ **Structure:** Description + examples. Use `Input: ... Output: ...` format.
66
+
67
+ ```python
68
+ fn = paw.compile_and_load("""
69
+ Classify user intent. Return ONLY one of: search, create, delete, other.
70
+
71
+ Input: Find the latest report
72
+ Output: search
73
+
74
+ Input: Make a new folder
75
+ Output: create
76
+
77
+ Input: Remove old backups
78
+ Output: delete
79
+
80
+ Input: What time is it
81
+ Output: other
82
+ """)
83
+ ```
84
+
85
+ **Tips:**
86
+ - **5-10 examples** is the sweet spot. More helps for ambiguous tasks.
87
+ - For classifiers, add **negative examples** ("Input: ... Output: NONE") to reduce false positives.
88
+ - Explicitly state output constraints: "Return ONLY one of: X, Y, Z"
89
+ - Spec + examples must fit in ~2048 tokens total (~1500 words).
90
+ - Each function is stateless: one input, one output. No conversation history.
91
+
92
+ ## Browser / JavaScript SDK
93
+
94
+ Programs compiled with `paw-4b-gpt2` also run entirely in the browser via WebAssembly.
95
+
96
+ ```bash
97
+ npm install @programasweights/web
98
+ ```
99
+
100
+ ```javascript
101
+ import paw from '@programasweights/web';
102
+
103
+ const fn = await paw.function('programasweights/email-triage');
104
+ const result = await fn('Urgent: server is down!');
105
+ // result: "immediate"
106
+ ```
107
+
108
+ ## Authentication (optional)
109
+
110
+ Everything works without authentication. Sign in for higher rate limits and program naming.
111
+
112
+ ```bash
113
+ export PAW_API_KEY=paw_sk_...
114
+ ```
115
+
116
+ Generate API keys at https://programasweights.com/settings.
117
+
118
+ | | Anonymous | Authenticated |
119
+ |---|---|---|
120
+ | Compile rate limit | 20/hr | 60/hr |
121
+ | Name programs (slugs) | No | Yes |
122
+
123
+ ## CLI
124
+
125
+ ```bash
126
+ paw compile --spec "Classify sentiment" --json
127
+ paw run --program <program_id> --input "I love this!" --json
128
+ paw info <program_id> # show program metadata
129
+ paw rename <program_id> my-slug # name a program (requires auth)
130
+ paw login # save API key
131
+ ```
132
+
133
+ `--json` gives structured output. Example:
134
+
135
+ ```json
136
+ {"program_id": "a6b454023d41ac9ca845", "slug": null, "status": "ready", "timings": {"total_ms": 2800}}
137
+ ```
138
+
139
+ ## Full API Reference
140
+
141
+ ```python
142
+ # Compile a spec into a neural program
143
+ program = paw.compile(
144
+ spec, # natural language specification (str)
145
+ compiler="paw-4b-qwen3-0.6b", # compiler model name
146
+ slug=None, # optional: URL-safe handle (requires auth)
147
+ public=True, # list on public hub
148
+ )
149
+ # Returns: Program(id: str, slug: str|None, status: str, timings: dict, error: str|None)
150
+
151
+ # Load a program for local inference
152
+ fn = paw.function(program) # accepts Program object, hash ID, or slug
153
+ fn = paw.function("a6b454023d41ac9ca845") # by hash
154
+ fn = paw.function("da03/my-classifier") # by slug
155
+
156
+ # The callable signature:
157
+ result: str = fn(input_text: str, max_tokens=512, temperature=0.0)
158
+
159
+ # Compile and load in one step
160
+ fn = paw.compile_and_load(spec, compiler="paw-4b-qwen3-0.6b")
161
+
162
+ # List your programs (requires auth)
163
+ programs = paw.list_programs(sort="recent", per_page=20)
164
+
165
+ # Save API key
166
+ paw.login()
167
+ ```
168
+
169
+ ## Common Errors
170
+
171
+ | Error | Cause | Fix |
172
+ |-------|-------|-----|
173
+ | `httpx.HTTPStatusError: 404` on download | Program still uploading to CDN | SDK retries automatically. If persistent, recompile. |
174
+ | `httpx.HTTPStatusError: 422` on compile | Spec too short (<10 chars) or too long | Adjust spec length. |
175
+ | `httpx.HTTPStatusError: 429` | Rate limit exceeded | Wait, or sign in for higher limits. |
176
+ | `FileNotFoundError: No prompt_template.txt` | Program not cached and download failed | Check network; the program may not exist. |
177
+
178
+ ## Performance Notes
179
+
180
+ - **First call**: ~500ms (loads base model into memory). Subsequent calls: ~50-90ms.
181
+ - **Base model shared**: Multiple functions share one 594 MB model in memory. Each LoRA adapter adds ~22 MB.
182
+ - **Thread-safe**: Same function can be called from multiple threads.
183
+ - **Blocking**: Each `fn()` call blocks until inference completes.
184
+ - **Cache location**: `~/.cache/programasweights/`. Set `PAW_CACHE_DIR` to override.
185
+ - **Offline**: After first download, functions work without internet.
186
+
187
+ ## Browse Programs
188
+
189
+ https://programasweights.com/hub
190
+
191
+ ## Add PAW to Your Project
192
+
193
+ Copy this file into your project as AGENTS.md:
194
+ https://programasweights.com/agents
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.2 (2026-03-19)
4
+
5
+ - Add `paw.compile_and_load()` convenience method (compile + load in one call)
6
+ - `paw.function()` now accepts a `Program` object directly (not just string ID)
7
+ - Add `paw.list_programs()` for authenticated users to list their programs
8
+ - Suppress `llama.cpp` stderr noise by default; use `verbose=True` to enable
9
+ - Rewritten AGENTS.md with spec-writing tips, full API reference, common errors, and performance notes
10
+
3
11
  ## 0.2.0 (2026-04-01)
4
12
 
5
13
  First public release.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: programasweights
3
- Version: 0.2.0
3
+ Version: 0.2.2
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
@@ -58,6 +58,10 @@ program = paw.compile(
58
58
  )
59
59
  fn = paw.function(program.slug) # or paw.function(program.id)
60
60
  fn("{name: 'Alice',}") # '{"name": "Alice"}'
61
+
62
+ # Or compile and load in one step
63
+ fn = paw.compile_and_load("Classify sentiment as positive or negative")
64
+ fn("I love this!") # "positive"
61
65
  ```
62
66
 
63
67
  ## Two Compilers
@@ -28,6 +28,10 @@ program = paw.compile(
28
28
  )
29
29
  fn = paw.function(program.slug) # or paw.function(program.id)
30
30
  fn("{name: 'Alice',}") # '{"name": "Alice"}'
31
+
32
+ # Or compile and load in one step
33
+ fn = paw.compile_and_load("Classify sentiment as positive or negative")
34
+ fn("I love this!") # "positive"
31
35
  ```
32
36
 
33
37
  ## Two Compilers
@@ -0,0 +1,90 @@
1
+ # CLI Reference
2
+
3
+ The `paw` command-line interface mirrors the Python SDK. Install from PyPI; the entry point is `paw`.
4
+
5
+ ```bash
6
+ pip install programasweights --extra-index-url https://pypi.programasweights.com/simple/
7
+ ```
8
+
9
+ ## Global options
10
+
11
+ | Option | Description |
12
+ |--------|-------------|
13
+ | `--api-url` | Override the API base URL (default: `https://programasweights.com`). |
14
+ | `--api-key` | API key for authenticated requests. Also reads `PAW_API_KEY` env var. |
15
+ | `--json` | Machine-readable JSON output (supported by all subcommands). |
16
+
17
+ ## `paw compile`
18
+
19
+ Compile a natural-language specification on the server.
20
+
21
+ ```bash
22
+ paw compile --spec "Classify message urgency" [--compiler paw-4b-qwen3-0.6b] [--slug my-classifier] [--json]
23
+ ```
24
+
25
+ | Option | Description |
26
+ |--------|-------------|
27
+ | `--spec` | Specification text to compile (required). |
28
+ | `--compiler` | Compiler model (default: `paw-4b-qwen3-0.6b`). |
29
+ | `--slug` | URL-safe handle (e.g. `my-classifier`). Creates a `username/slug` alias. Requires auth. |
30
+ | `--json` | JSON output with `program_id`, `slug`, `status`, `timings`. |
31
+
32
+ ## `paw run`
33
+
34
+ Run inference locally against a compiled program.
35
+
36
+ ```bash
37
+ paw run --program <id_or_slug> --input "your text" [--max-tokens 512] [--temperature 0.0] [--json]
38
+ ```
39
+
40
+ | Option | Description |
41
+ |--------|-------------|
42
+ | `--program` | Program hash ID, slug (e.g. `da03/my-classifier`), or official name (e.g. `email-triage`). |
43
+ | `--input` | Input text for the program. |
44
+ | `--max-tokens` | Maximum tokens to generate (default: 512). |
45
+ | `--temperature` | Sampling temperature (default: 0.0). |
46
+ | `--verbose` | Print llama.cpp debug output. |
47
+ | `--json` | JSON output with `program`, `input`, `output`. |
48
+
49
+ ## `paw rename`
50
+
51
+ Set or change a program's slug handle. Requires authentication.
52
+
53
+ ```bash
54
+ paw rename <program_id> <new-slug> [--json]
55
+ ```
56
+
57
+ | Argument | Description |
58
+ |----------|-------------|
59
+ | `program_id` | Program hash ID or current slug. |
60
+ | `new-slug` | New slug name (2-50 chars, lowercase alphanumeric and hyphens). |
61
+
62
+ ## `paw info`
63
+
64
+ Show metadata for a program.
65
+
66
+ ```bash
67
+ paw info <program_id_or_slug> [--json]
68
+ ```
69
+
70
+ ## `paw login`
71
+
72
+ Save an API key for authenticated requests.
73
+
74
+ ```bash
75
+ paw login [key]
76
+ ```
77
+
78
+ If `key` is provided, saves it directly. If omitted, opens the browser to generate one at `programasweights.com/settings`.
79
+
80
+ ## Agent workflow example
81
+
82
+ ```bash
83
+ PROGRAM_ID=$(paw compile --spec "Classify urgency" --json | jq -r '.program_id')
84
+ paw run --program "$PROGRAM_ID" --input "Please review by EOD" --json
85
+ ```
86
+
87
+ ## Related
88
+
89
+ - [Python SDK Reference](python-sdk.md)
90
+ - [REST API Reference](rest-api.md)
@@ -0,0 +1,137 @@
1
+ # Python SDK Reference
2
+
3
+ The `programasweights` package compiles natural language specs into neural programs that run locally.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pip install programasweights --extra-index-url https://pypi.programasweights.com/simple/
9
+ ```
10
+
11
+ ## Import
12
+
13
+ ```python
14
+ import programasweights as paw
15
+ ```
16
+
17
+ ## `paw.function`
18
+
19
+ ```python
20
+ fn = paw.function(name_or_id, n_ctx=2048, n_gpu_layers=0, verbose=False)
21
+ ```
22
+
23
+ Loads a compiled program and returns a callable. Downloads the program and base model on first use; cached locally after that. Works offline after first download.
24
+
25
+ | Parameter | Description |
26
+ |-----------|-------------|
27
+ | `name_or_id` | A `Program` object, hash ID (e.g. `a6b454023d41ac9ca845`), slug (e.g. `da03/my-classifier`), or official shorthand (e.g. `email-triage`). |
28
+ | `n_ctx` | Context length for the local runtime (default `2048`). |
29
+ | `n_gpu_layers` | GPU layers to offload (`0` = CPU-only, `-1` = all). Set `PAW_GPU_LAYERS` env var as default. |
30
+ | `verbose` | Enable verbose logging (default `False`). |
31
+
32
+ The returned callable:
33
+
34
+ ```python
35
+ output: str = fn(input_text, max_tokens=512, temperature=0.0)
36
+ ```
37
+
38
+ | Parameter | Description |
39
+ |-----------|-------------|
40
+ | `input_text` | Input string for the program. |
41
+ | `max_tokens` | Maximum tokens to generate (default `512`). |
42
+ | `temperature` | Sampling temperature (default `0.0`). |
43
+
44
+ ## `paw.compile`
45
+
46
+ ```python
47
+ program = paw.compile(
48
+ spec,
49
+ compiler="paw-4b-qwen3-0.6b",
50
+ name=None,
51
+ tags=None,
52
+ public=True,
53
+ slug=None,
54
+ )
55
+ ```
56
+
57
+ Compiles a natural language spec on the server. Returns a `Program` object.
58
+
59
+ | Parameter | Description |
60
+ |-----------|-------------|
61
+ | `spec` | Natural language specification (10-8000 chars). |
62
+ | `compiler` | Compiler name: `paw-4b-qwen3-0.6b` (Standard) or `paw-4b-gpt2` (Compact). |
63
+ | `name` | Display title for the hub (auto-generated if omitted). |
64
+ | `tags` | Tags for discovery (list of strings, max 10). |
65
+ | `public` | Whether to list on the public hub (default `True`). |
66
+ | `slug` | URL-safe handle (e.g. `my-classifier`). Creates a `username/slug` alias. Requires authentication. |
67
+
68
+ **Return value** -- `Program` object:
69
+
70
+ | Attribute | Description |
71
+ |-----------|-------------|
72
+ | `id` | Hash-based program identifier. Use with `paw.function(program.id)`. |
73
+ | `slug` | Full slug handle (e.g. `da03/my-classifier`) if one was created, `None` otherwise. |
74
+ | `status` | `"ready"` on success, `"failed"` on error. |
75
+ | `compiler_snapshot` | Exact compiler version used. |
76
+ | `timings` | Timing metadata from the server. |
77
+ | `error` | Error message when compilation fails. |
78
+
79
+ ## `paw.compile_and_load`
80
+
81
+ ```python
82
+ fn = paw.compile_and_load(spec, compiler="paw-4b-qwen3-0.6b", **kwargs)
83
+ ```
84
+
85
+ Convenience method that compiles a spec and immediately loads the result for local inference. Equivalent to `paw.function(paw.compile(spec, ...).id)`. Returns a callable.
86
+
87
+ Accepts all the same parameters as `paw.compile`.
88
+
89
+ ## `paw.list_programs`
90
+
91
+ ```python
92
+ result = paw.list_programs(sort="recent", per_page=20)
93
+ ```
94
+
95
+ Returns a dict with the authenticated user's compiled programs. Requires authentication.
96
+
97
+ | Parameter | Description |
98
+ |-----------|-------------|
99
+ | `sort` | Sort order: `"recent"` (default), `"votes"`, `"recommended"`. |
100
+ | `per_page` | Number of results per page (default `20`). |
101
+
102
+ **Return value** -- dict:
103
+
104
+ | Key | Description |
105
+ |-----|-------------|
106
+ | `programs` | List of program dicts with `id`, `spec`, `name`, `compiler`, etc. |
107
+ | `total` | Total number of programs. |
108
+
109
+ ## `paw.login`
110
+
111
+ ```python
112
+ paw.login(key=None)
113
+ ```
114
+
115
+ Saves an API key for authenticated requests. If `key` is provided, saves it directly. If omitted, opens the browser to generate a key at `programasweights.com/settings`.
116
+
117
+ Keys are stored in `~/.config/programasweights/config.json` and loaded automatically on subsequent imports.
118
+
119
+ You can also set the `PAW_API_KEY` environment variable instead:
120
+
121
+ ```bash
122
+ export PAW_API_KEY=paw_sk_...
123
+ ```
124
+
125
+ ## Configuration
126
+
127
+ | Name | Description |
128
+ |------|-------------|
129
+ | `paw.api_url` | Base URL for API requests. Default: `https://programasweights.com`. Override with `PAW_API_URL` env var. |
130
+ | `paw.api_key` | API key for authenticated calls. Set via `paw.login()` or `PAW_API_KEY` env var. |
131
+ | `paw.__version__` | Installed package version string. |
132
+
133
+ ## Related
134
+
135
+ - [CLI Reference](cli.md)
136
+ - [REST API Reference](rest-api.md)
137
+ - [Naming Programs](../getting-started/naming-programs.md)
@@ -69,39 +69,50 @@ List or search programs.
69
69
 
70
70
  ### `GET /programs/{id_or_slug}`
71
71
 
72
- Program detail including aliases, specification, and pseudo-program where exposed by policy.
72
+ Program detail. Accepts hash ID or slug. Private programs return 404 to non-owners.
73
73
 
74
- ### `GET /programs/{id}/download`
74
+ **Response** includes: `id`, `name`, `spec`, `interpreter`, `public`, `aliases`, `user_slug`, `author`, `tags`, `upvotes`, `downloads`, `created_at`.
75
75
 
76
- Redirects to the Hugging Face CDN for the `.paw` artifact download.
76
+ ### `PATCH /programs/{id_or_slug}`
77
+
78
+ Update program metadata. **Authentication required.**
79
+
80
+ Owner-only fields: `public`, `name`, `tags`. Any authenticated user can set their own `slug`.
81
+
82
+ | Field | Type | Description |
83
+ |-------|------|-------------|
84
+ | `public` | boolean | Visibility (owner only). |
85
+ | `name` | string | Display title, max 100 chars (owner only). |
86
+ | `tags` | string[] | Tags, max 5 items (owner only). |
87
+ | `slug` | string | URL-safe handle, 2-50 chars, `^[a-z0-9][a-z0-9-]*[a-z0-9]$`. Creates/replaces your alias for this program. |
88
+
89
+ ### `GET /programs/{id_or_slug}/download`
90
+
91
+ Redirects to the Hugging Face CDN for the `.paw` artifact. Private programs return 404 to non-owners.
77
92
 
78
93
  ### `GET /programs/resolve/{slug}`
79
94
 
80
- Resolve a slug or alias to a canonical `program_id`.
95
+ Resolve a slug (e.g. `da03/my-classifier` or bare `email-triage`) to a canonical `program_id`.
81
96
 
82
97
  ### `POST /programs/{id}/alias`
83
98
 
84
- Create an alias for the program. **Authentication required.**
85
-
86
- **Request body (JSON):**
99
+ Create or update your alias for a program. **Authentication required.** If you already have an alias for this program, it is replaced (atomic update).
87
100
 
88
101
  | Field | Type | Description |
89
102
  |-------|------|-------------|
90
- | `slug` | string | Alias slug to register. |
103
+ | `slug` | string | Slug name, 2-50 chars, lowercase alphanumeric and hyphens. |
91
104
 
92
- ### `POST /programs/{id}/vote`
105
+ ### `POST /programs/{id_or_slug}/vote`
93
106
 
94
- Submit a vote for a program. **Authentication required.**
95
-
96
- **Request body (JSON):**
107
+ Submit a vote. **Authentication required.**
97
108
 
98
109
  | Field | Type | Description |
99
110
  |-------|------|-------------|
100
- | `vote` | integer | `1` (up) or `-1` (down). |
111
+ | `vote` | integer | `1` (upvote) or `-1` (downvote). Same value again removes the vote. |
101
112
 
102
113
  ### `GET /programs/{id}/cases` and `POST /programs/{id}/cases`
103
114
 
104
- Community feedback and case submission for a program. Method-specific payloads follow the server schema for each verb.
115
+ Community case submission for a program.
105
116
 
106
117
  ### `GET /auth/github`
107
118