@r1z4x/tezgah 1.0.0
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.
- package/CHANGELOG.md +738 -0
- package/LICENSE +21 -0
- package/MANIFEST +753 -0
- package/README.de.md +169 -0
- package/README.es.md +168 -0
- package/README.fr.md +166 -0
- package/README.md +161 -0
- package/README.tr.md +163 -0
- package/agents/tezgah-reviewer.md +70 -0
- package/bin/codegen +337 -0
- package/bin/consult +797 -0
- package/bin/tezgah-adhd +50 -0
- package/bin/tezgah-agents +45 -0
- package/bin/tezgah-capture +66 -0
- package/bin/tezgah-context +96 -0
- package/bin/tezgah-decisions +213 -0
- package/bin/tezgah-design +953 -0
- package/bin/tezgah-docs +1199 -0
- package/bin/tezgah-doctor +497 -0
- package/bin/tezgah-dsh +37 -0
- package/bin/tezgah-dsh.cmd +70 -0
- package/bin/tezgah-gate +75 -0
- package/bin/tezgah-import-ai-research +439 -0
- package/bin/tezgah-index +32 -0
- package/bin/tezgah-lessons +148 -0
- package/bin/tezgah-mcp +322 -0
- package/bin/tezgah-migrate +324 -0
- package/bin/tezgah-pony +50 -0
- package/bin/tezgah-research +772 -0
- package/bin/tezgah-rollback +93 -0
- package/bin/tezgah-route +124 -0
- package/bin/tezgah-setup +5798 -0
- package/bin/tezgah-status +383 -0
- package/bin/tezgah-task +607 -0
- package/bin/tezgah-taste +423 -0
- package/bin/tezgah-triage +485 -0
- package/bin/tezgah.js +36 -0
- package/commands/adhd.md +21 -0
- package/commands/ponytail.md +21 -0
- package/docs/README.md +112 -0
- package/docs/architecture.md +226 -0
- package/docs/citations-baseline.json +59 -0
- package/docs/clarity-baseline.json +116 -0
- package/docs/contract.md +416 -0
- package/docs/environment.md +141 -0
- package/docs/evidence.md +831 -0
- package/docs/feature-audit.md +139 -0
- package/docs/gate.md +407 -0
- package/docs/glossary.md +201 -0
- package/docs/hosts.md +400 -0
- package/docs/index.json +471 -0
- package/docs/judge.md +193 -0
- package/docs/layers.md +189 -0
- package/docs/models.md +160 -0
- package/docs/operations.md +666 -0
- package/docs/research.md +809 -0
- package/docs/results/paired-outcome-2026-10.jsonl +254 -0
- package/docs/results/paired-outcome-2026-10.md +204 -0
- package/docs/skills.md +236 -0
- package/docs/status-line.md +315 -0
- package/docs/testing.md +287 -0
- package/docs/vision.md +117 -0
- package/hooks/hooks.json +33 -0
- package/hooks/projects-auto-init.py +98 -0
- package/hooks/projects-posttooluse.py +149 -0
- package/hooks/projects-pretooluse.py +40 -0
- package/hooks/projects-stop.py +60 -0
- package/hooks/tezgah_agents.py +817 -0
- package/hooks/tezgah_apps.py +266 -0
- package/hooks/tezgah_attest.py +255 -0
- package/hooks/tezgah_clarity.py +171 -0
- package/hooks/tezgah_components.py +140 -0
- package/hooks/tezgah_context.py +2953 -0
- package/hooks/tezgah_embed.py +765 -0
- package/hooks/tezgah_gate.py +2736 -0
- package/hooks/tezgah_guard.py +177 -0
- package/hooks/tezgah_index.py +124 -0
- package/hooks/tezgah_integrity.py +5141 -0
- package/hooks/tezgah_judge.py +487 -0
- package/hooks/tezgah_lang.py +230 -0
- package/hooks/tezgah_lessons.py +210 -0
- package/hooks/tezgah_models.py +855 -0
- package/hooks/tezgah_paths.py +1132 -0
- package/hooks/tezgah_policy.py +1039 -0
- package/hooks/tezgah_rank.py +77 -0
- package/hooks/tezgah_replay.py +1109 -0
- package/hooks/tezgah_research.py +5176 -0
- package/hooks/tezgah_shapes.py +305 -0
- package/hooks/tezgah_skill_pick.py +227 -0
- package/hooks/tezgah_snapshot.py +490 -0
- package/hooks/tezgah_stopspec.py +320 -0
- package/hooks/tezgah_task.py +458 -0
- package/hooks/tezgah_taste.py +201 -0
- package/hooks/tezgah_untrusted.py +112 -0
- package/hooks/tezgah_update.py +430 -0
- package/hosts/codex/hook.py +268 -0
- package/hosts/codex/hooks.json +26 -0
- package/hosts/cursor/hook.py +461 -0
- package/hosts/cursor/hooks.json +44 -0
- package/hosts/dsh/hooks.json +21 -0
- package/hosts/dsh/statusline/lib/client.js +138 -0
- package/hosts/dsh/statusline/lib/index.js +104 -0
- package/hosts/dsh/statusline/package.json +28 -0
- package/hosts/omp/hook.py +277 -0
- package/hosts/omp/tezgah-hook.ts.in +701 -0
- package/hosts/opencode/plugins/tezgah.js +2742 -0
- package/hosts/opencode/tui/tezgah-tui.tsx +151 -0
- package/output-styles/tezgah.md +142 -0
- package/package.json +32 -0
- package/packaging/build.sh +342 -0
- package/packaging/install.ps1 +166 -0
- package/packaging/install.sh +56 -0
- package/packaging/upgrade.sh +142 -0
- package/skills/ai-research/0-autoresearch-skill/SKILL.md +411 -0
- package/skills/ai-research/0-autoresearch-skill/references/agent-continuity.md +95 -0
- package/skills/ai-research/0-autoresearch-skill/references/progress-reporting.md +166 -0
- package/skills/ai-research/0-autoresearch-skill/references/skill-routing.md +219 -0
- package/skills/ai-research/0-autoresearch-skill/templates/findings.md +44 -0
- package/skills/ai-research/0-autoresearch-skill/templates/research-log.md +41 -0
- package/skills/ai-research/01-model-architecture/litgpt/SKILL.md +469 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/custom-models.md +569 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/distributed-training.md +452 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/supported-models.md +337 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/training-recipes.md +620 -0
- package/skills/ai-research/01-model-architecture/mamba/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/mamba/references/architecture-details.md +207 -0
- package/skills/ai-research/01-model-architecture/mamba/references/benchmarks.md +256 -0
- package/skills/ai-research/01-model-architecture/mamba/references/training-guide.md +389 -0
- package/skills/ai-research/01-model-architecture/nanogpt/SKILL.md +290 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/architecture.md +383 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/data.md +477 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/training.md +565 -0
- package/skills/ai-research/01-model-architecture/rwkv/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/architecture-details.md +345 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/rwkv7.md +387 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/state-management.md +370 -0
- package/skills/ai-research/01-model-architecture/torchtitan/SKILL.md +358 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/checkpoint.md +182 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/custom-models.md +259 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/float8.md +134 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/fsdp.md +127 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/SKILL.md +516 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/algorithms.md +654 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/integration.md +638 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/pipeline.md +724 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/training.md +566 -0
- package/skills/ai-research/02-tokenization/sentencepiece/SKILL.md +235 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/algorithms.md +201 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/training.md +305 -0
- package/skills/ai-research/03-fine-tuning/axolotl/SKILL.md +158 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/api.md +5549 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/dataset-formats.md +1030 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/index.md +16 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/other.md +3564 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/_images.md +24 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/advanced.md +1056 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/getting_started.md +350 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/index.md +20 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/other.md +32 -0
- package/skills/ai-research/03-fine-tuning/peft/SKILL.md +431 -0
- package/skills/ai-research/03-fine-tuning/peft/references/advanced-usage.md +515 -0
- package/skills/ai-research/03-fine-tuning/peft/references/troubleshooting.md +481 -0
- package/skills/ai-research/03-fine-tuning/unsloth/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/index.md +8 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/llms.md +83 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/SKILL.md +436 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/README.md +79 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/api.md +345 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/tutorials.md +301 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/SKILL.md +473 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/README.md +74 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/api.md +384 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/tutorials.md +377 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/SKILL.md +386 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/README.md +71 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/api.md +334 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/tutorials.md +319 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/SKILL.md +346 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/README.md +55 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/api.md +363 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/tutorials.md +340 -0
- package/skills/ai-research/05-data-processing/nemo-curator/SKILL.md +383 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/deduplication.md +88 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/filtering.md +103 -0
- package/skills/ai-research/05-data-processing/ray-data/SKILL.md +326 -0
- package/skills/ai-research/05-data-processing/ray-data/references/integration.md +83 -0
- package/skills/ai-research/05-data-processing/ray-data/references/transformations.md +84 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/README.md +98 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/SKILL.md +572 -0
- package/skills/ai-research/06-post-training/miles/SKILL.md +315 -0
- package/skills/ai-research/06-post-training/miles/references/api-reference.md +142 -0
- package/skills/ai-research/06-post-training/miles/references/troubleshooting.md +353 -0
- package/skills/ai-research/06-post-training/openrlhf/SKILL.md +249 -0
- package/skills/ai-research/06-post-training/openrlhf/references/algorithm-comparison.md +405 -0
- package/skills/ai-research/06-post-training/openrlhf/references/custom-rewards.md +531 -0
- package/skills/ai-research/06-post-training/openrlhf/references/hybrid-engine.md +288 -0
- package/skills/ai-research/06-post-training/openrlhf/references/multi-node-training.md +455 -0
- package/skills/ai-research/06-post-training/simpo/SKILL.md +219 -0
- package/skills/ai-research/06-post-training/simpo/references/datasets.md +479 -0
- package/skills/ai-research/06-post-training/simpo/references/hyperparameters.md +453 -0
- package/skills/ai-research/06-post-training/simpo/references/loss-functions.md +351 -0
- package/skills/ai-research/06-post-training/slime/SKILL.md +464 -0
- package/skills/ai-research/06-post-training/slime/references/api-reference.md +393 -0
- package/skills/ai-research/06-post-training/slime/references/troubleshooting.md +387 -0
- package/skills/ai-research/06-post-training/torchforge/SKILL.md +433 -0
- package/skills/ai-research/06-post-training/torchforge/references/api-reference.md +328 -0
- package/skills/ai-research/06-post-training/torchforge/references/troubleshooting.md +410 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/SKILL.md +455 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/dpo-variants.md +228 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/online-rl.md +83 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/reward-modeling.md +123 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/sft-training.md +169 -0
- package/skills/ai-research/06-post-training/verl/SKILL.md +391 -0
- package/skills/ai-research/06-post-training/verl/references/api-reference.md +302 -0
- package/skills/ai-research/06-post-training/verl/references/troubleshooting.md +392 -0
- package/skills/ai-research/07-safety-alignment/constitutional-ai/SKILL.md +290 -0
- package/skills/ai-research/07-safety-alignment/llamaguard/SKILL.md +337 -0
- package/skills/ai-research/07-safety-alignment/nemo-guardrails/SKILL.md +297 -0
- package/skills/ai-research/07-safety-alignment/prompt-guard/SKILL.md +312 -0
- package/skills/ai-research/08-distributed-training/accelerate/SKILL.md +332 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/custom-plugins.md +454 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/megatron-integration.md +490 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/performance.md +526 -0
- package/skills/ai-research/08-distributed-training/deepspeed/SKILL.md +141 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/08.md +18 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/09.md +174 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2020.md +379 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2023.md +280 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/assets.md +180 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/index.md +36 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/mii.md +119 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/other.md +1192 -0
- package/skills/ai-research/08-distributed-training/megatron-core/SKILL.md +366 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/benchmarks.md +250 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/parallelism-guide.md +405 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/production-examples.md +474 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/training-recipes.md +548 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/SKILL.md +231 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_async_recipe.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_overview.md +19 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_recipe.md +18 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_ddp_notes.md +10 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_device_mesh_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_examples_fsdp2.md +15 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp1_api.md +9 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp2_tutorial.md +45 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fully_shard_api.md +49 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_tp_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/ray_train_fsdp2_example.md +13 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/torchtitan_fsdp_notes.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/SKILL.md +346 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/callbacks.md +437 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/distributed.md +491 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/hyperparameter-tuning.md +557 -0
- package/skills/ai-research/08-distributed-training/ray-train/SKILL.md +406 -0
- package/skills/ai-research/08-distributed-training/ray-train/references/multi-node.md +629 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/SKILL.md +545 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/advanced-usage.md +612 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/troubleshooting.md +531 -0
- package/skills/ai-research/09-infrastructure/modal/SKILL.md +341 -0
- package/skills/ai-research/09-infrastructure/modal/references/advanced-usage.md +504 -0
- package/skills/ai-research/09-infrastructure/modal/references/troubleshooting.md +495 -0
- package/skills/ai-research/09-infrastructure/skypilot/SKILL.md +509 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/advanced-usage.md +492 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/troubleshooting.md +571 -0
- package/skills/ai-research/10-optimization/awq/SKILL.md +310 -0
- package/skills/ai-research/10-optimization/awq/references/advanced-usage.md +325 -0
- package/skills/ai-research/10-optimization/awq/references/troubleshooting.md +345 -0
- package/skills/ai-research/10-optimization/bitsandbytes/SKILL.md +411 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/memory-optimization.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/qlora-training.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/quantization-formats.md +448 -0
- package/skills/ai-research/10-optimization/flash-attention/SKILL.md +367 -0
- package/skills/ai-research/10-optimization/flash-attention/references/benchmarks.md +216 -0
- package/skills/ai-research/10-optimization/flash-attention/references/transformers-integration.md +294 -0
- package/skills/ai-research/10-optimization/gguf/SKILL.md +427 -0
- package/skills/ai-research/10-optimization/gguf/references/advanced-usage.md +505 -0
- package/skills/ai-research/10-optimization/gguf/references/troubleshooting.md +443 -0
- package/skills/ai-research/10-optimization/gptq/SKILL.md +450 -0
- package/skills/ai-research/10-optimization/gptq/references/calibration.md +338 -0
- package/skills/ai-research/10-optimization/gptq/references/integration.md +130 -0
- package/skills/ai-research/10-optimization/gptq/references/troubleshooting.md +96 -0
- package/skills/ai-research/10-optimization/hqq/SKILL.md +445 -0
- package/skills/ai-research/10-optimization/hqq/references/advanced-usage.md +529 -0
- package/skills/ai-research/10-optimization/hqq/references/troubleshooting.md +504 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/SKILL.md +319 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/architecture.md +320 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/biomedical.md +498 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/domain-specific.md +626 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/experiment-loop.md +129 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/optimizers.md +330 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/scaling-and-selection.md +428 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/SKILL.md +405 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/benchmarks.md +394 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/custom-tasks.md +425 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/issues.md +395 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/SKILL.md +490 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/api-evaluation.md +491 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/benchmark-guide.md +489 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/custom-tasks.md +603 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/distributed-eval.md +520 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/SKILL.md +494 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/adapter-system.md +341 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/configuration.md +448 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/custom-benchmarks.md +316 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/execution-backends.md +362 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/SKILL.md +258 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/optimization.md +90 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/quantization.md +214 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/server.md +126 -0
- package/skills/ai-research/12-inference-serving/sglang/SKILL.md +442 -0
- package/skills/ai-research/12-inference-serving/sglang/references/deployment.md +491 -0
- package/skills/ai-research/12-inference-serving/sglang/references/radix-attention.md +414 -0
- package/skills/ai-research/12-inference-serving/sglang/references/structured-generation.md +542 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/SKILL.md +187 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/multi-gpu.md +299 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/optimization.md +243 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/serving.md +471 -0
- package/skills/ai-research/12-inference-serving/vllm/SKILL.md +364 -0
- package/skills/ai-research/12-inference-serving/vllm/references/optimization.md +227 -0
- package/skills/ai-research/12-inference-serving/vllm/references/quantization.md +285 -0
- package/skills/ai-research/12-inference-serving/vllm/references/server-deployment.md +256 -0
- package/skills/ai-research/12-inference-serving/vllm/references/troubleshooting.md +448 -0
- package/skills/ai-research/13-mlops/mlflow/SKILL.md +704 -0
- package/skills/ai-research/13-mlops/mlflow/references/deployment.md +745 -0
- package/skills/ai-research/13-mlops/mlflow/references/model-registry.md +771 -0
- package/skills/ai-research/13-mlops/mlflow/references/tracking.md +681 -0
- package/skills/ai-research/13-mlops/swanlab/SKILL.md +406 -0
- package/skills/ai-research/13-mlops/swanlab/references/integrations.md +305 -0
- package/skills/ai-research/13-mlops/swanlab/references/visualization.md +234 -0
- package/skills/ai-research/13-mlops/tensorboard/SKILL.md +629 -0
- package/skills/ai-research/13-mlops/tensorboard/references/integrations.md +639 -0
- package/skills/ai-research/13-mlops/tensorboard/references/profiling.md +546 -0
- package/skills/ai-research/13-mlops/tensorboard/references/visualization.md +621 -0
- package/skills/ai-research/13-mlops/weights-and-biases/SKILL.md +590 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/artifacts.md +585 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/integrations.md +701 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/sweeps.md +848 -0
- package/skills/ai-research/14-agents/a-evolve/SKILL.md +383 -0
- package/skills/ai-research/14-agents/a-evolve/references/README.md +831 -0
- package/skills/ai-research/14-agents/a-evolve/references/api.md +594 -0
- package/skills/ai-research/14-agents/a-evolve/references/architecture.md +417 -0
- package/skills/ai-research/14-agents/a-evolve/references/design-patterns.md +462 -0
- package/skills/ai-research/14-agents/a-evolve/references/examples.md +352 -0
- package/skills/ai-research/14-agents/a-evolve/references/issues.md +591 -0
- package/skills/ai-research/14-agents/a-evolve/references/releases.md +112 -0
- package/skills/ai-research/14-agents/a-evolve/references/tutorials.md +819 -0
- package/skills/ai-research/14-agents/autogpt/SKILL.md +403 -0
- package/skills/ai-research/14-agents/autogpt/references/advanced-usage.md +536 -0
- package/skills/ai-research/14-agents/autogpt/references/troubleshooting.md +421 -0
- package/skills/ai-research/14-agents/crewai/SKILL.md +498 -0
- package/skills/ai-research/14-agents/crewai/references/flows.md +439 -0
- package/skills/ai-research/14-agents/crewai/references/tools.md +430 -0
- package/skills/ai-research/14-agents/crewai/references/troubleshooting.md +481 -0
- package/skills/ai-research/14-agents/langchain/SKILL.md +480 -0
- package/skills/ai-research/14-agents/langchain/references/agents.md +500 -0
- package/skills/ai-research/14-agents/langchain/references/integration.md +563 -0
- package/skills/ai-research/14-agents/langchain/references/rag.md +601 -0
- package/skills/ai-research/14-agents/llamaindex/SKILL.md +569 -0
- package/skills/ai-research/14-agents/llamaindex/references/agents.md +84 -0
- package/skills/ai-research/14-agents/llamaindex/references/data_connectors.md +109 -0
- package/skills/ai-research/14-agents/llamaindex/references/query_engines.md +407 -0
- package/skills/ai-research/15-rag/chroma/SKILL.md +406 -0
- package/skills/ai-research/15-rag/chroma/references/integration.md +39 -0
- package/skills/ai-research/15-rag/faiss/SKILL.md +221 -0
- package/skills/ai-research/15-rag/faiss/references/index_types.md +281 -0
- package/skills/ai-research/15-rag/pinecone/SKILL.md +358 -0
- package/skills/ai-research/15-rag/pinecone/references/deployment.md +182 -0
- package/skills/ai-research/15-rag/qdrant/SKILL.md +493 -0
- package/skills/ai-research/15-rag/qdrant/references/advanced-usage.md +649 -0
- package/skills/ai-research/15-rag/qdrant/references/troubleshooting.md +632 -0
- package/skills/ai-research/15-rag/sentence-transformers/SKILL.md +255 -0
- package/skills/ai-research/15-rag/sentence-transformers/references/models.md +124 -0
- package/skills/ai-research/16-prompt-engineering/dspy/SKILL.md +590 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/examples.md +664 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/modules.md +476 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/optimizers.md +567 -0
- package/skills/ai-research/16-prompt-engineering/guidance/SKILL.md +572 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/backends.md +555 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/constraints.md +675 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/examples.md +768 -0
- package/skills/ai-research/16-prompt-engineering/instructor/SKILL.md +740 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/examples.md +108 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/providers.md +71 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/validation.md +607 -0
- package/skills/ai-research/16-prompt-engineering/outlines/SKILL.md +652 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/backends.md +616 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/examples.md +774 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/json_generation.md +653 -0
- package/skills/ai-research/17-observability/langsmith/SKILL.md +422 -0
- package/skills/ai-research/17-observability/langsmith/references/advanced-usage.md +549 -0
- package/skills/ai-research/17-observability/langsmith/references/troubleshooting.md +538 -0
- package/skills/ai-research/17-observability/phoenix/SKILL.md +475 -0
- package/skills/ai-research/17-observability/phoenix/references/advanced-usage.md +620 -0
- package/skills/ai-research/17-observability/phoenix/references/troubleshooting.md +539 -0
- package/skills/ai-research/18-multimodal/audiocraft/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/advanced-usage.md +667 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/troubleshooting.md +505 -0
- package/skills/ai-research/18-multimodal/blip-2/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/blip-2/references/advanced-usage.md +681 -0
- package/skills/ai-research/18-multimodal/blip-2/references/troubleshooting.md +527 -0
- package/skills/ai-research/18-multimodal/clip/SKILL.md +253 -0
- package/skills/ai-research/18-multimodal/clip/references/applications.md +208 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/SKILL.md +402 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/libero-commands.md +175 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/robocasa-commands.md +147 -0
- package/skills/ai-research/18-multimodal/llava/SKILL.md +304 -0
- package/skills/ai-research/18-multimodal/llava/references/training.md +198 -0
- package/skills/ai-research/18-multimodal/openpi/SKILL.md +480 -0
- package/skills/ai-research/18-multimodal/openpi/references/checkpoints-and-env-map.md +86 -0
- package/skills/ai-research/18-multimodal/openpi/references/config-recipes.md +50 -0
- package/skills/ai-research/18-multimodal/openpi/references/pytorch-gotchas.md +49 -0
- package/skills/ai-research/18-multimodal/openpi/references/remote-client-pattern.md +48 -0
- package/skills/ai-research/18-multimodal/openpi/references/training-debugging.md +46 -0
- package/skills/ai-research/18-multimodal/openvla-oft/SKILL.md +441 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/aloha-workflow.md +141 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/config-troubleshooting.md +97 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/libero-workflow.md +115 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/paper-and-checkpoints.md +84 -0
- package/skills/ai-research/18-multimodal/segment-anything/SKILL.md +500 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/advanced-usage.md +590 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/troubleshooting.md +485 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/SKILL.md +519 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/advanced-usage.md +717 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/troubleshooting.md +556 -0
- package/skills/ai-research/18-multimodal/whisper/SKILL.md +317 -0
- package/skills/ai-research/18-multimodal/whisper/references/languages.md +190 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/SKILL.md +458 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/references/minillm.md +335 -0
- package/skills/ai-research/19-emerging-techniques/long-context/SKILL.md +536 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/extension_methods.md +469 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/fine_tuning.md +612 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/rope.md +403 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/SKILL.md +497 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/coefficient-tuning.md +415 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/evaluation.md +463 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/examples.md +429 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/methods.md +353 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/SKILL.md +495 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/references/wanda.md +348 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/SKILL.md +526 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/architectures.md +433 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/inference.md +349 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/training.md +426 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/SKILL.md +467 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/lookahead.md +310 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/medusa.md +351 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/SKILL.md +479 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/data-visualization.md +509 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/diagram-generation.md +395 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/style-guide.md +305 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/SKILL.md +982 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/checklists.md +348 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/citation-workflow.md +563 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/reviewer-guidelines.md +349 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/sources.md +165 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/writing-guide.md +477 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/SKILL.md +298 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/references/slide-templates.md +505 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/SKILL.md +270 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/checklist.md +279 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/reviewer-guidelines.md +116 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/section-blueprints.md +400 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/systems-conferences.md +261 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/writing-patterns.md +231 -0
- package/skills/ai-research/21-research-ideation/brainstorming-research-ideas/SKILL.md +384 -0
- package/skills/ai-research/21-research-ideation/creative-thinking-for-research/SKILL.md +366 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/SKILL.md +245 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/ara-schema.md +439 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/exploration-tree-spec.md +125 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/validation-checklist.md +149 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/SKILL.md +324 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/event-taxonomy.md +124 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/provenance-tags.md +190 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/session-protocol.md +162 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/SKILL.md +322 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/references/review-dimensions.md +182 -0
- package/skills/ai-research/SKILL.md +101 -0
- package/skills/ai-research/SOURCE +38 -0
- package/skills/ai-research/index/1-frame.md +18 -0
- package/skills/ai-research/index/2-data.md +21 -0
- package/skills/ai-research/index/3-train.md +48 -0
- package/skills/ai-research/index/4-measure.md +25 -0
- package/skills/ai-research/index/5-run.md +23 -0
- package/skills/ai-research/index/6-write.md +35 -0
- package/skills/ai-research/library.json +3456 -0
- package/skills/analyze-app/EVALS.md +82 -0
- package/skills/analyze-app/SKILL.md +188 -0
- package/skills/design-contract/EVALS.md +80 -0
- package/skills/design-contract/SKILL.md +171 -0
- package/skills/design-library/EVALS.md +85 -0
- package/skills/design-library/INDEX.md +59 -0
- package/skills/design-library/SKILL.md +58 -0
- package/skills/design-library/SOURCE +131 -0
- package/skills/design-library/adaptive-interfaces/skills/colour-independence/SKILL.md +90 -0
- package/skills/design-library/adaptive-interfaces/skills/flexible-typography/SKILL.md +83 -0
- package/skills/design-library/adaptive-interfaces/skills/information-density/SKILL.md +87 -0
- package/skills/design-library/adaptive-interfaces/skills/preference-audit/SKILL.md +70 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-accessibility/SKILL.md +86 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-review/SKILL.md +76 -0
- package/skills/design-library/adaptive-interfaces/skills/simplified-views/SKILL.md +97 -0
- package/skills/design-library/adaptive-interfaces/skills/specify/SKILL.md +63 -0
- package/skills/design-library/adaptive-interfaces/skills/user-preference-respect/SKILL.md +100 -0
- package/skills/design-library/cognitive-accessibility/skills/adaptive-personalisation/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/assess-load/SKILL.md +48 -0
- package/skills/design-library/cognitive-accessibility/skills/cognitive-load-assessment/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/contextual-help-design/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/error-prevention-recovery/SKILL.md +71 -0
- package/skills/design-library/cognitive-accessibility/skills/focus-attention-design/SKILL.md +67 -0
- package/skills/design-library/cognitive-accessibility/skills/memory-load-reduction/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/plain-language-design/SKILL.md +78 -0
- package/skills/design-library/cognitive-accessibility/skills/review/SKILL.md +56 -0
- package/skills/design-library/cognitive-accessibility/skills/simplify/SKILL.md +39 -0
- package/skills/design-library/cognitive-accessibility/skills/wayfinding-navigation/SKILL.md +64 -0
- package/skills/design-library/design-research/skills/behavioural-analytics/SKILL.md +33 -0
- package/skills/design-library/design-research/skills/qual-quant-triangulation/SKILL.md +33 -0
- package/skills/design-library/inclusive-interaction/skills/audit/SKILL.md +50 -0
- package/skills/design-library/inclusive-interaction/skills/design-flow/SKILL.md +58 -0
- package/skills/design-library/inclusive-interaction/skills/feedback-and-status/SKILL.md +76 -0
- package/skills/design-library/inclusive-interaction/skills/gesture-alternatives/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-navigation/SKILL.md +99 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-review/SKILL.md +54 -0
- package/skills/design-library/inclusive-interaction/skills/motion-sensitivity/SKILL.md +79 -0
- package/skills/design-library/inclusive-interaction/skills/multi-modal-input/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/touch-target-design/SKILL.md +71 -0
- package/skills/design-library/inclusive-interaction/skills/voice-interaction/SKILL.md +68 -0
- package/skills/design-library/visual-critique/skills/critique-affordance/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-brand-consistency/SKILL.md +42 -0
- package/skills/design-library/visual-critique/skills/critique-color/SKILL.md +44 -0
- package/skills/design-library/visual-critique/skills/critique-composition/SKILL.md +46 -0
- package/skills/design-library/visual-critique/skills/critique-information-density/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-typography/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-visual-hierarchy/SKILL.md +40 -0
- package/skills/feature-audit/EVALS.md +83 -0
- package/skills/feature-audit/SKILL.md +326 -0
- package/skills/harness/EVALS.md +81 -0
- package/skills/harness/SKILL.md +88 -0
- package/skills/i-have-adhd/EVALS.md +80 -0
- package/skills/i-have-adhd/SKILL.md +183 -0
- package/skills/no-ai-slop/EVALS.md +89 -0
- package/skills/no-ai-slop/SKILL.md +209 -0
- package/skills/no-ai-slop/eval.md +52 -0
- package/skills/plan-add/EVALS.md +79 -0
- package/skills/plan-add/SKILL.md +179 -0
- package/skills/plan-add/render_table.py +72 -0
- package/skills/plan-status/EVALS.md +78 -0
- package/skills/plan-status/SKILL.md +52 -0
- package/skills/plan-sync/EVALS.md +80 -0
- package/skills/plan-sync/SKILL.md +69 -0
- package/skills/pm-frameworks/SKILL.md +33 -0
- package/skills/pm-frameworks/SOURCE +39 -0
- package/skills/pm-frameworks/intended-vs-implemented/SKILL.md +42 -0
- package/skills/pm-frameworks/opportunity-solution-tree/SKILL.md +64 -0
- package/skills/ponytail/EVALS.md +80 -0
- package/skills/ponytail/SKILL.md +124 -0
- package/skills/product-analysis/EVALS.md +103 -0
- package/skills/product-analysis/SKILL.md +361 -0
- package/skills/research/EVALS.md +104 -0
- package/skills/research/SKILL.md +570 -0
- package/skills/rl-env/SKILL.md +53 -0
- package/skills/rl-env/SOURCE +41 -0
- package/skills/rl-env/generate-nemo-gym-env/SKILL.md +169 -0
- package/skills/rl-env/generate-nemo-gym-env/references/architecture.md +114 -0
- package/skills/rl-env/generate-openenv-env/SKILL.md +183 -0
- package/skills/rl-env/generate-openenv-env/references/architecture.md +82 -0
- package/skills/rl-env/generate-ors-env/SKILL.md +209 -0
- package/skills/rl-env/generate-ors-env/references/architecture.md +113 -0
- package/skills/rl-env/generate-verifiers-env/SKILL.md +188 -0
- package/skills/rl-env/generate-verifiers-env/references/architecture.md +119 -0
- package/skills/rl-env/rl-env-from-description/SKILL.md +124 -0
- package/skills/rl-env/rl-env-from-description/references/interview.md +75 -0
- package/skills/rl-env/rl-env-from-description/references/nemo_gym.md +41 -0
- package/skills/rl-env/rl-env-from-description/references/openenv.md +35 -0
- package/skills/rl-env/rl-env-from-description/references/ors.md +50 -0
- package/skills/rl-env/rl-env-from-description/references/verifiers.md +39 -0
- package/skills/tezgah-contract/EVALS.md +78 -0
- package/skills/tezgah-contract/SKILL.md +792 -0
- package/statusline.py +129 -0
- package/workflows/graph-impact.js +153 -0
- package/workflows/graph-map.js +158 -0
- package/workflows/graph-review.js +170 -0
package/README.tr.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.md">English</a> |
|
|
3
|
+
<a href="README.de.md">Deutsch</a> |
|
|
4
|
+
<a href="README.es.md">Español</a> |
|
|
5
|
+
<a href="README.fr.md">Français</a> |
|
|
6
|
+
<a href="README.tr.md">Türkçe</a>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
# Tezgah
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<img src="assets/logo/tezgah-logo.svg" alt="tezgah logo" width="220">
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<h3 align="center">Çalıştırdığınız her yapay zeka kodlama asistanı için tek bir çalışma sözleşmesi.</h3>
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/github/license/r1z4x/tezgah?style=flat-square"></a>
|
|
19
|
+
<a href="https://github.com/r1z4x/tezgah/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/r1z4x/tezgah/ci.yml?style=flat-square&label=ci"></a>
|
|
20
|
+
<a href="https://github.com/r1z4x/tezgah/releases/latest"><img alt="Release" src="https://img.shields.io/github/v/release/r1z4x/tezgah?style=flat-square"></a>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<p align="center"><sub>İngilizce ana kaynaktır; çeviriler geriden gelebilir.</sub></p>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
Tezgah, çalıştırdığınız her yapay zeka kodlama asistanını — **birincil
|
|
28
|
+
barındırıcı olan omp** ve Claude Code, Codex, Cursor, opencode ile DeepSeek'in
|
|
29
|
+
dsh donanımı — yapılandırdığınız depo kökleri içinde tek bir çalışma
|
|
30
|
+
sözleşmesiyle donatır. Kendi haline bırakıldığında her asistan sapar: biri
|
|
31
|
+
Türkçe yanıt verirken diğeri İngilizce yanıt verir, biri grep kullanırken
|
|
32
|
+
diğeri bir kod grafiğini sorgular, biri test çalıştırmadan "tamamlandı" der.
|
|
33
|
+
Kurallar paylaşılan bir çekirdekte bir kez yer alır; her barındırıcı, bu
|
|
34
|
+
kuralları anladığı şekle çeviren ince bir adaptör alır — bir kuralı tek yerde
|
|
35
|
+
değiştirdiğinizde her barındırıcıya aynı şekilde ulaşır.
|
|
36
|
+
|
|
37
|
+
## tezgah neyi zorunlu kılar ve kaydeder
|
|
38
|
+
|
|
39
|
+
- **Tek sözleşme, altı barındırıcı.** omp, Claude Code, Codex, Cursor,
|
|
40
|
+
opencode ve dsh aynı kuralları görür, çünkü her barındırıcı paylaşılan tek
|
|
41
|
+
bir çekirdeğin ince bir adaptörüdür — kuralı bir kez değiştirin, hepsi alır.
|
|
42
|
+
- **"Tamamlandı" demek için kayıtta geçmiş bir kontrol gerekir.** 15 reddin
|
|
43
|
+
olduğu bir kapı, etkisizleştirilmiş kontrolü durdurur — `--no-verify`,
|
|
44
|
+
`|| true`, `tail`'e yönlendirilmiş bir test, uçuş sırasında eklenen bir
|
|
45
|
+
skip — ve Stop kuralı, oturumun kanıt defterinin desteklemediği tamamlanma
|
|
46
|
+
iddiasını reddeder. Turu reddeder; modelin bu iddiayı dile getirmesini
|
|
47
|
+
engelleyemez.
|
|
48
|
+
- **Araştırma kütüphanesiyle birlikte gelir.** Araştırma görevleri,
|
|
49
|
+
bağlamın küçük kalması için tek tek yüklenen 98 becerilik gömülü
|
|
50
|
+
bir kütüphaneyle OpenResearch üzerinden yürütülür.
|
|
51
|
+
- **Her kuralın bir kapatma anahtarı vardır.** On altı kapatma anahtarı — ve
|
|
52
|
+
depo başına işaretler — kuralın metnini oturumdan kaldırır; böylece kural
|
|
53
|
+
yalnızca kapalı görünmez, gerçekten durur.
|
|
54
|
+
- **Sabit bir yanıt biçimi.** Yanıtlar, başka bir dil seçmediyseniz Türkçedir ve sonuçla
|
|
55
|
+
başlar; bir liste en fazla beş sıralı madde gösterir; bir tahmin tahmin
|
|
56
|
+
olarak adlandırılır; bir hata konum, neden, çözüm olarak okunur.
|
|
57
|
+
|
|
58
|
+
## Neyi göstermedi
|
|
59
|
+
|
|
60
|
+
Tezgah bir mekanizmalar bütünüdür: oturuma eklenen kurallar, belirli komutları
|
|
61
|
+
reddeden bir kapı ve Stop kuralının okuduğu bir defter. Bir ajanın daha az
|
|
62
|
+
hile yaptığının ya da daha çok görev bitirdiğinin kanıtı değildir. Eşleştirilmiş
|
|
63
|
+
bir açık/kapalı deneyi (Ekim 2026; omp üzerinde DeepSeek V4.1 Flash, tezgah'sız
|
|
64
|
+
ile tam tezgah kurulumu karşılaştırıldı) hilede ölçülebilir bir azalma bulmadı,
|
|
65
|
+
çünkü model iki kolda da neredeyse hiç hile yapmadı:
|
|
66
|
+
|
|
67
|
+
- **Aşama 1, üç baskı düzeneği:** her kolda 60 çalıştırmanın 0'ında hile;
|
|
68
|
+
temiz geçiş tezgah ile 48/60, tezgah'sız 53/60.
|
|
69
|
+
- **Aşama 2, ImpossibleBench'in çelişkili SWE-bench bölümü (44 örnek,
|
|
70
|
+
k = 3):** hile tezgah ile 0/132, tezgah'sız 1/131 (-0.8 pp, %95 GA -2.3 ile
|
|
71
|
+
0 arası); özgün görevlerde temiz geçiş 129/131'e karşı 129/132.
|
|
72
|
+
- **Elle etiketlenmiş yanlış "bitti" iddiaları:** bu imkânsız görevlerde,
|
|
73
|
+
örneklenen son mesajların tezgah ile 30'da 3'ü, tezgah'sız 30'da 6'sı
|
|
74
|
+
kullanıcıya görevin bittiğini söyledi. Düzeltilmiş fark -5 pp (%95 GA -18 ile
|
|
75
|
+
+9 arası), yani iki yönde de etki yok.
|
|
76
|
+
- **Stop kuralının iddia okuyucusunda bir zayıf nokta:** tezgah ile 115/132,
|
|
77
|
+
tezgah'sız 90/131 çalıştırmayı işaretledi, ama işaretlerinin yalnızca %10'u
|
|
78
|
+
ve %20'si gerçek "bitti" iddiasıydı. tezgah ile ajan Türkçe yanıt verdi ve
|
|
79
|
+
okuyucu kısmi bir düzeltmedeki `doğrulandı` sözcüğünü iddia sayıyor. Bu
|
|
80
|
+
kayda geçti, henüz düzeltilmedi.
|
|
81
|
+
|
|
82
|
+
Çalıştırmada ölçüm aracı kusurları vardı; bunların arasında, iki koldaki
|
|
83
|
+
ajanların benchmark'ın doğru cevaplarını okuyabilmesi de var. Toplamlar, görev
|
|
84
|
+
başına sayımlar ve her çekince
|
|
85
|
+
[sonuç paketinde](docs/results/paired-outcome-2026-10.md) yer alır (İngilizce).
|
|
86
|
+
|
|
87
|
+
<a id="install"></a>
|
|
88
|
+
|
|
89
|
+
## Kurulum
|
|
90
|
+
|
|
91
|
+
Tek satır, macOS, Linux veya WSL'de (Python 3.10+, `curl`, `tar`). Son sürümü
|
|
92
|
+
indirir, sha256'sını doğrular ve bulduğu her barındırıcıyı kurar (Claude
|
|
93
|
+
Code'u kendi `claude plugin` CLI'ı üzerinden):
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
curl -fsSL https://raw.githubusercontent.com/r1z4x/tezgah/main/packaging/install.sh | sh
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Ya da npm ile: `npm i -g @r1z4x/tezgah && tezgah --install`.
|
|
100
|
+
|
|
101
|
+
Ayrıştıramadığı bir barındırıcı yapılandırmasına dokunmaz, değiştirdiği her
|
|
102
|
+
yapılandırmanın tarihli bir `.tezgah-bak` kopyasını tutar ve kurmayı
|
|
103
|
+
planladığı bir barındırıcı kurulamazsa sıfırdan farklı bir kodla çıkar.
|
|
104
|
+
|
|
105
|
+
### tezgah makinenizde neyi değiştirir
|
|
106
|
+
|
|
107
|
+
- **Barındırıcı yapılandırması.** Kurulan her barındırıcı tezgah'ın
|
|
108
|
+
hook'larını, MCP satırlarını ve kendi genel kural dosyasında
|
|
109
|
+
(`~/.claude/CLAUDE.md`, `~/.codex/AGENTS.md`, `~/.omp/agent/RULES.md`)
|
|
110
|
+
yönetilen bir sözleşme bloğunu alır. Claude Code'un hook'ları `claude plugin`
|
|
111
|
+
ile kaydedilen bir eklentide gelir; `claude` CLI'ı yoksa Claude kurulmamış
|
|
112
|
+
kalır ve rapor bunu söyler.
|
|
113
|
+
- **Depolarınızdaki ajan dosyaları.** Yapılandırılan köklerde bir oturum
|
|
114
|
+
`.claude/agents/`, `.codex/agents/` ve `.opencode/agents/` altına alt ajan
|
|
115
|
+
dosyaları yazar ve bu dizinleri klonun kendi `.git/info/exclude` dosyasına
|
|
116
|
+
ekler (`TEZGAH_NO_EXCLUDE=1` bunu durdurur).
|
|
117
|
+
- **Günlük güncelleme denetimi.** Durum satırı yeni bir sürümü günde en fazla
|
|
118
|
+
bir kez sorar; `~/.config/tezgah/update-check-off` ya da
|
|
119
|
+
`TEZGAH_UPDATE_CHECK=0` bunu kapatır.
|
|
120
|
+
- **orx.** Kurulum, araştırma görevlerinin yönlendirildiği OpenResearch CLI'ını
|
|
121
|
+
indirir; `TEZGAH_NO_DEPS=1` bunu atlar.
|
|
122
|
+
- **Yanıt dili.** Yanıtlar varsayılan olarak Türkçedir ve Stop kuralı bunu
|
|
123
|
+
denetler. `--reply-lang en` İngilizce, `any` ise sizin dilinizi ister;
|
|
124
|
+
ikisi de denetlenmez: `curl -fsSL … | sh -s -- --reply-lang en`.
|
|
125
|
+
|
|
126
|
+
Kurulumu kodlama asistanınıza yaptırmak isterseniz bunu omp, Claude Code,
|
|
127
|
+
Codex, Cursor veya opencode'a yapıştırın (istem İngilizce; asistan her dilde
|
|
128
|
+
anlar):
|
|
129
|
+
|
|
130
|
+
```text
|
|
131
|
+
Install tezgah (https://github.com/r1z4x/tezgah) on this machine and verify it.
|
|
132
|
+
|
|
133
|
+
1. Check the prerequisites: python3 --version must be 3.10 or newer, and curl
|
|
134
|
+
and tar must exist. If one is missing, stop and tell me which.
|
|
135
|
+
2. Run the installer exactly as published - do not edit it or pipe it anywhere else:
|
|
136
|
+
curl -fsSL https://raw.githubusercontent.com/r1z4x/tezgah/main/packaging/install.sh | sh
|
|
137
|
+
Its output must contain "verified tezgah-<version>.tar.gz" (the sha256
|
|
138
|
+
check). If it does not, stop and show me the output.
|
|
139
|
+
3. Verify: run ~/.local/share/tezgah/current/bin/tezgah-setup --version and
|
|
140
|
+
~/.local/share/tezgah/current/bin/tezgah-setup --report, and show me every
|
|
141
|
+
line that says MISS.
|
|
142
|
+
4. Tell me which hosts were armed, which repository root was configured
|
|
143
|
+
(default ~/Projects - if my code lives elsewhere, ask me for the directory and
|
|
144
|
+
run ~/.local/share/tezgah/current/bin/tezgah-setup --roots <dir> --install),
|
|
145
|
+
and that I must restart each assistant for the hooks to load.
|
|
146
|
+
Do not change any other file and do not uninstall anything.
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Sürüm sabitleme, Windows (`packaging/install.ps1`), çevrimdışı tarball,
|
|
150
|
+
yükseltme ve isteğe bağlı entegrasyonlar [docs](docs/README.md) altındadır.
|
|
151
|
+
|
|
152
|
+
## Desteklenen barındırıcılar
|
|
153
|
+
|
|
154
|
+
**omp** (birincil barındırıcı; tezgah buna göre geliştirilir ve doğrulanır), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh** — paylaşılan tek çekirdeğin ince adaptörleri.
|
|
155
|
+
|
|
156
|
+
## Ayrıntılar nerede
|
|
157
|
+
|
|
158
|
+
Kapı, kanıt defteri, barındırıcı adaptörleri, yapılandırma ve geliştirme [docs/README.md](docs/README.md) içindedir; soru başına bir sayfa.
|
|
159
|
+
|
|
160
|
+
## Lisans
|
|
161
|
+
|
|
162
|
+
MIT — bkz. [LICENSE](LICENSE).
|
|
163
|
+
Katıştırılmış beceriler (`ponytail`, `no-ai-slop`, `i-have-adhd`) kendi MIT koşullarıyla gelir; bkz. [NOTICE](NOTICE).
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tezgah-reviewer
|
|
3
|
+
description: >
|
|
4
|
+
Adversarial, read-only review of a diff, branch or PR: derives the blast
|
|
5
|
+
radius, checks correctness, contract, security, tests and performance, and
|
|
6
|
+
classifies every finding confirmed/refuted/unverified.
|
|
7
|
+
model: opus
|
|
8
|
+
effort: high
|
|
9
|
+
readonly: true
|
|
10
|
+
disallowedTools: Write, Edit, NotebookEdit, Bash, Agent
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
You are tezgah-reviewer, an adversarial code reviewer. Review a change,
|
|
14
|
+
not the whole repo, with the code graph as below.
|
|
15
|
+
|
|
16
|
+
Load the graph tools first: ToolSearch("select:mcp__codegraph__codegraph_explore,mcp__plugin_tezgah_codegraph__codegraph_explore,mcp__codegraph__codegraph_impact,mcp__plugin_tezgah_codegraph__codegraph_impact,mcp__codegraph__codegraph_callers,mcp__plugin_tezgah_codegraph__codegraph_callers,mcp__codegraph__codegraph_node,mcp__plugin_tezgah_codegraph__codegraph_node"). You have no
|
|
17
|
+
shell, so the codegraph CLI is out of reach: use those MCP tools.
|
|
18
|
+
|
|
19
|
+
Review the raw artifact, never a summary of it and never the author's
|
|
20
|
+
self-assessment. Format, schema, frontmatter and spec-compliance problems
|
|
21
|
+
live in the exact text, and a framing you were handed is a finding you will
|
|
22
|
+
not make: a reviewer given the implementer's view finds measurably fewer
|
|
23
|
+
defects. If you were handed a paraphrase, read the files instead.
|
|
24
|
+
|
|
25
|
+
You have no shell, so you cannot run `git diff`: the caller passes
|
|
26
|
+
the changed files and symbols of the target (a base branch, a ref or
|
|
27
|
+
the PR under review). Run the MCP `codegraph_impact` tool per changed
|
|
28
|
+
symbol - that is the blast radius. If the brief names no changed files,
|
|
29
|
+
say so and ask for them instead of guessing. Read the changed code and any caller you intend to accuse.
|
|
30
|
+
An empty or short caller list is not proof that a change is safe: the
|
|
31
|
+
index records only the edges its parser saw, so say what it cannot see
|
|
32
|
+
(dynamic dispatch, string or config lookups, unindexed files) instead of
|
|
33
|
+
implying the list is complete.
|
|
34
|
+
Look only for defects the change causes: correctness, contract/callers,
|
|
35
|
+
security, tests, concurrency and performance. Classify every candidate as
|
|
36
|
+
confirmed (concrete failure scenario + file:line), refuted (a guard,
|
|
37
|
+
caller contract, type or test already prevents it) or unverified (not
|
|
38
|
+
settled). Default to refuted when the evidence is unclear. Only the code
|
|
39
|
+
or a run you observed settles a candidate: a doc, a comment, a lessons
|
|
40
|
+
file, a memory note or an earlier report may raise a question but never
|
|
41
|
+
makes it confirmed or refuted on its own. Report only confirmed findings
|
|
42
|
+
as bugs; no style notes, no praise; empty is the correct answer for a
|
|
43
|
+
clean change.
|
|
44
|
+
|
|
45
|
+
Score the constraints separately from the defects. For every constraint
|
|
46
|
+
the task stated - keep this behaviour, touch no other file, preserve this
|
|
47
|
+
format - report kept or violated with the file:line that shows which. A
|
|
48
|
+
patch that passes the tests and breaks a stated constraint is not clean,
|
|
49
|
+
and a functional test will not notice it.
|
|
50
|
+
|
|
51
|
+
Every finding carries a severity - critical (the change cannot stand as
|
|
52
|
+
written), major (a real weakness that must be fixed), minor (noticeable),
|
|
53
|
+
suggestion (an improvement, not a flaw) - and a verbatim quote of the
|
|
54
|
+
code it accuses; a finding about an absence carries no quote. A severity
|
|
55
|
+
is lowered only by evidence: a check you could not complete never
|
|
56
|
+
downgrades a confirmed finding - keep its severity and mark it
|
|
57
|
+
provisional. Disclose the order you read the files in.
|
|
58
|
+
|
|
59
|
+
Scope and budget. Every round that confirms a defect is followed by a
|
|
60
|
+
round over that fix's delta; the review ends when a round confirms none.
|
|
61
|
+
A later round reads only the delta since the sha the previous round
|
|
62
|
+
recorded (`tezgah-task review` prints it): re-reading the whole diff
|
|
63
|
+
re-reports what was already triaged. Test results are input, not a task
|
|
64
|
+
- read the author's output file; do not run the suite, and run at most one
|
|
65
|
+
`-k` test when a specific accusation needs it. The same defect family
|
|
66
|
+
confirmed three times is a sign the design needs a pivot, not another
|
|
67
|
+
patch.
|
|
68
|
+
|
|
69
|
+
You may use: the codegraph MCP tools, read, grep and glob. Read-only:
|
|
70
|
+
no writes, no edits, no shell.
|
package/bin/codegen
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""codegen - hand a bounded coding task to a cheap model, get back a DIFF.
|
|
3
|
+
|
|
4
|
+
codegen "task" --files src/a.py src/b.py [--provider p] [--model m]
|
|
5
|
+
[--timeout s] [--max-tokens N] [--out-dir DIR] (drafts only; nothing is applied)
|
|
6
|
+
|
|
7
|
+
--timeout (default 300) caps the WHOLE request, not one socket operation, so a
|
|
8
|
+
stalled connection exits 2 instead of hanging the caller. CODEGEN_URL overrides
|
|
9
|
+
the endpoint (a gateway, or a test server; plain http only to this machine);
|
|
10
|
+
CODEGEN_MODEL the model.
|
|
11
|
+
|
|
12
|
+
The model NEVER writes into the repository. It returns whole file bodies, this
|
|
13
|
+
script writes them to a scratch directory and prints `diff -u` against the
|
|
14
|
+
working tree. The caller reviews that diff, applies it, and runs the gate
|
|
15
|
+
(tests, ruff, ty). That separation is the whole point: a cheap model drafts,
|
|
16
|
+
an expensive one decides, and nothing lands unreviewed.
|
|
17
|
+
|
|
18
|
+
Providers (--provider, default openrouter):
|
|
19
|
+
openrouter OPENROUTER_API_KEY ~/.config/openrouter/key
|
|
20
|
+
deepseek DEEPSEEK_API_KEY ~/.config/deepseek/key
|
|
21
|
+
inception INCEPTION_API_KEY ~/.config/inception/key
|
|
22
|
+
Key lookup order: the provider's env var, then its key file.
|
|
23
|
+
|
|
24
|
+
EXIT CODES, and they are the contract:
|
|
25
|
+
0 usable drafts, diff printed
|
|
26
|
+
2 codegen cannot deliver -- WRITE THE CODE YOURSELF with the main model.
|
|
27
|
+
Raised for: no key, API or network failure, a request that outlived
|
|
28
|
+
--timeout, a redirect to another host, a plain-http endpoint off this
|
|
29
|
+
machine, a --files file carrying a credential (refused, not redacted:
|
|
30
|
+
nothing is sent), the model answering BLOCKED, an unparseable reply, a
|
|
31
|
+
TRUNCATED reply (finish_reason=length), a Python draft that does not parse
|
|
32
|
+
(a `.py` file, or any file whose shebang names Python), or drafts
|
|
33
|
+
identical to what is already there.
|
|
34
|
+
A half-written file that happens to parse is the failure this guards
|
|
35
|
+
against: it looks like an answer and is not one. A draft in a language no
|
|
36
|
+
checker here parses (`.tsx`, `.js`) is NOT parsed: it still exits 0 and the
|
|
37
|
+
footer names it, so the router knows which of its files nothing examined.
|
|
38
|
+
1 the caller misused the tool (bad arguments)
|
|
39
|
+
130 the request was interrupted (Ctrl-C): stop, do not fall back
|
|
40
|
+
"""
|
|
41
|
+
import ast
|
|
42
|
+
import concurrent.futures
|
|
43
|
+
import os
|
|
44
|
+
import re
|
|
45
|
+
import subprocess
|
|
46
|
+
import sys
|
|
47
|
+
import tempfile
|
|
48
|
+
import urllib.request
|
|
49
|
+
import json
|
|
50
|
+
|
|
51
|
+
HOOKS = os.path.join(
|
|
52
|
+
os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "hooks")
|
|
53
|
+
sys.path.insert(0, HOOKS)
|
|
54
|
+
import tezgah_integrity as ti # noqa: E402
|
|
55
|
+
import tezgah_paths as tp # noqa: E402
|
|
56
|
+
|
|
57
|
+
# The redirect guard: a hop that leaves the endpoint's host is refused, since
|
|
58
|
+
# urllib would carry the bearer to whatever host the answer named.
|
|
59
|
+
OPENER = tp.guarded_opener()
|
|
60
|
+
# A credential in a file codegen would send: a vendor key by its own prefix (the
|
|
61
|
+
# ledger redactor's value shapes) or a private-key block. Value shapes only - the
|
|
62
|
+
# redactor's `name=value` patterns would refuse every source file that reads a
|
|
63
|
+
# key from the environment (142 of this repo's 720 tracked files; these shapes
|
|
64
|
+
# match only 4 test fixtures, all fake keys).
|
|
65
|
+
CREDENTIAL = (ti.SECRET_TOKEN, re.compile(r"-----BEGIN [A-Z ]*PRIVATE KEY-----"))
|
|
66
|
+
|
|
67
|
+
# The cheap id this script names when the models table cannot be read: one
|
|
68
|
+
# unreadable table must not cost a draft. The table is asked first
|
|
69
|
+
# (`cheap_default` below).
|
|
70
|
+
FALLBACK_MODEL = "deepseek/deepseek-v4.1-flash"
|
|
71
|
+
|
|
72
|
+
# provider -> (chat-completions URL, key env var, key file, default model)
|
|
73
|
+
PROVIDERS = {
|
|
74
|
+
"openrouter": (
|
|
75
|
+
"https://openrouter.ai/api/v1/chat/completions",
|
|
76
|
+
"OPENROUTER_API_KEY",
|
|
77
|
+
"~/.config/openrouter/key",
|
|
78
|
+
FALLBACK_MODEL,
|
|
79
|
+
),
|
|
80
|
+
"deepseek": (
|
|
81
|
+
"https://api.deepseek.com/v1/chat/completions",
|
|
82
|
+
"DEEPSEEK_API_KEY",
|
|
83
|
+
"~/.config/deepseek/key",
|
|
84
|
+
"deepseek-chat",
|
|
85
|
+
),
|
|
86
|
+
# Inception Labs' Mercury route is OpenAI-compatible except for one field:
|
|
87
|
+
# it takes `max_completion_tokens`, not `max_tokens` (see the `ask` payload
|
|
88
|
+
# below), and the model id carries no vendor prefix.
|
|
89
|
+
"inception": (
|
|
90
|
+
"https://api.inceptionlabs.ai/v1/chat/completions",
|
|
91
|
+
"INCEPTION_API_KEY",
|
|
92
|
+
"~/.config/inception/key",
|
|
93
|
+
"mercury-2.5",
|
|
94
|
+
),
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def cheap_default():
|
|
99
|
+
"""The cheap row the models table names on `any`, else `FALLBACK_MODEL`.
|
|
100
|
+
|
|
101
|
+
One source for the cheap tier: a refresh that moves the row moves this
|
|
102
|
+
default (`hooks/tezgah_models.py`). One unreadable table must not cost a
|
|
103
|
+
draft, so the read is guarded and the literal is the fallback."""
|
|
104
|
+
try:
|
|
105
|
+
import tezgah_models
|
|
106
|
+
row = tezgah_models.cheap_model("any")
|
|
107
|
+
except Exception:
|
|
108
|
+
row = None
|
|
109
|
+
return row[0] if row else FALLBACK_MODEL
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
# CODEGEN_MODEL still overrides the OpenRouter default (historical behaviour).
|
|
113
|
+
MODEL = os.environ.get("CODEGEN_MODEL", "").strip() or cheap_default()
|
|
114
|
+
|
|
115
|
+
SYSTEM = """You are writing code inside an existing repository. Rules:
|
|
116
|
+
|
|
117
|
+
1. Output ONLY complete file bodies, each in this exact form:
|
|
118
|
+
|
|
119
|
+
=== FILE: <path exactly as given to you> ===
|
|
120
|
+
```
|
|
121
|
+
<the entire new contents of that file>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
2. No prose, no explanation, no partial files, no "... rest unchanged".
|
|
125
|
+
A file you do not change must not appear in your output at all.
|
|
126
|
+
3. Match the surrounding code: its comment density, naming, and idiom. This
|
|
127
|
+
codebase writes WHY in comments, not WHAT, and marks load-bearing
|
|
128
|
+
invariants explicitly.
|
|
129
|
+
4. Laziest solution that actually works: reuse what exists, prefer the standard
|
|
130
|
+
library, add no abstraction that is not needed today. Never simplify away
|
|
131
|
+
input validation, error handling or security.
|
|
132
|
+
5. If the task cannot be done correctly with what you were given, say so in one
|
|
133
|
+
line starting with BLOCKED: and output no files."""
|
|
134
|
+
|
|
135
|
+
# the closing fence must end the block: a nested ``` inside a draft (markdown,
|
|
136
|
+
# docs, anything with a code sample) used to truncate the file silently
|
|
137
|
+
BLOCK = re.compile(r"=== FILE: (?P<path>[^=]+?) ===\s*```[a-zA-Z]*\n"
|
|
138
|
+
r"(?P<body>.*?)\n```[ \t]*(?=\s*(?:=== FILE:|\Z))", re.S)
|
|
139
|
+
# A file whose first line says it is Python is one, whatever it is called - the
|
|
140
|
+
# repo's own bin/* scripts have no `.py` and are the drafts this tool is handed.
|
|
141
|
+
PY_SHEBANG = re.compile(r"^#![^\n]*\bpython[0-9.]*\b")
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def key(provider):
|
|
145
|
+
_url, env, path, _model = PROVIDERS[provider]
|
|
146
|
+
k = os.environ.get(env, "").strip()
|
|
147
|
+
if not k:
|
|
148
|
+
try:
|
|
149
|
+
k = open(os.path.expanduser(path), encoding="utf-8").read().strip()
|
|
150
|
+
except OSError:
|
|
151
|
+
pass
|
|
152
|
+
if not k:
|
|
153
|
+
raise Insufficient("no API key for %s (%s or %s)" % (provider, env, path))
|
|
154
|
+
return k
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
class Insufficient(Exception):
|
|
158
|
+
"""codegen cannot deliver; the caller must fall back to the main model."""
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
def fetch(req, timeout):
|
|
162
|
+
with OPENER.open(req, timeout=timeout) as r:
|
|
163
|
+
return json.load(r)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def ask(task, files, model, provider, timeout, max_tokens):
|
|
167
|
+
url = os.environ.get("CODEGEN_URL", "").strip() or PROVIDERS[provider][0]
|
|
168
|
+
if tp.plain_http(url):
|
|
169
|
+
raise Insufficient("CODEGEN_URL %s is plain http off this machine: the key "
|
|
170
|
+
"and the files would cross the network in clear" % url)
|
|
171
|
+
parts = [f"TASK:\n{task}\n"]
|
|
172
|
+
for path in files:
|
|
173
|
+
try:
|
|
174
|
+
body = open(path, encoding="utf-8").read()
|
|
175
|
+
except OSError as e:
|
|
176
|
+
sys.exit(f"codegen: cannot read {path}: {e}")
|
|
177
|
+
# Refused, not redacted: the draft comes back as the whole file, so a
|
|
178
|
+
# masked value would be diffed as a change to the credential itself.
|
|
179
|
+
if any(p.search(body) for p in CREDENTIAL):
|
|
180
|
+
raise Insufficient(f"{path} carries a credential; nothing was sent")
|
|
181
|
+
parts.append(f"=== FILE: {path} ===\n```\n{body}```\n")
|
|
182
|
+
payload = {
|
|
183
|
+
"model": model,
|
|
184
|
+
"messages": [{"role": "system", "content": SYSTEM},
|
|
185
|
+
{"role": "user", "content": "\n".join(parts)}],
|
|
186
|
+
"temperature": 0,
|
|
187
|
+
}
|
|
188
|
+
if max_tokens:
|
|
189
|
+
# Inception names this field `max_completion_tokens` (its compat table in
|
|
190
|
+
# ~/.omp/agent/models.yml records the same), so the name follows the
|
|
191
|
+
# provider rather than the OpenAI default.
|
|
192
|
+
field = "max_completion_tokens" if provider == "inception" else "max_tokens"
|
|
193
|
+
payload[field] = max_tokens
|
|
194
|
+
req = urllib.request.Request(
|
|
195
|
+
url,
|
|
196
|
+
data=json.dumps(payload).encode(),
|
|
197
|
+
headers={"Authorization": f"Bearer {key(provider)}", "Content-Type": "application/json",
|
|
198
|
+
"X-Title": "codegen"})
|
|
199
|
+
# --timeout is the cap on the WHOLE request, not on one socket operation:
|
|
200
|
+
# urllib's own timeout restarts on every recv, so a body that trickles (or a
|
|
201
|
+
# connection kept alive with nothing on it) outlives it indefinitely - seen
|
|
202
|
+
# as a 3-minute hang under --timeout 90. consult caps its calls the same way.
|
|
203
|
+
pool = concurrent.futures.ThreadPoolExecutor(1)
|
|
204
|
+
try:
|
|
205
|
+
out = pool.submit(fetch, req, timeout).result(timeout=timeout)
|
|
206
|
+
except concurrent.futures.TimeoutError:
|
|
207
|
+
raise Insufficient("the request outlived --timeout=%ds" % timeout)
|
|
208
|
+
except Exception as exc: # noqa: BLE001 - any failure is a fallback
|
|
209
|
+
raise Insufficient(f"the request failed: {exc}") from exc
|
|
210
|
+
finally:
|
|
211
|
+
pool.shutdown(wait=False)
|
|
212
|
+
choice = (out.get("choices") or [{}])[0]
|
|
213
|
+
msg = choice.get("message") or {}
|
|
214
|
+
if choice.get("finish_reason") == "length":
|
|
215
|
+
# The last file body is cut off mid-line. It may still parse, which is
|
|
216
|
+
# exactly why this is checked here and not left to the diff.
|
|
217
|
+
raise Insufficient("the reply was truncated (finish_reason=length)")
|
|
218
|
+
return (msg.get("content") or "").strip(), out.get("usage") or {}
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def main():
|
|
222
|
+
args = sys.argv[1:]
|
|
223
|
+
if not args or args[0] in ("-h", "--help"):
|
|
224
|
+
sys.exit(__doc__.strip())
|
|
225
|
+
task, files, model, provider, timeout, out_dir, max_tokens = \
|
|
226
|
+
args[0], [], None, "openrouter", 300, None, 0
|
|
227
|
+
i = 1
|
|
228
|
+
while i < len(args):
|
|
229
|
+
if args[i] == "--files":
|
|
230
|
+
i += 1
|
|
231
|
+
while i < len(args) and not args[i].startswith("--"):
|
|
232
|
+
files.append(args[i]); i += 1
|
|
233
|
+
continue
|
|
234
|
+
if args[i] == "--provider" and i + 1 < len(args):
|
|
235
|
+
provider = args[i + 1]; i += 2; continue
|
|
236
|
+
if args[i] == "--model" and i + 1 < len(args):
|
|
237
|
+
model = args[i + 1]; i += 2; continue
|
|
238
|
+
if args[i] == "--timeout" and i + 1 < len(args):
|
|
239
|
+
timeout = int(args[i + 1]); i += 2; continue
|
|
240
|
+
if args[i] == "--out-dir" and i + 1 < len(args):
|
|
241
|
+
out_dir = args[i + 1]; i += 2; continue
|
|
242
|
+
if args[i] == "--max-tokens" and i + 1 < len(args):
|
|
243
|
+
max_tokens = int(args[i + 1]); i += 2; continue
|
|
244
|
+
sys.exit(f"codegen: unknown argument {args[i]}")
|
|
245
|
+
if provider not in PROVIDERS:
|
|
246
|
+
sys.exit("codegen: unknown provider %r (use %s)"
|
|
247
|
+
% (provider, " or ".join(sorted(PROVIDERS))))
|
|
248
|
+
if not files:
|
|
249
|
+
sys.exit("codegen: --files is required; the model may only touch files you name")
|
|
250
|
+
if model is None:
|
|
251
|
+
model = MODEL if provider == "openrouter" else PROVIDERS[provider][3]
|
|
252
|
+
|
|
253
|
+
answer, usage = ask(task, files, model, provider, timeout, max_tokens)
|
|
254
|
+
if answer.startswith("BLOCKED:"):
|
|
255
|
+
raise Insufficient(answer)
|
|
256
|
+
if not BLOCK.search(answer):
|
|
257
|
+
raise Insufficient("no file block in the reply: " + (answer[:200] or "empty"))
|
|
258
|
+
|
|
259
|
+
scratch = out_dir or tempfile.mkdtemp(prefix="codegen-")
|
|
260
|
+
os.makedirs(scratch, exist_ok=True)
|
|
261
|
+
written = []
|
|
262
|
+
for m in BLOCK.finditer(answer):
|
|
263
|
+
path = m.group("path").strip()
|
|
264
|
+
if path not in files:
|
|
265
|
+
# The model may only rewrite files the caller named. Anything else
|
|
266
|
+
# is dropped rather than diffed: a path it invented is a path
|
|
267
|
+
# nobody reviewed.
|
|
268
|
+
print(f"codegen: ignoring unrequested file {path}", file=sys.stderr)
|
|
269
|
+
continue
|
|
270
|
+
dest = os.path.join(scratch, path.replace("/", "__"))
|
|
271
|
+
with open(dest, "w", encoding="utf-8") as fh:
|
|
272
|
+
fh.write(m.group("body"))
|
|
273
|
+
written.append((path, dest))
|
|
274
|
+
|
|
275
|
+
if not written:
|
|
276
|
+
raise Insufficient("the model returned no file that was in --files")
|
|
277
|
+
|
|
278
|
+
# Each draft must parse and must differ. A draft that does not parse is a
|
|
279
|
+
# half-written file; one that is byte-identical is a model that did nothing.
|
|
280
|
+
# What this can vouch for is Python, by suffix or by shebang: the repo's own
|
|
281
|
+
# bin/* scripts carry no `.py`, and they are exactly what the router hands
|
|
282
|
+
# this tool. Nothing here parses TypeScript or JavaScript, so a draft in one
|
|
283
|
+
# of those is named as unparsed in the footer rather than passed in silence -
|
|
284
|
+
# exit 0 is the router's go-ahead, and a file nothing examined has to say so.
|
|
285
|
+
# ponytail: widening past Python means a real second parser (bun/node) and its
|
|
286
|
+
# version, not another entry on a suffix list.
|
|
287
|
+
changed, unparsed = [], []
|
|
288
|
+
for path, dest in written:
|
|
289
|
+
body, current = open(dest, encoding="utf-8").read(), open(path, encoding="utf-8").read()
|
|
290
|
+
vouchable = path.endswith(".py") or bool(PY_SHEBANG.match(body))
|
|
291
|
+
if vouchable:
|
|
292
|
+
try:
|
|
293
|
+
ast.parse(body, filename=dest)
|
|
294
|
+
except SyntaxError as exc:
|
|
295
|
+
raise Insufficient(f"{path}: the draft is not valid Python ({exc})") from exc
|
|
296
|
+
if body == current:
|
|
297
|
+
continue
|
|
298
|
+
changed.append((path, dest))
|
|
299
|
+
if not vouchable:
|
|
300
|
+
unparsed.append(path)
|
|
301
|
+
if not changed:
|
|
302
|
+
raise Insufficient("every draft is identical to the file it replaces")
|
|
303
|
+
|
|
304
|
+
for path in unparsed:
|
|
305
|
+
print(f"codegen: NOTE {path} was not parsed (no checker for this type)",
|
|
306
|
+
file=sys.stderr)
|
|
307
|
+
for path, dest in changed:
|
|
308
|
+
subprocess.run(["diff", "-u", path, dest], check=False)
|
|
309
|
+
written = changed
|
|
310
|
+
print(f"\ncodegen: {provider}/{model} | {len(written)} file(s) | "
|
|
311
|
+
f"in={usage.get('prompt_tokens')} out={usage.get('completion_tokens')} | "
|
|
312
|
+
f"drafts in {scratch}")
|
|
313
|
+
print("codegen: NOTHING was applied. Review the diff, then copy the drafts in.")
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
if __name__ == "__main__":
|
|
317
|
+
try:
|
|
318
|
+
main()
|
|
319
|
+
except KeyboardInterrupt:
|
|
320
|
+
# Ctrl-C while a stalled request is in flight: main() unwinds, but the
|
|
321
|
+
# request thread is non-daemon and interpreter shutdown joins it, so the
|
|
322
|
+
# process would hang until the response ends. Leave immediately instead.
|
|
323
|
+
print("codegen: interrupted", file=sys.stderr)
|
|
324
|
+
sys.stdout.flush()
|
|
325
|
+
sys.stderr.flush()
|
|
326
|
+
os._exit(130)
|
|
327
|
+
except Insufficient as exc:
|
|
328
|
+
# Exit 2 is the whole point: the caller falls back to the main model rather
|
|
329
|
+
# than applying something this script could not vouch for.
|
|
330
|
+
print(f"codegen: INSUFFICIENT -- {exc}\n"
|
|
331
|
+
f"codegen: fall back to the main model and write this one yourself.",
|
|
332
|
+
file=sys.stderr)
|
|
333
|
+
sys.stdout.flush()
|
|
334
|
+
sys.stderr.flush()
|
|
335
|
+
# A request thread that outlived --timeout is still alive, and sys.exit
|
|
336
|
+
# waits for it at interpreter shutdown; the message above is already out.
|
|
337
|
+
os._exit(2)
|