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,97 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * memory_archivist.js
4
+ * Scans the durable session.jsonl log for errors and resolutions,
5
+ * generating evidence-backed Tribunal Instincts.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ const fs = require('fs');
11
+ const path = require('path');
12
+ const { readEvents } = require('./session_logger');
13
+
14
+ const INSTINCTS_DIR = path.resolve(process.cwd(), '.agent', 'memory');
15
+ const INSTINCTS_FILE = path.join(INSTINCTS_DIR, 'instincts.json');
16
+
17
+ // Ensure directory exists
18
+ if (!fs.existsSync(INSTINCTS_DIR)) {
19
+ fs.mkdirSync(INSTINCTS_DIR, { recursive: true });
20
+ }
21
+
22
+ /**
23
+ * Load existing instincts
24
+ */
25
+ function loadInstincts() {
26
+ if (!fs.existsSync(INSTINCTS_FILE)) return [];
27
+ try {
28
+ return JSON.parse(fs.readFileSync(INSTINCTS_FILE, 'utf8'));
29
+ } catch (_e) {
30
+ return [];
31
+ }
32
+ }
33
+
34
+ /**
35
+ * Save instincts back to disk
36
+ */
37
+ function saveInstincts(instincts) {
38
+ fs.writeFileSync(INSTINCTS_FILE, JSON.stringify(instincts, null, 2), 'utf8');
39
+ }
40
+
41
+ /**
42
+ * Mine the JSONL log for failures and successes
43
+ */
44
+ function archiveSession() {
45
+ const events = readEvents();
46
+ const instincts = loadInstincts();
47
+
48
+ let currentError = null;
49
+ let newInstinctsCount = 0;
50
+
51
+ for (const evt of events) {
52
+ if (evt.type === 'ErrorEncountered') {
53
+ currentError = evt;
54
+ } else if (evt.type === 'ToolCompleted' && currentError && evt.sessionId === currentError.sessionId) {
55
+ // If we see a successful tool completion shortly after an error in the same session,
56
+ // we assume it's a resolution. In a real LLM setup, we'd use an AI pass here to summarize the fix.
57
+ // For now, we stub the instinct generation based on the error.
58
+
59
+ const errorMsg = currentError.payload.message || 'Unknown error';
60
+
61
+ // Avoid duplicates
62
+ const exists = instincts.find(i => i.evidence.failedEventId === currentError.eventId);
63
+
64
+ if (!exists && errorMsg !== 'Unknown error') {
65
+ const newInstinct = {
66
+ id: `instinct_${Date.now()}_${Math.floor(Math.random() * 1000)}`,
67
+ domain: "auto-archived",
68
+ rule: `Avoid pattern that caused: ${errorMsg}`,
69
+ evidence: {
70
+ failedEventId: currentError.eventId,
71
+ resolutionEventId: evt.eventId
72
+ },
73
+ confidence: "L3" // L3 because it's auto-generated without human verification
74
+ };
75
+
76
+ instincts.push(newInstinct);
77
+ newInstinctsCount++;
78
+ }
79
+
80
+ // Reset error tracker
81
+ currentError = null;
82
+ }
83
+ }
84
+
85
+ if (newInstinctsCount > 0) {
86
+ saveInstincts(instincts);
87
+ console.log(`✅ Memory Archivist mined ${newInstinctsCount} new instincts from the session log.`);
88
+ } else {
89
+ console.log(`ℹ️ Memory Archivist found no new verifiable patterns in the session log.`);
90
+ }
91
+ }
92
+
93
+ if (require.main === module) {
94
+ archiveSession();
95
+ }
96
+
97
+ module.exports = { archiveSession };
@@ -0,0 +1,37 @@
1
+ const { MemoryEngine } = require('./memory_engine.js');
2
+
3
+ async function consolidateMemory(agentDir) {
4
+ console.log(`Starting memory consolidation for workspace: ${agentDir}`);
5
+
6
+ const engine = new MemoryEngine(agentDir);
7
+ const index = engine.loadIndex();
8
+
9
+ const episodics = index.entries.filter(e => e.memory_type === 'episodic');
10
+ const workings = index.entries.filter(e => e.memory_type === 'working');
11
+
12
+ if (episodics.length === 0 && workings.length === 0) {
13
+ console.log("No Episodic or Working memories to consolidate.");
14
+ return;
15
+ }
16
+
17
+ console.log(`Found ${episodics.length} Episodic and ${workings.length} Working memories.`);
18
+ console.log("Submitting to LLM for consolidation into Semantic rules...");
19
+
20
+ // Simulation of Tribunal's Maker-Reviewer LLM invocation.
21
+ // In production, this would pass the contexts to the `logic-reviewer` and output a compressed fact.
22
+ const consolidatedContent = `Generalized rule derived from ${episodics.length} episodic events and ${workings.length} working sessions.`;
23
+
24
+ const semanticId = engine.store({
25
+ type: 'semantic',
26
+ content: consolidatedContent,
27
+ tags: ['consolidated'],
28
+ source: 'learned',
29
+ confidence: 1.0, // Assumes it passed a reviewer gate
30
+ });
31
+
32
+ console.log(`Generated new Semantic Memory ID: ${semanticId}`);
33
+ console.log("Consolidation complete. Run `tk memory gc` to clear old working entries.");
34
+ }
35
+
36
+ const dir = process.cwd();
37
+ consolidateMemory(dir).catch(console.error);
@@ -115,23 +115,43 @@ function releaseLock(lockPath) {
115
115
 
116
116
  // ─── Scoring Engine ───────────────────────────────────────────────────────────
117
117
 
118
- function computeScore(entry, query) {
118
+ function computeScore(entry, query, corpus = []) {
119
119
  if (!query || !entry.content) return 0;
120
- const queryLower = query.toLowerCase();
120
+ const queryWords = query.toLowerCase().split(/\s+/).filter(w => w.length > 2);
121
+ if (queryWords.length === 0) return 0;
121
122
  const contentLower = entry.content.toLowerCase();
122
123
 
123
124
  let relevance = 0;
124
- if (contentLower.includes(queryLower)) {
125
- relevance = 1.0;
126
- } else if (entry.tags && entry.tags.some(t => t.toLowerCase().includes(queryLower))) {
127
- relevance = 0.8;
128
- } else if (queryLower.split(/\s+/).some(word => word.length > 2 && contentLower.includes(word))) {
129
- relevance = 0.3;
125
+ const k1 = 1.2;
126
+ const b = 0.75;
127
+ const avgdl_raw = corpus.length > 0 ? corpus.reduce((sum, e) => sum + (e.content ? e.content.length : 0), 0) / corpus.length : 100;
128
+ const avgdl = avgdl_raw || 100;
129
+ const dl = contentLower.length;
130
+
131
+ for (const word of queryWords) {
132
+ const termFreq = contentLower.split(word).length - 1;
133
+ if (termFreq === 0 && (!entry.tags || !entry.tags.some(t => t.toLowerCase().includes(word)))) continue;
134
+
135
+ // Effective TF including tag boost
136
+ const tf = termFreq + (entry.tags && entry.tags.some(t => t.toLowerCase().includes(word)) ? 2 : 0);
137
+
138
+ const docFreq = corpus.filter(e => e.content && e.content.toLowerCase().includes(word)).length;
139
+ // IDF
140
+ const idf = Math.log((corpus.length - docFreq + 0.5) / (docFreq + 0.5) + 1.0);
141
+
142
+ relevance += idf * (tf * (k1 + 1)) / (tf + k1 * (1 - b + b * (dl / avgdl)));
143
+ }
144
+
145
+ // Exact phrase match bonus
146
+ if (contentLower.includes(query.toLowerCase())) {
147
+ relevance += 2.0;
130
148
  }
131
149
 
132
150
  if (relevance === 0) return 0;
133
151
 
134
152
  const priority = entry.priority != null ? entry.priority : (TYPE_PRIORITY[entry.memory_type] || 0.5);
153
+ const confidence = typeof entry.confidence === 'number' ? entry.confidence : 1.0;
154
+
135
155
  let recency = 0;
136
156
  if (entry.memory_type === 'episodic') {
137
157
  const age = daysSince(entry.created_at);
@@ -139,7 +159,7 @@ function computeScore(entry, query) {
139
159
  }
140
160
  const freqBoost = Math.max(0, Math.log(entry.access_count || 1)) * 0.05;
141
161
 
142
- return (relevance * priority) + recency + freqBoost;
162
+ return (relevance * priority * confidence) + recency + freqBoost;
143
163
  }
144
164
 
145
165
  // ─── Memory Engine Class ──────────────────────────────────────────────────────
@@ -257,6 +277,8 @@ class MemoryEngine {
257
277
  source: options.source || (type === 'working' ? 'session' : 'manual'),
258
278
  session_id: options.sessionId || options.session_id || null,
259
279
  priority: typeof options.priority === 'number' ? options.priority : 1.0,
280
+ relations: Array.isArray(options.relations) ? options.relations : [],
281
+ confidence: typeof options.confidence === 'number' ? options.confidence : (options.source === 'learned' ? 0.5 : 1.0),
260
282
  };
261
283
 
262
284
  index.entries.push(entry);
@@ -287,9 +309,22 @@ class MemoryEngine {
287
309
  const index = this.loadIndex();
288
310
 
289
311
  const scored = index.entries
290
- .map(entry => ({ entry, score: computeScore(entry, query) }))
291
- .filter(s => s.score > 0)
292
- .sort((a, b) => b.score - a.score);
312
+ .map(entry => ({ entry, score: computeScore(entry, query, index.entries) }))
313
+ .filter(s => s.score > 0);
314
+
315
+ // Apply relational boosting
316
+ for (const s of scored) {
317
+ if (s.entry.relations) {
318
+ for (const relId of s.entry.relations) {
319
+ const related = scored.find(r => String(r.entry.id) === String(relId));
320
+ if (related) {
321
+ related.score += s.score * 0.2; // 20% boost from incoming relation
322
+ }
323
+ }
324
+ }
325
+ }
326
+
327
+ scored.sort((a, b) => b.score - a.score);
293
328
 
294
329
  let totalTokens = 0;
295
330
  const results = [];
@@ -350,6 +385,8 @@ class MemoryEngine {
350
385
  token_estimate: entry.token_estimate,
351
386
  source: entry.source,
352
387
  session_id: entry.session_id,
388
+ relations: entry.relations || [],
389
+ confidence: typeof entry.confidence === 'number' ? entry.confidence : 1.0,
353
390
  };
354
391
  }
355
392
 
@@ -505,31 +542,34 @@ class MemoryEngine {
505
542
 
506
543
  if (sem.length > 0) {
507
544
  md += '## SEMANTIC (Permanent Facts)\n';
508
- md += '| ID | Content | Tags | Source | Created |\n';
509
- md += '|----|---------|------|--------|---------|\n';
545
+ md += '| ID | Content | Tags | Source | Conf | Created |\n';
546
+ md += '|----|---------|------|--------|------|---------|\n';
510
547
  for (const e of sem) {
511
- md += `| ${e.id} | ${e.content.replace(/\|/g, '\\|')} | ${(e.tags || []).join(', ')} | ${e.source || 'manual'} | ${e.created_at} |\n`;
548
+ const conf = typeof e.confidence === 'number' ? e.confidence.toFixed(1) : '1.0';
549
+ md += `| ${e.id} | ${e.content.replace(/\|/g, '\\|')} | ${(e.tags || []).join(', ')} | ${e.source || 'manual'} | ${conf} | ${e.created_at} |\n`;
512
550
  }
513
551
  md += '\n';
514
552
  }
515
553
 
516
554
  if (proc.length > 0) {
517
555
  md += '## PROCEDURAL (How-To Recipes)\n';
518
- md += '| ID | Content | Tags | Source | Created |\n';
519
- md += '|----|---------|------|--------|---------|\n';
556
+ md += '| ID | Content | Tags | Source | Conf | Created |\n';
557
+ md += '|----|---------|------|--------|------|---------|\n';
520
558
  for (const e of proc) {
521
- md += `| ${e.id} | ${e.content.replace(/\|/g, '\\|')} | ${(e.tags || []).join(', ')} | ${e.source || 'manual'} | ${e.created_at} |\n`;
559
+ const conf = typeof e.confidence === 'number' ? e.confidence.toFixed(1) : '1.0';
560
+ md += `| ${e.id} | ${e.content.replace(/\|/g, '\\|')} | ${(e.tags || []).join(', ')} | ${e.source || 'manual'} | ${conf} | ${e.created_at} |\n`;
522
561
  }
523
562
  md += '\n';
524
563
  }
525
564
 
526
565
  if (ep.length > 0) {
527
566
  md += '## EPISODIC (Session History — auto-decays after 30 days)\n';
528
- md += '| ID | Content | Tags | Source | Created | Days Remaining |\n';
529
- md += '|----|---------|------|--------|---------|----------------|\n';
567
+ md += '| ID | Content | Tags | Source | Conf | Created | Days Remaining |\n';
568
+ md += '|----|---------|------|--------|------|---------|----------------|\n';
530
569
  for (const e of ep) {
531
570
  const remaining = Math.max(0, EPISODIC_TTL_DAYS - daysSince(e.created_at));
532
- md += `| ${e.id} | ${e.content.replace(/\|/g, '\\|')} | ${(e.tags || []).join(', ')} | ${e.source || 'manual'} | ${e.created_at} | ${remaining} |\n`;
571
+ const conf = typeof e.confidence === 'number' ? e.confidence.toFixed(1) : '1.0';
572
+ md += `| ${e.id} | ${e.content.replace(/\|/g, '\\|')} | ${(e.tags || []).join(', ')} | ${e.source || 'manual'} | ${conf} | ${e.created_at} | ${remaining} |\n`;
533
573
  }
534
574
  md += '\n';
535
575
  }
@@ -47,6 +47,12 @@ const {
47
47
  } = require('./_colors');
48
48
  const { findAgentDir, parseArgs, loadJson } = require('./_utils');
49
49
 
50
+ let sessionLogger = null;
51
+ try {
52
+ sessionLogger = require('./session_logger');
53
+ } catch (_e) {}
54
+
55
+
50
56
  // ── Lazy-load sibling scripts (avoid circular deps) ─────────────────────────
51
57
  let _contextBroker = null;
52
58
  function getContextBroker() {
@@ -528,7 +534,7 @@ function validatePhase(code, spec, opts = {}) {
528
534
  if (fs.existsSync(manifestPath)) {
529
535
  manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
530
536
  }
531
- } catch (e) {}
537
+ } catch (_e) {}
532
538
 
533
539
  const grResult = guardrailEngine.validate(code, manifest, { context: { projectRoot: process.cwd(), filePath: spec.target_file } });
534
540
  if (grResult && grResult.violations) {
@@ -612,7 +618,7 @@ function detectLang(spec) {
612
618
  /**
613
619
  * Find the first line number matching a regex pattern.
614
620
  */
615
- function findLineNumber(lines, pattern) {
621
+ function _findLineNumber(lines, pattern) {
616
622
  for (let i = 0; i < lines.length; i++) {
617
623
  if (pattern.test(lines[i])) return i + 1;
618
624
  }
@@ -649,6 +655,15 @@ function fullPipeline(task, files = [], opts = {}) {
649
655
  // The caller invokes validate(code) after the LLM generates the code
650
656
  const validate = code => validatePhase(code, spec, { lang: detectLang(spec) });
651
657
 
658
+ if (sessionLogger) {
659
+ sessionLogger.appendEvent('AgentDispatched', {
660
+ task,
661
+ files,
662
+ promptTokens: builderResult.tokenEstimate,
663
+ skills: builderResult.skillsLoaded,
664
+ }, 'pipeline_engine');
665
+ }
666
+
652
667
  return {
653
668
  spec,
654
669
  prompt: builderResult.prompt,
@@ -0,0 +1,115 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const crypto = require('crypto');
4
+
5
+ /**
6
+ * Event-Sourced Durable Session Logger
7
+ * Replaces static JSON session state with an append-only JSONL event stream.
8
+ */
9
+
10
+ const SESSION_DIR = path.resolve(process.cwd(), '.agent', '.tribunal');
11
+ const SESSION_FILE = path.join(SESSION_DIR, 'session.jsonl');
12
+
13
+ // Ensure directory exists
14
+ if (!fs.existsSync(SESSION_DIR)) {
15
+ fs.mkdirSync(SESSION_DIR, { recursive: true });
16
+ }
17
+
18
+ /**
19
+ * Generate a unique event ID
20
+ */
21
+ function generateEventId() {
22
+ return 'evt_' + crypto.randomBytes(8).toString('hex');
23
+ }
24
+
25
+ /**
26
+ * Append an event to the JSONL log
27
+ * @param {string} type - The event type (e.g., 'ToolRequested', 'AgentDispatched')
28
+ * @param {object} payload - The event payload
29
+ * @param {string} source - The source of the event ('harness-manager', 'worker', etc.)
30
+ * @param {string} [sessionId] - Optional session ID to tie events together
31
+ */
32
+ function appendEvent(type, payload = {}, source = 'system', sessionId = 'default') {
33
+ const event = {
34
+ timestamp: new Date().toISOString(),
35
+ eventId: generateEventId(),
36
+ sessionId,
37
+ type,
38
+ source,
39
+ payload
40
+ };
41
+
42
+ const line = JSON.stringify(event) + '\n';
43
+ fs.appendFileSync(SESSION_FILE, line, 'utf8');
44
+ return event.eventId;
45
+ }
46
+
47
+ /**
48
+ * Read all events from the log
49
+ * @returns {Array<object>} Array of parsed events
50
+ */
51
+ function readEvents() {
52
+ if (!fs.existsSync(SESSION_FILE)) return [];
53
+ const content = fs.readFileSync(SESSION_FILE, 'utf8');
54
+ return content
55
+ .split('\n')
56
+ .filter(line => line.trim().length > 0)
57
+ .map(line => {
58
+ try {
59
+ return JSON.parse(line);
60
+ } catch (_e) {
61
+ return null;
62
+ }
63
+ })
64
+ .filter(Boolean);
65
+ }
66
+
67
+ /**
68
+ * Rehydrate session state by folding over the event stream
69
+ * @returns {object} Rehydrated state
70
+ */
71
+ function rehydrateState() {
72
+ const events = readEvents();
73
+ const state = {
74
+ currentSessionId: 'default',
75
+ sessions: {},
76
+ toolsExecuted: 0,
77
+ errorsEncountered: 0,
78
+ };
79
+
80
+ for (const evt of events) {
81
+ if (!state.sessions[evt.sessionId]) {
82
+ state.sessions[evt.sessionId] = {
83
+ startedAt: null,
84
+ endedAt: null,
85
+ events: [],
86
+ status: 'active'
87
+ };
88
+ }
89
+
90
+ const sess = state.sessions[evt.sessionId];
91
+ sess.events.push(evt);
92
+
93
+ if (evt.type === 'SessionStarted') {
94
+ sess.startedAt = evt.timestamp;
95
+ state.currentSessionId = evt.sessionId;
96
+ } else if (evt.type === 'SessionEnded') {
97
+ sess.endedAt = evt.timestamp;
98
+ sess.status = 'completed';
99
+ } else if (evt.type === 'ToolCompleted') {
100
+ state.toolsExecuted++;
101
+ } else if (evt.type === 'ErrorEncountered') {
102
+ state.errorsEncountered++;
103
+ sess.status = 'error';
104
+ }
105
+ }
106
+
107
+ return state;
108
+ }
109
+
110
+ module.exports = {
111
+ appendEvent,
112
+ readEvents,
113
+ rehydrateState,
114
+ SESSION_FILE
115
+ };
@@ -17,6 +17,12 @@
17
17
 
18
18
  const fs = require('fs');
19
19
  const path = require('path');
20
+ let sessionLogger = null;
21
+ try {
22
+ sessionLogger = require('./session_logger');
23
+ } catch (_e) {
24
+ // Graceful fallback if session_logger is not present
25
+ }
20
26
 
21
27
  const STATE_FILE = '.agent_session.json';
22
28
 
@@ -61,6 +67,10 @@ function cmdSave(note) {
61
67
  state.current = entry;
62
68
  saveState(state);
63
69
 
70
+ if (sessionLogger) {
71
+ sessionLogger.appendEvent('SessionStarted', { note, tags: [] }, 'session_manager', entry.session);
72
+ }
73
+
64
74
  console.log(`${GREEN}✅ Session saved:${RESET} ${note}`);
65
75
  console.log(` Time: ${entry.timestamp}`);
66
76
  console.log(` Session: #${entry.session}`);
@@ -410,6 +410,63 @@ class SwarmOrchestrator {
410
410
  return results;
411
411
  }
412
412
 
413
+ async executeDAG(payload) {
414
+ const tasks = (typeof payload === 'object' && payload.tasks) ? payload.tasks : [];
415
+ if (tasks.length === 0) {
416
+ return [];
417
+ }
418
+
419
+ this.workers = tasks;
420
+ this.results = [];
421
+
422
+ if (this.dashboard) {
423
+ this.dashboard.workers = this.workers.map(w => ({
424
+ name: w.agent || w.id || 'Worker',
425
+ task: (w.goal || w.task_description || '').slice(0, 40) + '...',
426
+ status: '⏳ Pending',
427
+ color: '\x1b[33m'
428
+ }));
429
+ this.dashboard.start();
430
+ }
431
+
432
+ const completed = new Set();
433
+ const inProgress = new Set();
434
+
435
+ while (completed.size < tasks.length) {
436
+ const availableTasks = tasks.filter(t =>
437
+ !completed.has(t.id) &&
438
+ !inProgress.has(t.id) &&
439
+ (t.deps || []).every(dep => completed.has(dep))
440
+ );
441
+
442
+ if (availableTasks.length === 0 && inProgress.size === 0) {
443
+ if (this.dashboard) this.dashboard.stop();
444
+ throw new Error("DAG deadlock detected.");
445
+ }
446
+
447
+ if (availableTasks.length === 0) {
448
+ await new Promise(r => setTimeout(r, 100));
449
+ continue;
450
+ }
451
+
452
+ availableTasks.forEach(t => inProgress.add(t.id));
453
+
454
+ const batchPromises = availableTasks.map(t =>
455
+ this.executeWorker(t, 60000).then(result => {
456
+ inProgress.delete(t.id);
457
+ completed.add(t.id);
458
+ this.results.push(result);
459
+ return result;
460
+ })
461
+ );
462
+
463
+ await Promise.allSettled(batchPromises);
464
+ }
465
+
466
+ if (this.dashboard) this.dashboard.stop();
467
+ return this.results;
468
+ }
469
+
413
470
  async executeWorker(worker, timeout) {
414
471
  const workerIndex = this.workers.indexOf(worker);
415
472
  if (this.dashboard && workerIndex !== -1) {
@@ -770,7 +827,7 @@ function main() {
770
827
  useTui = true;
771
828
  } else if (arg === '-h' || arg === '--help') {
772
829
  console.log(
773
- 'Usage: swarm_dispatcher.js [--payload <json>] [--file <path>] [--workspace <dir>] [--mode legacy|swarm] [--tui]',
830
+ 'Usage: swarm_dispatcher.js [--payload <json>] [--file <path>] [--workspace <dir>] [--mode legacy|swarm|dag] [--tui]',
774
831
  );
775
832
  process.exit(0);
776
833
  }
@@ -857,6 +914,22 @@ function main() {
857
914
  console.error(`ERROR: Swarm orchestration failed: ${err.message}`);
858
915
  process.exit(1);
859
916
  });
917
+ } else if (mode === 'dag') {
918
+ const orchestrator = new SwarmOrchestrator(useTui ? new SwarmDashboard([]) : null);
919
+ orchestrator.executeDAG(payloadData)
920
+ .then(results => {
921
+ if (!useTui) {
922
+ console.log('INFO: DAG orchestration successful.');
923
+ console.log('--- EXECUTION PLAN (MOCK RESULTS) ---');
924
+ console.log(JSON.stringify(results, null, 2));
925
+ } else {
926
+ console.log('\n\x1b[32m✔ DAG orchestration complete.\x1b[0m\n');
927
+ }
928
+ })
929
+ .catch(err => {
930
+ console.error(`ERROR: DAG orchestration failed: ${err.message}`);
931
+ process.exit(1);
932
+ });
860
933
  } else {
861
934
  if (!validatePayload(payloadData, workspaceRoot, agentsDir, file)) {
862
935
  console.error('ERROR: Payload validation failed.');
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * syscall_registry.js
4
+ * Centralized registry mapping permitted agent syscalls to their underlying script paths.
5
+ * Enforces execution security boundaries.
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ const path = require('path');
11
+ const { spawnSync } = require('child_process');
12
+
13
+ // Define allowed syscalls and their corresponding scripts
14
+ const SYSCALL_MAP = {
15
+ 'run_audit': {
16
+ script: 'checklist.js',
17
+ allowedArgs: ['--strict', '--fix', '.']
18
+ },
19
+ 'security_scan': {
20
+ script: 'security_scan.js',
21
+ allowedArgs: ['.']
22
+ },
23
+ 'lint_runner': {
24
+ script: 'lint_runner.js',
25
+ allowedArgs: ['--fix', '.']
26
+ },
27
+ 'schema_validator': {
28
+ script: 'schema_validator.js',
29
+ allowedArgs: ['.']
30
+ },
31
+ 'test_runner': {
32
+ script: 'test_runner.js',
33
+ allowedArgs: ['--coverage', '.']
34
+ },
35
+ 'dependency_analyzer': {
36
+ script: 'dependency_analyzer.js',
37
+ allowedArgs: ['--audit', '.']
38
+ }
39
+ };
40
+
41
+ /**
42
+ * Validates and executes a syscall securely.
43
+ * @param {string} syscall - The name of the syscall to execute
44
+ * @param {string[]} args - The arguments passed to the syscall
45
+ * @returns {object} { exitCode: number, stdout: string, stderr: string }
46
+ */
47
+ function executeSyscall(syscall, args = []) {
48
+ const config = SYSCALL_MAP[syscall];
49
+
50
+ if (!config) {
51
+ return {
52
+ exitCode: 1,
53
+ stdout: '',
54
+ stderr: `Security Exception: Syscall '${syscall}' is not recognized or permitted.`
55
+ };
56
+ }
57
+
58
+ // Argument validation: only allow arguments pre-approved in allowedArgs
59
+ const invalidArgs = args.filter(arg => !config.allowedArgs.includes(arg) && !arg.startsWith('--target=') && !arg.startsWith('--file='));
60
+ if (invalidArgs.length > 0) {
61
+ return {
62
+ exitCode: 1,
63
+ stdout: '',
64
+ stderr: `Security Exception: Invalid arguments for syscall '${syscall}': ${invalidArgs.join(', ')}`
65
+ };
66
+ }
67
+
68
+ // Prevent shell metacharacter injection
69
+ const shellMetaChars = /[;&|><$`\\]/;
70
+ const unsafeArgs = args.filter(arg => shellMetaChars.test(arg));
71
+ if (unsafeArgs.length > 0) {
72
+ return {
73
+ exitCode: 1,
74
+ stdout: '',
75
+ stderr: `Security Exception: Unsafe shell metacharacters detected in arguments.`
76
+ };
77
+ }
78
+
79
+ const scriptPath = path.join(__dirname, config.script);
80
+
81
+ try {
82
+ const result = spawnSync('node', [scriptPath, ...args], {
83
+ cwd: process.cwd(),
84
+ encoding: 'utf8',
85
+ timeout: 300000 // 5 minutes max execution time
86
+ });
87
+
88
+ return {
89
+ exitCode: result.status !== null ? result.status : 1,
90
+ stdout: result.stdout || '',
91
+ stderr: result.stderr || (result.error ? result.error.message : '')
92
+ };
93
+ } catch (err) {
94
+ return {
95
+ exitCode: 1,
96
+ stdout: '',
97
+ stderr: `Syscall execution failed: ${err.message}`
98
+ };
99
+ }
100
+ }
101
+
102
+ module.exports = {
103
+ SYSCALL_MAP,
104
+ executeSyscall
105
+ };
@@ -44,7 +44,7 @@ function runTests(label, cmd, cwd) {
44
44
  cwd,
45
45
  encoding: 'utf8',
46
46
  timeout: 300000, // 5m
47
- shell: process.platform === 'win32',
47
+ shell: false,
48
48
  });
49
49
 
50
50
  const ms = elapsed();