@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
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// tezgah status line for the DeepSeek Harness Web UI, host half.
|
|
2
|
+
//
|
|
3
|
+
// The browser half ships through exports["./client"]; this half only serves the
|
|
4
|
+
// data it renders. Two shapes:
|
|
5
|
+
// /api/tezgah.status -> the plain line (text/plain)
|
|
6
|
+
// /api/tezgah.status?format=json&sessionId -> {segments, legend} for the colored
|
|
7
|
+
// The status is whatever `tezgah-status` prints for the session's workspace - the
|
|
8
|
+
// same source every other host renders - behind the Web UI's own authenticated
|
|
9
|
+
// /api fence, so the client fetches it same-origin with no extra token handling.
|
|
10
|
+
import { execFile } from "node:child_process";
|
|
11
|
+
import { existsSync } from "node:fs";
|
|
12
|
+
import os from "node:os";
|
|
13
|
+
import path from "node:path";
|
|
14
|
+
|
|
15
|
+
const STATUS_PATH = "/api/tezgah.status";
|
|
16
|
+
// dsh's hook is the shared projects-posttooluse.py, so it records the same
|
|
17
|
+
// tool-use kinds as every other host - consult/research/graph/orch and judge -
|
|
18
|
+
// and may not claim the two skill-read marks, which only the prompt hook can set.
|
|
19
|
+
const OBSERVABLE = "--observable=consult,research,graph,orch,judge";
|
|
20
|
+
// A session id as hosts write them: no leading dash, no shell or path syntax.
|
|
21
|
+
const SESSION_ID = /^[A-Za-z0-9_][A-Za-z0-9_.:-]{0,127}$/;
|
|
22
|
+
|
|
23
|
+
function statusBin() {
|
|
24
|
+
if (process.env.TEZGAH_STATUS_BIN) return process.env.TEZGAH_STATUS_BIN;
|
|
25
|
+
return path.join(os.homedir(), ".config", "tezgah", "bin", "tezgah-status");
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** The interpreter tezgah-status runs under: the tezgah override first - the
|
|
29
|
+
* name hooks/tezgah_paths.python_cmd() and every host manifest resolve through -
|
|
30
|
+
* then the names the platforms ship, because a status line whose binary cannot
|
|
31
|
+
* start is a line that never appears. Memoised: the probe reads PATH, and this
|
|
32
|
+
* runs on the first status request. */
|
|
33
|
+
let pythonMemo;
|
|
34
|
+
function pythonBin() {
|
|
35
|
+
if (pythonMemo) return pythonMemo;
|
|
36
|
+
// The order is the order they answer in: `py` is the Windows launcher, and
|
|
37
|
+
// TEZGAH_PYTHON overrides the list entirely.
|
|
38
|
+
const names = ["python3", "python", "py"];
|
|
39
|
+
if (process.env.TEZGAH_PYTHON) return (pythonMemo = process.env.TEZGAH_PYTHON);
|
|
40
|
+
// A bare name is resolved by the OS at spawn time only through its own rules,
|
|
41
|
+
// and node does not read a shell's hash, so the lookup is done here: PATH with
|
|
42
|
+
// the platform's separator, and `.exe` beside each name on Windows.
|
|
43
|
+
const dirs = String(process.env.PATH || "").split(path.delimiter);
|
|
44
|
+
const win = process.platform === "win32";
|
|
45
|
+
const found = names.find((name) => dirs.some((dir) => {
|
|
46
|
+
try {
|
|
47
|
+
return existsSync(path.join(dir, name))
|
|
48
|
+
|| (win && existsSync(path.join(dir, name + ".exe")));
|
|
49
|
+
} catch { return false; }
|
|
50
|
+
}));
|
|
51
|
+
return (pythonMemo = found || names[0]);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Run tezgah-status; resolve "" on any failure so the UI just hides the line. */
|
|
55
|
+
function statusText(args) {
|
|
56
|
+
return new Promise((resolve) => {
|
|
57
|
+
execFile(pythonBin(), [statusBin(), ...args],
|
|
58
|
+
{ timeout: 5000 }, (error, stdout) => resolve(error ? "" : String(stdout).trim()));
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Services required before the route can be registered. */
|
|
63
|
+
export const inject = ["connection", "sessions"];
|
|
64
|
+
|
|
65
|
+
/** Register the authenticated status route. */
|
|
66
|
+
export function apply(ctx) {
|
|
67
|
+
ctx.connection.fetch.register({
|
|
68
|
+
path: STATUS_PATH,
|
|
69
|
+
methods: ["GET"],
|
|
70
|
+
requestBody: "buffered",
|
|
71
|
+
fetch: async (request) => {
|
|
72
|
+
const url = new URL(request.url);
|
|
73
|
+
const asked = url.searchParams.get("sessionId") ?? undefined;
|
|
74
|
+
const session = asked === undefined ? undefined : ctx.sessions.get(asked);
|
|
75
|
+
// The id reaches the tezgah-status argv, so only one this dsh knows and
|
|
76
|
+
// in the charset an id is written in is passed, and only after `--`:
|
|
77
|
+
// `sessionId=--failure-shapes` used to run the machine-wide report
|
|
78
|
+
// (audit L-7, SEC-07).
|
|
79
|
+
const sessionId = session && SESSION_ID.test(asked) ? asked : undefined;
|
|
80
|
+
const dir = session?.header?.cwd ?? process.cwd();
|
|
81
|
+
const where = sessionId === undefined ? ["--", dir] : ["--", dir, sessionId];
|
|
82
|
+
if (url.searchParams.get("format") === "json") {
|
|
83
|
+
const [raw, legend] = await Promise.all([
|
|
84
|
+
statusText([OBSERVABLE, "--json", ...where]),
|
|
85
|
+
statusText(["--legend"]),
|
|
86
|
+
]);
|
|
87
|
+
let segments = [];
|
|
88
|
+
try { segments = JSON.parse(raw || "[]"); } catch { segments = []; }
|
|
89
|
+
return new Response(JSON.stringify({ segments, legend }), {
|
|
90
|
+
headers: {
|
|
91
|
+
"content-type": "application/json; charset=utf-8",
|
|
92
|
+
"cache-control": "no-store",
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return new Response(await statusText([OBSERVABLE, ...where]), {
|
|
97
|
+
headers: {
|
|
98
|
+
"content-type": "text/plain; charset=utf-8",
|
|
99
|
+
"cache-control": "no-store",
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tezgah-dsh-statusline",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "tezgah status line for the DeepSeek Harness Web UI",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "lib/index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"default": "./lib/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./client": {
|
|
13
|
+
"default": "./lib/client.js"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
17
|
+
"dsh": {
|
|
18
|
+
"client": {
|
|
19
|
+
"inject": [],
|
|
20
|
+
"platform": "web"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"lib/index.js",
|
|
25
|
+
"lib/client.js"
|
|
26
|
+
],
|
|
27
|
+
"license": "MIT"
|
|
28
|
+
}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""omp (oh-my-pi) lifecycle hook: the python half of the omp extension.
|
|
3
|
+
|
|
4
|
+
omp's extension API is TypeScript, so `hosts/omp/tezgah-hook.ts` forwards each
|
|
5
|
+
event here as one JSON payload on stdin and puts the answer back into the host.
|
|
6
|
+
The envelope is omp's own - its event fields are not Claude's - but the contract,
|
|
7
|
+
the gate and the evidence ledger underneath are the shared core in `hooks/`,
|
|
8
|
+
the same code every other host runs.
|
|
9
|
+
|
|
10
|
+
{"event": "session_start", "cwd": ..., "session_id": ..., "subagent": bool,
|
|
11
|
+
"parent": <the main session's id>, "agent": <the child's AgentId>}
|
|
12
|
+
-> {"context": <this repo's live state, or the subagent brief>,
|
|
13
|
+
"status": "pony✓ ...", "idx": glyph}
|
|
14
|
+
{"event": "status", "cwd": ..., "session_id": ...}
|
|
15
|
+
-> {"status": "pony✓ ...", "idx": glyph} (ANSI-colored; see status_line)
|
|
16
|
+
{"event": "post_compact", "cwd": ..., "session_id": ...,
|
|
17
|
+
"compact_summary": ...}
|
|
18
|
+
-> {"context": <this repo's live state after a compaction>}
|
|
19
|
+
{"event": "user_prompt", "cwd": ..., "prompt": ...}
|
|
20
|
+
-> {"context": <reminder + the rules this prompt arms>}
|
|
21
|
+
{"event": "pre_tool_use", "cwd": ..., "tool": ..., "input": {...}}
|
|
22
|
+
-> {"deny": reason}
|
|
23
|
+
{"event": "post_tool_use", "cwd": ..., "tool": ..., "input": {...},
|
|
24
|
+
"failed": bool, "idx": glyph}
|
|
25
|
+
-> {"status": "pony✓ ...", "idx": glyph, "label": one line}
|
|
26
|
+
(records the evidence the Stop rule reads; `idx` echoed from the
|
|
27
|
+
payload skips the git probe; `label` is the untrusted-content notice
|
|
28
|
+
for a result that came from outside the user and the workspace, or
|
|
29
|
+
the taint notice on the first effect after such a result in a turn,
|
|
30
|
+
and is absent for every ordinary result)
|
|
31
|
+
{"event": "stop", "last_assistant_message": ..., "stop_hook_active": bool}
|
|
32
|
+
-> {"decision": "block", "reason": reason}
|
|
33
|
+
(with `stop_hook_active` the reply is recorded as an `after_block`
|
|
34
|
+
row and never blocked a second time)
|
|
35
|
+
|
|
36
|
+
Every answer that carries the line carries `idx` with it - the glyph of the
|
|
37
|
+
line's idx mark - so the caller can hand it back on the redraws that must not
|
|
38
|
+
pay for a git probe (see status_line).
|
|
39
|
+
|
|
40
|
+
The status line is the one signal that is not root-scoped - tezgah ships as a
|
|
41
|
+
globally loaded rules file, so the indicator must not go silent off-root - and
|
|
42
|
+
`status` therefore answers anywhere. Every other event is inert outside a
|
|
43
|
+
configured root.
|
|
44
|
+
|
|
45
|
+
The line carries ANSI foreground per mark, because the extension draws it
|
|
46
|
+
through omp's widget path, which renders the string as it is. `setStatus`, the
|
|
47
|
+
fallback, strips the escapes and shows the same marks uncolored.
|
|
48
|
+
"""
|
|
49
|
+
import json
|
|
50
|
+
import os
|
|
51
|
+
import sys
|
|
52
|
+
|
|
53
|
+
ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
|
|
54
|
+
sys.path.insert(0, os.path.join(ROOT, "hooks"))
|
|
55
|
+
from tezgah_guard import attest_session, import_failed, safe # noqa: E402
|
|
56
|
+
try:
|
|
57
|
+
from tezgah_context import ( # noqa: E402
|
|
58
|
+
color_default, command_text, context_for, health_segments, record,
|
|
59
|
+
render_tiers, shell_kind, skill_read_kind)
|
|
60
|
+
from tezgah_gate import decision # noqa: E402
|
|
61
|
+
from tezgah_integrity import ( # noqa: E402
|
|
62
|
+
SUBAGENT_CHANNEL, bind_session, note, note_tool, stop_reason, untrusted_label,
|
|
63
|
+
untrusted_source)
|
|
64
|
+
from tezgah_paths import off, root_for # noqa: E402
|
|
65
|
+
from tezgah_untrusted import marks # noqa: E402
|
|
66
|
+
except Exception as exc:
|
|
67
|
+
import_failed(exc)
|
|
68
|
+
|
|
69
|
+
# How many times one stop chain may be refused (hooks/projects-stop.py names the
|
|
70
|
+
# same constant): one, deliberately; raising it is owner decision 11. omp has no
|
|
71
|
+
# subagent-end event: `session_stop` does not fire for task sessions.
|
|
72
|
+
STOP_REASKS = 1
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def classify(tool, inp):
|
|
76
|
+
"""The used-tool kind for one omp tool call, or None.
|
|
77
|
+
|
|
78
|
+
omp names MCP tools `mcp__<server>_<tool>` (it also accepts Claude Code's
|
|
79
|
+
doubled separator), so the server is matched by substring rather than by an
|
|
80
|
+
exact prefix. Same kinds as the other hosts: graph, orch, consult, research.
|
|
81
|
+
The kind is claimed only when the command really ran the tool - a mention in
|
|
82
|
+
an argument used to be enough, which made the line report a consult that
|
|
83
|
+
never happened.
|
|
84
|
+
"""
|
|
85
|
+
name = str(tool or "")
|
|
86
|
+
if name.startswith("mcp__") and "codegraph" in name:
|
|
87
|
+
return "graph"
|
|
88
|
+
read_kind = skill_read_kind(name, inp)
|
|
89
|
+
if read_kind:
|
|
90
|
+
return read_kind
|
|
91
|
+
low = name.lower()
|
|
92
|
+
if low in ("task", "agent", "spawn_agent"):
|
|
93
|
+
return "orch"
|
|
94
|
+
if low in ("bash", "shell", "command"):
|
|
95
|
+
kind = shell_kind(command_text(inp))
|
|
96
|
+
if kind:
|
|
97
|
+
return kind
|
|
98
|
+
return None
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
IDX_GLYPHS = ("\u2713", "\u21bb", "\u2717", "?", "\u2013")
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def status_line(cwd, session_id, idx=None):
|
|
105
|
+
"""The checklist as omp should draw it, plus the idx glyph it carries.
|
|
106
|
+
|
|
107
|
+
The line is colored per mark, plain when the environment opts out (NO_COLOR
|
|
108
|
+
/ TEZGAH_STATUS_COLOR=0). `idx` is the glyph the session already shows: the
|
|
109
|
+
stamp probe behind it is the line's only subprocess, so the redraw that
|
|
110
|
+
follows every watched tool sends it back and forks nothing, while the used
|
|
111
|
+
marks, the plans and the kill-switch state stay live. Anything that is not a
|
|
112
|
+
mark is ignored rather than drawn as one that states nothing.
|
|
113
|
+
|
|
114
|
+
Returns the width tiers too (render_tiers): the widget knows its width only
|
|
115
|
+
when it draws, so it picks the widest line that fits there."""
|
|
116
|
+
segs = health_segments(cwd, session_id,
|
|
117
|
+
idx_override=idx if idx in IDX_GLYPHS else None)
|
|
118
|
+
glyph = next((s["glyph"] for s in segs if s["key"] == "idx"), None)
|
|
119
|
+
color = color_default()
|
|
120
|
+
tiers = render_tiers(segs, color=color)
|
|
121
|
+
return tiers[0][0], glyph, tiers
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def answered(line, glyph, tiers=None):
|
|
125
|
+
"""The status fields one answer carries: the line, the glyph the next
|
|
126
|
+
cheap redraw should reuse, and the tiers ([line, cells] widest first)."""
|
|
127
|
+
out = {"status": line} if line else {}
|
|
128
|
+
if glyph:
|
|
129
|
+
out["idx"] = glyph
|
|
130
|
+
if tiers:
|
|
131
|
+
out["tiers"] = [[text, width] for text, width in tiers]
|
|
132
|
+
return out
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def handle(payload):
|
|
136
|
+
event = payload.get("event") or ""
|
|
137
|
+
cwd = payload.get("cwd") or os.getcwd()
|
|
138
|
+
session_id = payload.get("session_id")
|
|
139
|
+
safe(session_id, bind_session, session_id) # the switch latch (tezgah_paths.off)
|
|
140
|
+
if event == "status":
|
|
141
|
+
# turn end and the session switch: the probe runs, so the idx mark is
|
|
142
|
+
# answered at every turn boundary
|
|
143
|
+
return answered(*status_line(cwd, session_id))
|
|
144
|
+
if event == "pre_tool_use":
|
|
145
|
+
reason = decision(payload.get("tool", ""), payload.get("input") or {},
|
|
146
|
+
cwd, session_id)
|
|
147
|
+
return {"deny": reason} if reason else {}
|
|
148
|
+
if not root_for(cwd):
|
|
149
|
+
return {}
|
|
150
|
+
if event == "session_start":
|
|
151
|
+
# omp's always-on RULES.md already carries the core contract, so the
|
|
152
|
+
# session payload is the part a static file cannot know: this repo's
|
|
153
|
+
# index, its open plans, its lessons and the live kill switches. A task
|
|
154
|
+
# subagent (`subagent`, detected by the bridge) gets the subagent brief
|
|
155
|
+
# instead: no indexer, no agent regeneration, no plan-status line, and
|
|
156
|
+
# the line that tells it it is a subagent. `host` points the specialist
|
|
157
|
+
# line at omp's user agent dir.
|
|
158
|
+
out = {}
|
|
159
|
+
kind = "subagent_start" if payload.get("subagent") else "session_start"
|
|
160
|
+
if not payload.get("subagent"):
|
|
161
|
+
safe(session_id, attest_session, "omp", session_id, cwd)
|
|
162
|
+
if payload.get("subagent") and payload.get("parent"):
|
|
163
|
+
# the child's ledger opens with its parent: the worker's checks land
|
|
164
|
+
# here while the route that sent it is in the parent's ledger, and
|
|
165
|
+
# `tezgah-route --report` joins the two through this row
|
|
166
|
+
note(session_id, "spawned", "", parent=str(payload["parent"]),
|
|
167
|
+
agent=payload.get("agent"))
|
|
168
|
+
context = context_for(kind, cwd, dict(payload, host="omp"),
|
|
169
|
+
with_core=False)
|
|
170
|
+
if context:
|
|
171
|
+
out["context"] = context
|
|
172
|
+
out.update(answered(*status_line(cwd, session_id)))
|
|
173
|
+
return out
|
|
174
|
+
if event == "post_compact":
|
|
175
|
+
# the bridge's session_compact (audit L-3): the live state re-sent after
|
|
176
|
+
# a compaction, without the core RULES.md already holds; context_for
|
|
177
|
+
# records the compaction from `compact_summary` before it builds this.
|
|
178
|
+
context = context_for("post_compact", cwd, dict(payload, host="omp"),
|
|
179
|
+
with_core=False)
|
|
180
|
+
return {"context": context} if context else {}
|
|
181
|
+
if event == "user_prompt":
|
|
182
|
+
context = context_for("user_prompt", cwd, payload)
|
|
183
|
+
return {"context": context} if context else {}
|
|
184
|
+
if event == "post_tool_use":
|
|
185
|
+
tool = payload.get("tool", "")
|
|
186
|
+
inp = payload.get("input") if isinstance(payload.get("input"), dict) else {}
|
|
187
|
+
failed = payload.get("failed")
|
|
188
|
+
# Read before this call's row lands, as hooks/projects-posttooluse.py
|
|
189
|
+
# does: `source` is the row's taint mark and `marks` answers about the
|
|
190
|
+
# turn the call arrived in. The bridge never sends the result's body, and
|
|
191
|
+
# `marks` reads a None result as a subagent call that read nothing, so a
|
|
192
|
+
# non-None stand-in keeps the call-decided subagent label omp always
|
|
193
|
+
# had. ponytail: a background `task` launch is labelled like a report,
|
|
194
|
+
# because the bridge sends nothing that tells the two apart. A failed
|
|
195
|
+
# call made no effect, so it keeps its own channel and earns no notice.
|
|
196
|
+
own = untrusted_source(tool, inp)
|
|
197
|
+
if failed is True:
|
|
198
|
+
source, label = own, untrusted_label(own)
|
|
199
|
+
else:
|
|
200
|
+
source, label = safe(session_id, marks, tool, inp, session_id,
|
|
201
|
+
"") or (None, None)
|
|
202
|
+
record(session_id, classify(tool, inp))
|
|
203
|
+
# failed is tri-state on purpose: None means omp reported no outcome,
|
|
204
|
+
# and the ledger then records a check that ran, never one that passed.
|
|
205
|
+
# `source` is the untrusted channel the result came through, or the one
|
|
206
|
+
# an effect inherits from its turn, and is left out of the row for every
|
|
207
|
+
# other call.
|
|
208
|
+
# `result_len` is the size the bridge measured, never the body, and only
|
|
209
|
+
# an integer counts: a value of any other shape is left unstated so the
|
|
210
|
+
# row cannot claim a size nobody measured.
|
|
211
|
+
size = payload.get("result_len")
|
|
212
|
+
if own == SUBAGENT_CHANNEL:
|
|
213
|
+
# The bridge measures a result by its top-level length, so a
|
|
214
|
+
# delegate's report - a part list - arrives as a part count (1 on
|
|
215
|
+
# 32174 ledger rows), never as a byte length, and the report's own
|
|
216
|
+
# text is not in the payload. The row states no size rather than
|
|
217
|
+
# claiming a 1-byte report; an absent field means unknown.
|
|
218
|
+
size = None
|
|
219
|
+
# `empty_run` is the bridge's own reading of the result's text (its
|
|
220
|
+
# EMPTY_RUN copy), sent as a flag because the body is never sent
|
|
221
|
+
note_tool(session_id, tool, inp,
|
|
222
|
+
failed=failed if isinstance(failed, bool) else None,
|
|
223
|
+
out_bytes=size if isinstance(size, int) and size >= 0 else None,
|
|
224
|
+
source=source, cwd=cwd,
|
|
225
|
+
empty_run=payload.get("empty_run") is True)
|
|
226
|
+
if str(tool).lower() == "task" and isinstance(inp.get("tasks"), list):
|
|
227
|
+
# omp names a child's ledger by its task name (`<parent>/<name>.jsonl`)
|
|
228
|
+
# and only this call knows which agent that name runs - `task` when
|
|
229
|
+
# none is given. `tezgah-route --report` joins a route to its worker
|
|
230
|
+
# through it; a task without a name cannot be joined, so it is skipped.
|
|
231
|
+
for t in inp["tasks"]:
|
|
232
|
+
if isinstance(t, dict) and t.get("name"):
|
|
233
|
+
note(session_id, "spawn", "", child=str(t["name"]),
|
|
234
|
+
agent=str(t.get("agent") or "task"))
|
|
235
|
+
# the call is already paid for, so the status line's used marks are
|
|
236
|
+
# refreshed from the same answer instead of a second subprocess, and
|
|
237
|
+
# from the idx glyph the session already carries instead of a git fork
|
|
238
|
+
out = answered(*status_line(cwd, session_id, payload.get("idx")))
|
|
239
|
+
# The result is the other thing this event carries. A label is not a
|
|
240
|
+
# deny: the bridge puts it in front of the content itself, so the model
|
|
241
|
+
# reads where the text came from - or, on an effect after such a read,
|
|
242
|
+
# the taint notice - while it reads the result.
|
|
243
|
+
if label:
|
|
244
|
+
out["label"] = label
|
|
245
|
+
return out
|
|
246
|
+
if event == "stop":
|
|
247
|
+
if off("verify-off"):
|
|
248
|
+
return {}
|
|
249
|
+
if (1 if payload.get("stop_hook_active") else 0) >= STOP_REASKS:
|
|
250
|
+
# the reply after a block: recorded, never refused a second time,
|
|
251
|
+
# under its own guard so a record that fails still answers empty
|
|
252
|
+
safe(session_id, stop_reason, payload.get("last_assistant_message"),
|
|
253
|
+
session_id, cwd=cwd, record_only=True)
|
|
254
|
+
return {}
|
|
255
|
+
reason = stop_reason(payload.get("last_assistant_message"), session_id,
|
|
256
|
+
cwd=cwd)
|
|
257
|
+
return {"decision": "block", "reason": reason} if reason else {}
|
|
258
|
+
return {}
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
def main():
|
|
262
|
+
try:
|
|
263
|
+
payload = json.load(sys.stdin)
|
|
264
|
+
except Exception:
|
|
265
|
+
return
|
|
266
|
+
if not isinstance(payload, dict):
|
|
267
|
+
return
|
|
268
|
+
# one guard around the whole dispatch: omp's bridge turns a crash here into a
|
|
269
|
+
# session-wide disable of the gate, the ledger and the status line, so this
|
|
270
|
+
# host must answer with the empty envelope it uses for "nothing to say"
|
|
271
|
+
# rather than let an exception out (hooks/tezgah_guard.safe)
|
|
272
|
+
out = safe(payload.get("session_id"), handle, payload) or {}
|
|
273
|
+
if out:
|
|
274
|
+
print(json.dumps(out))
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
main()
|