tribunal-kit 9.2.3 → 9.2.4

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.
Files changed (563) hide show
  1. package/.agent/.tribunal/session.jsonl +15 -0
  2. package/.agent/ARCHITECTURE.md +4 -4
  3. package/.agent/agents/agent-shield-auditor.md +18 -0
  4. package/.agent/agents/harness-manager.md +49 -0
  5. package/.agent/agents/human-gate-negotiator.md +22 -0
  6. package/.agent/agents/kernel-scheduler.md +56 -0
  7. package/.agent/agents/memory-archivist.md +37 -0
  8. package/.agent/agents/orchestrator.md +5 -0
  9. package/.agent/agents/project-planner.md +5 -0
  10. package/.agent/agents/security-auditor.md +5 -0
  11. package/.agent/rules/GEMINI.md +1 -1
  12. package/.agent/scripts/_utils.js +1 -1
  13. package/.agent/scripts/checklist.js +1 -1
  14. package/.agent/scripts/context_compiler.js +1 -1
  15. package/.agent/scripts/guardrail_engine.js +1 -1
  16. package/.agent/scripts/harness_manager.js +60 -0
  17. package/.agent/scripts/lint_runner.js +1 -1
  18. package/.agent/scripts/mcp_server.js +181 -0
  19. package/.agent/scripts/memory_archivist.js +97 -0
  20. package/.agent/scripts/memory_consolidator.js +37 -0
  21. package/.agent/scripts/memory_engine.js +61 -21
  22. package/.agent/scripts/pipeline_engine.js +17 -2
  23. package/.agent/scripts/session_logger.js +115 -0
  24. package/.agent/scripts/session_manager.js +10 -0
  25. package/.agent/scripts/swarm_dispatcher.js +74 -1
  26. package/.agent/scripts/syscall_registry.js +105 -0
  27. package/.agent/scripts/test_runner.js +1 -1
  28. package/.agent/scripts/verify_all.js +2 -2
  29. package/.agent/skill_topic_map.json +28 -1
  30. package/.agent/skills/agent-syscall-guidelines/SKILL.md +25 -0
  31. package/.agent/skills/agentic-workflows-2026/SKILL.md +8 -0
  32. package/.agent/skills/agentshield-security/SKILL.md +26 -0
  33. package/.agent/skills/context-engineering-pro/SKILL.md +7 -0
  34. package/.agent/skills/fabel-protocol/SKILL.md +5 -0
  35. package/.agent/skills/graph-engineering/SKILL.md +28 -0
  36. package/.agent/skills/harness-protocol/SKILL.md +8 -0
  37. package/.agent/skills/hf-cli/SKILL.md +239 -0
  38. package/.agent/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  39. package/.agent/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  40. package/.agent/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  41. package/.agent/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  42. package/.agent/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  43. package/.agent/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  44. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  45. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  46. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  47. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  48. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  49. package/.agent/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  50. package/.agent/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  51. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  52. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  53. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  54. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  55. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  56. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  57. package/.agent/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  58. package/.agent/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  59. package/.agent/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  60. package/.agent/skills/hf-mem/SKILL.md +79 -0
  61. package/.agent/skills/huggingface-best/SKILL.md +134 -0
  62. package/.agent/skills/huggingface-community-evals/SKILL.md +207 -0
  63. package/.agent/skills/huggingface-community-evals/examples/.env.example +3 -0
  64. package/.agent/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  65. package/.agent/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  66. package/.agent/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  67. package/.agent/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  68. package/.agent/skills/huggingface-datasets/SKILL.md +107 -0
  69. package/.agent/skills/huggingface-gradio/SKILL.md +298 -0
  70. package/.agent/skills/huggingface-gradio/examples.md +613 -0
  71. package/.agent/skills/huggingface-llm-trainer/SKILL.md +738 -0
  72. package/.agent/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  73. package/.agent/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  74. package/.agent/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  75. package/.agent/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  76. package/.agent/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  77. package/.agent/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  78. package/.agent/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  79. package/.agent/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  80. package/.agent/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  81. package/.agent/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  82. package/.agent/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  83. package/.agent/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  84. package/.agent/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  85. package/.agent/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  86. package/.agent/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  87. package/.agent/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  88. package/.agent/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  89. package/.agent/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  90. package/.agent/skills/huggingface-local-models/SKILL.md +113 -0
  91. package/.agent/skills/huggingface-local-models/references/hardware.md +38 -0
  92. package/.agent/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  93. package/.agent/skills/huggingface-local-models/references/quantization.md +256 -0
  94. package/.agent/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  95. package/.agent/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  96. package/.agent/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  97. package/.agent/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  98. package/.agent/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  99. package/.agent/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  100. package/.agent/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  101. package/.agent/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  102. package/.agent/skills/huggingface-paper-publisher/SKILL.md +624 -0
  103. package/.agent/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  104. package/.agent/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  105. package/.agent/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  106. package/.agent/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  107. package/.agent/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  108. package/.agent/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  109. package/.agent/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  110. package/.agent/skills/huggingface-papers/SKILL.md +239 -0
  111. package/.agent/skills/huggingface-spaces/README.md +9 -0
  112. package/.agent/skills/huggingface-spaces/SKILL.md +242 -0
  113. package/.agent/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  114. package/.agent/skills/huggingface-spaces/references/3d-generation.md +98 -0
  115. package/.agent/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  116. package/.agent/skills/huggingface-spaces/references/3d-models.md +227 -0
  117. package/.agent/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  118. package/.agent/skills/huggingface-spaces/references/buckets.md +89 -0
  119. package/.agent/skills/huggingface-spaces/references/debugging.md +236 -0
  120. package/.agent/skills/huggingface-spaces/references/gradio.md +200 -0
  121. package/.agent/skills/huggingface-spaces/references/grants.md +63 -0
  122. package/.agent/skills/huggingface-spaces/references/inference-providers.md +97 -0
  123. package/.agent/skills/huggingface-spaces/references/known-errors.md +232 -0
  124. package/.agent/skills/huggingface-spaces/references/requirements.md +169 -0
  125. package/.agent/skills/huggingface-spaces/references/zerogpu.md +349 -0
  126. package/.agent/skills/huggingface-tool-builder/SKILL.md +120 -0
  127. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  128. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  129. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  130. package/.agent/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  131. package/.agent/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  132. package/.agent/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  133. package/.agent/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  134. package/.agent/skills/huggingface-trackio/SKILL.md +142 -0
  135. package/.agent/skills/huggingface-trackio/references/alerts.md +196 -0
  136. package/.agent/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  137. package/.agent/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  138. package/.agent/skills/huggingface-vision-trainer/SKILL.md +593 -0
  139. package/.agent/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  140. package/.agent/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  141. package/.agent/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  142. package/.agent/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  143. package/.agent/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  144. package/.agent/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  145. package/.agent/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  146. package/.agent/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  147. package/.agent/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  148. package/.agent/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  149. package/.agent/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  150. package/.agent/skills/huggingface-zerogpu/SKILL.md +289 -0
  151. package/.agent/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  152. package/.agent/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  153. package/.agent/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  154. package/.agent/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  155. package/.agent/skills/human-gate-negotiation/SKILL.md +30 -0
  156. package/.agent/skills/intelligent-routing/SKILL.md +10 -4
  157. package/.agent/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  158. package/.agent/skills/session-log-interrogation/SKILL.md +29 -0
  159. package/.agent/skills/subagent-driven-development/SKILL.md +32 -0
  160. package/.agent/skills/systematic-debugging/SKILL.md +5 -0
  161. package/.agent/skills/train-sentence-transformers/SKILL.md +109 -0
  162. package/.agent/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  163. package/.agent/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  164. package/.agent/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  165. package/.agent/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  166. package/.agent/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  167. package/.agent/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  168. package/.agent/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  169. package/.agent/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  170. package/.agent/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  171. package/.agent/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  172. package/.agent/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  173. package/.agent/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  174. package/.agent/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  175. package/.agent/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  176. package/.agent/skills/train-sentence-transformers/references/training_args.md +270 -0
  177. package/.agent/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  178. package/.agent/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  179. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  180. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  181. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  182. package/.agent/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  183. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  184. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  185. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  186. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  187. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  188. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  189. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  190. package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  191. package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  192. package/.agent/skills/transformers-js/SKILL.md +692 -0
  193. package/.agent/skills/transformers-js/references/CACHE.md +339 -0
  194. package/.agent/skills/transformers-js/references/CONFIGURATION.md +438 -0
  195. package/.agent/skills/transformers-js/references/EXAMPLES.md +620 -0
  196. package/.agent/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  197. package/.agent/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  198. package/.agent/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  199. package/.agent/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  200. package/.agent/skills/tribunal-instincts-memory/SKILL.md +31 -0
  201. package/.agent/skills/trl-training/SKILL.md +318 -0
  202. package/.agent/workflows/assimilate.md +21 -0
  203. package/.agent/workflows/audit.md +5 -0
  204. package/.agent/workflows/generate.md +5 -0
  205. package/.agent/workflows/htop.md +22 -0
  206. package/.agent/workflows/marathon.md +5 -0
  207. package/.agent/workflows/resume.md +20 -0
  208. package/.agent/workflows/team-mode.md +22 -0
  209. package/.agents/skills/agent-syscall-guidelines/SKILL.md +25 -0
  210. package/.agents/skills/agentic-workflows-2026/SKILL.md +8 -0
  211. package/.agents/skills/agentshield-security/SKILL.md +26 -0
  212. package/.agents/skills/context-engineering-pro/SKILL.md +7 -0
  213. package/.agents/skills/fabel-protocol/SKILL.md +5 -0
  214. package/.agents/skills/graph-engineering/SKILL.md +28 -0
  215. package/.agents/skills/harness-protocol/SKILL.md +8 -0
  216. package/.agents/skills/hf-cli/SKILL.md +239 -0
  217. package/.agents/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  218. package/.agents/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  219. package/.agents/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  220. package/.agents/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  221. package/.agents/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  222. package/.agents/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  223. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  224. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  225. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  226. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  227. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  228. package/.agents/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  229. package/.agents/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  230. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  231. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  232. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  233. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  234. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  235. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  236. package/.agents/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  237. package/.agents/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  238. package/.agents/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  239. package/.agents/skills/hf-mem/SKILL.md +79 -0
  240. package/.agents/skills/huggingface-best/SKILL.md +134 -0
  241. package/.agents/skills/huggingface-community-evals/SKILL.md +207 -0
  242. package/.agents/skills/huggingface-community-evals/examples/.env.example +3 -0
  243. package/.agents/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  244. package/.agents/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  245. package/.agents/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  246. package/.agents/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  247. package/.agents/skills/huggingface-datasets/SKILL.md +107 -0
  248. package/.agents/skills/huggingface-gradio/SKILL.md +298 -0
  249. package/.agents/skills/huggingface-gradio/examples.md +613 -0
  250. package/.agents/skills/huggingface-llm-trainer/SKILL.md +738 -0
  251. package/.agents/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  252. package/.agents/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  253. package/.agents/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  254. package/.agents/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  255. package/.agents/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  256. package/.agents/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  257. package/.agents/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  258. package/.agents/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  259. package/.agents/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  260. package/.agents/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  261. package/.agents/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  262. package/.agents/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  263. package/.agents/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  264. package/.agents/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  265. package/.agents/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  266. package/.agents/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  267. package/.agents/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  268. package/.agents/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  269. package/.agents/skills/huggingface-local-models/SKILL.md +113 -0
  270. package/.agents/skills/huggingface-local-models/references/hardware.md +38 -0
  271. package/.agents/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  272. package/.agents/skills/huggingface-local-models/references/quantization.md +256 -0
  273. package/.agents/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  274. package/.agents/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  275. package/.agents/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  276. package/.agents/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  277. package/.agents/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  278. package/.agents/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  279. package/.agents/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  280. package/.agents/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  281. package/.agents/skills/huggingface-paper-publisher/SKILL.md +624 -0
  282. package/.agents/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  283. package/.agents/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  284. package/.agents/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  285. package/.agents/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  286. package/.agents/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  287. package/.agents/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  288. package/.agents/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  289. package/.agents/skills/huggingface-papers/SKILL.md +239 -0
  290. package/.agents/skills/huggingface-spaces/README.md +9 -0
  291. package/.agents/skills/huggingface-spaces/SKILL.md +242 -0
  292. package/.agents/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  293. package/.agents/skills/huggingface-spaces/references/3d-generation.md +98 -0
  294. package/.agents/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  295. package/.agents/skills/huggingface-spaces/references/3d-models.md +227 -0
  296. package/.agents/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  297. package/.agents/skills/huggingface-spaces/references/buckets.md +89 -0
  298. package/.agents/skills/huggingface-spaces/references/debugging.md +236 -0
  299. package/.agents/skills/huggingface-spaces/references/gradio.md +200 -0
  300. package/.agents/skills/huggingface-spaces/references/grants.md +63 -0
  301. package/.agents/skills/huggingface-spaces/references/inference-providers.md +97 -0
  302. package/.agents/skills/huggingface-spaces/references/known-errors.md +232 -0
  303. package/.agents/skills/huggingface-spaces/references/requirements.md +169 -0
  304. package/.agents/skills/huggingface-spaces/references/zerogpu.md +349 -0
  305. package/.agents/skills/huggingface-tool-builder/SKILL.md +120 -0
  306. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  307. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  308. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  309. package/.agents/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  310. package/.agents/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  311. package/.agents/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  312. package/.agents/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  313. package/.agents/skills/huggingface-trackio/SKILL.md +142 -0
  314. package/.agents/skills/huggingface-trackio/references/alerts.md +196 -0
  315. package/.agents/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  316. package/.agents/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  317. package/.agents/skills/huggingface-vision-trainer/SKILL.md +593 -0
  318. package/.agents/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  319. package/.agents/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  320. package/.agents/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  321. package/.agents/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  322. package/.agents/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  323. package/.agents/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  324. package/.agents/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  325. package/.agents/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  326. package/.agents/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  327. package/.agents/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  328. package/.agents/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  329. package/.agents/skills/huggingface-zerogpu/SKILL.md +289 -0
  330. package/.agents/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  331. package/.agents/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  332. package/.agents/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  333. package/.agents/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  334. package/.agents/skills/human-gate-negotiation/SKILL.md +30 -0
  335. package/.agents/skills/intelligent-routing/SKILL.md +10 -4
  336. package/.agents/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  337. package/.agents/skills/session-log-interrogation/SKILL.md +29 -0
  338. package/.agents/skills/subagent-driven-development/SKILL.md +32 -0
  339. package/.agents/skills/systematic-debugging/SKILL.md +5 -0
  340. package/.agents/skills/train-sentence-transformers/SKILL.md +109 -0
  341. package/.agents/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  342. package/.agents/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  343. package/.agents/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  344. package/.agents/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  345. package/.agents/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  346. package/.agents/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  347. package/.agents/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  348. package/.agents/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  349. package/.agents/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  350. package/.agents/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  351. package/.agents/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  352. package/.agents/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  353. package/.agents/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  354. package/.agents/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  355. package/.agents/skills/train-sentence-transformers/references/training_args.md +270 -0
  356. package/.agents/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  357. package/.agents/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  358. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  359. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  360. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  361. package/.agents/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  362. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  363. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  364. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  365. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  366. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  367. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  368. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  369. package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  370. package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  371. package/.agents/skills/transformers-js/SKILL.md +692 -0
  372. package/.agents/skills/transformers-js/references/CACHE.md +339 -0
  373. package/.agents/skills/transformers-js/references/CONFIGURATION.md +438 -0
  374. package/.agents/skills/transformers-js/references/EXAMPLES.md +620 -0
  375. package/.agents/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  376. package/.agents/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  377. package/.agents/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  378. package/.agents/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  379. package/.agents/skills/tribunal-instincts-memory/SKILL.md +31 -0
  380. package/.agents/skills/trl-training/SKILL.md +318 -0
  381. package/CONTRIBUTING.md +2 -2
  382. package/README.md +135 -435
  383. package/bin/adapter-install.js +1 -1
  384. package/bin/mcp-server.js +5 -5
  385. package/dist/tui/banner.js +1 -1
  386. package/gemini-extension.json +1 -1
  387. package/mcp_config.json +1 -1
  388. package/package.json +7 -7
  389. package/plugin.json +1 -1
  390. package/scripts/context_compiler.js +1 -1
  391. package/scripts/skill_enhancement_engine.js +6 -6
  392. package/skills/agent-syscall-guidelines/SKILL.md +25 -0
  393. package/skills/agentic-workflows-2026/SKILL.md +8 -0
  394. package/skills/agentshield-security/SKILL.md +26 -0
  395. package/skills/context-engineering-pro/SKILL.md +7 -0
  396. package/skills/fabel-protocol/SKILL.md +5 -0
  397. package/skills/graph-engineering/SKILL.md +28 -0
  398. package/skills/harness-protocol/SKILL.md +8 -0
  399. package/skills/hf-cli/SKILL.md +239 -0
  400. package/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  401. package/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  402. package/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  403. package/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  404. package/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  405. package/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  406. package/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  407. package/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  408. package/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  409. package/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  410. package/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  411. package/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  412. package/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  413. package/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  414. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  415. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  416. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  417. package/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  418. package/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  419. package/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  420. package/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  421. package/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  422. package/skills/hf-mem/SKILL.md +79 -0
  423. package/skills/huggingface-best/SKILL.md +134 -0
  424. package/skills/huggingface-community-evals/SKILL.md +207 -0
  425. package/skills/huggingface-community-evals/examples/.env.example +3 -0
  426. package/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  427. package/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  428. package/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  429. package/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  430. package/skills/huggingface-datasets/SKILL.md +107 -0
  431. package/skills/huggingface-gradio/SKILL.md +298 -0
  432. package/skills/huggingface-gradio/examples.md +613 -0
  433. package/skills/huggingface-llm-trainer/SKILL.md +738 -0
  434. package/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  435. package/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  436. package/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  437. package/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  438. package/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  439. package/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  440. package/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  441. package/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  442. package/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  443. package/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  444. package/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  445. package/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  446. package/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  447. package/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  448. package/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  449. package/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  450. package/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  451. package/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  452. package/skills/huggingface-local-models/SKILL.md +113 -0
  453. package/skills/huggingface-local-models/references/hardware.md +38 -0
  454. package/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  455. package/skills/huggingface-local-models/references/quantization.md +256 -0
  456. package/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  457. package/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  458. package/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  459. package/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  460. package/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  461. package/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  462. package/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  463. package/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  464. package/skills/huggingface-paper-publisher/SKILL.md +624 -0
  465. package/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  466. package/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  467. package/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  468. package/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  469. package/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  470. package/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  471. package/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  472. package/skills/huggingface-papers/SKILL.md +239 -0
  473. package/skills/huggingface-spaces/README.md +9 -0
  474. package/skills/huggingface-spaces/SKILL.md +242 -0
  475. package/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  476. package/skills/huggingface-spaces/references/3d-generation.md +98 -0
  477. package/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  478. package/skills/huggingface-spaces/references/3d-models.md +227 -0
  479. package/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  480. package/skills/huggingface-spaces/references/buckets.md +89 -0
  481. package/skills/huggingface-spaces/references/debugging.md +236 -0
  482. package/skills/huggingface-spaces/references/gradio.md +200 -0
  483. package/skills/huggingface-spaces/references/grants.md +63 -0
  484. package/skills/huggingface-spaces/references/inference-providers.md +97 -0
  485. package/skills/huggingface-spaces/references/known-errors.md +232 -0
  486. package/skills/huggingface-spaces/references/requirements.md +169 -0
  487. package/skills/huggingface-spaces/references/zerogpu.md +349 -0
  488. package/skills/huggingface-tool-builder/SKILL.md +120 -0
  489. package/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  490. package/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  491. package/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  492. package/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  493. package/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  494. package/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  495. package/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  496. package/skills/huggingface-trackio/SKILL.md +142 -0
  497. package/skills/huggingface-trackio/references/alerts.md +196 -0
  498. package/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  499. package/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  500. package/skills/huggingface-vision-trainer/SKILL.md +593 -0
  501. package/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  502. package/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  503. package/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  504. package/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  505. package/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  506. package/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  507. package/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  508. package/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  509. package/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  510. package/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  511. package/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  512. package/skills/huggingface-zerogpu/SKILL.md +289 -0
  513. package/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  514. package/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  515. package/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  516. package/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  517. package/skills/human-gate-negotiation/SKILL.md +30 -0
  518. package/skills/intelligent-routing/SKILL.md +10 -4
  519. package/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  520. package/skills/session-log-interrogation/SKILL.md +29 -0
  521. package/skills/subagent-driven-development/SKILL.md +32 -0
  522. package/skills/systematic-debugging/SKILL.md +5 -0
  523. package/skills/train-sentence-transformers/SKILL.md +109 -0
  524. package/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  525. package/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  526. package/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  527. package/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  528. package/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  529. package/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  530. package/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  531. package/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  532. package/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  533. package/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  534. package/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  535. package/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  536. package/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  537. package/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  538. package/skills/train-sentence-transformers/references/training_args.md +270 -0
  539. package/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  540. package/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  541. package/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  542. package/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  543. package/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  544. package/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  545. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  546. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  547. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  548. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  549. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  550. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  551. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  552. package/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  553. package/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  554. package/skills/transformers-js/SKILL.md +692 -0
  555. package/skills/transformers-js/references/CACHE.md +339 -0
  556. package/skills/transformers-js/references/CONFIGURATION.md +438 -0
  557. package/skills/transformers-js/references/EXAMPLES.md +620 -0
  558. package/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  559. package/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  560. package/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  561. package/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  562. package/skills/tribunal-instincts-memory/SKILL.md +31 -0
  563. package/skills/trl-training/SKILL.md +318 -0
