programasweights 0.2.4__tar.gz → 0.2.5__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.4 → programasweights-0.2.5}/AGENTS.md +22 -2
- {programasweights-0.2.4 → programasweights-0.2.5}/CHANGELOG.md +11 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/PKG-INFO +1 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/api-reference/python-sdk.md +4 -2
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/api-reference/rest-api.md +10 -2
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/__init__.py +1 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/runtime_llamacpp.py +15 -4
- {programasweights-0.2.4 → programasweights-0.2.5}/pyproject.toml +1 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/main.py +7 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/routes/auth.py +13 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/routes/compile.py +20 -7
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/routes/health.py +3 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/routes/infer.py +2 -2
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/routes/programs.py +3 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/App.tsx +15 -1
- programasweights-0.2.5/web-app/frontend/src/components/AgentsPage.tsx +92 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/BrowserPage.tsx +50 -17
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/DocsPage.tsx +1 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/Footer.tsx +21 -3
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/Header.tsx +14 -2
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/HubProgramPage.tsx +3 -3
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/LandingPage.tsx +1 -1
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/MainInterface.tsx +2 -2
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/SettingsPage.tsx +1 -1
- programasweights-0.2.4/web-app/backend/app/__init__.py +0 -1
- programasweights-0.2.4/web-app/backend/app/config.py +0 -71
- programasweights-0.2.4/web-app/backend/app/main.py +0 -1463
- programasweights-0.2.4/web-app/backend/app/middleware/__init__.py +0 -1
- programasweights-0.2.4/web-app/backend/app/middleware/rate_limit.py +0 -58
- programasweights-0.2.4/web-app/backend/app/models.py +0 -123
- programasweights-0.2.4/web-app/backend/app/services/__init__.py +0 -13
- programasweights-0.2.4/web-app/backend/app/services/auth_service.py +0 -172
- programasweights-0.2.4/web-app/backend/app/services/case_service.py +0 -201
- programasweights-0.2.4/web-app/backend/app/services/compiler_service.py +0 -202
- programasweights-0.2.4/web-app/backend/app/services/gpt_service.py +0 -166
- programasweights-0.2.4/web-app/backend/app/services/hub_service.py +0 -291
- programasweights-0.2.4/web-app/backend/app/services/image_service.py +0 -127
- programasweights-0.2.4/web-app/backend/app/services/interpreter_service.py +0 -179
- programasweights-0.2.4/web-app/backend/app/services/sql_manager.py +0 -1324
- programasweights-0.2.4/web-app/backend/app/templates/gpt_test_generation.txt +0 -42
- programasweights-0.2.4/web-app/backend/app/utils/__init__.py +0 -1
- programasweights-0.2.4/web-app/backend/app/utils/image_placeholders.py +0 -147
- programasweights-0.2.4/web-app/backend/app/utils/program_hash.py +0 -211
- programasweights-0.2.4/web-app/backend/clear_db.sh +0 -62
- programasweights-0.2.4/web-app/backend/clear_tables.sql +0 -29
- programasweights-0.2.4/web-app/backend/data/programs.db +0 -0
- programasweights-0.2.4/web-app/backend/env_example.txt +0 -24
- programasweights-0.2.4/web-app/backend/example_images/README.md +0 -140
- programasweights-0.2.4/web-app/backend/get_data_examples.py +0 -55
- programasweights-0.2.4/web-app/backend/requirements.txt +0 -10
- programasweights-0.2.4/web-app/backend/run_server.py +0 -27
- programasweights-0.2.4/web-app/backend/setup_analytics_tables.sql +0 -16
- programasweights-0.2.4/web-app/backend/setup_auth_tables.sql +0 -30
- programasweights-0.2.4/web-app/backend/setup_cache_tables.sql +0 -73
- programasweights-0.2.4/web-app/backend/setup_cases_tables.sql +0 -36
- programasweights-0.2.4/web-app/backend/setup_database.sql +0 -248
- programasweights-0.2.4/web-app/backend/setup_database_simple.sql +0 -113
- programasweights-0.2.4/web-app/backend/setup_db.sh +0 -52
- programasweights-0.2.4/web-app/backend/setup_example_images.py +0 -166
- programasweights-0.2.4/web-app/backend/setup_hub_tables.sql +0 -74
- programasweights-0.2.4/web-app/backend/test_compilation_cache.py +0 -85
- programasweights-0.2.4/web-app/frontend/src/components/AgentsPage.tsx +0 -268
- programasweights-0.2.4/web-app/frontend/src/components/CompileButtonWithConfig.tsx +0 -115
- programasweights-0.2.4/web-app/frontend/src/components/CompileSection.tsx +0 -74
- programasweights-0.2.4/web-app/frontend/src/components/ExamplesInput.tsx +0 -74
- programasweights-0.2.4/web-app/frontend/src/components/ModelSelector.tsx +0 -55
- programasweights-0.2.4/web-app/frontend/src/components/TestSection.tsx +0 -122
- {programasweights-0.2.4 → programasweights-0.2.5}/.cursor/rules/sdk-publishing.mdc +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/.cursor/rules/vllm-deployment.mdc +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/.git +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/.github/workflows/web-sdk.yml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/.gitignore +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/.gitmodules +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/.hatch_build.toml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/.readthedocs.yaml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/1apple.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/1apple2.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/2apples.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/2apples2.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/3apples.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/3apples2.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/479400.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/4apples.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/4apples2.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/4apples3.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/4apples4.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/5apples.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/6apples.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/8apples.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/9apples.jpg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/FLOW_SUMMARY.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/LICENSE +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/MANIFEST.in +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/ONNX_MIGRATION_PLAN.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/PREFIX_TOKENS_DESIGN.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/PYPI_README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/TRUNCATION_CHANGES.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/USE_CASES_AND_IDEAS.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/VERIFICATION_USAGE.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/analyze_dataset.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/analyze_lengths.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/code_prompt.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/evaluate_openai_python_code_baseline.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/openai_batch_request.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/prepare_alchemist_data.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/prepare_var_bench_data.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/python_code_sandbox.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/script_evaluation_var_bench.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/script_evalution_evaluation.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/script_evalution_request.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/baselines/script_evalution_statistics.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/benchmark_pytorch_vs_onnx.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/benchmark_user_experience.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/check_dataset.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/combine_datasets.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/compare_datasets.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/compare_old_vs_regen.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/convert_paw_to_svg.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/create_favicon_sizes.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/create_visualization_from_log.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/create_vqa_dataset.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/debug_cache.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/debug_eos_example.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/adr/001-llama-cpp-over-pytorch.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/adr/002-q4_0-adapter-format.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/adr/003-single-spec-field.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/adr/004-compiler-naming.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/adr/005-vllm-hidden-states.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/adr/006-email-api-key-auth.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/advanced/adrs.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/advanced/architecture.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/api-reference/cli.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/architecture.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/getting-started/first-program.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/getting-started/installation.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/getting-started/naming-programs.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/guide/browser-inference.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/guide/how-it-works.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/guide/local-inference.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/guide/writing-good-specs.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/hub/browsing-programs.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/hub/feedback-cases.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/hub/publishing-programs.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/index.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/docs/requirements.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/estimate_data_gen_cost.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/eval.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/examples/flask_app.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/examples/jupyter_notebook.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/examples/langchain_integration.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/examples/replace_openai.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/export_to_onnx.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/extract_models.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/inspect_data_dirs.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/latest_export.csv +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/log.train.81920.morecategories.extraprefix +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/main_no_spec_direct_ans_mix_continuous_sampleref_shorterprompt_vllm.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/merge_datasets.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/mkdocs.yml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/paw.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/paw.svg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/process_im2latex_dataset.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/artifacts.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/cache.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/cli.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/client.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/compiler/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/compiler/dummy.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/config.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/convert_peft_to_paw.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/paw_format.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/runtime/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/runtime/interpreter.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights/runtime/interpreter_onnx.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/compiler/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/lora_format.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/runtime/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/runtime/interpreter_lora.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/tests/test_compile_and_run.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/tests/test_lora_format.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/tests/test_training.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/train_lora.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/training/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/programasweights_lora/training/loops/lora_tuning_sft.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/run_eval.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/run_training.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/scripts/filter_table_by_length.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/.env.example +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/alembic/env.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/alembic/script.py.mako +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/alembic/versions/001_initial_schema.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/alembic/versions/002_namespaced_aliases_hf_url.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/alembic/versions/003_fulltext_search_ranking.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/alembic/versions/004_fix_alias_slug_constraint.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/alembic.ini +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/config.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/dependencies.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/logging_config.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/middleware/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/middleware/rate_limit.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/models/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/models/database.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/models/orm.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/models/schemas.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/routes/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/routes/feedback.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/routes/models_info.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/services/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/services/auto_tag_service.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/services/auto_title_service.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/services/compile_provider.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/services/compile_service.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/services/infer_service.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/services/search_service.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/api/services/storage_service.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/benchmarks/benchmark_api.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/benchmarks/handcrafted_specs.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/benchmarks/last_benchmark_results.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/benchmarks/last_stress_results.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/benchmarks/stress_test.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/compiler_registry.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/provider_configs/gpt2.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/provider_configs/qwen3-0.6b.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/requirements.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/ab_test_hf_vs_vllm.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/ablation_search.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/backfill_hf_browser_assets.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/backfill_hf_safetensors.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/backfill_interestingness.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/backfill_tags.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/backfill_titles.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/benchmark_gpt2.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/cleanup_storage.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/eval_search.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/evict_cold_programs.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/generate_prefix_cache.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/launch_gpt2_compiler.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/launch_qwen3_compiler.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/patch_vllm.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/restart.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/start_all.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/start_gpt2_services.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/start_provider.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/scripts/start_services.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/conftest.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/test_auth.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/test_compile.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/test_errors.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/test_infer.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/test_integration_gpu.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/test_rate_limit.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/tests/test_storage.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/vllm_models/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/vllm_models/gpt2_lora_patch.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/vllm_models/paw_compiler.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/vllm_models/prepare_checkpoint.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/server/vllm_models/register.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.rollout_ppl.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.em_es.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.ppl.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/stage2_firstpromptqwen_512_e1_generate_lora_e2grpo_overfit_one_debug.reward_plot.train_gt_logprob.reward.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_1spec.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_all_caching.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_apple_count.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_batch_pilot.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_compile.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_e2e.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_execute.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_nspecs.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_one_vs_two_step.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_onnx_correctness.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_onnx_hf_model.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_onnx_hf_with_images.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_paw_format.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/test_thinking_comparison.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/tests/test_offline_cache.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/tests/test_sdk.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/tests/test_sdk.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/train.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/train_no_spec_direct_ans_mix_continuous_sampleref_trainonly_shorterprompt_withregularizer_generate_lora.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/DATASET_CHANGELOG.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/VERIFICATION_PIPELINE.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/build_user_bench.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/dry_run_batch.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/filter_test_data.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/generate_specs.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/generate_specs_batch.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/incremental_merge.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/merge_and_upload.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/regenerate_outputs_batch.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/synthesize_data.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/synthesize_data_batch.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/filter_system.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/filter_user.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/pairs_system.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/pairs_user.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/specs_system.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/specs_user.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/specs_user_freeform.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/specs_user_freeform_with_examples.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/specs_user_with_examples.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/verify_system.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates/verify_user.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/filter_system.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/filter_user.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/pairs_system.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/pairs_user.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/specs_system.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/specs_user.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/specs_user_freeform.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/specs_user_freeform_with_examples.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/specs_user_with_examples.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/verify_system.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/templates_old/verify_user.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/data_generation/verify_test_data.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/datasets/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/datasets/jsonl_text_pairs.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/loops/__init__.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/training/loops/prefix_tuning_sft.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/ttt.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/upload_model.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/upload_onnx_to_huggingface.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/upload_onnx_to_huggingface_with_token.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/utils.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/HANDOFF.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/e2e/full.spec.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/e2e/helpers.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/e2e/smoke.spec.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/eslint.config.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/index.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/package-lock.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/package.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/playwright.config.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/postcss.config.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/apple-touch-icon.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/browser-worker.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/favicon-16x16.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/favicon-32x32.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/paw-192.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/paw-512.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/paw.svg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/react-test.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/test.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/public/vite.svg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/scripts/deploy.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/App.css +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/assets/react.svg +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/AboutPage.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/AuthorPage.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/CasesSection.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/HubPage.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/HubUploadPage.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/NavigationHelper.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/PrivacyPage.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/ProfilePage.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/SpecSuggestions.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/components/TermsPage.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/contexts/AuthContext.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/index.css +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/main.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/types/index.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/src/utils/api.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/tailwind.config.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/test-results/.last-run.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/tsconfig.app.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/tsconfig.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/tsconfig.node.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/frontend/vite.config.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/nginx-paw.conf +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/nginx.conf +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/setup_mysql.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/start.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/test_setup.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-app/ttt.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/.gitignore +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/LICENSE +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/__tests__/e2e/browser.spec.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/__tests__/e2e/server.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/__tests__/e2e/start-server.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/__tests__/e2e/test-page.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/__tests__/loader.test.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/__tests__/prompt.test.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/examples/basic.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/package-lock.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/package.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/playwright.config.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/serve.py +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/src/index.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/src/loader.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/src/runtime.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/src/types.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/test-standalone.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/tsconfig.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/vitest.config.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.git +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.github/workflows/build-hf-space.yml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.github/workflows/ci.yml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.github/workflows/generate-docs.yml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.github/workflows/verify-generated-code.yml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.gitignore +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.gitmodules +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.npmignore +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/.prettierignore +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/CMakeLists.txt +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/LICENCE +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/README_banner.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/assets/screenshot_0.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/actions.hpp +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/generate_glue_prototype.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/glue.hpp +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/helpers/wcommon.cpp +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/helpers/wcommon.h +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/helpers/wlog.cpp +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/helpers/wlog.h +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/helpers/wsampling.cpp +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/helpers/wsampling.h +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/test_glue.cpp +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/cpp/wllama.cpp +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/basic/index.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/embeddings/index.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/.eslintrc.cjs +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/.gitignore +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/README.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/index.html +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/package-lock.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/package.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/postcss.config.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/public/favicon.ico +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/public/wllama.png +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/App.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/components/ChatScreen.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/components/GuideScreen.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/components/LogScreen.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/components/MarkdownMessage.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/components/ModelScreen.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/components/Navbar.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/components/ScreenWrapper.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/components/Sidebar.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/config.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/index.css +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/main.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/benchmark.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/custom-models.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/displayed-model.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/messages.context.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/nl2br.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/types.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/use-interval-when.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/utils.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/utils/wllama.context.tsx +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/src/vite-env.d.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/tailwind.config.cjs +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/tsconfig.app.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/tsconfig.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/tsconfig.node.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/examples/main/vite.config.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/guides/intro-v2.md +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/index.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/package-lock.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/package.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/scripts/build_hf_space.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/scripts/build_wasm.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/scripts/build_worker.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/scripts/docker-compose.yml +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/scripts/generate_wasm_from_cdn.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/scripts/http_server.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/scripts/post_build.sh +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/cache-manager.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/glue/glue.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/glue/messages.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/index.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/mjs.test.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/model-manager.test.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/model-manager.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/multi-thread/wllama.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/multi-thread/wllama.wasm +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/single-thread/wllama.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/single-thread/wllama.wasm +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/utils.test.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/utils.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/wasm-from-cdn.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/wllama.test.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/wllama.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/worker.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/workers-code/generated.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/workers-code/llama-cpp.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/src/workers-code/opfs-utils.js +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/tsconfig.build.json +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/tsup.config.ts +0 -0
- {programasweights-0.2.4 → programasweights-0.2.5}/web-sdk/wllama/vitest.config.ts +0 -0
|
@@ -81,6 +81,21 @@ Output: delete
|
|
|
81
81
|
- Each function is stateless: one input, one output. No conversation history.
|
|
82
82
|
- Write a few test inputs with expected outputs, then try different spec phrasings and pick the one that passes the most.
|
|
83
83
|
|
|
84
|
+
## Chaining Functions
|
|
85
|
+
|
|
86
|
+
Multiple PAW functions can be composed for multi-step tasks:
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
classifier = paw.compile_and_load("Classify the bug type. Return ONLY one of: off-by-one, type-error, other")
|
|
90
|
+
fixer = paw.compile_and_load("Fix the bug described in the first line. Return only the corrected code.")
|
|
91
|
+
|
|
92
|
+
label = classifier(code_snippet)
|
|
93
|
+
if label != "other":
|
|
94
|
+
fix = fixer(f"{label}: {code_snippet}")
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Each function is independent -- chain them with regular Python logic.
|
|
98
|
+
|
|
84
99
|
## Browser / JavaScript SDK
|
|
85
100
|
|
|
86
101
|
Programs compiled with `paw-4b-gpt2` run in the browser via WebAssembly.
|
|
@@ -143,7 +158,7 @@ fn = paw.function(program) # accepts Program object, hash ID, or sl
|
|
|
143
158
|
fn = paw.function("a6b454023d41ac9ca845")
|
|
144
159
|
fn = paw.function("da03/my-classifier")
|
|
145
160
|
|
|
146
|
-
result: str = fn(input_text: str, max_tokens=
|
|
161
|
+
result: str = fn(input_text: str, max_tokens=None, temperature=0.0)
|
|
147
162
|
|
|
148
163
|
fn = paw.compile_and_load(spec, compiler="paw-4b-qwen3-0.6b")
|
|
149
164
|
|
|
@@ -156,7 +171,7 @@ paw.login()
|
|
|
156
171
|
|
|
157
172
|
| Error | Cause | Fix |
|
|
158
173
|
|-------|-------|-----|
|
|
159
|
-
| `
|
|
174
|
+
| `RuntimeError: assets not ready` on download | Program still generating after compile | SDK polls automatically for up to 30s. If persistent, recompile. |
|
|
160
175
|
| `httpx.HTTPStatusError: 422` on compile | Spec too short (<10 chars) | Adjust spec length. |
|
|
161
176
|
| `httpx.HTTPStatusError: 429` | Rate limit exceeded | Wait, or sign in for higher limits. |
|
|
162
177
|
|
|
@@ -168,6 +183,11 @@ paw.login()
|
|
|
168
183
|
- **Cache**: `~/.cache/programasweights/`. Override with `PAW_CACHE_DIR`.
|
|
169
184
|
- **Offline** after first download.
|
|
170
185
|
|
|
186
|
+
## Limits
|
|
187
|
+
|
|
188
|
+
- Spec + input + output share a ~2048 token context window, and inputs that exceed the context window will error out (not silently truncated).
|
|
189
|
+
- Setting `max_tokens` high is safe -- generation stops at EOS or when the window is full.
|
|
190
|
+
|
|
171
191
|
## Browse Programs
|
|
172
192
|
|
|
173
193
|
https://programasweights.com/hub
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.4 (2026-04-01)
|
|
4
|
+
|
|
5
|
+
- Download reliability: asset endpoints return 202 Retry-After when program is still generating, eliminating 404 race conditions
|
|
6
|
+
- Guard local cleanup on HF upload success: files persist locally if upload fails
|
|
7
|
+
- Stderr suppression now covers LoRA adapter loading (fixes CPU_REPACK warnings on 0.2.3)
|
|
8
|
+
- Browser: fix LoRA switching bug (free old adapter + clear KV before loading new program)
|
|
9
|
+
|
|
10
|
+
## 0.2.3 (2026-04-01)
|
|
11
|
+
|
|
12
|
+
- Python 3.9 compatibility fix (`from __future__ import annotations`)
|
|
13
|
+
|
|
3
14
|
## 0.2.2 (2026-03-19)
|
|
4
15
|
|
|
5
16
|
- Add `paw.compile_and_load()` convenience method (compile + load in one call)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: programasweights
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
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
|
|
@@ -32,15 +32,17 @@ Loads a compiled program and returns a callable. Downloads the program and base
|
|
|
32
32
|
The returned callable:
|
|
33
33
|
|
|
34
34
|
```python
|
|
35
|
-
output: str = fn(input_text, max_tokens=
|
|
35
|
+
output: str = fn(input_text, max_tokens=None, temperature=0.0)
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
| Parameter | Description |
|
|
39
39
|
|-----------|-------------|
|
|
40
40
|
| `input_text` | Input string for the program. |
|
|
41
|
-
| `max_tokens` | Maximum tokens to generate (default
|
|
41
|
+
| `max_tokens` | Maximum tokens to generate. `None` (default) = use all remaining context window. |
|
|
42
42
|
| `temperature` | Sampling temperature (default `0.0`). |
|
|
43
43
|
|
|
44
|
+
**Context limits:** Spec + input + output share a ~2048 token window. If input + output together exceed the window, generation will error. For short inputs, high `max_tokens` is safe (stops at EOS). For long inputs, set `max_tokens` conservatively.
|
|
45
|
+
|
|
44
46
|
## `paw.compile`
|
|
45
47
|
|
|
46
48
|
```python
|
|
@@ -34,7 +34,11 @@ Compile a specification.
|
|
|
34
34
|
| `name` | string | No | Display title. Auto-generated if omitted. |
|
|
35
35
|
| `tags` | string[] | No | Tags for discovery. |
|
|
36
36
|
|
|
37
|
-
**Response
|
|
37
|
+
**Response:**
|
|
38
|
+
- **202 Accepted** on success — JSON with `job_id`, `status`, `program_id`, `slug` (if created), `pseudo_program`, and `timings`
|
|
39
|
+
- **400** — unknown compiler
|
|
40
|
+
- **422** — spec too short, too long, or token limit exceeded
|
|
41
|
+
- **500** — compilation failed (server error)
|
|
38
42
|
|
|
39
43
|
### `POST /infer`
|
|
40
44
|
|
|
@@ -88,7 +92,11 @@ Owner-only fields: `public`, `name`, `tags`. Any authenticated user can set thei
|
|
|
88
92
|
|
|
89
93
|
### `GET /programs/{id_or_slug}/download`
|
|
90
94
|
|
|
91
|
-
|
|
95
|
+
Downloads the `.paw` artifact. Returns one of:
|
|
96
|
+
- **302** redirect to HuggingFace CDN (program already uploaded)
|
|
97
|
+
- **200** file from server (freshly compiled, not yet on HF)
|
|
98
|
+
- **202 Accepted** with `Retry-After` header (program assets still generating, retry after the indicated seconds)
|
|
99
|
+
- **404** if program not found or private and not owned by the requester
|
|
92
100
|
|
|
93
101
|
### `GET /programs/resolve/{slug}`
|
|
94
102
|
|
|
@@ -37,6 +37,7 @@ class PawFunction:
|
|
|
37
37
|
program_dir = Path(program_dir)
|
|
38
38
|
self._program_dir = program_dir
|
|
39
39
|
self._verbose = verbose
|
|
40
|
+
self._n_ctx = n_ctx
|
|
40
41
|
|
|
41
42
|
meta_path = program_dir / "meta.json"
|
|
42
43
|
if meta_path.exists():
|
|
@@ -151,20 +152,19 @@ class PawFunction:
|
|
|
151
152
|
def __call__(
|
|
152
153
|
self,
|
|
153
154
|
input_text: str,
|
|
154
|
-
max_tokens: int =
|
|
155
|
+
max_tokens: int | None = None,
|
|
155
156
|
temperature: float = 0.0,
|
|
156
157
|
) -> str:
|
|
157
158
|
"""Run the program on an input.
|
|
158
159
|
|
|
159
160
|
Args:
|
|
160
161
|
input_text: The input to process.
|
|
161
|
-
max_tokens: Maximum output tokens.
|
|
162
|
+
max_tokens: Maximum output tokens. None = use all remaining context.
|
|
162
163
|
temperature: Sampling temperature (0 = greedy).
|
|
163
164
|
|
|
164
165
|
Returns:
|
|
165
166
|
The program's output as a string.
|
|
166
167
|
"""
|
|
167
|
-
# Reset to prefix state: clear everything after the prefix
|
|
168
168
|
self._llm.n_tokens = self._n_prefix
|
|
169
169
|
|
|
170
170
|
input_with_suffix = input_text + self._suffix_text
|
|
@@ -174,10 +174,21 @@ class PawFunction:
|
|
|
174
174
|
special=self._use_special,
|
|
175
175
|
)
|
|
176
176
|
|
|
177
|
+
tokens_used = self._n_prefix + len(input_tokens)
|
|
178
|
+
remaining = self._n_ctx - tokens_used
|
|
179
|
+
if remaining <= 0:
|
|
180
|
+
raise ValueError(
|
|
181
|
+
f"Input too long: {tokens_used} tokens used (prefix={self._n_prefix}, "
|
|
182
|
+
f"input={len(input_tokens)}), context window={self._n_ctx}. "
|
|
183
|
+
f"Shorten your input."
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
gen_limit = remaining if max_tokens is None else min(max_tokens, remaining)
|
|
187
|
+
|
|
177
188
|
self._llm.eval(input_tokens)
|
|
178
189
|
|
|
179
190
|
output_tokens = []
|
|
180
|
-
for _ in range(
|
|
191
|
+
for _ in range(gen_limit):
|
|
181
192
|
token = self._llm.sample(
|
|
182
193
|
temp=temperature if temperature > 0 else 0,
|
|
183
194
|
)
|
|
@@ -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.5"
|
|
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"
|
|
@@ -57,6 +57,9 @@ class _FallbackLimiter:
|
|
|
57
57
|
return True
|
|
58
58
|
|
|
59
59
|
|
|
60
|
+
_API_VERSION = "0.4.0"
|
|
61
|
+
|
|
62
|
+
|
|
60
63
|
def create_app() -> FastAPI:
|
|
61
64
|
settings = get_settings()
|
|
62
65
|
configure_logging(
|
|
@@ -64,10 +67,13 @@ def create_app() -> FastAPI:
|
|
|
64
67
|
json_format=(settings.LOG_FORMAT == "json"),
|
|
65
68
|
)
|
|
66
69
|
|
|
70
|
+
if settings.JWT_SECRET == "dev-secret-change-in-production":
|
|
71
|
+
raise RuntimeError("JWT_SECRET must be set in .env -- refusing to start with the default value")
|
|
72
|
+
|
|
67
73
|
app = FastAPI(
|
|
68
74
|
title="Programs as Weights API",
|
|
69
75
|
description="Compile natural language specs into neural functions",
|
|
70
|
-
version=
|
|
76
|
+
version=_API_VERSION,
|
|
71
77
|
docs_url="/api/docs",
|
|
72
78
|
openapi_url="/api/openapi.json",
|
|
73
79
|
)
|
|
@@ -21,10 +21,20 @@ from api.models.orm import User
|
|
|
21
21
|
logger = structlog.get_logger()
|
|
22
22
|
router = APIRouter()
|
|
23
23
|
|
|
24
|
-
# In-memory session store (
|
|
24
|
+
# In-memory session store (single-process; cleaned periodically)
|
|
25
25
|
_sessions: dict[str, dict] = {}
|
|
26
26
|
_github_states: dict[str, float] = {}
|
|
27
27
|
|
|
28
|
+
_SESSION_MAX_AGE = 30 * 24 * 3600 # 30 days, matches cookie max_age
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _cleanup_expired_sessions():
|
|
32
|
+
cutoff = time.time() - _SESSION_MAX_AGE
|
|
33
|
+
expired = [k for k, v in _sessions.items() if v.get("created_at", 0) < cutoff]
|
|
34
|
+
for k in expired:
|
|
35
|
+
del _sessions[k]
|
|
36
|
+
|
|
37
|
+
|
|
28
38
|
GITHUB_AUTHORIZE_URL = "https://github.com/login/oauth/authorize"
|
|
29
39
|
GITHUB_TOKEN_URL = "https://github.com/login/oauth/access_token"
|
|
30
40
|
GITHUB_USER_URL = "https://api.github.com/user"
|
|
@@ -44,6 +54,8 @@ async def github_login(request: Request):
|
|
|
44
54
|
for k in [k for k, v in _github_states.items() if v < cutoff]:
|
|
45
55
|
del _github_states[k]
|
|
46
56
|
|
|
57
|
+
_cleanup_expired_sessions()
|
|
58
|
+
|
|
47
59
|
params = (
|
|
48
60
|
f"?client_id={settings.GITHUB_CLIENT_ID}"
|
|
49
61
|
f"&redirect_uri=https://programasweights.com/api/v1/auth/github/callback"
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Compile endpoint: submit specs for compilation into neural programs.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
+
import time
|
|
5
6
|
import uuid
|
|
6
7
|
|
|
7
8
|
import httpx
|
|
@@ -19,8 +20,18 @@ logger = structlog.get_logger()
|
|
|
19
20
|
|
|
20
21
|
router = APIRouter()
|
|
21
22
|
|
|
22
|
-
# In-memory job store (
|
|
23
|
+
# In-memory job store (single-process; evicted after 1 hour)
|
|
23
24
|
_jobs: dict[str, dict] = {}
|
|
25
|
+
_JOBS_MAX_AGE = 3600
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _evict_old_jobs():
|
|
29
|
+
import time as _time
|
|
30
|
+
cutoff = _time.time() - _JOBS_MAX_AGE
|
|
31
|
+
expired = [k for k, v in _jobs.items() if v.get("created_at", 0) < cutoff]
|
|
32
|
+
for k in expired:
|
|
33
|
+
del _jobs[k]
|
|
34
|
+
|
|
24
35
|
|
|
25
36
|
# Compiler registry loaded from JSON file
|
|
26
37
|
import json as _json
|
|
@@ -87,6 +98,8 @@ async def submit_compile(
|
|
|
87
98
|
},
|
|
88
99
|
)
|
|
89
100
|
|
|
101
|
+
_evict_old_jobs()
|
|
102
|
+
|
|
90
103
|
job_id = str(uuid.uuid4())[:12]
|
|
91
104
|
_jobs[job_id] = {
|
|
92
105
|
"status": "queued",
|
|
@@ -94,6 +107,7 @@ async def submit_compile(
|
|
|
94
107
|
"compiler_snapshot": snapshot,
|
|
95
108
|
"program_id": None,
|
|
96
109
|
"error": None,
|
|
110
|
+
"created_at": time.time(),
|
|
97
111
|
}
|
|
98
112
|
|
|
99
113
|
import asyncio
|
|
@@ -244,12 +258,11 @@ async def submit_compile(
|
|
|
244
258
|
_jobs[job_id]["error"] = str(e)
|
|
245
259
|
logger.exception("compile_failed", spec_len=len(req.spec), error=str(e))
|
|
246
260
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
)
|
|
261
|
+
raise HTTPException(status_code=500, detail={
|
|
262
|
+
"error": "compile_failed",
|
|
263
|
+
"message": "Compilation failed. Please try again.",
|
|
264
|
+
"request_id": getattr(request.state, "request_id", "unknown"),
|
|
265
|
+
})
|
|
253
266
|
|
|
254
267
|
|
|
255
268
|
@router.get("/compile/{job_id}", response_model=CompileStatusResponse)
|
|
@@ -8,6 +8,8 @@ from fastapi import APIRouter, Request
|
|
|
8
8
|
|
|
9
9
|
from api.models.schemas import HealthResponse
|
|
10
10
|
|
|
11
|
+
_API_VERSION = "0.4.0"
|
|
12
|
+
|
|
11
13
|
router = APIRouter()
|
|
12
14
|
|
|
13
15
|
_start_time = time.time()
|
|
@@ -21,7 +23,7 @@ async def health_check(request: Request):
|
|
|
21
23
|
|
|
22
24
|
return HealthResponse(
|
|
23
25
|
status="healthy" if not warnings else "degraded",
|
|
24
|
-
version=
|
|
26
|
+
version=_API_VERSION,
|
|
25
27
|
gpu_services={},
|
|
26
28
|
queue_depth=0,
|
|
27
29
|
uptime_s=time.time() - _start_time,
|
|
@@ -107,9 +107,9 @@ async def run_inference(
|
|
|
107
107
|
except HTTPException:
|
|
108
108
|
raise
|
|
109
109
|
except Exception as e:
|
|
110
|
-
logger.exception("infer_proxy_failed", program_id=canonical_id)
|
|
110
|
+
logger.exception("infer_proxy_failed", program_id=canonical_id, error=str(e))
|
|
111
111
|
raise HTTPException(status_code=502, detail={
|
|
112
112
|
"error": "inference_failed",
|
|
113
|
-
"message":
|
|
113
|
+
"message": "Inference failed. Please try again.",
|
|
114
114
|
"request_id": request_id,
|
|
115
115
|
})
|
|
@@ -125,6 +125,8 @@ async def list_programs(
|
|
|
125
125
|
):
|
|
126
126
|
from sqlalchemy import text as sa_text
|
|
127
127
|
|
|
128
|
+
per_page = min(per_page, 100)
|
|
129
|
+
|
|
128
130
|
if mine and user:
|
|
129
131
|
aliased_ids = select(Alias.program_id).where(Alias.owner_id == user.id).scalar_subquery()
|
|
130
132
|
query = select(Program).where(
|
|
@@ -201,7 +203,7 @@ async def list_programs(
|
|
|
201
203
|
use_fts = True
|
|
202
204
|
else:
|
|
203
205
|
alias_match = select(Alias.program_id).where(
|
|
204
|
-
Alias.
|
|
206
|
+
Alias.slug_name.ilike(f"%{search_term}%")
|
|
205
207
|
).scalar_subquery()
|
|
206
208
|
conditions = [
|
|
207
209
|
Program.spec.ilike(f"%{search_term}%"),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BrowserRouter as Router, Routes, Route, Navigate, useLocation } from 'react-router-dom';
|
|
1
|
+
import { BrowserRouter as Router, Routes, Route, Navigate, useLocation, Link } from 'react-router-dom';
|
|
2
2
|
import { Component, useEffect } from 'react';
|
|
3
3
|
import type { ReactNode } from 'react';
|
|
4
4
|
import { Toaster } from 'react-hot-toast';
|
|
@@ -55,6 +55,18 @@ class ErrorBoundary extends Component<{ children: ReactNode }, { hasError: boole
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
function NotFoundPage() {
|
|
59
|
+
return (
|
|
60
|
+
<div className="min-h-[60vh] flex items-center justify-center">
|
|
61
|
+
<div className="text-center">
|
|
62
|
+
<h1 className="text-6xl font-bold text-gray-300 mb-4">404</h1>
|
|
63
|
+
<p className="text-xl text-gray-600 mb-6">Page not found</p>
|
|
64
|
+
<Link to="/" className="px-5 py-2.5 bg-gray-900 text-white rounded-lg hover:bg-gray-800 transition-colors text-sm font-medium">Back to home</Link>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
58
70
|
function App() {
|
|
59
71
|
return (
|
|
60
72
|
<ErrorBoundary>
|
|
@@ -96,6 +108,8 @@ function App() {
|
|
|
96
108
|
<Route path="/leaderboard" element={<Navigate to="/hub?sort=popular" replace />} />
|
|
97
109
|
<Route path="/program/:id" element={<Navigate to="/hub" replace />} />
|
|
98
110
|
<Route path="/publish" element={<Navigate to="/hub/upload" replace />} />
|
|
111
|
+
|
|
112
|
+
<Route path="*" element={<NotFoundPage />} />
|
|
99
113
|
</Routes>
|
|
100
114
|
</main>
|
|
101
115
|
<Footer />
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import { Helmet } from 'react-helmet-async';
|
|
3
|
+
import { Copy, Check, MessageSquare, FileText } from 'lucide-react';
|
|
4
|
+
import toast from 'react-hot-toast';
|
|
5
|
+
import AGENTS_MD from '../../../../AGENTS.md?raw';
|
|
6
|
+
|
|
7
|
+
const CHAT_PROMPT = `I want to use ProgramAsWeights (PAW) to create fuzzy text functions (search, classification, format repair, etc.) that run locally. Read the instructions at https://programasweights.com/agents and help me integrate it into my project. [Describe your use case briefly.]`;
|
|
8
|
+
|
|
9
|
+
const CursorRulePage: React.FC = () => {
|
|
10
|
+
const [copiedChat, setCopiedChat] = useState(false);
|
|
11
|
+
const [copiedFile, setCopiedFile] = useState(false);
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className="max-w-3xl mx-auto space-y-6">
|
|
15
|
+
<Helmet><title>AI Agents — PAW</title></Helmet>
|
|
16
|
+
<div>
|
|
17
|
+
<h1 className="text-2xl font-bold text-gray-900">Use PAW with AI Agents</h1>
|
|
18
|
+
<p className="text-gray-600 mt-2">
|
|
19
|
+
Let your AI coding assistant (Cursor, Claude, Codex, etc.) use PAW to create fuzzy text functions.
|
|
20
|
+
</p>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<div className="bg-white rounded-xl border-2 border-blue-200 shadow-sm p-6 space-y-3">
|
|
24
|
+
<div className="flex items-center gap-2">
|
|
25
|
+
<MessageSquare className="w-5 h-5 text-blue-600" />
|
|
26
|
+
<h2 className="text-lg font-semibold text-gray-900">Paste into your agent's chat</h2>
|
|
27
|
+
<span className="px-2 py-0.5 bg-blue-100 text-blue-700 text-[10px] rounded-full font-semibold uppercase">Recommended</span>
|
|
28
|
+
</div>
|
|
29
|
+
<p className="text-sm text-gray-500">
|
|
30
|
+
Copy this prompt and paste it into Cursor, Claude, Codex, or any AI assistant. It will read the link and know how to use PAW.
|
|
31
|
+
</p>
|
|
32
|
+
<div className="bg-gray-50 rounded-lg p-4 text-sm text-gray-700 leading-relaxed">
|
|
33
|
+
{CHAT_PROMPT}
|
|
34
|
+
</div>
|
|
35
|
+
<button
|
|
36
|
+
onClick={() => {
|
|
37
|
+
navigator.clipboard.writeText(CHAT_PROMPT).catch(() => {});
|
|
38
|
+
setCopiedChat(true);
|
|
39
|
+
toast.success('Copied! Paste into your AI agent\'s chat.');
|
|
40
|
+
setTimeout(() => setCopiedChat(false), 3000);
|
|
41
|
+
}}
|
|
42
|
+
className="flex items-center gap-2 px-5 py-2.5 bg-blue-600 text-white rounded-lg font-medium text-sm hover:bg-blue-700 transition-colors"
|
|
43
|
+
>
|
|
44
|
+
{copiedChat ? <Check className="w-4 h-4" /> : <Copy className="w-4 h-4" />}
|
|
45
|
+
{copiedChat ? 'Copied!' : 'Copy prompt'}
|
|
46
|
+
</button>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div className="bg-white rounded-xl border border-gray-200 shadow-sm p-6 space-y-3">
|
|
50
|
+
<div className="flex items-center gap-2">
|
|
51
|
+
<FileText className="w-5 h-5 text-gray-500" />
|
|
52
|
+
<h2 className="text-lg font-semibold text-gray-900">Or save as a project file</h2>
|
|
53
|
+
</div>
|
|
54
|
+
<p className="text-sm text-gray-500">
|
|
55
|
+
For persistent access, save as <code className="bg-gray-100 px-1.5 py-0.5 rounded text-xs">AGENTS.md</code> in your project root.
|
|
56
|
+
AI agents will automatically read it.
|
|
57
|
+
</p>
|
|
58
|
+
<button
|
|
59
|
+
onClick={() => {
|
|
60
|
+
navigator.clipboard.writeText(AGENTS_MD).catch(() => {});
|
|
61
|
+
setCopiedFile(true);
|
|
62
|
+
toast.success('Copied! Save as AGENTS.md in your project root.');
|
|
63
|
+
setTimeout(() => setCopiedFile(false), 3000);
|
|
64
|
+
}}
|
|
65
|
+
className="flex items-center gap-2 px-5 py-2.5 bg-gray-900 text-white rounded-lg font-medium text-sm hover:bg-gray-800 transition-colors"
|
|
66
|
+
>
|
|
67
|
+
{copiedFile ? <Check className="w-4 h-4" /> : <Copy className="w-4 h-4" />}
|
|
68
|
+
{copiedFile ? 'Copied!' : 'Copy AGENTS.md'}
|
|
69
|
+
</button>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<div className="bg-blue-50 border border-blue-200 rounded-xl p-4">
|
|
73
|
+
<h3 className="text-sm font-semibold text-blue-900 mb-2">Which SDK?</h3>
|
|
74
|
+
<div className="text-sm text-blue-700 space-y-1">
|
|
75
|
+
<p><strong>Python SDK</strong> — server-side backends, pipelines. Standard interpreter (Qwen3 0.6B, best accuracy).</p>
|
|
76
|
+
<p><strong>Browser SDK</strong> — client-side web apps, data stays on user's device. Compact interpreter (GPT-2 124M).</p>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<details className="bg-white rounded-xl border border-gray-200 shadow-sm overflow-hidden">
|
|
81
|
+
<summary className="px-6 py-4 cursor-pointer text-sm font-medium text-gray-700 hover:bg-gray-50">
|
|
82
|
+
View full AGENTS.md content
|
|
83
|
+
</summary>
|
|
84
|
+
<pre className="px-6 pb-6 text-xs text-gray-600 overflow-x-auto whitespace-pre-wrap leading-relaxed max-h-[400px] overflow-y-auto border-t border-gray-100 pt-4">
|
|
85
|
+
{AGENTS_MD}
|
|
86
|
+
</pre>
|
|
87
|
+
</details>
|
|
88
|
+
</div>
|
|
89
|
+
);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export default CursorRulePage;
|