programasweights 0.2.0__tar.gz → 0.2.2.dev1__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.
- programasweights-0.2.2.dev1/.cursor/rules/sdk-publishing.mdc +53 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/.cursor/rules/vllm-deployment.mdc +17 -5
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/AGENTS.md +24 -22
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/PKG-INFO +1 -1
- programasweights-0.2.2.dev1/docs/api-reference/cli.md +90 -0
- programasweights-0.2.2.dev1/docs/api-reference/python-sdk.md +107 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/api-reference/rest-api.md +25 -14
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/__init__.py +59 -3
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/cli.py +3 -1
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/client.py +25 -7
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/runtime_llamacpp.py +19 -6
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/pyproject.toml +1 -1
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/routes/compile.py +10 -3
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/routes/programs.py +19 -7
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/services/compile_provider.py +26 -5
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/tests/test_sdk.py +196 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/tests/test_sdk.sh +1 -1
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/e2e/full.spec.ts +12 -14
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/AboutPage.tsx +1 -1
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/AgentsPage.tsx +66 -13
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/AuthorPage.tsx +10 -5
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/HubProgramPage.tsx +15 -21
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/LandingPage.tsx +4 -2
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/MainInterface.tsx +53 -37
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/NavigationHelper.tsx +1 -1
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/ProfilePage.tsx +27 -20
- programasweights-0.2.2.dev1/web-sdk/LICENSE +21 -0
- programasweights-0.2.2.dev1/web-sdk/__tests__/e2e/browser.spec.ts +223 -0
- programasweights-0.2.2.dev1/web-sdk/__tests__/e2e/server.ts +69 -0
- programasweights-0.2.2.dev1/web-sdk/__tests__/e2e/start-server.ts +2 -0
- programasweights-0.2.2.dev1/web-sdk/__tests__/e2e/test-page.html +122 -0
- programasweights-0.2.2.dev1/web-sdk/__tests__/loader.test.ts +244 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/package-lock.json +61 -2
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/package.json +4 -3
- programasweights-0.2.2.dev1/web-sdk/playwright.config.ts +19 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/src/runtime.ts +3 -1
- programasweights-0.2.0/docs/api-reference/cli.md +0 -76
- programasweights-0.2.0/docs/api-reference/python-sdk.md +0 -75
- programasweights-0.2.0/web-app/frontend/test-results/.last-run.json +0 -4
- programasweights-0.2.0/web-sdk/__tests__/loader.test.ts +0 -110
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/.git +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/.github/workflows/web-sdk.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/.gitignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/.gitmodules +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/.hatch_build.toml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/.readthedocs.yaml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/1apple.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/1apple2.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/2apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/2apples2.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/3apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/3apples2.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/479400.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/4apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/4apples2.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/4apples3.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/4apples4.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/5apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/6apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/8apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/9apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/CHANGELOG.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/FLOW_SUMMARY.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/LICENSE +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/MANIFEST.in +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/ONNX_MIGRATION_PLAN.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/PREFIX_TOKENS_DESIGN.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/PYPI_README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/TRUNCATION_CHANGES.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/USE_CASES_AND_IDEAS.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/VERIFICATION_USAGE.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/analyze_dataset.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/analyze_lengths.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/code_prompt.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/evaluate_openai_python_code_baseline.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/openai_batch_request.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/prepare_alchemist_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/prepare_var_bench_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/python_code_sandbox.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/script_evaluation_var_bench.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/script_evalution_evaluation.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/script_evalution_request.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/baselines/script_evalution_statistics.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/benchmark_pytorch_vs_onnx.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/benchmark_user_experience.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/check_dataset.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/combine_datasets.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/compare_datasets.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/compare_old_vs_regen.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/convert_paw_to_svg.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/create_favicon_sizes.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/create_visualization_from_log.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/create_vqa_dataset.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/debug_cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/debug_eos_example.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/adr/001-llama-cpp-over-pytorch.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/adr/002-q4_0-adapter-format.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/adr/003-single-spec-field.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/adr/004-compiler-naming.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/adr/005-vllm-hidden-states.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/adr/006-email-api-key-auth.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/advanced/adrs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/advanced/architecture.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/architecture.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/getting-started/first-program.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/getting-started/installation.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/getting-started/naming-programs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/guide/browser-inference.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/guide/how-it-works.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/guide/local-inference.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/guide/writing-good-specs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/hub/browsing-programs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/hub/feedback-cases.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/hub/publishing-programs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/index.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/docs/requirements.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/estimate_data_gen_cost.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/eval.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/examples/flask_app.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/examples/jupyter_notebook.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/examples/langchain_integration.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/examples/replace_openai.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/export_to_onnx.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/extract_models.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/inspect_data_dirs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/latest_export.csv +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/log.train.81920.morecategories.extraprefix +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/main_no_spec_direct_ans_mix_continuous_sampleref_shorterprompt_vllm.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/merge_datasets.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/mkdocs.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/paw.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/paw.svg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/process_im2latex_dataset.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/artifacts.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/compiler/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/compiler/dummy.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/config.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/convert_peft_to_paw.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/paw_format.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/runtime/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/runtime/interpreter.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights/runtime/interpreter_onnx.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/compiler/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/lora_format.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/runtime/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/runtime/interpreter_lora.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/tests/test_compile_and_run.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/tests/test_lora_format.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/tests/test_training.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/train_lora.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/training/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/programasweights_lora/training/loops/lora_tuning_sft.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/run_eval.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/run_training.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/scripts/filter_table_by_length.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/.env.example +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/alembic/env.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/alembic/script.py.mako +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/alembic/versions/001_initial_schema.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/alembic/versions/002_namespaced_aliases_hf_url.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/alembic/versions/003_fulltext_search_ranking.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/alembic/versions/004_fix_alias_slug_constraint.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/alembic.ini +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/config.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/dependencies.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/logging_config.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/main.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/middleware/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/middleware/rate_limit.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/models/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/models/database.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/models/orm.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/models/schemas.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/routes/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/routes/auth.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/routes/feedback.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/routes/health.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/routes/infer.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/routes/models_info.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/services/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/services/auto_tag_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/services/auto_title_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/services/compile_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/services/infer_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/services/search_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/api/services/storage_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/benchmarks/benchmark_api.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/benchmarks/handcrafted_specs.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/benchmarks/last_benchmark_results.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/benchmarks/last_stress_results.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/benchmarks/stress_test.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/compiler_registry.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/provider_configs/gpt2.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/provider_configs/qwen3-0.6b.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/requirements.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/ab_test_hf_vs_vllm.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/ablation_search.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/backfill_hf_browser_assets.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/backfill_hf_safetensors.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/backfill_interestingness.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/backfill_tags.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/backfill_titles.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/benchmark_gpt2.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/cleanup_storage.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/eval_search.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/evict_cold_programs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/generate_prefix_cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/launch_gpt2_compiler.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/launch_qwen3_compiler.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/patch_vllm.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/restart.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/start_all.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/start_gpt2_services.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/start_provider.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/scripts/start_services.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/conftest.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/test_auth.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/test_compile.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/test_errors.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/test_infer.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/test_integration_gpu.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/test_rate_limit.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/tests/test_storage.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/vllm_models/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/vllm_models/gpt2_lora_patch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/vllm_models/paw_compiler.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/vllm_models/prepare_checkpoint.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/server/vllm_models/register.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.rollout_ppl.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.em_es.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.ppl.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.reward.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_1spec.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_all_caching.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_apple_count.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_batch_pilot.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_compile.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_e2e.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_execute.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_nspecs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_one_vs_two_step.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_onnx_correctness.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_onnx_hf_model.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_onnx_hf_with_images.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_paw_format.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/test_thinking_comparison.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/tests/test_offline_cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/train.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/train_no_spec_direct_ans_mix_continuous_sampleref_trainonly_shorterprompt_withregularizer_generate_lora.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/DATASET_CHANGELOG.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/VERIFICATION_PIPELINE.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/build_user_bench.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/dry_run_batch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/filter_test_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/generate_specs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/generate_specs_batch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/incremental_merge.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/merge_and_upload.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/regenerate_outputs_batch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/synthesize_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/synthesize_data_batch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/filter_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/filter_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/pairs_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/pairs_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/specs_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/specs_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/specs_user_freeform.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/specs_user_freeform_with_examples.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/specs_user_with_examples.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/verify_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates/verify_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/filter_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/filter_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/pairs_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/pairs_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/specs_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/specs_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/specs_user_freeform.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/specs_user_freeform_with_examples.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/specs_user_with_examples.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/verify_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/templates_old/verify_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/data_generation/verify_test_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/datasets/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/datasets/jsonl_text_pairs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/loops/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/training/loops/prefix_tuning_sft.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/ttt.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/upload_model.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/upload_onnx_to_huggingface.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/upload_onnx_to_huggingface_with_token.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/utils.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/HANDOFF.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/config.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/main.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/middleware/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/middleware/rate_limit.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/models.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/auth_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/case_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/compiler_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/gpt_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/hub_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/image_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/interpreter_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/services/sql_manager.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/templates/gpt_test_generation.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/utils/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/utils/image_placeholders.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/app/utils/program_hash.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/clear_db.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/clear_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/data/programs.db +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/env_example.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/example_images/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/get_data_examples.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/requirements.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/run_server.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_analytics_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_auth_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_cache_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_cases_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_database.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_database_simple.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_db.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_example_images.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/setup_hub_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/backend/test_compilation_cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/e2e/helpers.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/e2e/smoke.spec.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/eslint.config.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/index.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/package-lock.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/package.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/playwright.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/postcss.config.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/apple-touch-icon.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/browser-worker.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/favicon-16x16.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/favicon-32x32.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/paw-192.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/paw-512.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/paw.svg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/react-test.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/test.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/public/vite.svg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/scripts/deploy.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/App.css +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/App.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/assets/react.svg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/BrowserPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/CasesSection.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/CompileButtonWithConfig.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/CompileSection.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/DocsPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/ExamplesInput.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/Footer.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/Header.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/HubPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/HubUploadPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/ModelSelector.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/PrivacyPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/SettingsPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/SpecSuggestions.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/TermsPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/components/TestSection.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/index.css +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/main.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/types/index.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/src/utils/api.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/tailwind.config.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/tsconfig.app.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/tsconfig.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/tsconfig.node.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/frontend/vite.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/nginx-paw.conf +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/nginx.conf +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/setup_mysql.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/start.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/test_setup.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-app/ttt.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/.gitignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/__tests__/prompt.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/examples/basic.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/serve.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/src/index.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/src/loader.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/src/types.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/test-standalone.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/tsconfig.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/vitest.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.git +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.github/workflows/build-hf-space.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.github/workflows/ci.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.github/workflows/generate-docs.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.github/workflows/verify-generated-code.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.gitignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.gitmodules +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.npmignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/.prettierignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/CMakeLists.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/LICENCE +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/README_banner.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/assets/screenshot_0.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/actions.hpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/generate_glue_prototype.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/glue.hpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/helpers/wcommon.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/helpers/wcommon.h +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/helpers/wlog.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/helpers/wlog.h +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/helpers/wsampling.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/helpers/wsampling.h +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/test_glue.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/cpp/wllama.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/basic/index.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/embeddings/index.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/.eslintrc.cjs +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/.gitignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/index.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/package-lock.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/package.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/postcss.config.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/public/favicon.ico +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/public/wllama.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/App.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/components/ChatScreen.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/components/GuideScreen.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/components/LogScreen.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/components/MarkdownMessage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/components/ModelScreen.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/components/Navbar.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/components/ScreenWrapper.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/components/Sidebar.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/index.css +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/main.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/benchmark.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/custom-models.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/displayed-model.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/messages.context.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/nl2br.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/types.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/use-interval-when.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/utils.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/utils/wllama.context.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/src/vite-env.d.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/tailwind.config.cjs +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/tsconfig.app.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/tsconfig.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/tsconfig.node.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/examples/main/vite.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/guides/intro-v2.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/index.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/package-lock.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/package.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/scripts/build_hf_space.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/scripts/build_wasm.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/scripts/build_worker.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/scripts/docker-compose.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/scripts/generate_wasm_from_cdn.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/scripts/http_server.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/scripts/post_build.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/cache-manager.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/glue/glue.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/glue/messages.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/index.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/mjs.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/model-manager.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/model-manager.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/multi-thread/wllama.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/multi-thread/wllama.wasm +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/single-thread/wllama.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/single-thread/wllama.wasm +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/utils.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/utils.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/wasm-from-cdn.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/wllama.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/wllama.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/worker.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/workers-code/generated.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/workers-code/llama-cpp.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/src/workers-code/opfs-utils.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/tsconfig.build.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/web-sdk/wllama/tsup.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2.dev1}/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
|
|
17
|
-
git push
|
|
16
|
+
# Local: commit and push to the website repo
|
|
17
|
+
git push website main
|
|
18
18
|
|
|
19
|
-
# Server: pull
|
|
20
|
-
cd /root/paw-website && git
|
|
21
|
-
cd
|
|
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
|
|
@@ -24,10 +24,9 @@ fn("Newsletter: spring picnic") # "wait"
|
|
|
24
24
|
# Compile your own from a description
|
|
25
25
|
program = paw.compile(
|
|
26
26
|
"Fix malformed JSON: repair missing quotes and trailing commas",
|
|
27
|
-
compiler="paw-4b-qwen3-0.6b"
|
|
28
|
-
slug="json-fixer" # optional: creates da03/json-fixer handle
|
|
27
|
+
compiler="paw-4b-qwen3-0.6b" # or "paw-4b-gpt2" for smaller/faster
|
|
29
28
|
)
|
|
30
|
-
fn = paw.function(program.
|
|
29
|
+
fn = paw.function(program.id)
|
|
31
30
|
fn("{name: 'Alice',}") # '{"name": "Alice"}'
|
|
32
31
|
```
|
|
33
32
|
|
|
@@ -72,38 +71,41 @@ Use this when you want to offload all computation to the user's browser: zero se
|
|
|
72
71
|
- **Intent routing** — map user descriptions to the closest URL, menu item, or setting
|
|
73
72
|
- **Agent preprocessing** — parse tool calls, validate outputs, route tasks
|
|
74
73
|
|
|
75
|
-
## Authentication
|
|
74
|
+
## Authentication (optional)
|
|
75
|
+
|
|
76
|
+
Everything works without authentication. Sign in for higher rate limits and program naming.
|
|
76
77
|
|
|
77
78
|
```bash
|
|
78
|
-
# Option 1: environment variable (recommended)
|
|
79
79
|
export PAW_API_KEY=paw_sk_...
|
|
80
|
-
|
|
81
|
-
# Option 2: CLI login (opens browser to generate key)
|
|
82
|
-
paw login
|
|
83
80
|
```
|
|
84
81
|
|
|
85
|
-
Generate API keys at https://programasweights.com/settings
|
|
82
|
+
Generate API keys at https://programasweights.com/settings. The SDK reads `PAW_API_KEY` from the environment automatically.
|
|
86
83
|
|
|
87
|
-
|
|
84
|
+
| | Anonymous | Authenticated |
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| Compile rate limit | 20/hr | 60/hr |
|
|
87
|
+
| Name programs (slugs) | No | Yes |
|
|
88
88
|
|
|
89
89
|
## Program Naming
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
users can optionally assign a slug at compile time to create a human-readable
|
|
93
|
-
handle like `da03/json-fixer`. Both forms work everywhere:
|
|
91
|
+
Every compiled program gets an immutable hash ID (e.g. `a6b454023d41ac9ca845`). Authenticated users can also assign a human-readable slug:
|
|
94
92
|
|
|
95
93
|
```python
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
program = paw.compile("Classify sentiment", slug="my-classifier")
|
|
95
|
+
# program.id -> "a6b454023d41ac9ca845"
|
|
96
|
+
# program.slug -> "da03/my-classifier"
|
|
97
|
+
|
|
98
|
+
fn = paw.function("da03/my-classifier") # by slug (requires auth to create)
|
|
99
|
+
fn = paw.function("a6b454023d41ac9ca845") # by hash (always works)
|
|
98
100
|
```
|
|
99
101
|
|
|
100
102
|
## CLI
|
|
101
103
|
|
|
102
104
|
```bash
|
|
103
|
-
paw compile --spec "Classify sentiment" --
|
|
104
|
-
paw run --program
|
|
105
|
-
paw
|
|
106
|
-
paw
|
|
105
|
+
paw compile --spec "Classify sentiment" --json
|
|
106
|
+
paw run --program <program_id> --input "I love this!" --json
|
|
107
|
+
paw info <program_id> # show program metadata
|
|
108
|
+
paw rename <program_id> my-slug # name a program (requires auth)
|
|
107
109
|
paw login # save API key
|
|
108
110
|
```
|
|
109
111
|
|
|
@@ -112,9 +114,9 @@ paw login # save API key
|
|
|
112
114
|
## API
|
|
113
115
|
|
|
114
116
|
```python
|
|
115
|
-
paw.compile(spec
|
|
116
|
-
paw.function(
|
|
117
|
-
paw.login() #
|
|
117
|
+
paw.compile(spec) # compile (returns Program with .id)
|
|
118
|
+
paw.function(program_id_or_slug) # load for local inference
|
|
119
|
+
paw.login() # save API key
|
|
118
120
|
```
|
|
119
121
|
|
|
120
122
|
## Browse Programs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: programasweights
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2.dev1
|
|
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
|
|
@@ -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,107 @@
|
|
|
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` | Program 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.login`
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
paw.login(key=None)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
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`.
|
|
86
|
+
|
|
87
|
+
Keys are stored in `~/.config/programasweights/config.json` and loaded automatically on subsequent imports.
|
|
88
|
+
|
|
89
|
+
You can also set the `PAW_API_KEY` environment variable instead:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
export PAW_API_KEY=paw_sk_...
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Configuration
|
|
96
|
+
|
|
97
|
+
| Name | Description |
|
|
98
|
+
|------|-------------|
|
|
99
|
+
| `paw.api_url` | Base URL for API requests. Default: `https://programasweights.com`. Override with `PAW_API_URL` env var. |
|
|
100
|
+
| `paw.api_key` | API key for authenticated calls. Set via `paw.login()` or `PAW_API_KEY` env var. |
|
|
101
|
+
| `paw.__version__` | Installed package version string. |
|
|
102
|
+
|
|
103
|
+
## Related
|
|
104
|
+
|
|
105
|
+
- [CLI Reference](cli.md)
|
|
106
|
+
- [REST API Reference](rest-api.md)
|
|
107
|
+
- [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
|
|
72
|
+
Program detail. Accepts hash ID or slug. Private programs return 404 to non-owners.
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
**Response** includes: `id`, `name`, `spec`, `interpreter`, `public`, `aliases`, `user_slug`, `author`, `tags`, `upvotes`, `downloads`, `created_at`.
|
|
75
75
|
|
|
76
|
-
|
|
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
|
|
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
|
|
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 |
|
|
103
|
+
| `slug` | string | Slug name, 2-50 chars, lowercase alphanumeric and hyphens. |
|
|
91
104
|
|
|
92
|
-
### `POST /programs/{
|
|
105
|
+
### `POST /programs/{id_or_slug}/vote`
|
|
93
106
|
|
|
94
|
-
Submit a vote
|
|
95
|
-
|
|
96
|
-
**Request body (JSON):**
|
|
107
|
+
Submit a vote. **Authentication required.**
|
|
97
108
|
|
|
98
109
|
| Field | Type | Description |
|
|
99
110
|
|-------|------|-------------|
|
|
100
|
-
| `vote` | integer | `1` (
|
|
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
|
|
115
|
+
Community case submission for a program.
|
|
105
116
|
|
|
106
117
|
### `GET /auth/github`
|
|
107
118
|
|
|
@@ -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.2.
|
|
25
|
+
__version__ = "0.2.2.dev1"
|
|
26
26
|
|
|
27
27
|
from .config import get_api_url, get_api_key, set_api_key
|
|
28
28
|
|
|
@@ -72,7 +72,7 @@ def compile(
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
def function(
|
|
75
|
-
program_id
|
|
75
|
+
program_id,
|
|
76
76
|
n_ctx: int = 2048,
|
|
77
77
|
n_gpu_layers: int | None = None,
|
|
78
78
|
verbose: bool = False,
|
|
@@ -83,7 +83,7 @@ def function(
|
|
|
83
83
|
Subsequent calls use the local cache.
|
|
84
84
|
|
|
85
85
|
Args:
|
|
86
|
-
program_id:
|
|
86
|
+
program_id: Program ID (str), slug, or a ``Program`` object from compile().
|
|
87
87
|
n_ctx: Context window size for llama.cpp.
|
|
88
88
|
n_gpu_layers: GPU layers (-1 = all, 0 = CPU only). Defaults to CPU.
|
|
89
89
|
Set ``PAW_GPU_LAYERS`` env var or pass explicitly for GPU acceleration.
|
|
@@ -96,7 +96,12 @@ def function(
|
|
|
96
96
|
>>> fn = paw.function("email-triage")
|
|
97
97
|
>>> fn("Urgent: the server is down!")
|
|
98
98
|
'immediate'
|
|
99
|
+
|
|
100
|
+
>>> program = paw.compile("Classify sentiment")
|
|
101
|
+
>>> fn = paw.function(program) # accepts Program object directly
|
|
99
102
|
"""
|
|
103
|
+
if hasattr(program_id, 'id'):
|
|
104
|
+
program_id = program_id.slug or program_id.id
|
|
100
105
|
import os
|
|
101
106
|
import re
|
|
102
107
|
from .cache import is_program_cached, get_program_dir, get_cached_slug, save_slug_mapping
|
|
@@ -175,9 +180,60 @@ def login(key: str | None = None):
|
|
|
175
180
|
print("You can also set the PAW_API_KEY environment variable.")
|
|
176
181
|
|
|
177
182
|
|
|
183
|
+
def compile_and_load(
|
|
184
|
+
spec: str,
|
|
185
|
+
compiler: str = "paw-4b-qwen3-0.6b",
|
|
186
|
+
n_ctx: int = 2048,
|
|
187
|
+
n_gpu_layers: int | None = None,
|
|
188
|
+
verbose: bool = False,
|
|
189
|
+
**compile_kwargs,
|
|
190
|
+
):
|
|
191
|
+
"""Compile a spec and immediately load it for local inference.
|
|
192
|
+
|
|
193
|
+
Convenience wrapper that combines ``paw.compile()`` and ``paw.function()``
|
|
194
|
+
into a single call.
|
|
195
|
+
|
|
196
|
+
Args:
|
|
197
|
+
spec: Natural language specification.
|
|
198
|
+
compiler: Compiler model name.
|
|
199
|
+
n_ctx: Context window size for llama.cpp.
|
|
200
|
+
n_gpu_layers: GPU layers (-1 = all, 0 = CPU only).
|
|
201
|
+
verbose: Print llama.cpp debug output.
|
|
202
|
+
**compile_kwargs: Additional args passed to compile (slug, public, etc.)
|
|
203
|
+
|
|
204
|
+
Returns:
|
|
205
|
+
A callable ``PawFunction``.
|
|
206
|
+
|
|
207
|
+
Example:
|
|
208
|
+
>>> fn = paw.compile_and_load("Classify sentiment as positive or negative")
|
|
209
|
+
>>> fn("I love this!")
|
|
210
|
+
'positive'
|
|
211
|
+
"""
|
|
212
|
+
program = compile(spec, compiler=compiler, **compile_kwargs)
|
|
213
|
+
return function(program, n_ctx=n_ctx, n_gpu_layers=n_gpu_layers, verbose=verbose)
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
def list_programs(sort: str = "recent", per_page: int = 20, page: int = 1) -> dict:
|
|
217
|
+
"""List your compiled programs. Requires authentication (PAW_API_KEY).
|
|
218
|
+
|
|
219
|
+
Returns:
|
|
220
|
+
Dict with ``programs`` (list), ``total``, ``page``, ``per_page``.
|
|
221
|
+
|
|
222
|
+
Example:
|
|
223
|
+
>>> programs = paw.list_programs()
|
|
224
|
+
>>> for p in programs["programs"]:
|
|
225
|
+
... print(p["id"], p["name"])
|
|
226
|
+
"""
|
|
227
|
+
from .client import PAWClient
|
|
228
|
+
client = PAWClient(api_url=api_url, api_key=api_key)
|
|
229
|
+
return client.list_programs(sort=sort, per_page=per_page, page=page)
|
|
230
|
+
|
|
231
|
+
|
|
178
232
|
__all__ = [
|
|
179
233
|
"compile",
|
|
234
|
+
"compile_and_load",
|
|
180
235
|
"function",
|
|
236
|
+
"list_programs",
|
|
181
237
|
"login",
|
|
182
238
|
"api_url",
|
|
183
239
|
"api_key",
|
|
@@ -27,7 +27,8 @@ def cmd_compile(args):
|
|
|
27
27
|
if not args.json:
|
|
28
28
|
print(f"Compiling: {args.spec[:80]}...")
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
public = not getattr(args, 'private', False)
|
|
31
|
+
program = paw.compile(args.spec, compiler=args.compiler, slug=getattr(args, 'slug', None), public=public)
|
|
31
32
|
|
|
32
33
|
if args.json:
|
|
33
34
|
print(json.dumps({
|
|
@@ -170,6 +171,7 @@ def main():
|
|
|
170
171
|
p.add_argument("--spec", required=True, help="Natural language specification")
|
|
171
172
|
p.add_argument("--compiler", default="paw-4b-qwen3-0.6b", help="Compiler model")
|
|
172
173
|
p.add_argument("--slug", default=None, help="URL-safe handle (e.g. 'message-classifier')")
|
|
174
|
+
p.add_argument("--private", action="store_true", help="Make program private (not listed on hub)")
|
|
173
175
|
p.add_argument("--json", action="store_true", help="JSON output")
|
|
174
176
|
|
|
175
177
|
p = sub.add_parser("run", help="Run a program locally via llama.cpp")
|
|
@@ -108,18 +108,25 @@ class PAWClient:
|
|
|
108
108
|
"""Download a .paw bundle to the local cache.
|
|
109
109
|
|
|
110
110
|
Returns the path to the extracted program directory.
|
|
111
|
+
Retries on 404 since freshly compiled programs may still be uploading.
|
|
111
112
|
"""
|
|
112
113
|
program_dir = config.get_programs_dir() / program_id
|
|
113
114
|
if (program_dir / "prompt_template.txt").exists():
|
|
114
115
|
return program_dir
|
|
115
116
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
max_retries = 10
|
|
118
|
+
for attempt in range(max_retries):
|
|
119
|
+
resp = httpx.get(
|
|
120
|
+
f"{self._api_url}/api/v1/programs/{program_id}/download",
|
|
121
|
+
headers=self._headers(),
|
|
122
|
+
timeout=60.0,
|
|
123
|
+
follow_redirects=True,
|
|
124
|
+
)
|
|
125
|
+
if resp.status_code == 404 and attempt < max_retries - 1:
|
|
126
|
+
time.sleep(3)
|
|
127
|
+
continue
|
|
128
|
+
resp.raise_for_status()
|
|
129
|
+
break
|
|
123
130
|
|
|
124
131
|
program_dir.mkdir(parents=True, exist_ok=True)
|
|
125
132
|
paw_path = program_dir / f"{program_id}.paw"
|
|
@@ -140,6 +147,17 @@ class PAWClient:
|
|
|
140
147
|
resp.raise_for_status()
|
|
141
148
|
return resp.json()
|
|
142
149
|
|
|
150
|
+
def list_programs(self, sort: str = "recent", per_page: int = 20, page: int = 1) -> dict:
|
|
151
|
+
"""List programs for the authenticated user."""
|
|
152
|
+
resp = httpx.get(
|
|
153
|
+
f"{self._api_url}/api/v1/programs",
|
|
154
|
+
params={"mine": "true", "sort": sort, "per_page": per_page, "page": page},
|
|
155
|
+
headers=self._headers(),
|
|
156
|
+
timeout=10.0,
|
|
157
|
+
)
|
|
158
|
+
resp.raise_for_status()
|
|
159
|
+
return resp.json()
|
|
160
|
+
|
|
143
161
|
|
|
144
162
|
_default_client: PAWClient | None = None
|
|
145
163
|
|
|
@@ -53,12 +53,25 @@ class PawFunction:
|
|
|
53
53
|
interpreter = self._meta.get("interpreter", "Qwen/Qwen3-0.6B")
|
|
54
54
|
base_model_path = cache.get_base_model_path(interpreter)
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
if not verbose:
|
|
57
|
+
import os as _os, sys as _sys
|
|
58
|
+
_stderr_fd = _sys.stderr.fileno()
|
|
59
|
+
_devnull = _os.open(_os.devnull, _os.O_WRONLY)
|
|
60
|
+
_old_stderr = _os.dup(_stderr_fd)
|
|
61
|
+
_os.dup2(_devnull, _stderr_fd)
|
|
62
|
+
|
|
63
|
+
try:
|
|
64
|
+
self._llm = Llama(
|
|
65
|
+
model_path=str(base_model_path),
|
|
66
|
+
n_ctx=n_ctx,
|
|
67
|
+
n_gpu_layers=n_gpu_layers,
|
|
68
|
+
verbose=verbose,
|
|
69
|
+
)
|
|
70
|
+
finally:
|
|
71
|
+
if not verbose:
|
|
72
|
+
_os.dup2(_old_stderr, _stderr_fd)
|
|
73
|
+
_os.close(_devnull)
|
|
74
|
+
_os.close(_old_stderr)
|
|
62
75
|
|
|
63
76
|
adapter_path = program_dir / "adapter.gguf"
|
|
64
77
|
if adapter_path.exists():
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "programasweights"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.2.dev1"
|
|
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"
|