@@ -0,0 +1,606 @@
1
+ #!/usr/bin/env -S uv run
2
+ # /// script
3
+ # requires-python = ">=3.10"
4
+ # dependencies = [
5
+ # "huggingface_hub",
6
+ # "pyyaml",
7
+ # "requests",
8
+ # "python-dotenv",
9
+ # ]
10
+ # ///
11
+ """
12
+ Paper Manager for Hugging Face Hub
13
+ Manages paper indexing, linking, authorship, and article creation.
14
+ """
15
+
16
+ import argparse
17
+ import os
18
+ import sys
19
+ import re
20
+ import json
21
+ from pathlib import Path
22
+ from typing import Optional, List, Dict, Any
23
+ from datetime import datetime
24
+
25
+ try:
26
+ from huggingface_hub import HfApi, hf_hub_download, get_token
27
+ import yaml
28
+ import requests
29
+ from dotenv import load_dotenv
30
+ except ImportError as e:
31
+ print(f"Error: Missing required dependency: {e}")
32
+ print("Tip: run this script with `uv run scripts/paper_manager.py ...`.")
33
+ sys.exit(1)
34
+
35
+ # Load environment variables
36
+ load_dotenv()
37
+
38
+
39
+ class PaperManager:
40
+ """Manages paper publishing operations on Hugging Face Hub."""
41
+
42
+ def __init__(self, hf_token: Optional[str] = None):
43
+ """Initialize Paper Manager with HF token."""
44
+ self.token = hf_token or os.getenv("HF_TOKEN") or get_token()
45
+ if not self.token:
46
+ print("Warning: No HF_TOKEN found. Some operations will fail.")
47
+ self.api = HfApi(token=self.token)
48
+
49
+ def index_paper(self, arxiv_id: str) -> Dict[str, Any]:
50
+ """
51
+ Index a paper on Hugging Face from arXiv.
52
+
53
+ Args:
54
+ arxiv_id: arXiv identifier (e.g., "2301.12345")
55
+
56
+ Returns:
57
+ dict: Status information
58
+ """
59
+ # Clean and validate arXiv ID
60
+ try:
61
+ arxiv_id = self._clean_arxiv_id(arxiv_id)
62
+ except ValueError as e:
63
+ print(f"Error: {e}")
64
+ return {"status": "error", "message": str(e)}
65
+
66
+ print(f"Indexing paper {arxiv_id} on Hugging Face...")
67
+
68
+ # Check if paper exists
69
+ paper_url = f"https://huggingface.co/papers/{arxiv_id}"
70
+
71
+ try:
72
+ response = requests.get(paper_url, timeout=10)
73
+ if response.status_code == 200:
74
+ print(f"✓ Paper already indexed at {paper_url}")
75
+ return {"status": "exists", "url": paper_url}
76
+ else:
77
+ print(f"Paper not indexed. Visit {paper_url} to trigger indexing.")
78
+ print("The paper will be automatically indexed when you first visit the URL.")
79
+ return {"status": "not_indexed", "url": paper_url, "action": "visit_url"}
80
+ except requests.RequestException as e:
81
+ print(f"Error checking paper status: {e}")
82
+ return {"status": "error", "message": str(e)}
83
+
84
+ def check_paper(self, arxiv_id: str) -> Dict[str, Any]:
85
+ """
86
+ Check if a paper exists on Hugging Face.
87
+
88
+ Args:
89
+ arxiv_id: arXiv identifier
90
+
91
+ Returns:
92
+ dict: Paper status and metadata
93
+ """
94
+ try:
95
+ arxiv_id = self._clean_arxiv_id(arxiv_id)
96
+ except ValueError as e:
97
+ return {"exists": False, "error": str(e)}
98
+ paper_url = f"https://huggingface.co/papers/{arxiv_id}"
99
+
100
+ try:
101
+ response = requests.get(paper_url, timeout=10)
102
+ if response.status_code == 200:
103
+ return {
104
+ "exists": True,
105
+ "url": paper_url,
106
+ "arxiv_id": arxiv_id,
107
+ "arxiv_url": f"https://arxiv.org/abs/{arxiv_id}"
108
+ }
109
+ else:
110
+ return {
111
+ "exists": False,
112
+ "arxiv_id": arxiv_id,
113
+ "index_url": paper_url,
114
+ "message": f"Visit {paper_url} to index this paper"
115
+ }
116
+ except requests.RequestException as e:
117
+ return {"exists": False, "error": str(e)}
118
+
119
+ def link_paper_to_repo(
120
+ self,
121
+ repo_id: str,
122
+ arxiv_id: str,
123
+ repo_type: str = "model",
124
+ citation: Optional[str] = None,
125
+ create_pr: bool = False
126
+ ) -> Dict[str, Any]:
127
+ """
128
+ Link a paper to a model/dataset/space repository.
129
+
130
+ Args:
131
+ repo_id: Repository identifier (e.g., "username/repo-name")
132
+ arxiv_id: arXiv identifier
133
+ repo_type: Type of repository ("model", "dataset", or "space")
134
+ citation: Optional full citation text
135
+ create_pr: Create a PR instead of direct commit
136
+
137
+ Returns:
138
+ dict: Operation status
139
+ """
140
+ try:
141
+ arxiv_id = self._clean_arxiv_id(arxiv_id)
142
+ except ValueError as e:
143
+ print(f"Error: {e}")
144
+ return {"status": "error", "message": str(e)}
145
+
146
+ print(f"Linking paper {arxiv_id} to {repo_type} {repo_id}...")
147
+
148
+ try:
149
+ # Download current README
150
+ readme_path = hf_hub_download(
151
+ repo_id=repo_id,
152
+ filename="README.md",
153
+ repo_type=repo_type,
154
+ token=self.token
155
+ )
156
+
157
+ with open(readme_path, 'r', encoding='utf-8') as f:
158
+ content = f.read()
159
+
160
+ # Parse or create YAML frontmatter
161
+ updated_content = self._add_paper_to_readme(content, arxiv_id, citation)
162
+
163
+ # Upload updated README
164
+ commit_message = f"Add paper reference: arXiv:{arxiv_id}"
165
+
166
+ if create_pr:
167
+ # Create PR (not implemented in basic version)
168
+ print("PR creation not yet implemented. Committing directly.")
169
+
170
+ self.api.upload_file(
171
+ path_or_fileobj=updated_content.encode('utf-8'),
172
+ path_in_repo="README.md",
173
+ repo_id=repo_id,
174
+ repo_type=repo_type,
175
+ commit_message=commit_message,
176
+ token=self.token
177
+ )
178
+
179
+ paper_url = f"https://huggingface.co/papers/{arxiv_id}"
180
+ repo_url = f"https://huggingface.co/{repo_id}"
181
+
182
+ print(f"✓ Successfully linked paper to repository")
183
+ print(f" Paper: {paper_url}")
184
+ print(f" Repo: {repo_url}")
185
+
186
+ return {
187
+ "status": "success",
188
+ "paper_url": paper_url,
189
+ "repo_url": repo_url,
190
+ "arxiv_id": arxiv_id
191
+ }
192
+
193
+ except Exception as e:
194
+ print(f"Error linking paper: {e}")
195
+ return {"status": "error", "message": str(e)}
196
+
197
+ def _add_paper_to_readme(
198
+ self,
199
+ content: str,
200
+ arxiv_id: str,
201
+ citation: Optional[str] = None
202
+ ) -> str:
203
+ """
204
+ Add paper reference to README content.
205
+
206
+ Args:
207
+ content: Current README content
208
+ arxiv_id: arXiv identifier
209
+ citation: Optional citation text
210
+
211
+ Returns:
212
+ str: Updated README content
213
+ """
214
+ arxiv_url = f"https://arxiv.org/abs/{arxiv_id}"
215
+ hf_paper_url = f"https://huggingface.co/papers/{arxiv_id}"
216
+
217
+ # Check if YAML frontmatter exists
218
+ yaml_pattern = r'^---\s*\n(.*?)\n---\s*\n'
219
+ match = re.match(yaml_pattern, content, re.DOTALL)
220
+
221
+ if match:
222
+ # YAML exists, check if paper already referenced
223
+ if arxiv_id in content:
224
+ print(f"Paper {arxiv_id} already referenced in README")
225
+ return content
226
+
227
+ # Add to existing content (after YAML)
228
+ yaml_end = match.end()
229
+ before = content[:yaml_end]
230
+ after = content[yaml_end:]
231
+ else:
232
+ # No YAML, add minimal frontmatter
233
+ yaml_content = "---\n---\n\n"
234
+ before = yaml_content
235
+ after = content
236
+
237
+ # Add paper reference section with boundary markers
238
+ paper_section = "\n<!-- paper-manager:start -->\n"
239
+ paper_section += f"## Paper\n\n"
240
+ paper_section += f"This {'model' if 'model' in content.lower() else 'work'} is based on research presented in:\n\n"
241
+ paper_section += f"**[View on arXiv]({arxiv_url})** | "
242
+ paper_section += f"**[View on Hugging Face]({hf_paper_url})**\n\n"
243
+
244
+ if citation:
245
+ safe_citation = self._sanitize_text(citation)
246
+ paper_section += f"### Citation\n\n```bibtex\n{safe_citation}\n```\n\n"
247
+
248
+ paper_section += "<!-- paper-manager:end -->\n"
249
+
250
+ # Insert after YAML, before main content
251
+ updated_content = before + paper_section + after
252
+
253
+ return updated_content
254
+
255
+ def create_research_article(
256
+ self,
257
+ template: str,
258
+ title: str,
259
+ output: str,
260
+ authors: Optional[str] = None,
261
+ abstract: Optional[str] = None
262
+ ) -> Dict[str, Any]:
263
+ """
264
+ Create a research article from template.
265
+
266
+ Args:
267
+ template: Template name ("standard", "modern", "arxiv", "ml-report")
268
+ title: Paper title
269
+ output: Output filename
270
+ authors: Comma-separated author names
271
+ abstract: Abstract text
272
+
273
+ Returns:
274
+ dict: Creation status
275
+ """
276
+ print(f"Creating research article with '{template}' template...")
277
+
278
+ # Load template
279
+ template_dir = Path(__file__).parent.parent / "templates"
280
+ template_file = template_dir / f"{template}.md"
281
+
282
+ if not template_file.exists():
283
+ return {
284
+ "status": "error",
285
+ "message": f"Template '{template}' not found at {template_file}"
286
+ }
287
+
288
+ with open(template_file, 'r', encoding='utf-8') as f:
289
+ template_content = f.read()
290
+
291
+ # Prepare safe values for different contexts
292
+ date_str = datetime.now().strftime("%Y-%m-%d")
293
+ safe_title_body = self._sanitize_text(title)
294
+ authors_val = authors if authors else "Your Name"
295
+ safe_authors_body = self._sanitize_text(authors_val)
296
+ abstract_val = abstract if abstract else "Abstract to be written..."
297
+ safe_abstract_body = self._sanitize_text(abstract_val)
298
+
299
+ # Split frontmatter from body for context-aware escaping
300
+ fm_pattern = r'^(---\s*\n)(.*?\n)(---\s*\n)'
301
+ fm_match = re.match(fm_pattern, template_content, re.DOTALL)
302
+
303
+ if fm_match:
304
+ fm_open, fm_body, fm_close = fm_match.group(1), fm_match.group(2), fm_match.group(3)
305
+ body = template_content[fm_match.end():]
306
+
307
+ # YAML-escape values in frontmatter
308
+ fm_body = fm_body.replace("{{TITLE}}", self._escape_yaml_value(title))
309
+ fm_body = fm_body.replace("{{AUTHORS}}", self._escape_yaml_value(authors_val))
310
+ fm_body = fm_body.replace("{{DATE}}", date_str)
311
+
312
+ # Sanitize values in body
313
+ body = body.replace("{{TITLE}}", safe_title_body)
314
+ body = body.replace("{{AUTHORS}}", safe_authors_body)
315
+ body = body.replace("{{ABSTRACT}}", safe_abstract_body)
316
+ body = body.replace("{{DATE}}", date_str)
317
+
318
+ content = fm_open + fm_body + fm_close + body
319
+ else:
320
+ # No frontmatter — sanitize everything
321
+ content = template_content.replace("{{TITLE}}", safe_title_body)
322
+ content = content.replace("{{DATE}}", date_str)
323
+ content = content.replace("{{AUTHORS}}", safe_authors_body)
324
+ content = content.replace("{{ABSTRACT}}", safe_abstract_body)
325
+
326
+ # Write output
327
+ with open(output, 'w', encoding='utf-8') as f:
328
+ f.write(content)
329
+
330
+ print(f"✓ Research article created at {output}")
331
+
332
+ return {
333
+ "status": "success",
334
+ "output": output,
335
+ "template": template
336
+ }
337
+
338
+ def get_arxiv_info(self, arxiv_id: str) -> Dict[str, Any]:
339
+ """
340
+ Fetch paper information from arXiv API.
341
+
342
+ Args:
343
+ arxiv_id: arXiv identifier
344
+
345
+ Returns:
346
+ dict: Paper metadata
347
+ """
348
+ try:
349
+ arxiv_id = self._clean_arxiv_id(arxiv_id)
350
+ except ValueError as e:
351
+ return {"error": str(e)}
352
+ api_url = f"https://export.arxiv.org/api/query?id_list={arxiv_id}"
353
+
354
+ try:
355
+ response = requests.get(api_url, timeout=10)
356
+ response.raise_for_status()
357
+
358
+ # Parse XML response (simplified)
359
+ content = response.text
360
+
361
+ # Extract basic info with regex (proper XML parsing would be better)
362
+ title_match = re.search(r'<title>(.*?)</title>', content, re.DOTALL)
363
+ authors_matches = re.findall(r'<name>(.*?)</name>', content)
364
+ summary_match = re.search(r'<summary>(.*?)</summary>', content, re.DOTALL)
365
+
366
+ # Sanitize all text extracted from the external API
367
+ raw_title = title_match.group(1).strip() if title_match else None
368
+ raw_authors = authors_matches[1:] if len(authors_matches) > 1 else []
369
+ raw_abstract = summary_match.group(1).strip() if summary_match else None
370
+
371
+ return {
372
+ "arxiv_id": arxiv_id,
373
+ "title": self._sanitize_text(raw_title) if raw_title else None,
374
+ "authors": [self._sanitize_text(a) for a in raw_authors],
375
+ "abstract": self._sanitize_text(raw_abstract) if raw_abstract else None,
376
+ "arxiv_url": f"https://arxiv.org/abs/{arxiv_id}",
377
+ "pdf_url": f"https://arxiv.org/pdf/{arxiv_id}.pdf"
378
+ }
379
+ except Exception as e:
380
+ return {"error": str(e)}
381
+
382
+ def generate_citation(
383
+ self,
384
+ arxiv_id: str,
385
+ format: str = "bibtex"
386
+ ) -> str:
387
+ """
388
+ Generate citation for a paper.
389
+
390
+ Args:
391
+ arxiv_id: arXiv identifier
392
+ format: Citation format ("bibtex", "apa", "mla")
393
+
394
+ Returns:
395
+ str: Formatted citation
396
+ """
397
+ try:
398
+ arxiv_id = self._clean_arxiv_id(arxiv_id)
399
+ except ValueError as e:
400
+ return f"Error: {e}"
401
+
402
+ info = self.get_arxiv_info(arxiv_id)
403
+
404
+ if "error" in info:
405
+ return f"Error fetching paper info: {info['error']}"
406
+
407
+ if format == "bibtex":
408
+ # Generate BibTeX citation
409
+ key = f"arxiv{arxiv_id.replace('.', '_')}"
410
+ raw_authors = " and ".join(info.get("authors", ["Unknown"]))
411
+ raw_title = info.get("title", "Untitled")
412
+ year = arxiv_id.split(".")[0][:2] # Extract year from ID (simplified)
413
+ year = f"20{year}" if int(year) < 50 else f"19{year}"
414
+
415
+ # Escape BibTeX structural characters in untrusted values
416
+ safe_title = raw_title.replace('{', r'\{').replace('}', r'\}')
417
+ safe_authors = raw_authors.replace('{', r'\{').replace('}', r'\}')
418
+
419
+ citation = f"""@article{{{key},
420
+ title={{{safe_title}}},
421
+ author={{{safe_authors}}},
422
+ journal={{arXiv preprint arXiv:{arxiv_id}}},
423
+ year={{{year}}}
424
+ }}"""
425
+ return citation
426
+
427
+ return f"Format '{format}' not yet implemented"
428
+
429
+ # Patterns for valid arXiv IDs
430
+ _ARXIV_ID_MODERN = re.compile(r'^\d{4}\.\d{4,5}(v\d+)?$')
431
+ _ARXIV_ID_LEGACY = re.compile(r'^[a-zA-Z\-]+/\d{7}(v\d+)?$')
432
+
433
+ @staticmethod
434
+ def _clean_arxiv_id(arxiv_id: str) -> str:
435
+ """Clean, normalize, and validate arXiv ID.
436
+
437
+ Raises:
438
+ ValueError: If the cleaned ID does not match a valid arXiv format.
439
+ """
440
+ # Remove common prefixes and whitespace
441
+ arxiv_id = arxiv_id.strip()
442
+ arxiv_id = re.sub(r'^(arxiv:|arXiv:)', '', arxiv_id, flags=re.IGNORECASE)
443
+ arxiv_id = re.sub(r'https?://arxiv\.org/(abs|pdf)/', '', arxiv_id)
444
+ arxiv_id = arxiv_id.replace('.pdf', '')
445
+
446
+ # Validate format
447
+ if not (PaperManager._ARXIV_ID_MODERN.match(arxiv_id)
448
+ or PaperManager._ARXIV_ID_LEGACY.match(arxiv_id)):
449
+ raise ValueError(
450
+ f"Invalid arXiv ID: {arxiv_id!r}. "
451
+ "Expected format: YYMM.NNNNN[vN] or category/YYMMNNN[vN]"
452
+ )
453
+
454
+ return arxiv_id
455
+
456
+ @staticmethod
457
+ def _escape_yaml_value(value: str) -> str:
458
+ """Escape a string for safe use as a YAML scalar value.
459
+
460
+ Wraps in double quotes and escapes internal quotes and backslashes
461
+ to prevent YAML injection via crafted titles/authors.
462
+ """
463
+ value = value.replace('\\', '\\\\').replace('"', '\\"')
464
+ return f'"{value}"'
465
+
466
+ @staticmethod
467
+ def _sanitize_text(text: str) -> str:
468
+ """Sanitize untrusted text for safe inclusion in Markdown/YAML output.
469
+
470
+ Normalizes whitespace, strips control characters, and neutralizes
471
+ markdown code-fence breakout and YAML document delimiters.
472
+ """
473
+ # Remove control characters (keep newlines and tabs)
474
+ text = re.sub(r'[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]', '', text)
475
+ # Normalize whitespace runs (collapse multiple spaces/tabs, preserve single newlines)
476
+ text = re.sub(r'[^\S\n]+', ' ', text)
477
+ text = re.sub(r'\n{3,}', '\n\n', text)
478
+ # Neutralize markdown code fence breakout
479
+ text = text.replace('```', r'\`\`\`')
480
+ # Neutralize YAML document delimiters at line start
481
+ text = re.sub(r'^---', r'\\---', text, flags=re.MULTILINE)
482
+ return text.strip()
483
+
484
+
485
+ def main():
486
+ """Main CLI entry point."""
487
+ parser = argparse.ArgumentParser(
488
+ description="Paper Manager for Hugging Face Hub",
489
+ formatter_class=argparse.RawDescriptionHelpFormatter
490
+ )
491
+
492
+ subparsers = parser.add_subparsers(dest="command", help="Command to execute")
493
+
494
+ # Index command
495
+ index_parser = subparsers.add_parser("index", help="Index a paper from arXiv")
496
+ index_parser.add_argument("--arxiv-id", required=True, help="arXiv paper ID")
497
+
498
+ # Check command
499
+ check_parser = subparsers.add_parser("check", help="Check if paper exists")
500
+ check_parser.add_argument("--arxiv-id", required=True, help="arXiv paper ID")
501
+
502
+ # Link command
503
+ link_parser = subparsers.add_parser("link", help="Link paper to repository")
504
+ link_parser.add_argument("--repo-id", required=True, help="Repository ID")
505
+ link_parser.add_argument("--repo-type", default="model", choices=["model", "dataset", "space"])
506
+ link_parser.add_argument("--arxiv-id", help="Single arXiv ID")
507
+ link_parser.add_argument("--arxiv-ids", help="Comma-separated arXiv IDs")
508
+ link_parser.add_argument("--citation", help="Full citation text")
509
+ link_parser.add_argument("--create-pr", action="store_true", help="Create PR instead of direct commit")
510
+
511
+ # Create command
512
+ create_parser = subparsers.add_parser("create", help="Create research article")
513
+ create_parser.add_argument("--template", required=True, help="Template name")
514
+ create_parser.add_argument("--title", required=True, help="Paper title")
515
+ create_parser.add_argument("--output", required=True, help="Output filename")
516
+ create_parser.add_argument("--authors", help="Comma-separated authors")
517
+ create_parser.add_argument("--abstract", help="Abstract text")
518
+
519
+ # Info command
520
+ info_parser = subparsers.add_parser("info", help="Get paper information")
521
+ info_parser.add_argument("--arxiv-id", required=True, help="arXiv paper ID")
522
+ info_parser.add_argument("--format", default="json", choices=["json", "text"])
523
+
524
+ # Citation command
525
+ citation_parser = subparsers.add_parser("citation", help="Generate citation")
526
+ citation_parser.add_argument("--arxiv-id", required=True, help="arXiv paper ID")
527
+ citation_parser.add_argument("--format", default="bibtex", choices=["bibtex", "apa", "mla"])
528
+
529
+ # Search command
530
+ search_parser = subparsers.add_parser("search", help="Search papers")
531
+ search_parser.add_argument("--query", required=True, help="Search query")
532
+
533
+ args = parser.parse_args()
534
+
535
+ if not args.command:
536
+ parser.print_help()
537
+ sys.exit(1)
538
+
539
+ # Initialize manager
540
+ manager = PaperManager()
541
+
542
+ # Execute command
543
+ if args.command == "index":
544
+ result = manager.index_paper(args.arxiv_id)
545
+ print(json.dumps(result, indent=2))
546
+
547
+ elif args.command == "check":
548
+ result = manager.check_paper(args.arxiv_id)
549
+ print(json.dumps(result, indent=2))
550
+
551
+ elif args.command == "link":
552
+ arxiv_ids = []
553
+ if args.arxiv_id:
554
+ arxiv_ids.append(args.arxiv_id)
555
+ if args.arxiv_ids:
556
+ arxiv_ids.extend([id.strip() for id in args.arxiv_ids.split(",")])
557
+
558
+ if not arxiv_ids:
559
+ print("Error: Must provide --arxiv-id or --arxiv-ids")
560
+ sys.exit(1)
561
+
562
+ for arxiv_id in arxiv_ids:
563
+ result = manager.link_paper_to_repo(
564
+ repo_id=args.repo_id,
565
+ arxiv_id=arxiv_id,
566
+ repo_type=args.repo_type,
567
+ citation=args.citation,
568
+ create_pr=args.create_pr
569
+ )
570
+ print(json.dumps(result, indent=2))
571
+
572
+ elif args.command == "create":
573
+ result = manager.create_research_article(
574
+ template=args.template,
575
+ title=args.title,
576
+ output=args.output,
577
+ authors=args.authors,
578
+ abstract=args.abstract
579
+ )
580
+ print(json.dumps(result, indent=2))
581
+
582
+ elif args.command == "info":
583
+ result = manager.get_arxiv_info(args.arxiv_id)
584
+ if args.format == "json":
585
+ print(json.dumps(result, indent=2))
586
+ else:
587
+ if "error" in result:
588
+ print(f"Error: {result['error']}")
589
+ else:
590
+ print(f"Title: {result.get('title')}")
591
+ print(f"Authors: {', '.join(result.get('authors', []))}")
592
+ print(f"arXiv URL: {result.get('arxiv_url')}")
593
+ print(f"\nAbstract:\n{result.get('abstract')}")
594
+
595
+ elif args.command == "citation":
596
+ citation = manager.generate_citation(args.arxiv_id, args.format)
597
+ print(citation)
598
+
599
+ elif args.command == "search":
600
+ print(f"Searching for: {args.query}")
601
+ print("Search functionality coming soon!")
602
+ print(f"Visit: https://huggingface.co/papers?search={args.query}")
603
+
604
+
605
+ if __name__ == "__main__":
606
+ main()