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.
- programasweights-0.2.2/.cursor/rules/sdk-publishing.mdc +53 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/.cursor/rules/vllm-deployment.mdc +17 -5
- programasweights-0.2.2/AGENTS.md +194 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/CHANGELOG.md +8 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/PKG-INFO +5 -1
- {programasweights-0.2.0 → programasweights-0.2.2}/PYPI_README.md +4 -0
- programasweights-0.2.2/docs/api-reference/cli.md +90 -0
- programasweights-0.2.2/docs/api-reference/python-sdk.md +137 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/api-reference/rest-api.md +25 -14
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/__init__.py +59 -3
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/cli.py +3 -1
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/client.py +25 -7
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/runtime_llamacpp.py +19 -6
- {programasweights-0.2.0 → programasweights-0.2.2}/pyproject.toml +1 -1
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/compile.py +10 -3
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/programs.py +19 -7
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/compile_provider.py +26 -5
- {programasweights-0.2.0 → programasweights-0.2.2}/tests/test_sdk.py +196 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/tests/test_sdk.sh +1 -1
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/e2e/full.spec.ts +12 -14
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/AboutPage.tsx +1 -1
- programasweights-0.2.2/web-app/frontend/src/components/AgentsPage.tsx +302 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/AuthorPage.tsx +10 -5
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/HubProgramPage.tsx +15 -21
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/LandingPage.tsx +4 -2
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/MainInterface.tsx +53 -37
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/NavigationHelper.tsx +1 -1
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/ProfilePage.tsx +27 -20
- programasweights-0.2.2/web-sdk/LICENSE +21 -0
- programasweights-0.2.2/web-sdk/__tests__/e2e/browser.spec.ts +223 -0
- programasweights-0.2.2/web-sdk/__tests__/e2e/server.ts +69 -0
- programasweights-0.2.2/web-sdk/__tests__/e2e/start-server.ts +2 -0
- programasweights-0.2.2/web-sdk/__tests__/e2e/test-page.html +122 -0
- programasweights-0.2.2/web-sdk/__tests__/loader.test.ts +244 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/package-lock.json +61 -2
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/package.json +4 -3
- programasweights-0.2.2/web-sdk/playwright.config.ts +19 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/src/runtime.ts +3 -1
- programasweights-0.2.0/AGENTS.md +0 -127
- 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/src/components/AgentsPage.tsx +0 -170
- 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}/.git +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/.github/workflows/web-sdk.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/.gitignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/.gitmodules +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/.hatch_build.toml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/.readthedocs.yaml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/1apple.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/1apple2.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/2apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/2apples2.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/3apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/3apples2.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/479400.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/4apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/4apples2.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/4apples3.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/4apples4.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/5apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/6apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/8apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/9apples.jpg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/FLOW_SUMMARY.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/LICENSE +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/MANIFEST.in +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/ONNX_MIGRATION_PLAN.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/PREFIX_TOKENS_DESIGN.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/TRUNCATION_CHANGES.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/USE_CASES_AND_IDEAS.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/VERIFICATION_USAGE.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/analyze_dataset.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/analyze_lengths.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/code_prompt.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/evaluate_openai_python_code_baseline.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/openai_batch_request.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/prepare_alchemist_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/prepare_var_bench_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/python_code_sandbox.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/script_evaluation_var_bench.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/script_evalution_evaluation.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/script_evalution_request.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/baselines/script_evalution_statistics.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/benchmark_pytorch_vs_onnx.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/benchmark_user_experience.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/check_dataset.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/combine_datasets.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/compare_datasets.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/compare_old_vs_regen.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/convert_paw_to_svg.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/create_favicon_sizes.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/create_visualization_from_log.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/create_vqa_dataset.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/debug_cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/debug_eos_example.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/001-llama-cpp-over-pytorch.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/002-q4_0-adapter-format.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/003-single-spec-field.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/004-compiler-naming.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/005-vllm-hidden-states.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/adr/006-email-api-key-auth.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/advanced/adrs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/advanced/architecture.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/architecture.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/getting-started/first-program.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/getting-started/installation.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/getting-started/naming-programs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/guide/browser-inference.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/guide/how-it-works.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/guide/local-inference.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/guide/writing-good-specs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/hub/browsing-programs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/hub/feedback-cases.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/hub/publishing-programs.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/index.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/docs/requirements.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/estimate_data_gen_cost.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/eval.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/examples/flask_app.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/examples/jupyter_notebook.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/examples/langchain_integration.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/examples/replace_openai.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/export_to_onnx.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/extract_models.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/inspect_data_dirs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/latest_export.csv +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/log.train.81920.morecategories.extraprefix +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/main_no_spec_direct_ans_mix_continuous_sampleref_shorterprompt_vllm.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/merge_datasets.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/mkdocs.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/paw.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/paw.svg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/process_im2latex_dataset.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/artifacts.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/compiler/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/compiler/dummy.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/config.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/convert_peft_to_paw.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/paw_format.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/runtime/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/runtime/interpreter.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights/runtime/interpreter_onnx.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/compiler/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/lora_format.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/runtime/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/runtime/interpreter_lora.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/tests/test_compile_and_run.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/tests/test_lora_format.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/tests/test_training.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/train_lora.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/training/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/programasweights_lora/training/loops/lora_tuning_sft.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/run_eval.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/run_training.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/scripts/filter_table_by_length.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/.env.example +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/env.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/script.py.mako +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/versions/001_initial_schema.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/versions/002_namespaced_aliases_hf_url.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/versions/003_fulltext_search_ranking.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic/versions/004_fix_alias_slug_constraint.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/alembic.ini +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/config.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/dependencies.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/logging_config.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/main.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/middleware/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/middleware/rate_limit.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/models/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/models/database.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/models/orm.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/models/schemas.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/auth.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/feedback.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/health.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/infer.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/routes/models_info.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/auto_tag_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/auto_title_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/compile_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/infer_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/search_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/api/services/storage_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/benchmark_api.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/handcrafted_specs.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/last_benchmark_results.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/last_stress_results.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/benchmarks/stress_test.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/compiler_registry.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/provider_configs/gpt2.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/provider_configs/qwen3-0.6b.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/requirements.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/ab_test_hf_vs_vllm.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/ablation_search.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_hf_browser_assets.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_hf_safetensors.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_interestingness.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_tags.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/backfill_titles.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/benchmark_gpt2.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/cleanup_storage.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/eval_search.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/evict_cold_programs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/generate_prefix_cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/launch_gpt2_compiler.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/launch_qwen3_compiler.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/patch_vllm.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/restart.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/start_all.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/start_gpt2_services.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/start_provider.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/scripts/start_services.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/conftest.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_auth.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_compile.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_errors.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_infer.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_integration_gpu.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_rate_limit.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/tests/test_storage.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/gpt2_lora_patch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/paw_compiler.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/prepare_checkpoint.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/server/vllm_models/register.py +0 -0
- {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
- {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
- {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
- {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
- {programasweights-0.2.0 → programasweights-0.2.2}/test_1spec.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_all_caching.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_apple_count.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_batch_pilot.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_compile.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_e2e.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_execute.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_nspecs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_one_vs_two_step.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_onnx_correctness.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_onnx_hf_model.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_onnx_hf_with_images.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_paw_format.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/test_thinking_comparison.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/tests/test_offline_cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/train.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/train_no_spec_direct_ans_mix_continuous_sampleref_trainonly_shorterprompt_withregularizer_generate_lora.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/DATASET_CHANGELOG.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/VERIFICATION_PIPELINE.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/build_user_bench.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/dry_run_batch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/filter_test_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/generate_specs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/generate_specs_batch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/incremental_merge.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/merge_and_upload.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/regenerate_outputs_batch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/synthesize_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/synthesize_data_batch.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/filter_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/filter_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/pairs_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/pairs_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_user_freeform.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_user_freeform_with_examples.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/specs_user_with_examples.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/verify_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates/verify_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/filter_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/filter_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/pairs_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/pairs_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_user_freeform.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_user_freeform_with_examples.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/specs_user_with_examples.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/verify_system.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/templates_old/verify_user.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/data_generation/verify_test_data.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/datasets/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/datasets/jsonl_text_pairs.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/loops/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/training/loops/prefix_tuning_sft.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/ttt.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/upload_model.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/upload_onnx_to_huggingface.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/upload_onnx_to_huggingface_with_token.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/utils.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/HANDOFF.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/config.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/main.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/middleware/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/middleware/rate_limit.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/models.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/auth_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/case_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/compiler_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/gpt_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/hub_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/image_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/interpreter_service.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/services/sql_manager.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/templates/gpt_test_generation.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/utils/__init__.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/utils/image_placeholders.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/app/utils/program_hash.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/clear_db.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/clear_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/data/programs.db +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/env_example.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/example_images/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/get_data_examples.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/requirements.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/run_server.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_analytics_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_auth_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_cache_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_cases_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_database.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_database_simple.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_db.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_example_images.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/setup_hub_tables.sql +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/backend/test_compilation_cache.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/e2e/helpers.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/e2e/smoke.spec.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/eslint.config.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/index.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/package-lock.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/package.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/playwright.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/postcss.config.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/apple-touch-icon.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/browser-worker.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/favicon-16x16.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/favicon-32x32.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/paw-192.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/paw-512.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/paw.svg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/react-test.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/test.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/public/vite.svg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/scripts/deploy.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/App.css +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/App.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/assets/react.svg +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/BrowserPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/CasesSection.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/CompileButtonWithConfig.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/CompileSection.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/DocsPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/ExamplesInput.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/Footer.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/Header.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/HubPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/HubUploadPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/ModelSelector.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/PrivacyPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/SettingsPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/SpecSuggestions.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/TermsPage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/components/TestSection.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/index.css +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/main.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/types/index.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/src/utils/api.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/tailwind.config.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/tsconfig.app.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/tsconfig.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/tsconfig.node.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/frontend/vite.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/nginx-paw.conf +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/nginx.conf +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/setup_mysql.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/start.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/test_setup.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-app/ttt.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/.gitignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/__tests__/prompt.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/examples/basic.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/serve.py +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/src/index.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/src/loader.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/src/types.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/test-standalone.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/tsconfig.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/vitest.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.git +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.github/workflows/build-hf-space.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.github/workflows/ci.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.github/workflows/generate-docs.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.github/workflows/verify-generated-code.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.gitignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.gitmodules +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.npmignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/.prettierignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/CMakeLists.txt +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/LICENCE +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/README_banner.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/assets/screenshot_0.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/actions.hpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/generate_glue_prototype.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/glue.hpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wcommon.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wcommon.h +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wlog.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wlog.h +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wsampling.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/helpers/wsampling.h +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/test_glue.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/cpp/wllama.cpp +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/basic/index.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/embeddings/index.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/.eslintrc.cjs +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/.gitignore +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/README.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/index.html +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/package-lock.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/package.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/postcss.config.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/public/favicon.ico +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/public/wllama.png +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/App.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/ChatScreen.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/GuideScreen.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/LogScreen.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/MarkdownMessage.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/ModelScreen.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/Navbar.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/ScreenWrapper.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/components/Sidebar.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/index.css +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/main.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/benchmark.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/custom-models.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/displayed-model.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/messages.context.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/nl2br.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/types.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/use-interval-when.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/utils.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/utils/wllama.context.tsx +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/src/vite-env.d.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/tailwind.config.cjs +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/tsconfig.app.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/tsconfig.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/tsconfig.node.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/examples/main/vite.config.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/guides/intro-v2.md +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/index.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/package-lock.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/package.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/build_hf_space.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/build_wasm.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/build_worker.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/docker-compose.yml +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/generate_wasm_from_cdn.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/http_server.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/scripts/post_build.sh +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/cache-manager.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/glue/glue.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/glue/messages.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/index.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/mjs.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/model-manager.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/model-manager.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/multi-thread/wllama.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/multi-thread/wllama.wasm +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/single-thread/wllama.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/single-thread/wllama.wasm +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/utils.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/utils.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/wasm-from-cdn.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/wllama.test.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/wllama.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/worker.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/workers-code/generated.ts +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/workers-code/llama-cpp.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/src/workers-code/opfs-utils.js +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/tsconfig.build.json +0 -0
- {programasweights-0.2.0 → programasweights-0.2.2}/web-sdk/wllama/tsup.config.ts +0 -0
- {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
|
|
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
|
|
@@ -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.
|
|
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
|
|
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
|
|