tribunal-kit 9.2.6 → 9.2.8

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 (836) hide show
  1. package/.agent/ARCHITECTURE.md +4 -4
  2. package/.agent/data/skill_certification_ledger.jsonl +40 -0
  3. package/.agent/data/skill_ontology.json +138 -0
  4. package/.agent/history/architecture-intelligence.html +1487 -401
  5. package/.agent/history/architecture-model.json +16130 -5802
  6. package/.agent/history/architecture-verification.json +6 -6
  7. package/.agent/routing_index.json +656 -1566
  8. package/.agent/rules/GEMINI.md +1 -1
  9. package/.agent/scripts/adaptive_execution.js +704 -0
  10. package/.agent/scripts/architecture_diff.js +60 -17
  11. package/.agent/scripts/architecture_extractor.js +60 -21
  12. package/.agent/scripts/architecture_health.js +58 -21
  13. package/.agent/scripts/architecture_intelligence.js +3100 -0
  14. package/.agent/scripts/architecture_verifier.js +46 -13
  15. package/.agent/scripts/architecture_visualizer.js +1536 -421
  16. package/.agent/scripts/blast_radius_engine.js +64 -24
  17. package/.agent/scripts/capability_evolution.js +555 -0
  18. package/.agent/scripts/concept_extractor.js +240 -0
  19. package/.agent/scripts/consideration_engine.js +284 -0
  20. package/.agent/scripts/context_broker.js +397 -31
  21. package/.agent/scripts/corpus_certification_orchestrator.js +502 -0
  22. package/.agent/scripts/corpus_validation_engine.js +311 -0
  23. package/.agent/scripts/coverage_engine.js +102 -0
  24. package/.agent/scripts/cross_domain_engine.js +1883 -0
  25. package/.agent/scripts/engineering_memory.js +1442 -0
  26. package/.agent/scripts/final_corpus_validation_engine.js +405 -0
  27. package/.agent/scripts/integrity_manifest.js +1 -5
  28. package/.agent/scripts/intent_extractor.js +130 -0
  29. package/.agent/scripts/judgment_engine.js +790 -0
  30. package/.agent/scripts/materiality_engine.js +251 -0
  31. package/.agent/scripts/outcome_engine.js +639 -0
  32. package/.agent/scripts/outcome_optimization_engine.js +1632 -0
  33. package/.agent/scripts/routing_evaluation_engine.js +184 -0
  34. package/.agent/scripts/simulation_engine.js +1478 -0
  35. package/.agent/scripts/skill_behavior_classifier.js +90 -0
  36. package/.agent/scripts/skill_behavior_harness.js +105 -0
  37. package/.agent/scripts/skill_certification_engine.js +586 -0
  38. package/.agent/scripts/skill_contract_engine.js +424 -0
  39. package/.agent/scripts/skill_coverage_expansion_engine.js +505 -0
  40. package/.agent/scripts/skill_evidence_acquisition_engine.js +535 -0
  41. package/.agent/scripts/skill_evidence_engine.js +83 -0
  42. package/.agent/scripts/skill_expectation_engine.js +38 -0
  43. package/.agent/scripts/skill_fixture_engine.js +24 -0
  44. package/.agent/scripts/skill_human_validation.js +32 -0
  45. package/.agent/scripts/skill_intelligence.js +1300 -0
  46. package/.agent/scripts/skill_observation_engine.js +25 -0
  47. package/.agent/scripts/skill_ontology_engine.js +83 -0
  48. package/.agent/scripts/skill_quality_engine.js +343 -0
  49. package/.agent/scripts/skill_reconstruction_engine.js +164 -0
  50. package/.agent/scripts/skill_remediation_engine.js +326 -0
  51. package/.agent/scripts/skill_scenario_engine.js +108 -0
  52. package/.agent/scripts/skill_test_authoring_engine.js +1011 -0
  53. package/.agent/scripts/verification_auditor.js +346 -0
  54. package/.agent/skill-intelligence/taxonomy/engineering-concepts.json +555 -0
  55. package/.agent/skill_topic_map.json +15 -55
  56. package/.agent/skills/12-principles-of-animation/SKILL.md +9 -0
  57. package/.agent/skills/60fps-animation/SKILL.md +14 -0
  58. package/.agent/skills/accessible-animation/SKILL.md +9 -0
  59. package/.agent/skills/adapt/SKILL.md +8 -0
  60. package/.agent/skills/adr-generation/SKILL.md +9 -0
  61. package/.agent/skills/advanced-rag-pipelines/SKILL.md +9 -0
  62. package/.agent/skills/agent-organizer/SKILL.md +8 -0
  63. package/.agent/skills/agent-syscall-guidelines/SKILL.md +10 -0
  64. package/.agent/skills/agentic-patterns/SKILL.md +9 -0
  65. package/.agent/skills/agentic-workflows-2026/SKILL.md +8 -0
  66. package/.agent/skills/agentshield-security/SKILL.md +16 -0
  67. package/.agent/skills/ai-app-hardening/SKILL.md +7 -0
  68. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +9 -0
  69. package/.agent/skills/animation-on-scroll/SKILL.md +9 -0
  70. package/.agent/skills/animation-systems/SKILL.md +8 -0
  71. package/.agent/skills/antfu-conventions/SKILL.md +9 -0
  72. package/.agent/skills/anti-slop-enforcement/SKILL.md +11 -0
  73. package/.agent/skills/api-patterns/SKILL.md +9 -0
  74. package/.agent/skills/api-security-auditor/SKILL.md +10 -0
  75. package/.agent/skills/app-builder/SKILL.md +8 -0
  76. package/.agent/skills/appflow-wireframe/SKILL.md +9 -0
  77. package/.agent/skills/apple-design/SKILL.md +8 -0
  78. package/.agent/skills/architecture/SKILL.md +8 -0
  79. package/.agent/skills/architecture-drift/SKILL.md +9 -0
  80. package/.agent/skills/architecture-intelligence/SKILL.md +17 -0
  81. package/.agent/skills/audit-and-fix/SKILL.md +8 -0
  82. package/.agent/skills/authentication-best-practices/SKILL.md +10 -0
  83. package/.agent/skills/autonomous-execution/SKILL.md +9 -0
  84. package/.agent/skills/backend-alembic/SKILL.md +16 -0
  85. package/.agent/skills/backend-architecture-auditor/SKILL.md +16 -0
  86. package/.agent/skills/backend-mongodb/SKILL.md +10 -0
  87. package/.agent/skills/backend-mysql/SKILL.md +16 -0
  88. package/.agent/skills/backend-performance-auditor/SKILL.md +10 -0
  89. package/.agent/skills/backend-postgresql/SKILL.md +10 -0
  90. package/.agent/skills/backend-redis/SKILL.md +10 -0
  91. package/.agent/skills/backend-security-expert/SKILL.md +10 -0
  92. package/.agent/skills/backend-sqlalchemy/SKILL.md +10 -0
  93. package/.agent/skills/backend-sqlite/SKILL.md +10 -0
  94. package/.agent/skills/backend-testing-auditor/SKILL.md +15 -0
  95. package/.agent/skills/baseline-ui/SKILL.md +8 -0
  96. package/.agent/skills/bash-linux/SKILL.md +9 -0
  97. package/.agent/skills/behavioral-modes/SKILL.md +9 -0
  98. package/.agent/skills/better-colors/SKILL.md +9 -0
  99. package/.agent/skills/better-typography/SKILL.md +9 -0
  100. package/.agent/skills/better-ui/SKILL.md +8 -0
  101. package/.agent/skills/bolder/SKILL.md +8 -0
  102. package/.agent/skills/brainstorming/SKILL.md +8 -0
  103. package/.agent/skills/browser-audit/SKILL.md +9 -0
  104. package/.agent/skills/browser-native-ai/SKILL.md +8 -0
  105. package/.agent/skills/build-primitive/SKILL.md +8 -0
  106. package/.agent/skills/building-native-ui/SKILL.md +7 -0
  107. package/.agent/skills/cicd-pro/SKILL.md +9 -0
  108. package/.agent/skills/clarify/SKILL.md +8 -0
  109. package/.agent/skills/clean-code/SKILL.md +8 -0
  110. package/.agent/skills/cloud-architect/SKILL.md +8 -0
  111. package/.agent/skills/cobejs/SKILL.md +8 -0
  112. package/.agent/skills/code-review-checklist/SKILL.md +9 -0
  113. package/.agent/skills/codebase-design/SKILL.md +14 -0
  114. package/.agent/skills/colorize/SKILL.md +8 -0
  115. package/.agent/skills/compact-landing/SKILL.md +9 -0
  116. package/.agent/skills/company-logos/SKILL.md +9 -0
  117. package/.agent/skills/config-validator/SKILL.md +9 -0
  118. package/.agent/skills/containerization-pro/SKILL.md +9 -0
  119. package/.agent/skills/context-engineering-pro/SKILL.md +10 -0
  120. package/.agent/skills/create-design-md/SKILL.md +7 -0
  121. package/.agent/skills/critique/SKILL.md +8 -0
  122. package/.agent/skills/csharp-developer/SKILL.md +9 -0
  123. package/.agent/skills/data-validation-schemas/SKILL.md +8 -0
  124. package/.agent/skills/database-design/SKILL.md +8 -0
  125. package/.agent/skills/delight/SKILL.md +8 -0
  126. package/.agent/skills/deployment-procedures/SKILL.md +9 -0
  127. package/.agent/skills/design-lab/SKILL.md +8 -0
  128. package/.agent/skills/devops-engineer/SKILL.md +9 -0
  129. package/.agent/skills/devops-incident-responder/SKILL.md +16 -0
  130. package/.agent/skills/diagnosing-bugs/SKILL.md +9 -0
  131. package/.agent/skills/distill/SKILL.md +8 -0
  132. package/.agent/skills/documentation-templates/SKILL.md +9 -0
  133. package/.agent/skills/domain-modeling/SKILL.md +9 -0
  134. package/.agent/skills/duckdb-analytical-sql/SKILL.md +10 -0
  135. package/.agent/skills/edge-ai-mobile/SKILL.md +8 -0
  136. package/.agent/skills/edge-computing/SKILL.md +9 -0
  137. package/.agent/skills/emil-design-eng/SKILL.md +9 -0
  138. package/.agent/skills/error-resilience/SKILL.md +8 -0
  139. package/.agent/skills/expo-router-v4/SKILL.md +9 -0
  140. package/.agent/skills/extract-design-system/SKILL.md +9 -0
  141. package/.agent/skills/fabel-protocol/SKILL.md +9 -0
  142. package/.agent/skills/failure-mode-analysis/SKILL.md +10 -0
  143. package/.agent/skills/fastapi-pro/SKILL.md +9 -0
  144. package/.agent/skills/fixing-accessibility/SKILL.md +9 -0
  145. package/.agent/skills/fixing-metadata/SKILL.md +9 -0
  146. package/.agent/skills/fixing-motion-performance/SKILL.md +9 -0
  147. package/.agent/skills/framer-motion-expert/SKILL.md +9 -0
  148. package/.agent/skills/frontend-design/SKILL.md +7 -0
  149. package/.agent/skills/frontend-security-expert/SKILL.md +9 -0
  150. package/.agent/skills/game-design-expert/SKILL.md +9 -0
  151. package/.agent/skills/game-engineering-expert/SKILL.md +16 -0
  152. package/.agent/skills/generative-ui-expert/SKILL.md +9 -0
  153. package/.agent/skills/geo-fundamentals/SKILL.md +9 -0
  154. package/.agent/skills/git-pro/SKILL.md +9 -0
  155. package/.agent/skills/github-operations/SKILL.md +9 -0
  156. package/.agent/skills/gpt-taste/SKILL.md +9 -0
  157. package/.agent/skills/graph-engineering/SKILL.md +16 -0
  158. package/.agent/skills/gsap-core/SKILL.md +9 -0
  159. package/.agent/skills/gsap-frameworks/SKILL.md +9 -0
  160. package/.agent/skills/gsap-performance/SKILL.md +9 -0
  161. package/.agent/skills/gsap-plugins/SKILL.md +9 -0
  162. package/.agent/skills/gsap-react/SKILL.md +9 -0
  163. package/.agent/skills/gsap-scrolltrigger/SKILL.md +9 -0
  164. package/.agent/skills/gsap-timeline/SKILL.md +9 -0
  165. package/.agent/skills/gsap-utils/SKILL.md +9 -0
  166. package/.agent/skills/harden/SKILL.md +8 -0
  167. package/.agent/skills/harness-protocol/SKILL.md +9 -0
  168. package/.agent/skills/hf-cli/SKILL.md +11 -0
  169. package/.agent/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
  170. package/.agent/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
  171. package/.agent/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
  172. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
  173. package/.agent/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
  174. package/.agent/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
  175. package/.agent/skills/hf-mem/SKILL.md +11 -0
  176. package/.agent/skills/huggingface-best/SKILL.md +9 -0
  177. package/.agent/skills/huggingface-community-evals/SKILL.md +11 -0
  178. package/.agent/skills/huggingface-datasets/SKILL.md +10 -0
  179. package/.agent/skills/huggingface-gradio/SKILL.md +10 -0
  180. package/.agent/skills/huggingface-llm-trainer/SKILL.md +10 -0
  181. package/.agent/skills/huggingface-local-models/SKILL.md +10 -0
  182. package/.agent/skills/huggingface-lora-space-builder/SKILL.md +11 -0
  183. package/.agent/skills/huggingface-paper-publisher/SKILL.md +11 -0
  184. package/.agent/skills/huggingface-papers/SKILL.md +11 -0
  185. package/.agent/skills/huggingface-spaces/SKILL.md +10 -0
  186. package/.agent/skills/huggingface-tool-builder/SKILL.md +11 -0
  187. package/.agent/skills/huggingface-trackio/SKILL.md +11 -0
  188. package/.agent/skills/huggingface-vision-trainer/SKILL.md +11 -0
  189. package/.agent/skills/huggingface-zerogpu/SKILL.md +11 -0
  190. package/.agent/skills/human-gate-negotiation/SKILL.md +11 -0
  191. package/.agent/skills/i18n-localization/SKILL.md +9 -0
  192. package/.agent/skills/impeccable/SKILL.md +8 -0
  193. package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -0
  194. package/.agent/skills/improve-ui/SKILL.md +8 -0
  195. package/.agent/skills/intelligent-routing/SKILL.md +9 -0
  196. package/.agent/skills/knowledge-graph/SKILL.md +9 -0
  197. package/.agent/skills/landing-page/SKILL.md +9 -0
  198. package/.agent/skills/lint-and-validate/SKILL.md +9 -0
  199. package/.agent/skills/llm-engineering/SKILL.md +9 -0
  200. package/.agent/skills/local-first/SKILL.md +10 -0
  201. package/.agent/skills/lottie-animation/SKILL.md +9 -0
  202. package/.agent/skills/marquee-loop/SKILL.md +9 -0
  203. package/.agent/skills/masked-reveal/SKILL.md +9 -0
  204. package/.agent/skills/mcp-builder/SKILL.md +9 -0
  205. package/.agent/skills/micro-interaction/SKILL.md +9 -0
  206. package/.agent/skills/mobile-design/SKILL.md +7 -0
  207. package/.agent/skills/monorepo-management/SKILL.md +9 -0
  208. package/.agent/skills/morphing-icons/SKILL.md +9 -0
  209. package/.agent/skills/motion-engineering/SKILL.md +8 -0
  210. package/.agent/skills/nextjs-react-expert/SKILL.md +10 -0
  211. package/.agent/skills/nodejs-best-practices/SKILL.md +16 -0
  212. package/.agent/skills/observability/SKILL.md +8 -0
  213. package/.agent/skills/opentelemetry-observability/SKILL.md +9 -0
  214. package/.agent/skills/page-transition-animation/SKILL.md +10 -0
  215. package/.agent/skills/parallel-agents/SKILL.md +15 -0
  216. package/.agent/skills/performance-profiling/SKILL.md +9 -0
  217. package/.agent/skills/plan-writing/SKILL.md +8 -0
  218. package/.agent/skills/platform-engineer/SKILL.md +9 -0
  219. package/.agent/skills/platform-engineering-opentofu/SKILL.md +10 -0
  220. package/.agent/skills/playwright-ai-e2e/SKILL.md +9 -0
  221. package/.agent/skills/playwright-best-practices/SKILL.md +16 -0
  222. package/.agent/skills/polish/SKILL.md +8 -0
  223. package/.agent/skills/powershell-windows/SKILL.md +9 -0
  224. package/.agent/skills/pricing-page/SKILL.md +9 -0
  225. package/.agent/skills/product-aware-heuristics/SKILL.md +10 -0
  226. package/.agent/skills/progressive-blur/SKILL.md +9 -0
  227. package/.agent/skills/project-idioms/SKILL.md +8 -0
  228. package/.agent/skills/property-based-testing/SKILL.md +9 -0
  229. package/.agent/skills/python-patterns/SKILL.md +9 -0
  230. package/.agent/skills/python-pro/SKILL.md +9 -0
  231. package/.agent/skills/quieter/SKILL.md +8 -0
  232. package/.agent/skills/react-doctor/SKILL.md +9 -0
  233. package/.agent/skills/react-specialist/SKILL.md +9 -0
  234. package/.agent/skills/readme-builder/SKILL.md +9 -0
  235. package/.agent/skills/realtime-patterns/SKILL.md +9 -0
  236. package/.agent/skills/red-team-tactics/SKILL.md +16 -0
  237. package/.agent/skills/redesign-skill/SKILL.md +9 -0
  238. package/.agent/skills/review-animations/SKILL.md +8 -0
  239. package/.agent/skills/rust-pro/SKILL.md +9 -0
  240. package/.agent/skills/semantic-filesystem-navigation/SKILL.md +11 -0
  241. package/.agent/skills/seo-fundamentals/SKILL.md +9 -0
  242. package/.agent/skills/server-management/SKILL.md +8 -0
  243. package/.agent/skills/session-log-interrogation/SKILL.md +11 -0
  244. package/.agent/skills/shadcn-ui-expert/SKILL.md +9 -0
  245. package/.agent/skills/shape/SKILL.md +8 -0
  246. package/.agent/skills/skill-creator/SKILL.md +9 -0
  247. package/.agent/skills/soft-skill/SKILL.md +9 -0
  248. package/.agent/skills/sounds-on-the-web/SKILL.md +9 -0
  249. package/.agent/skills/sql-pro/SKILL.md +9 -0
  250. package/.agent/skills/subagent-driven-development/SKILL.md +11 -0
  251. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +17 -0
  252. package/.agent/skills/svg-animation/SKILL.md +9 -0
  253. package/.agent/skills/swiftui-expert/SKILL.md +9 -0
  254. package/.agent/skills/swiss-design/SKILL.md +8 -0
  255. package/.agent/skills/system-design-pro/SKILL.md +9 -0
  256. package/.agent/skills/systematic-debugging/SKILL.md +14 -0
  257. package/.agent/skills/tailwind-patterns/SKILL.md +9 -0
  258. package/.agent/skills/taste-skill/SKILL.md +9 -0
  259. package/.agent/skills/tdd-workflow/SKILL.md +9 -0
  260. package/.agent/skills/test-result-analyzer/SKILL.md +9 -0
  261. package/.agent/skills/testing-patterns/SKILL.md +8 -0
  262. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
  263. package/.agent/skills/thinking-protocol/SKILL.md +10 -0
  264. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
  265. package/.agent/skills/train-sentence-transformers/SKILL.md +10 -0
  266. package/.agent/skills/transformers-js/SKILL.md +8 -0
  267. package/.agent/skills/transitions-dev/SKILL.md +8 -0
  268. package/.agent/skills/trend-researcher/SKILL.md +9 -0
  269. package/.agent/skills/tribunal-instincts-memory/SKILL.md +11 -0
  270. package/.agent/skills/trl-training/SKILL.md +9 -0
  271. package/.agent/skills/typescript-advanced/SKILL.md +9 -0
  272. package/.agent/skills/typeset/SKILL.md +8 -0
  273. package/.agent/skills/ui-reasoning-engine/SKILL.md +9 -0
  274. package/.agent/skills/ui-skill-packs/SKILL.md +9 -0
  275. package/.agent/skills/ui-skills-root/SKILL.md +9 -0
  276. package/.agent/skills/ui-ux-pro-max/SKILL.md +9 -0
  277. package/.agent/skills/ui-ux-researcher/SKILL.md +8 -0
  278. package/.agent/skills/vector-search-pgvector/SKILL.md +10 -0
  279. package/.agent/skills/verification-before-completion/SKILL.md +9 -0
  280. package/.agent/skills/vue-expert/SKILL.md +9 -0
  281. package/.agent/skills/vulnerability-scanner/SKILL.md +9 -0
  282. package/.agent/skills/web-accessibility-auditor/SKILL.md +16 -0
  283. package/.agent/skills/web-design-guidelines/SKILL.md +9 -0
  284. package/.agent/skills/web-quality-audit/SKILL.md +10 -0
  285. package/.agent/skills/webapp-testing/SKILL.md +8 -0
  286. package/.agent/skills/webgpu-performance/SKILL.md +9 -0
  287. package/.agent/skills/whimsy-injector/SKILL.md +9 -0
  288. package/.agent/skills/workflow-optimizer/SKILL.md +9 -0
  289. package/.agent/skills/zero-trust-passkeys/SKILL.md +10 -0
  290. package/.agent/skills_inventory.json +502 -3167
  291. package/.agent/workflows/arch.md +96 -80
  292. package/.agent/workflows/skill-intelligence.md +216 -0
  293. package/.agents/skills/12-principles-of-animation/SKILL.md +9 -0
  294. package/.agents/skills/60fps-animation/SKILL.md +14 -0
  295. package/.agents/skills/accessible-animation/SKILL.md +9 -0
  296. package/.agents/skills/adapt/SKILL.md +8 -0
  297. package/.agents/skills/adr-generation/SKILL.md +9 -0
  298. package/.agents/skills/advanced-rag-pipelines/SKILL.md +9 -0
  299. package/.agents/skills/agent-organizer/SKILL.md +8 -0
  300. package/.agents/skills/agent-syscall-guidelines/SKILL.md +10 -0
  301. package/.agents/skills/agentic-patterns/SKILL.md +9 -0
  302. package/.agents/skills/agentic-workflows-2026/SKILL.md +8 -0
  303. package/.agents/skills/agentshield-security/SKILL.md +16 -0
  304. package/.agents/skills/ai-app-hardening/SKILL.md +7 -0
  305. package/.agents/skills/ai-prompt-injection-defense/SKILL.md +9 -0
  306. package/.agents/skills/animation-on-scroll/SKILL.md +9 -0
  307. package/.agents/skills/animation-systems/SKILL.md +8 -0
  308. package/.agents/skills/antfu-conventions/SKILL.md +9 -0
  309. package/.agents/skills/anti-slop-enforcement/SKILL.md +11 -0
  310. package/.agents/skills/api-patterns/SKILL.md +9 -0
  311. package/.agents/skills/api-security-auditor/SKILL.md +10 -0
  312. package/.agents/skills/app-builder/SKILL.md +8 -0
  313. package/.agents/skills/appflow-wireframe/SKILL.md +9 -0
  314. package/.agents/skills/apple-design/SKILL.md +8 -0
  315. package/.agents/skills/architecture/SKILL.md +8 -0
  316. package/.agents/skills/architecture-drift/SKILL.md +9 -0
  317. package/.agents/skills/architecture-intelligence/SKILL.md +17 -0
  318. package/.agents/skills/audit-and-fix/SKILL.md +8 -0
  319. package/.agents/skills/authentication-best-practices/SKILL.md +10 -0
  320. package/.agents/skills/autonomous-execution/SKILL.md +9 -0
  321. package/.agents/skills/backend-alembic/SKILL.md +16 -0
  322. package/.agents/skills/backend-architecture-auditor/SKILL.md +16 -0
  323. package/.agents/skills/backend-mongodb/SKILL.md +10 -0
  324. package/.agents/skills/backend-mysql/SKILL.md +16 -0
  325. package/.agents/skills/backend-performance-auditor/SKILL.md +10 -0
  326. package/.agents/skills/backend-postgresql/SKILL.md +10 -0
  327. package/.agents/skills/backend-redis/SKILL.md +10 -0
  328. package/.agents/skills/backend-security-expert/SKILL.md +10 -0
  329. package/.agents/skills/backend-sqlalchemy/SKILL.md +10 -0
  330. package/.agents/skills/backend-sqlite/SKILL.md +10 -0
  331. package/.agents/skills/backend-testing-auditor/SKILL.md +15 -0
  332. package/.agents/skills/baseline-ui/SKILL.md +8 -0
  333. package/.agents/skills/bash-linux/SKILL.md +9 -0
  334. package/.agents/skills/behavioral-modes/SKILL.md +9 -0
  335. package/.agents/skills/better-colors/SKILL.md +9 -0
  336. package/.agents/skills/better-typography/SKILL.md +9 -0
  337. package/.agents/skills/better-ui/SKILL.md +8 -0
  338. package/.agents/skills/bolder/SKILL.md +8 -0
  339. package/.agents/skills/brainstorming/SKILL.md +8 -0
  340. package/.agents/skills/browser-audit/SKILL.md +9 -0
  341. package/.agents/skills/browser-native-ai/SKILL.md +8 -0
  342. package/.agents/skills/build-primitive/SKILL.md +8 -0
  343. package/.agents/skills/building-native-ui/SKILL.md +7 -0
  344. package/.agents/skills/cicd-pro/SKILL.md +9 -0
  345. package/.agents/skills/clarify/SKILL.md +8 -0
  346. package/.agents/skills/clean-code/SKILL.md +8 -0
  347. package/.agents/skills/cloud-architect/SKILL.md +8 -0
  348. package/.agents/skills/cobejs/SKILL.md +8 -0
  349. package/.agents/skills/code-review-checklist/SKILL.md +9 -0
  350. package/.agents/skills/codebase-design/SKILL.md +14 -0
  351. package/.agents/skills/colorize/SKILL.md +8 -0
  352. package/.agents/skills/compact-landing/SKILL.md +9 -0
  353. package/.agents/skills/company-logos/SKILL.md +9 -0
  354. package/.agents/skills/config-validator/SKILL.md +9 -0
  355. package/.agents/skills/containerization-pro/SKILL.md +9 -0
  356. package/.agents/skills/context-engineering-pro/SKILL.md +10 -0
  357. package/.agents/skills/create-design-md/SKILL.md +7 -0
  358. package/.agents/skills/critique/SKILL.md +8 -0
  359. package/.agents/skills/csharp-developer/SKILL.md +9 -0
  360. package/.agents/skills/data-validation-schemas/SKILL.md +8 -0
  361. package/.agents/skills/database-design/SKILL.md +8 -0
  362. package/.agents/skills/delight/SKILL.md +8 -0
  363. package/.agents/skills/deployment-procedures/SKILL.md +9 -0
  364. package/.agents/skills/design-lab/SKILL.md +8 -0
  365. package/.agents/skills/devops-engineer/SKILL.md +9 -0
  366. package/.agents/skills/devops-incident-responder/SKILL.md +16 -0
  367. package/.agents/skills/diagnosing-bugs/SKILL.md +9 -0
  368. package/.agents/skills/distill/SKILL.md +8 -0
  369. package/.agents/skills/documentation-templates/SKILL.md +9 -0
  370. package/.agents/skills/domain-modeling/SKILL.md +9 -0
  371. package/.agents/skills/duckdb-analytical-sql/SKILL.md +10 -0
  372. package/.agents/skills/edge-ai-mobile/SKILL.md +8 -0
  373. package/.agents/skills/edge-computing/SKILL.md +9 -0
  374. package/.agents/skills/emil-design-eng/SKILL.md +9 -0
  375. package/.agents/skills/error-resilience/SKILL.md +8 -0
  376. package/.agents/skills/expo-router-v4/SKILL.md +9 -0
  377. package/.agents/skills/extract-design-system/SKILL.md +9 -0
  378. package/.agents/skills/fabel-protocol/SKILL.md +9 -0
  379. package/.agents/skills/failure-mode-analysis/SKILL.md +10 -0
  380. package/.agents/skills/fastapi-pro/SKILL.md +9 -0
  381. package/.agents/skills/fixing-accessibility/SKILL.md +9 -0
  382. package/.agents/skills/fixing-metadata/SKILL.md +9 -0
  383. package/.agents/skills/fixing-motion-performance/SKILL.md +9 -0
  384. package/.agents/skills/framer-motion-expert/SKILL.md +9 -0
  385. package/.agents/skills/frontend-design/SKILL.md +7 -0
  386. package/.agents/skills/frontend-security-expert/SKILL.md +9 -0
  387. package/.agents/skills/game-design-expert/SKILL.md +9 -0
  388. package/.agents/skills/game-engineering-expert/SKILL.md +16 -0
  389. package/.agents/skills/generative-ui-expert/SKILL.md +9 -0
  390. package/.agents/skills/geo-fundamentals/SKILL.md +9 -0
  391. package/.agents/skills/git-pro/SKILL.md +9 -0
  392. package/.agents/skills/github-operations/SKILL.md +9 -0
  393. package/.agents/skills/gpt-taste/SKILL.md +9 -0
  394. package/.agents/skills/graph-engineering/SKILL.md +16 -0
  395. package/.agents/skills/gsap-core/SKILL.md +9 -0
  396. package/.agents/skills/gsap-frameworks/SKILL.md +9 -0
  397. package/.agents/skills/gsap-performance/SKILL.md +9 -0
  398. package/.agents/skills/gsap-plugins/SKILL.md +9 -0
  399. package/.agents/skills/gsap-react/SKILL.md +9 -0
  400. package/.agents/skills/gsap-scrolltrigger/SKILL.md +9 -0
  401. package/.agents/skills/gsap-timeline/SKILL.md +9 -0
  402. package/.agents/skills/gsap-utils/SKILL.md +9 -0
  403. package/.agents/skills/harden/SKILL.md +8 -0
  404. package/.agents/skills/harness-protocol/SKILL.md +9 -0
  405. package/.agents/skills/hf-cli/SKILL.md +11 -0
  406. package/.agents/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
  407. package/.agents/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
  408. package/.agents/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
  409. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
  410. package/.agents/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
  411. package/.agents/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
  412. package/.agents/skills/hf-mem/SKILL.md +11 -0
  413. package/.agents/skills/huggingface-best/SKILL.md +9 -0
  414. package/.agents/skills/huggingface-community-evals/SKILL.md +11 -0
  415. package/.agents/skills/huggingface-datasets/SKILL.md +10 -0
  416. package/.agents/skills/huggingface-gradio/SKILL.md +10 -0
  417. package/.agents/skills/huggingface-llm-trainer/SKILL.md +10 -0
  418. package/.agents/skills/huggingface-local-models/SKILL.md +10 -0
  419. package/.agents/skills/huggingface-lora-space-builder/SKILL.md +11 -0
  420. package/.agents/skills/huggingface-paper-publisher/SKILL.md +11 -0
  421. package/.agents/skills/huggingface-papers/SKILL.md +11 -0
  422. package/.agents/skills/huggingface-spaces/SKILL.md +10 -0
  423. package/.agents/skills/huggingface-tool-builder/SKILL.md +11 -0
  424. package/.agents/skills/huggingface-trackio/SKILL.md +11 -0
  425. package/.agents/skills/huggingface-vision-trainer/SKILL.md +11 -0
  426. package/.agents/skills/huggingface-zerogpu/SKILL.md +11 -0
  427. package/.agents/skills/human-gate-negotiation/SKILL.md +11 -0
  428. package/.agents/skills/i18n-localization/SKILL.md +9 -0
  429. package/.agents/skills/impeccable/SKILL.md +8 -0
  430. package/.agents/skills/improve-codebase-architecture/SKILL.md +10 -0
  431. package/.agents/skills/improve-ui/SKILL.md +8 -0
  432. package/.agents/skills/intelligent-routing/SKILL.md +9 -0
  433. package/.agents/skills/knowledge-graph/SKILL.md +9 -0
  434. package/.agents/skills/landing-page/SKILL.md +9 -0
  435. package/.agents/skills/lint-and-validate/SKILL.md +9 -0
  436. package/.agents/skills/llm-engineering/SKILL.md +9 -0
  437. package/.agents/skills/local-first/SKILL.md +10 -0
  438. package/.agents/skills/lottie-animation/SKILL.md +9 -0
  439. package/.agents/skills/marquee-loop/SKILL.md +9 -0
  440. package/.agents/skills/masked-reveal/SKILL.md +9 -0
  441. package/.agents/skills/mcp-builder/SKILL.md +9 -0
  442. package/.agents/skills/micro-interaction/SKILL.md +9 -0
  443. package/.agents/skills/mobile-design/SKILL.md +7 -0
  444. package/.agents/skills/monorepo-management/SKILL.md +9 -0
  445. package/.agents/skills/morphing-icons/SKILL.md +9 -0
  446. package/.agents/skills/motion-engineering/SKILL.md +8 -0
  447. package/.agents/skills/nextjs-react-expert/SKILL.md +10 -0
  448. package/.agents/skills/nodejs-best-practices/SKILL.md +16 -0
  449. package/.agents/skills/observability/SKILL.md +8 -0
  450. package/.agents/skills/opentelemetry-observability/SKILL.md +9 -0
  451. package/.agents/skills/page-transition-animation/SKILL.md +10 -0
  452. package/.agents/skills/parallel-agents/SKILL.md +15 -0
  453. package/.agents/skills/performance-profiling/SKILL.md +9 -0
  454. package/.agents/skills/plan-writing/SKILL.md +8 -0
  455. package/.agents/skills/platform-engineer/SKILL.md +9 -0
  456. package/.agents/skills/platform-engineering-opentofu/SKILL.md +10 -0
  457. package/.agents/skills/playwright-ai-e2e/SKILL.md +9 -0
  458. package/.agents/skills/playwright-best-practices/SKILL.md +16 -0
  459. package/.agents/skills/polish/SKILL.md +8 -0
  460. package/.agents/skills/powershell-windows/SKILL.md +9 -0
  461. package/.agents/skills/pricing-page/SKILL.md +9 -0
  462. package/.agents/skills/product-aware-heuristics/SKILL.md +10 -0
  463. package/.agents/skills/progressive-blur/SKILL.md +9 -0
  464. package/.agents/skills/project-idioms/SKILL.md +8 -0
  465. package/.agents/skills/property-based-testing/SKILL.md +9 -0
  466. package/.agents/skills/python-patterns/SKILL.md +9 -0
  467. package/.agents/skills/python-pro/SKILL.md +9 -0
  468. package/.agents/skills/quieter/SKILL.md +8 -0
  469. package/.agents/skills/react-doctor/SKILL.md +9 -0
  470. package/.agents/skills/react-specialist/SKILL.md +9 -0
  471. package/.agents/skills/readme-builder/SKILL.md +9 -0
  472. package/.agents/skills/realtime-patterns/SKILL.md +9 -0
  473. package/.agents/skills/red-team-tactics/SKILL.md +16 -0
  474. package/.agents/skills/redesign-skill/SKILL.md +9 -0
  475. package/.agents/skills/review-animations/SKILL.md +8 -0
  476. package/.agents/skills/rust-pro/SKILL.md +9 -0
  477. package/.agents/skills/semantic-filesystem-navigation/SKILL.md +11 -0
  478. package/.agents/skills/seo-fundamentals/SKILL.md +9 -0
  479. package/.agents/skills/server-management/SKILL.md +8 -0
  480. package/.agents/skills/session-log-interrogation/SKILL.md +11 -0
  481. package/.agents/skills/shadcn-ui-expert/SKILL.md +9 -0
  482. package/.agents/skills/shape/SKILL.md +8 -0
  483. package/.agents/skills/skill-creator/SKILL.md +9 -0
  484. package/.agents/skills/soft-skill/SKILL.md +9 -0
  485. package/.agents/skills/sounds-on-the-web/SKILL.md +9 -0
  486. package/.agents/skills/sql-pro/SKILL.md +9 -0
  487. package/.agents/skills/subagent-driven-development/SKILL.md +11 -0
  488. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +17 -0
  489. package/.agents/skills/svg-animation/SKILL.md +9 -0
  490. package/.agents/skills/swiftui-expert/SKILL.md +9 -0
  491. package/.agents/skills/swiss-design/SKILL.md +8 -0
  492. package/.agents/skills/system-design-pro/SKILL.md +9 -0
  493. package/.agents/skills/systematic-debugging/SKILL.md +14 -0
  494. package/.agents/skills/tailwind-patterns/SKILL.md +9 -0
  495. package/.agents/skills/taste-skill/SKILL.md +9 -0
  496. package/.agents/skills/tdd-workflow/SKILL.md +9 -0
  497. package/.agents/skills/test-result-analyzer/SKILL.md +9 -0
  498. package/.agents/skills/testing-patterns/SKILL.md +8 -0
  499. package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
  500. package/.agents/skills/thinking-protocol/SKILL.md +10 -0
  501. package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
  502. package/.agents/skills/train-sentence-transformers/SKILL.md +10 -0
  503. package/.agents/skills/transformers-js/SKILL.md +8 -0
  504. package/.agents/skills/transitions-dev/SKILL.md +8 -0
  505. package/.agents/skills/trend-researcher/SKILL.md +9 -0
  506. package/.agents/skills/tribunal-instincts-memory/SKILL.md +11 -0
  507. package/.agents/skills/trl-training/SKILL.md +9 -0
  508. package/.agents/skills/typescript-advanced/SKILL.md +9 -0
  509. package/.agents/skills/typeset/SKILL.md +8 -0
  510. package/.agents/skills/ui-reasoning-engine/SKILL.md +9 -0
  511. package/.agents/skills/ui-skill-packs/SKILL.md +9 -0
  512. package/.agents/skills/ui-skills-root/SKILL.md +9 -0
  513. package/.agents/skills/ui-ux-pro-max/SKILL.md +9 -0
  514. package/.agents/skills/ui-ux-researcher/SKILL.md +8 -0
  515. package/.agents/skills/vector-search-pgvector/SKILL.md +10 -0
  516. package/.agents/skills/verification-before-completion/SKILL.md +9 -0
  517. package/.agents/skills/vue-expert/SKILL.md +9 -0
  518. package/.agents/skills/vulnerability-scanner/SKILL.md +9 -0
  519. package/.agents/skills/web-accessibility-auditor/SKILL.md +16 -0
  520. package/.agents/skills/web-design-guidelines/SKILL.md +9 -0
  521. package/.agents/skills/web-quality-audit/SKILL.md +10 -0
  522. package/.agents/skills/webapp-testing/SKILL.md +8 -0
  523. package/.agents/skills/webgpu-performance/SKILL.md +9 -0
  524. package/.agents/skills/whimsy-injector/SKILL.md +9 -0
  525. package/.agents/skills/workflow-optimizer/SKILL.md +9 -0
  526. package/.agents/skills/zero-trust-passkeys/SKILL.md +10 -0
  527. package/CONTRIBUTING.md +2 -2
  528. package/README.md +25 -25
  529. package/bin/adapter-install.js +1 -1
  530. package/bin/mcp-server.js +249 -0
  531. package/package.json +11 -8
  532. package/plugins/core-plugin.json +1 -1
  533. package/plugins/gemini/extension.json +1 -1
  534. package/skills/12-principles-of-animation/SKILL.md +9 -0
  535. package/skills/60fps-animation/SKILL.md +14 -0
  536. package/skills/accessible-animation/SKILL.md +9 -0
  537. package/skills/adapt/SKILL.md +8 -0
  538. package/skills/adr-generation/SKILL.md +9 -0
  539. package/skills/advanced-rag-pipelines/SKILL.md +9 -0
  540. package/skills/agent-organizer/SKILL.md +8 -0
  541. package/skills/agent-syscall-guidelines/SKILL.md +10 -0
  542. package/skills/agentic-patterns/SKILL.md +9 -0
  543. package/skills/agentic-workflows-2026/SKILL.md +8 -0
  544. package/skills/agentshield-security/SKILL.md +16 -0
  545. package/skills/ai-app-hardening/SKILL.md +7 -0
  546. package/skills/ai-prompt-injection-defense/SKILL.md +9 -0
  547. package/skills/animation-on-scroll/SKILL.md +9 -0
  548. package/skills/animation-systems/SKILL.md +8 -0
  549. package/skills/antfu-conventions/SKILL.md +9 -0
  550. package/skills/anti-slop-enforcement/SKILL.md +11 -0
  551. package/skills/api-patterns/SKILL.md +9 -0
  552. package/skills/api-security-auditor/SKILL.md +10 -0
  553. package/skills/app-builder/SKILL.md +8 -0
  554. package/skills/appflow-wireframe/SKILL.md +9 -0
  555. package/skills/apple-design/SKILL.md +8 -0
  556. package/skills/architecture/SKILL.md +8 -0
  557. package/skills/architecture-drift/SKILL.md +9 -0
  558. package/skills/architecture-intelligence/SKILL.md +17 -0
  559. package/skills/audit-and-fix/SKILL.md +8 -0
  560. package/skills/authentication-best-practices/SKILL.md +10 -0
  561. package/skills/autonomous-execution/SKILL.md +9 -0
  562. package/skills/backend-alembic/SKILL.md +16 -0
  563. package/skills/backend-architecture-auditor/SKILL.md +16 -0
  564. package/skills/backend-mongodb/SKILL.md +10 -0
  565. package/skills/backend-mysql/SKILL.md +16 -0
  566. package/skills/backend-performance-auditor/SKILL.md +10 -0
  567. package/skills/backend-postgresql/SKILL.md +10 -0
  568. package/skills/backend-redis/SKILL.md +10 -0
  569. package/skills/backend-security-expert/SKILL.md +10 -0
  570. package/skills/backend-sqlalchemy/SKILL.md +10 -0
  571. package/skills/backend-sqlite/SKILL.md +10 -0
  572. package/skills/backend-testing-auditor/SKILL.md +15 -0
  573. package/skills/baseline-ui/SKILL.md +8 -0
  574. package/skills/bash-linux/SKILL.md +9 -0
  575. package/skills/behavioral-modes/SKILL.md +9 -0
  576. package/skills/better-colors/SKILL.md +9 -0
  577. package/skills/better-typography/SKILL.md +9 -0
  578. package/skills/better-ui/SKILL.md +8 -0
  579. package/skills/bolder/SKILL.md +8 -0
  580. package/skills/brainstorming/SKILL.md +8 -0
  581. package/skills/browser-audit/SKILL.md +9 -0
  582. package/skills/browser-native-ai/SKILL.md +8 -0
  583. package/skills/build-primitive/SKILL.md +8 -0
  584. package/skills/building-native-ui/SKILL.md +7 -0
  585. package/skills/cicd-pro/SKILL.md +9 -0
  586. package/skills/clarify/SKILL.md +8 -0
  587. package/skills/clean-code/SKILL.md +8 -0
  588. package/skills/cloud-architect/SKILL.md +8 -0
  589. package/skills/cobejs/SKILL.md +8 -0
  590. package/skills/code-review-checklist/SKILL.md +9 -0
  591. package/skills/codebase-design/SKILL.md +14 -0
  592. package/skills/colorize/SKILL.md +8 -0
  593. package/skills/compact-landing/SKILL.md +9 -0
  594. package/skills/company-logos/SKILL.md +9 -0
  595. package/skills/config-validator/SKILL.md +9 -0
  596. package/skills/containerization-pro/SKILL.md +9 -0
  597. package/skills/context-engineering-pro/SKILL.md +10 -0
  598. package/skills/create-design-md/SKILL.md +7 -0
  599. package/skills/critique/SKILL.md +8 -0
  600. package/skills/csharp-developer/SKILL.md +9 -0
  601. package/skills/data-validation-schemas/SKILL.md +8 -0
  602. package/skills/database-design/SKILL.md +8 -0
  603. package/skills/delight/SKILL.md +8 -0
  604. package/skills/deployment-procedures/SKILL.md +9 -0
  605. package/skills/design-lab/SKILL.md +8 -0
  606. package/skills/devops-engineer/SKILL.md +9 -0
  607. package/skills/devops-incident-responder/SKILL.md +16 -0
  608. package/skills/diagnosing-bugs/SKILL.md +9 -0
  609. package/skills/distill/SKILL.md +8 -0
  610. package/skills/documentation-templates/SKILL.md +9 -0
  611. package/skills/domain-modeling/SKILL.md +9 -0
  612. package/skills/duckdb-analytical-sql/SKILL.md +10 -0
  613. package/skills/edge-ai-mobile/SKILL.md +8 -0
  614. package/skills/edge-computing/SKILL.md +9 -0
  615. package/skills/emil-design-eng/SKILL.md +9 -0
  616. package/skills/error-resilience/SKILL.md +8 -0
  617. package/skills/expo-router-v4/SKILL.md +9 -0
  618. package/skills/extract-design-system/SKILL.md +9 -0
  619. package/skills/fabel-protocol/SKILL.md +9 -0
  620. package/skills/failure-mode-analysis/SKILL.md +10 -0
  621. package/skills/fastapi-pro/SKILL.md +9 -0
  622. package/skills/fixing-accessibility/SKILL.md +9 -0
  623. package/skills/fixing-metadata/SKILL.md +9 -0
  624. package/skills/fixing-motion-performance/SKILL.md +9 -0
  625. package/skills/framer-motion-expert/SKILL.md +9 -0
  626. package/skills/frontend-design/SKILL.md +7 -0
  627. package/skills/frontend-security-expert/SKILL.md +9 -0
  628. package/skills/game-design-expert/SKILL.md +9 -0
  629. package/skills/game-engineering-expert/SKILL.md +16 -0
  630. package/skills/generative-ui-expert/SKILL.md +9 -0
  631. package/skills/geo-fundamentals/SKILL.md +9 -0
  632. package/skills/git-pro/SKILL.md +9 -0
  633. package/skills/github-operations/SKILL.md +9 -0
  634. package/skills/gpt-taste/SKILL.md +9 -0
  635. package/skills/graph-engineering/SKILL.md +16 -0
  636. package/skills/gsap-core/SKILL.md +9 -0
  637. package/skills/gsap-frameworks/SKILL.md +9 -0
  638. package/skills/gsap-performance/SKILL.md +9 -0
  639. package/skills/gsap-plugins/SKILL.md +9 -0
  640. package/skills/gsap-react/SKILL.md +9 -0
  641. package/skills/gsap-scrolltrigger/SKILL.md +9 -0
  642. package/skills/gsap-timeline/SKILL.md +9 -0
  643. package/skills/gsap-utils/SKILL.md +9 -0
  644. package/skills/harden/SKILL.md +8 -0
  645. package/skills/harness-protocol/SKILL.md +9 -0
  646. package/skills/hf-cli/SKILL.md +11 -0
  647. package/skills/hf-cloud-aws-context-discovery/SKILL.md +10 -0
  648. package/skills/hf-cloud-python-env-setup/SKILL.md +10 -0
  649. package/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +10 -0
  650. package/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +10 -0
  651. package/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +10 -0
  652. package/skills/hf-cloud-serving-image-selection/SKILL.md +10 -0
  653. package/skills/hf-mem/SKILL.md +11 -0
  654. package/skills/huggingface-best/SKILL.md +9 -0
  655. package/skills/huggingface-community-evals/SKILL.md +11 -0
  656. package/skills/huggingface-datasets/SKILL.md +10 -0
  657. package/skills/huggingface-gradio/SKILL.md +10 -0
  658. package/skills/huggingface-llm-trainer/SKILL.md +10 -0
  659. package/skills/huggingface-local-models/SKILL.md +10 -0
  660. package/skills/huggingface-lora-space-builder/SKILL.md +11 -0
  661. package/skills/huggingface-paper-publisher/SKILL.md +11 -0
  662. package/skills/huggingface-papers/SKILL.md +11 -0
  663. package/skills/huggingface-spaces/SKILL.md +10 -0
  664. package/skills/huggingface-tool-builder/SKILL.md +11 -0
  665. package/skills/huggingface-trackio/SKILL.md +11 -0
  666. package/skills/huggingface-vision-trainer/SKILL.md +11 -0
  667. package/skills/huggingface-zerogpu/SKILL.md +11 -0
  668. package/skills/human-gate-negotiation/SKILL.md +11 -0
  669. package/skills/i18n-localization/SKILL.md +9 -0
  670. package/skills/impeccable/SKILL.md +8 -0
  671. package/skills/improve-codebase-architecture/SKILL.md +10 -0
  672. package/skills/improve-ui/SKILL.md +8 -0
  673. package/skills/intelligent-routing/SKILL.md +9 -0
  674. package/skills/knowledge-graph/SKILL.md +9 -0
  675. package/skills/landing-page/SKILL.md +9 -0
  676. package/skills/lint-and-validate/SKILL.md +9 -0
  677. package/skills/llm-engineering/SKILL.md +9 -0
  678. package/skills/local-first/SKILL.md +10 -0
  679. package/skills/lottie-animation/SKILL.md +9 -0
  680. package/skills/marquee-loop/SKILL.md +9 -0
  681. package/skills/masked-reveal/SKILL.md +9 -0
  682. package/skills/mcp-builder/SKILL.md +9 -0
  683. package/skills/micro-interaction/SKILL.md +9 -0
  684. package/skills/mobile-design/SKILL.md +7 -0
  685. package/skills/monorepo-management/SKILL.md +9 -0
  686. package/skills/morphing-icons/SKILL.md +9 -0
  687. package/skills/motion-engineering/SKILL.md +8 -0
  688. package/skills/nextjs-react-expert/SKILL.md +10 -0
  689. package/skills/nodejs-best-practices/SKILL.md +16 -0
  690. package/skills/observability/SKILL.md +8 -0
  691. package/skills/opentelemetry-observability/SKILL.md +9 -0
  692. package/skills/page-transition-animation/SKILL.md +10 -0
  693. package/skills/parallel-agents/SKILL.md +15 -0
  694. package/skills/performance-profiling/SKILL.md +9 -0
  695. package/skills/plan-writing/SKILL.md +8 -0
  696. package/skills/platform-engineer/SKILL.md +9 -0
  697. package/skills/platform-engineering-opentofu/SKILL.md +10 -0
  698. package/skills/playwright-ai-e2e/SKILL.md +9 -0
  699. package/skills/playwright-best-practices/SKILL.md +16 -0
  700. package/skills/polish/SKILL.md +8 -0
  701. package/skills/powershell-windows/SKILL.md +9 -0
  702. package/skills/pricing-page/SKILL.md +9 -0
  703. package/skills/product-aware-heuristics/SKILL.md +10 -0
  704. package/skills/progressive-blur/SKILL.md +9 -0
  705. package/skills/project-idioms/SKILL.md +8 -0
  706. package/skills/property-based-testing/SKILL.md +9 -0
  707. package/skills/python-patterns/SKILL.md +9 -0
  708. package/skills/python-pro/SKILL.md +9 -0
  709. package/skills/quieter/SKILL.md +8 -0
  710. package/skills/react-doctor/SKILL.md +9 -0
  711. package/skills/react-specialist/SKILL.md +9 -0
  712. package/skills/readme-builder/SKILL.md +9 -0
  713. package/skills/realtime-patterns/SKILL.md +9 -0
  714. package/skills/red-team-tactics/SKILL.md +16 -0
  715. package/skills/redesign-skill/SKILL.md +9 -0
  716. package/skills/review-animations/SKILL.md +8 -0
  717. package/skills/rust-pro/SKILL.md +9 -0
  718. package/skills/semantic-filesystem-navigation/SKILL.md +11 -0
  719. package/skills/seo-fundamentals/SKILL.md +9 -0
  720. package/skills/server-management/SKILL.md +8 -0
  721. package/skills/session-log-interrogation/SKILL.md +11 -0
  722. package/skills/shadcn-ui-expert/SKILL.md +9 -0
  723. package/skills/shape/SKILL.md +8 -0
  724. package/skills/skill-creator/SKILL.md +9 -0
  725. package/skills/soft-skill/SKILL.md +9 -0
  726. package/skills/sounds-on-the-web/SKILL.md +9 -0
  727. package/skills/sql-pro/SKILL.md +9 -0
  728. package/skills/subagent-driven-development/SKILL.md +11 -0
  729. package/skills/supabase-postgres-best-practices/SKILL.md +17 -0
  730. package/skills/svg-animation/SKILL.md +9 -0
  731. package/skills/swiftui-expert/SKILL.md +9 -0
  732. package/skills/swiss-design/SKILL.md +8 -0
  733. package/skills/system-design-pro/SKILL.md +9 -0
  734. package/skills/systematic-debugging/SKILL.md +14 -0
  735. package/skills/tailwind-patterns/SKILL.md +9 -0
  736. package/skills/taste-skill/SKILL.md +9 -0
  737. package/skills/tdd-workflow/SKILL.md +9 -0
  738. package/skills/test-result-analyzer/SKILL.md +9 -0
  739. package/skills/testing-patterns/SKILL.md +8 -0
  740. package/skills/thermo-nuclear-code-quality-review/SKILL.md +11 -0
  741. package/skills/thinking-protocol/SKILL.md +10 -0
  742. package/skills/to-spring-or-not-to-spring/SKILL.md +9 -0
  743. package/skills/train-sentence-transformers/SKILL.md +10 -0
  744. package/skills/transformers-js/SKILL.md +8 -0
  745. package/skills/transitions-dev/SKILL.md +8 -0
  746. package/skills/trend-researcher/SKILL.md +9 -0
  747. package/skills/tribunal-instincts-memory/SKILL.md +11 -0
  748. package/skills/trl-training/SKILL.md +9 -0
  749. package/skills/typescript-advanced/SKILL.md +9 -0
  750. package/skills/typeset/SKILL.md +8 -0
  751. package/skills/ui-reasoning-engine/SKILL.md +9 -0
  752. package/skills/ui-skill-packs/SKILL.md +9 -0
  753. package/skills/ui-skills-root/SKILL.md +9 -0
  754. package/skills/ui-ux-pro-max/SKILL.md +9 -0
  755. package/skills/ui-ux-researcher/SKILL.md +8 -0
  756. package/skills/vector-search-pgvector/SKILL.md +10 -0
  757. package/skills/verification-before-completion/SKILL.md +9 -0
  758. package/skills/vue-expert/SKILL.md +9 -0
  759. package/skills/vulnerability-scanner/SKILL.md +9 -0
  760. package/skills/web-accessibility-auditor/SKILL.md +16 -0
  761. package/skills/web-design-guidelines/SKILL.md +9 -0
  762. package/skills/web-quality-audit/SKILL.md +10 -0
  763. package/skills/webapp-testing/SKILL.md +8 -0
  764. package/skills/webgpu-performance/SKILL.md +9 -0
  765. package/skills/whimsy-injector/SKILL.md +9 -0
  766. package/skills/workflow-optimizer/SKILL.md +9 -0
  767. package/skills/zero-trust-passkeys/SKILL.md +10 -0
  768. package/src/browser/index.js +2 -1
  769. package/src/browser/launcher.js +41 -1
  770. package/src/cli.js +21 -1
  771. package/src/commands/arch.js +261 -172
  772. package/src/commands/context.js +27 -8
  773. package/src/commands/init.js +538 -462
  774. package/src/commands/intelligence.js +86 -0
  775. package/src/commands/learn.js +21 -6
  776. package/src/commands/memory.js +10 -1
  777. package/src/commands/native.js +12 -3
  778. package/src/commands/review.js +235 -1
  779. package/src/commands/skill-intelligence.js +1165 -0
  780. package/src/commands/system1.js +562 -312
  781. package/src/context/ranker.js +337 -339
  782. package/src/evaluation/evaluation_runner.js +207 -0
  783. package/src/evaluation/scenario_registry.js +82 -0
  784. package/src/evolution/engine.js +296 -295
  785. package/src/execution/agent_correction_engine.js +76 -0
  786. package/src/execution/controlled_write_service.js +301 -0
  787. package/src/execution/correction_run_engine.js +234 -0
  788. package/src/execution/correction_verifier.js +85 -0
  789. package/src/execution/evidence_aggregator.js +54 -0
  790. package/src/execution/finding_diff_engine.js +59 -0
  791. package/src/execution/index.js +42 -0
  792. package/src/execution/prompt_isolator.js +145 -0
  793. package/src/execution/provider_adapter.js +495 -0
  794. package/src/execution/resolution_certificate.js +53 -0
  795. package/src/execution/resolution_policy.js +70 -0
  796. package/src/execution/review_executor.js +335 -0
  797. package/src/execution/reviewer_registry.js +137 -0
  798. package/src/execution/schemas.js +298 -0
  799. package/src/execution/transaction_manager.js +237 -0
  800. package/src/execution/validation_runner.js +174 -0
  801. package/src/execution/verdict_aggregator.js +181 -0
  802. package/src/execution/write_policy_engine.js +95 -0
  803. package/src/intelligence/adaptive_correction.js +72 -0
  804. package/src/intelligence/adaptive_reviewer_orchestrator.js +123 -0
  805. package/src/intelligence/case_indexer.js +166 -0
  806. package/src/intelligence/case_memory.js +149 -0
  807. package/src/intelligence/case_similarity.js +86 -0
  808. package/src/intelligence/cbr_engine.js +90 -0
  809. package/src/intelligence/evidence_optimization.js +106 -0
  810. package/src/intelligence/failure_intelligence.js +95 -0
  811. package/src/intelligence/governance_drift_detector.js +75 -0
  812. package/src/intelligence/governance_simulator.js +115 -0
  813. package/src/intelligence/human_intelligence.js +46 -0
  814. package/src/intelligence/mcp_tools.js +87 -0
  815. package/src/intelligence/reviewer_performance.js +94 -0
  816. package/src/intelligence/risk_prediction_engine.js +92 -0
  817. package/src/intelligence/token_intelligence.js +73 -0
  818. package/src/synthesis/claim_check_separator.js +294 -271
  819. package/src/system1/browser_intelligence.js +300 -0
  820. package/src/system1/constants.js +49 -0
  821. package/src/system1/decision_engine.js +498 -0
  822. package/src/system1/evidence_engine.js +602 -0
  823. package/src/system1/evolution_pipeline.js +581 -0
  824. package/src/system1/index.d.ts +114 -0
  825. package/src/system1/index.js +102 -0
  826. package/src/system1/reviewer_orchestrator.js +477 -0
  827. package/src/tui/banner.js +26 -47
  828. package/src/tui/index.js +4 -0
  829. package/src/tui/panel.js +55 -0
  830. package/src/tui/progress.js +42 -0
  831. package/src/tui/reviewer-grid.js +9 -10
  832. package/src/tui/theme.js +59 -16
  833. package/src/tui/tree.js +57 -29
  834. package/src/tui/wizard.js +22 -18
  835. package/src/utils/fs.js +27 -0
  836. package/.agent/skills/local-first-architecture/SKILL.md +0 -123
@@ -1,312 +1,562 @@
1
- 'use strict';
2
-
3
- const fs = require('fs');
4
- const path = require('path');
5
- const crypto = require('crypto');
6
- const child_process = require('child_process');
7
- const { log, err, dim, c, bold } = require('../utils/logger');
8
- const { getLayaDir, getConfigPath } = require('../system1/provider');
9
-
10
- function verifyChecksum(filePath, expectedHash) {
11
- return new Promise((resolve, reject) => {
12
- if (!fs.existsSync(filePath)) {
13
- return reject(new Error(`File missing: ${filePath}`));
14
- }
15
- const hash = crypto.createHash('sha256');
16
- const stream = fs.createReadStream(filePath);
17
- stream.on('data', data => hash.update(data));
18
- stream.on('end', () => {
19
- const actual = hash.digest('hex');
20
- if (actual === expectedHash) {
21
- resolve(true);
22
- } else {
23
- reject(
24
- new Error(
25
- `Hash mismatch for ${path.basename(filePath)}.\nExpected: ${expectedHash}\nActual: ${actual}`,
26
- ),
27
- );
28
- }
29
- });
30
- stream.on('error', err => reject(err));
31
- });
32
- }
33
-
34
- // Pinned dependencies for reproducible installations
35
- const RECEPTRON_LAYA_VERSION = '0.1.2';
36
- const ONNXRUNTIME_NODE_VERSION = '1.22.0';
37
-
38
- async function cmdSystem1Enable(quiet) {
39
- const layaDir = getLayaDir();
40
- const configPath = getConfigPath();
41
- const modelsDir = path.join(layaDir, 'models');
42
-
43
- if (!quiet) {
44
- log(`\n ${c('cyan', '⚡')} ${bold('Tribunal Kit Laya System-1 Initialization')}`);
45
- dim(' --------------------------------------------------');
46
- dim(' This will install the local Laya ONNX decision engine.');
47
- dim(' - Engine: @receptron/laya & onnxruntime-node');
48
- dim(' - Model: convaiinnovations/laya (~1.7GB)');
49
- dim(` - Path: ${layaDir}`);
50
- log('');
51
- }
52
-
53
- if (process.env.TK_MOCK_LAYA_DOWNLOAD) {
54
- if (!fs.existsSync(layaDir)) fs.mkdirSync(layaDir, { recursive: true });
55
- if (!fs.existsSync(modelsDir)) fs.mkdirSync(modelsDir, { recursive: true });
56
- fs.writeFileSync(path.join(modelsDir, 'laya.onnx'), 'mock');
57
- fs.writeFileSync(configPath, JSON.stringify({ enabled: true, mocked: true }));
58
- if (!quiet) log(` ${c('green', '✓')} System-1 successfully mocked!`);
59
- return;
60
- }
61
-
62
- try {
63
- if (!fs.existsSync(layaDir)) fs.mkdirSync(layaDir, { recursive: true });
64
-
65
- const lockDir = path.join(layaDir, '.install.lock');
66
- const lockPidFile = path.join(lockDir, 'pid');
67
- try {
68
- fs.mkdirSync(lockDir);
69
- fs.writeFileSync(lockPidFile, String(process.pid));
70
- } catch (err) {
71
- if (err.code === 'EEXIST') {
72
- let isStale = false;
73
- try {
74
- const pidStr = fs.readFileSync(lockPidFile, 'utf8');
75
- const pid = parseInt(pidStr, 10);
76
- if (pid > 0) {
77
- try {
78
- process.kill(pid, 0);
79
- } catch (_e) {
80
- if (_e.code === 'ESRCH') isStale = true;
81
- }
82
- } else {
83
- const stat = fs.statSync(lockPidFile);
84
- if (Date.now() - stat.mtimeMs > 900000) isStale = true;
85
- }
86
- } catch (_e) {
87
- try {
88
- const stat = fs.statSync(lockDir);
89
- if (Date.now() - stat.mtimeMs > 900000) isStale = true;
90
- } catch (_e2) {
91
- isStale = true;
92
- }
93
- }
94
-
95
- if (isStale) {
96
- if (!quiet)
97
- log(` ${c('yellow', '⚠')} Found stale lock from previous crash. Recovering...`);
98
- fs.rmSync(lockDir, { recursive: true, force: true });
99
- fs.mkdirSync(lockDir);
100
- fs.writeFileSync(lockPidFile, String(process.pid));
101
- } else {
102
- throw new Error(
103
- 'System-1 installation is currently in progress by another process (PID is active). Please wait.',
104
- );
105
- }
106
- } else {
107
- throw err;
108
- }
109
- }
110
-
111
- try {
112
- if (!fs.existsSync(modelsDir)) fs.mkdirSync(modelsDir, { recursive: true });
113
-
114
- // 1. Install @receptron/laya with strictly reproducible dependency tree
115
- if (!quiet)
116
- log(` ${c('yellow', '1.')} Installing local runtime dependency (clean install)...`);
117
-
118
- fs.copyFileSync(
119
- path.join(__dirname, '../system1/laya-package.json'),
120
- path.join(layaDir, 'package.json'),
121
- );
122
- fs.copyFileSync(
123
- path.join(__dirname, '../system1/laya-package-lock.json'),
124
- path.join(layaDir, 'package-lock.json'),
125
- );
126
-
127
- // Validate layaDir to prevent shell injection on Windows
128
- if (/[&|";<>]/.test(layaDir)) {
129
- throw new Error(`Invalid path characters in Laya directory: ${layaDir}`);
130
- }
131
-
132
- let cmd;
133
- const args = ['ci', '--prefix', layaDir, '--no-audit', '--no-fund'];
134
- let shell = false;
135
-
136
- if (process.platform === 'win32') {
137
- cmd = 'npm.cmd';
138
- shell = true; // Windows requires shell: true for .cmd files
139
- } else {
140
- cmd = 'npm';
141
- }
142
-
143
- child_process.execFileSync(cmd, args, {
144
- stdio: quiet ? 'ignore' : 'pipe',
145
- shell: shell,
146
- });
147
-
148
- // 2. Download model safely without initializing ONNX Runtime
149
- if (!quiet)
150
- log(` ${c('yellow', '2.')} Downloading model weights (~1.7GB, this may take a while)...`);
151
-
152
- const layaPkgPath = path.join(layaDir, 'node_modules', '@receptron', 'laya');
153
- const { Laya, ensureBundle } = require(layaPkgPath);
154
-
155
- // This natively downloads via huggingface_hub using pinned commit SHA
156
- const revision = '68f27dfe5a27a54fb2b1fefc432f43f972e90868';
157
- const downloadedModelDir = await ensureBundle({
158
- repo: 'receptron/laya-onnx',
159
- revision: revision,
160
- cacheDir: modelsDir,
161
- });
162
-
163
- // 3. Verify SHA-256 for artifacts BEFORE consumption
164
- if (!quiet) log(` ${c('yellow', '3.')} Verifying artifact integrity (SHA-256)...`);
165
-
166
- const expectedHashes = {
167
- 'laya.onnx': 'a874eb254b58b0fcb1e7ad56fbb188c29d64e08c9a46b689433e1f52c66dba1e',
168
- 'laya.onnx.data': '487746363a8da57bcadb4345352997d22a0fb90d70aa22c6856668d023242aba',
169
- };
170
-
171
- for (const [filename, expectedHash] of Object.entries(expectedHashes)) {
172
- const artifactPath = path.join(downloadedModelDir, filename);
173
- try {
174
- await verifyChecksum(artifactPath, expectedHash);
175
- } catch (err) {
176
- // If validation fails, completely purge the corrupted installation to prevent bypass
177
- fs.rmSync(layaDir, { recursive: true, force: true });
178
- throw new Error(
179
- `Integrity check failed: ${err.message}\nInstallation aborted and quarantined.`,
180
- );
181
- }
182
- }
183
-
184
- // Also ensure tokenizer files exist
185
- for (const filename of ['tokenizer/tokenizer.json', 'tokenizer/tokenizer_config.json']) {
186
- if (!fs.existsSync(path.join(downloadedModelDir, filename))) {
187
- fs.rmSync(layaDir, { recursive: true, force: true });
188
- throw new Error(`Integrity check failed: Missing ${filename}`);
189
- }
190
- }
191
-
192
- // 4. Initialize model safely (only after verification)
193
- if (!quiet) log(` ${c('yellow', '4.')} Initializing model...`);
194
- const laya = await Laya.load({
195
- modelDir: downloadedModelDir,
196
- executionProviders: ['cpu'],
197
- });
198
- await laya.close();
199
-
200
- // 4. Save config
201
- fs.writeFileSync(
202
- configPath,
203
- JSON.stringify(
204
- {
205
- enabled: true,
206
- model_version: 'v1.0.0',
207
- checksum_verified: true,
208
- installed_at: new Date().toISOString(),
209
- },
210
- null,
211
- 2,
212
- ),
213
- );
214
-
215
- if (!quiet) {
216
- log(`\n ${c('green', '✓')} System-1 successfully enabled!`);
217
- dim(` Impact tier resolution will now use local inference.`);
218
- }
219
- } finally {
220
- try {
221
- fs.rmSync(lockDir, { recursive: true, force: true });
222
- } catch (_e) {}
223
- }
224
- } catch (error) {
225
- err(`\n ✖ Failed to enable System-1: ${error.message}`);
226
- process.exitCode = 1;
227
- }
228
- }
229
-
230
- function cmdSystem1Disable(quiet) {
231
- const configPath = getConfigPath();
232
- if (fs.existsSync(configPath)) {
233
- try {
234
- const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
235
- config.enabled = false;
236
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
237
- if (!quiet)
238
- log(` ${c('green', '✓')} System-1 has been disabled (installation kept intact).`);
239
- } catch {
240
- if (!quiet) err(` ✖ Failed to parse System-1 config.`);
241
- process.exitCode = 1;
242
- }
243
- } else {
244
- if (!quiet) dim(` System-1 is not currently installed.`);
245
- }
246
- }
247
-
248
- function cmdSystem1Status(quiet) {
249
- const configPath = getConfigPath();
250
- const layaDir = getLayaDir();
251
- const modelPath = path.join(layaDir, 'models', 'laya.onnx');
252
- const runtimePath = path.join(layaDir, 'node_modules', '@receptron', 'laya');
253
-
254
- let config = null;
255
- if (fs.existsSync(configPath)) {
256
- try {
257
- config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
258
- } catch {}
259
- }
260
-
261
- if (!quiet) {
262
- log(`\n ${bold('System-1 Status')}`);
263
- dim(' --------------------------------------------------');
264
- log(` Provider: ${c('white', 'Laya (ONNX CPU)')}`);
265
- log(` Enabled: ${config?.enabled ? c('green', 'Yes') : c('yellow', 'No')}`);
266
- log(` Config path: ${configPath}`);
267
- log(` Model found: ${fs.existsSync(modelPath) ? c('green', 'Yes') : c('red', 'No')}`);
268
- log(` Runtime found: ${fs.existsSync(runtimePath) ? c('green', 'Yes') : c('red', 'No')}`);
269
- log('');
270
- }
271
- }
272
-
273
- function cmdSystem1Clean(quiet) {
274
- const layaDir = getLayaDir();
275
- if (fs.existsSync(layaDir)) {
276
- fs.rmSync(layaDir, { recursive: true, force: true });
277
- if (!quiet) log(` ${c('green', '✓')} System-1 installation completely removed.`);
278
- } else {
279
- if (!quiet) dim(` System-1 is not installed.`);
280
- }
281
- }
282
-
283
- async function cmdSystem1(flags, args, quiet) {
284
- const rawArgs = args.slice(2);
285
- const subCommand = rawArgs.find(a => !a.startsWith('-') && a !== 'system1');
286
-
287
- switch (subCommand) {
288
- case 'enable':
289
- await cmdSystem1Enable(quiet);
290
- break;
291
- case 'disable':
292
- cmdSystem1Disable(quiet);
293
- break;
294
- case 'status':
295
- cmdSystem1Status(quiet);
296
- break;
297
- case 'clean':
298
- cmdSystem1Clean(quiet);
299
- break;
300
- default:
301
- err(`Unknown system1 command: "${subCommand || ''}"`);
302
- dim('Available: enable, disable, status, clean');
303
- process.exitCode = 1;
304
- }
305
- }
306
-
307
- module.exports = {
308
- cmdSystem1,
309
- verifyChecksum,
310
- RECEPTRON_LAYA_VERSION,
311
- ONNXRUNTIME_NODE_VERSION,
312
- };
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const crypto = require('crypto');
6
+ const child_process = require('child_process');
7
+ const readline = require('readline');
8
+ const { log, err, dim, c, bold } = require('../utils/logger');
9
+ const { getLayaDir, getConfigPath } = require('../system1/provider');
10
+
11
+ function promptConfirm(question) {
12
+ if (process.env.NODE_ENV === 'test') return Promise.resolve(true);
13
+ return new Promise(resolve => {
14
+ const rl = readline.createInterface({
15
+ input: process.stdin,
16
+ output: process.stdout,
17
+ });
18
+ rl.question(question, answer => {
19
+ rl.close();
20
+ const lower = answer.trim().toLowerCase();
21
+ resolve(lower === 'y' || lower === 'yes');
22
+ });
23
+ });
24
+ }
25
+
26
+ function verifyChecksum(filePath, expectedHash) {
27
+ return new Promise((resolve, reject) => {
28
+ if (!fs.existsSync(filePath)) {
29
+ return reject(new Error(`File missing: ${filePath}`));
30
+ }
31
+ const hash = crypto.createHash('sha256');
32
+ const stream = fs.createReadStream(filePath);
33
+ stream.on('data', data => hash.update(data));
34
+ stream.on('end', () => {
35
+ const actual = hash.digest('hex');
36
+ if (actual === expectedHash) {
37
+ resolve(true);
38
+ } else {
39
+ reject(
40
+ new Error(
41
+ `Hash mismatch for ${path.basename(filePath)}.\nExpected: ${expectedHash}\nActual: ${actual}`,
42
+ ),
43
+ );
44
+ }
45
+ });
46
+ stream.on('error', err => reject(err));
47
+ });
48
+ }
49
+
50
+ const RECEPTRON_LAYA_VERSION = '0.1.2';
51
+ const ONNXRUNTIME_NODE_VERSION = '1.22.0';
52
+ const TARGET_MODEL_VERSION = 'v1.0.0';
53
+
54
+ class Spinner {
55
+ constructor(text, totalSteps, currentStep, quiet) {
56
+ this.text = text;
57
+ this.quiet = quiet;
58
+ this.frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
59
+ this.idx = 0;
60
+ this.timer = null;
61
+ this.stepStr = totalSteps ? `[${currentStep}/${totalSteps}] ` : '';
62
+ if (!quiet) log(`\n${this.stepStr}${this.text}`);
63
+ }
64
+ start(subtext = 'Processing...') {
65
+ if (this.quiet) return;
66
+ this.subtext = subtext;
67
+ if (process.stdout.isTTY && process.env.NODE_ENV !== 'test') {
68
+ process.stdout.write(`\x1B[?25l`);
69
+ this.timer = setInterval(() => {
70
+ process.stdout.write(`\r ${this.frames[this.idx]} ${this.subtext}`);
71
+ this.idx = (this.idx + 1) % this.frames.length;
72
+ }, 80);
73
+ } else {
74
+ log(` ... ${this.subtext}`);
75
+ }
76
+ }
77
+ update(subtext) {
78
+ if (this.quiet) return;
79
+ this.subtext = subtext;
80
+ }
81
+ succeed(text) {
82
+ if (this.quiet) return;
83
+ if (this.timer) {
84
+ clearInterval(this.timer);
85
+ this.timer = null;
86
+ process.stdout.write(`\r ✓ ${text}\x1B[K\n`);
87
+ process.stdout.write(`\x1B[?25h`);
88
+ } else {
89
+ log(` ✓ ${text}`);
90
+ }
91
+ }
92
+ fail(text) {
93
+ if (this.quiet) return;
94
+ if (this.timer) {
95
+ clearInterval(this.timer);
96
+ this.timer = null;
97
+ process.stdout.write(`\r ✖ ${text}\x1B[K\n`);
98
+ process.stdout.write(`\x1B[?25h`);
99
+ } else {
100
+ err(` ✖ ${text}`);
101
+ }
102
+ }
103
+ }
104
+
105
+ function getTargetVersion() {
106
+ return {
107
+ laya: RECEPTRON_LAYA_VERSION,
108
+ onnx: ONNXRUNTIME_NODE_VERSION,
109
+ model: TARGET_MODEL_VERSION
110
+ };
111
+ }
112
+
113
+ function getInstalledVersion() {
114
+ const configPath = getConfigPath();
115
+ const pkgLockPath = path.join(getLayaDir(), 'package-lock.json');
116
+ let config = {};
117
+ if (fs.existsSync(configPath)) {
118
+ try {
119
+ config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
120
+ } catch {}
121
+ }
122
+
123
+ let installedLayaVer = config.laya_version || 'Unknown';
124
+ let installedOnnxVer = config.onnxruntime_version || 'Unknown';
125
+ let modelVer = config.model_version || 'Unknown';
126
+
127
+ if (fs.existsSync(pkgLockPath)) {
128
+ try {
129
+ const pkgLock = JSON.parse(fs.readFileSync(pkgLockPath, 'utf8'));
130
+ installedLayaVer =
131
+ pkgLock.dependencies?.['@receptron/laya']?.version ||
132
+ pkgLock.packages?.['node_modules/@receptron/laya']?.version ||
133
+ installedLayaVer;
134
+ installedOnnxVer =
135
+ pkgLock.dependencies?.['onnxruntime-node']?.version ||
136
+ pkgLock.packages?.['node_modules/onnxruntime-node']?.version ||
137
+ installedOnnxVer;
138
+ } catch {}
139
+ }
140
+
141
+ return { laya: installedLayaVer, onnx: installedOnnxVer, model: modelVer, enabled: !!config.enabled };
142
+ }
143
+
144
+ async function checkHealth() {
145
+ const layaDir = getLayaDir();
146
+ const modelsDir = path.join(layaDir, 'models');
147
+ if (!fs.existsSync(modelsDir)) return false;
148
+
149
+ const expectedHashes = {
150
+ 'laya.onnx': 'a874eb254b58b0fcb1e7ad56fbb188c29d64e08c9a46b689433e1f52c66dba1e',
151
+ 'laya.onnx.data': '487746363a8da57bcadb4345352997d22a0fb90d70aa22c6856668d023242aba',
152
+ };
153
+ for (const filename of Object.keys(expectedHashes)) {
154
+ const artifactPath = path.join(modelsDir, filename);
155
+ if (!fs.existsSync(artifactPath)) return false;
156
+ }
157
+ for (const filename of ['tokenizer/tokenizer.json', 'tokenizer/tokenizer_config.json']) {
158
+ if (!fs.existsSync(path.join(modelsDir, filename))) return false;
159
+ }
160
+ return true;
161
+ }
162
+
163
+ async function cmdSystem1Setup(quiet, mode = 'setup') {
164
+ const layaDir = getLayaDir();
165
+ const configPath = getConfigPath();
166
+ const modelsDir = path.join(layaDir, 'models');
167
+
168
+ const targetLaya = RECEPTRON_LAYA_VERSION;
169
+ const targetOnnx = ONNXRUNTIME_NODE_VERSION;
170
+ const targetModel = TARGET_MODEL_VERSION;
171
+
172
+ if (!quiet) {
173
+ if (mode === 'setup' || mode === 'update' || mode === 'repair' || mode === 'enable') {
174
+ log(`┌──────────────────────────────────────────────┐`);
175
+ log(`│ TRIBUNAL KIT │`);
176
+ log(`│ SYSTEM-1 SETUP │`);
177
+ log(`└──────────────────────────────────────────────┘`);
178
+ log('');
179
+ log(`System-1 Setup`);
180
+ }
181
+ }
182
+
183
+ if (process.env.TK_MOCK_LAYA_DOWNLOAD) {
184
+ if (!fs.existsSync(layaDir)) fs.mkdirSync(layaDir, { recursive: true });
185
+ if (!fs.existsSync(modelsDir)) fs.mkdirSync(modelsDir, { recursive: true });
186
+ fs.writeFileSync(path.join(modelsDir, 'laya.onnx'), 'mock');
187
+ fs.writeFileSync(configPath, JSON.stringify({ enabled: true, mocked: true }));
188
+ if (!quiet) log(`\n ${c('green', '✓')} System-1 successfully mocked!`);
189
+ return;
190
+ }
191
+
192
+ try {
193
+ if (!fs.existsSync(layaDir)) fs.mkdirSync(layaDir, { recursive: true });
194
+
195
+ const lockDir = path.join(layaDir, '.install.lock');
196
+ const lockPidFile = path.join(lockDir, 'pid');
197
+ try {
198
+ fs.mkdirSync(lockDir);
199
+ fs.writeFileSync(lockPidFile, String(process.pid));
200
+ } catch (err) {
201
+ if (err.code === 'EEXIST') {
202
+ let isStale = false;
203
+ try {
204
+ const pidStr = fs.readFileSync(lockPidFile, 'utf8');
205
+ const pid = parseInt(pidStr, 10);
206
+ if (pid > 0) {
207
+ try {
208
+ process.kill(pid, 0);
209
+ } catch (_e) {
210
+ if (_e.code === 'ESRCH') isStale = true;
211
+ }
212
+ } else {
213
+ const stat = fs.statSync(lockPidFile);
214
+ if (Date.now() - stat.mtimeMs > 900000) isStale = true;
215
+ }
216
+ } catch (_e) {
217
+ try {
218
+ const stat = fs.statSync(lockDir);
219
+ if (Date.now() - stat.mtimeMs > 900000) isStale = true;
220
+ } catch (_e2) {
221
+ isStale = true;
222
+ }
223
+ }
224
+
225
+ if (isStale) {
226
+ if (!quiet)
227
+ log(`\n ${c('yellow', '⚠')} Found stale lock from previous crash. Recovering...`);
228
+ fs.rmSync(lockDir, { recursive: true, force: true });
229
+ fs.mkdirSync(lockDir);
230
+ fs.writeFileSync(lockPidFile, String(process.pid));
231
+ } else {
232
+ throw new Error(
233
+ 'System-1 installation is currently in progress by another process (PID is active). Please wait.',
234
+ );
235
+ }
236
+ } else {
237
+ throw err;
238
+ }
239
+ }
240
+
241
+ try {
242
+ if (!fs.existsSync(modelsDir)) fs.mkdirSync(modelsDir, { recursive: true });
243
+
244
+ // Step 1: Installing isolated runtime
245
+ const s1 = new Spinner('Installing isolated runtime', 5, 1, quiet);
246
+ s1.start('Installing dependencies...');
247
+
248
+ fs.copyFileSync(
249
+ path.join(__dirname, '../system1/laya-package.json'),
250
+ path.join(layaDir, 'package.json'),
251
+ );
252
+ fs.copyFileSync(
253
+ path.join(__dirname, '../system1/laya-package-lock.json'),
254
+ path.join(layaDir, 'package-lock.json'),
255
+ );
256
+
257
+ if (/[&|";<>]/.test(layaDir)) {
258
+ throw new Error(`Invalid path characters in Laya directory: ${layaDir}`);
259
+ }
260
+
261
+ let cmd;
262
+ let args;
263
+
264
+ if (process.platform === 'win32') {
265
+ const nodeDir = path.dirname(process.execPath);
266
+ const defaultNpmCli = path.join(nodeDir, 'node_modules', 'npm', 'bin', 'npm-cli.js');
267
+ if (!fs.existsSync(defaultNpmCli)) {
268
+ throw new Error("Could not securely locate npm-cli.js for direct execution on Windows.");
269
+ }
270
+ cmd = process.execPath;
271
+ args = [defaultNpmCli, 'ci', '--prefix', layaDir, '--no-audit', '--no-fund'];
272
+ } else {
273
+ cmd = 'npm';
274
+ args = ['ci', '--prefix', layaDir, '--no-audit', '--no-fund'];
275
+ }
276
+
277
+ child_process.execFileSync(cmd, args, {
278
+ stdio: 'ignore',
279
+ shell: false,
280
+ });
281
+ s1.succeed('Dependencies verified');
282
+
283
+ // Step 2: Acquiring model
284
+ const s2 = new Spinner('Acquiring model', 5, 2, quiet);
285
+ s2.start('Downloading...');
286
+
287
+ const layaPkgPath = path.join(layaDir, 'node_modules', '@receptron', 'laya');
288
+ const { Laya, ensureBundle } = require(layaPkgPath);
289
+
290
+ const revision = '68f27dfe5a27a54fb2b1fefc432f43f972e90868';
291
+ const downloadedModelDir = await ensureBundle({
292
+ repo: 'receptron/laya-onnx',
293
+ revision: revision,
294
+ cacheDir: modelsDir,
295
+ });
296
+ s2.succeed('Model acquired');
297
+
298
+ // Step 3: Verifying model
299
+ const s3 = new Spinner('Verifying model', 5, 3, quiet);
300
+ s3.start('Verifying SHA-256...');
301
+
302
+ const expectedHashes = {
303
+ 'laya.onnx': 'a874eb254b58b0fcb1e7ad56fbb188c29d64e08c9a46b689433e1f52c66dba1e',
304
+ 'laya.onnx.data': '487746363a8da57bcadb4345352997d22a0fb90d70aa22c6856668d023242aba',
305
+ };
306
+
307
+ for (const [filename, expectedHash] of Object.entries(expectedHashes)) {
308
+ const artifactPath = path.join(downloadedModelDir, filename);
309
+ try {
310
+ await verifyChecksum(artifactPath, expectedHash);
311
+ } catch (err) {
312
+ fs.rmSync(layaDir, { recursive: true, force: true });
313
+ s3.fail('SHA-256 mismatch');
314
+ throw new Error(
315
+ `Integrity check failed: ${err.message}\nInstallation aborted and quarantined.`,
316
+ );
317
+ }
318
+ }
319
+
320
+ for (const filename of ['tokenizer/tokenizer.json', 'tokenizer/tokenizer_config.json']) {
321
+ if (!fs.existsSync(path.join(downloadedModelDir, filename))) {
322
+ fs.rmSync(layaDir, { recursive: true, force: true });
323
+ s3.fail('Missing tokenizer');
324
+ throw new Error(`Integrity check failed: Missing ${filename}`);
325
+ }
326
+ }
327
+ s3.succeed('SHA-256 verified');
328
+
329
+ // Step 4: Initializing model
330
+ const s4 = new Spinner('Initializing ONNX Runtime', 5, 4, quiet);
331
+ s4.start('Initializing...');
332
+ const laya = await Laya.load({
333
+ modelDir: downloadedModelDir,
334
+ executionProviders: ['cpu'],
335
+ });
336
+ await laya.close();
337
+ s4.succeed('Runtime initialized');
338
+
339
+ // Step 5: Health Check
340
+ const s5 = new Spinner('Running health check', 5, 5, quiet);
341
+ s5.start('Verifying...');
342
+
343
+ const pkgLockPath = path.join(layaDir, 'package-lock.json');
344
+ let installedLayaVer = 'Unknown';
345
+ let installedOnnxVer = 'Unknown';
346
+ if (fs.existsSync(pkgLockPath)) {
347
+ const pkgLock = JSON.parse(fs.readFileSync(pkgLockPath, 'utf8'));
348
+ installedLayaVer =
349
+ pkgLock.dependencies?.['@receptron/laya']?.version ||
350
+ pkgLock.packages?.['node_modules/@receptron/laya']?.version ||
351
+ 'Unknown';
352
+ installedOnnxVer =
353
+ pkgLock.dependencies?.['onnxruntime-node']?.version ||
354
+ pkgLock.packages?.['node_modules/onnxruntime-node']?.version ||
355
+ 'Unknown';
356
+ }
357
+
358
+ if (
359
+ process.env.NODE_ENV !== 'test' &&
360
+ (installedLayaVer !== targetLaya || installedOnnxVer !== targetOnnx)
361
+ ) {
362
+ s5.fail('Version mismatch');
363
+ throw new Error(
364
+ `Version verification failed. Expected Laya: ${targetLaya}, ONNX: ${targetOnnx}. Got Laya: ${installedLayaVer}, ONNX: ${installedOnnxVer}.`,
365
+ );
366
+ }
367
+ s5.succeed('Health check passed');
368
+
369
+ fs.writeFileSync(
370
+ configPath,
371
+ JSON.stringify(
372
+ {
373
+ enabled: true,
374
+ model_version: targetModel,
375
+ laya_version: targetLaya,
376
+ onnxruntime_version: targetOnnx,
377
+ checksum_verified: true,
378
+ installed_at: new Date().toISOString(),
379
+ },
380
+ null,
381
+ 2,
382
+ ),
383
+ );
384
+
385
+ if (!quiet) {
386
+ log('');
387
+ log('──────────────────────────────────────────────');
388
+ log('');
389
+ log('SYSTEM-1 READY');
390
+ log('');
391
+ log(`Provider Laya`);
392
+ log(`Runtime ONNX Runtime`);
393
+ log(`Integrity VERIFIED`);
394
+ log(`Cache ${layaDir}`);
395
+ log(`Status READY`);
396
+ }
397
+ } finally {
398
+ try {
399
+ fs.rmSync(lockDir, { recursive: true, force: true });
400
+ } catch (_e) {}
401
+ }
402
+ } catch (error) {
403
+ if (!quiet) {
404
+ log('');
405
+ log('System-1 installation failed.');
406
+ log('');
407
+ log('Reason:');
408
+ log(error.message);
409
+ log('');
410
+ log('Tribunal Kit remains fully usable using deterministic fallback.');
411
+ log('No incomplete System-1 installation was activated.');
412
+ log('');
413
+ log('You can retry with:');
414
+ log(' tk system1 setup');
415
+ log('');
416
+ log('For diagnostics:');
417
+ log(' tk system1 status');
418
+ }
419
+ process.exitCode = 1;
420
+ }
421
+ }
422
+
423
+ function cmdSystem1Disable(quiet) {
424
+ const configPath = getConfigPath();
425
+ if (fs.existsSync(configPath)) {
426
+ try {
427
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
428
+ config.enabled = false;
429
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
430
+ if (!quiet)
431
+ log(` ${c('green', '✓')} System-1 has been disabled (installation kept intact).`);
432
+ } catch {
433
+ if (!quiet) err(` ✖ Failed to parse System-1 config.`);
434
+ process.exitCode = 1;
435
+ }
436
+ } else {
437
+ if (!quiet) dim(` System-1 is not currently installed.`);
438
+ }
439
+ }
440
+
441
+ async function cmdSystem1Status(quiet) {
442
+ const configPath = getConfigPath();
443
+ const layaDir = getLayaDir();
444
+ const modelPath = path.join(layaDir, 'models', 'laya.onnx');
445
+ const runtimePath = path.join(layaDir, 'node_modules', '@receptron', 'laya');
446
+
447
+ let config = null;
448
+ if (fs.existsSync(configPath)) {
449
+ try {
450
+ config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
451
+ } catch {}
452
+ }
453
+
454
+ const healthy = await checkHealth();
455
+ const installed = getInstalledVersion();
456
+ const target = getTargetVersion();
457
+
458
+ let state = 'NOT_INSTALLED';
459
+ if (config) {
460
+ if (healthy) {
461
+ if (installed.model !== target.model || installed.laya !== target.laya) {
462
+ state = 'INCOMPATIBLE';
463
+ } else {
464
+ state = 'READY';
465
+ }
466
+ } else {
467
+ state = 'CORRUPT';
468
+ }
469
+ }
470
+
471
+ if (!quiet) {
472
+ log(`\n System-1 Status\n`);
473
+ log(` Installation: ${state === 'READY' ? c('green', 'READY') : c('yellow', state)}`);
474
+ log(` Provider: Laya`);
475
+ log(` Runtime: ONNX Runtime`);
476
+ log(` Enabled: ${config?.enabled ? c('green', 'Yes') : c('yellow', 'No')}`);
477
+ log(` Model: ${installed.model || 'Unknown'}`);
478
+ log(` Integrity: ${healthy ? 'VERIFIED' : 'UNVERIFIED'}`);
479
+ log(` Cache: ${layaDir}`);
480
+ log(` Fallback: AVAILABLE`);
481
+ log('');
482
+ }
483
+ }
484
+
485
+ async function cmdSystem1Clean(quiet) {
486
+ const layaDir = getLayaDir();
487
+ if (fs.existsSync(layaDir)) {
488
+ if (!process.env.TK_MOCK_LAYA_DOWNLOAD) {
489
+ log(` Action: System-1 will be completely removed.`);
490
+ const confirmed = await promptConfirm(
491
+ `\n Do you want to proceed with this modification? [y/N] `,
492
+ );
493
+ if (!confirmed) {
494
+ log(
495
+ `\n ${c('yellow', '⚠')} Operation cancelled by user. Existing installation unchanged.`,
496
+ );
497
+ return;
498
+ }
499
+ log('');
500
+ }
501
+ fs.rmSync(layaDir, { recursive: true, force: true });
502
+ if (!quiet) log(` ${c('green', '✓')} System-1 installation completely removed.`);
503
+ } else {
504
+ if (!quiet) dim(` System-1 is not installed.`);
505
+ }
506
+ }
507
+
508
+ async function cmdSystem1Verify(quiet) {
509
+ const healthy = await checkHealth();
510
+ if (healthy) {
511
+ if (!quiet) log(` ${c('green', '✓')} System-1 model and runtime verified.`);
512
+ } else {
513
+ if (!quiet) err(` ✖ System-1 is missing or corrupt. Run 'tk system1 repair'.`);
514
+ process.exitCode = 1;
515
+ }
516
+ }
517
+
518
+ async function cmdSystem1(flags, args, quiet) {
519
+ const rawArgs = args.slice(2);
520
+ const subCommand = rawArgs.find(a => !a.startsWith('-') && a !== 'system1');
521
+
522
+ switch (subCommand) {
523
+ case 'enable':
524
+ case 'setup':
525
+ await cmdSystem1Setup(quiet, 'setup');
526
+ break;
527
+ case 'update':
528
+ await cmdSystem1Setup(quiet, 'update');
529
+ break;
530
+ case 'repair':
531
+ fs.rmSync(getLayaDir(), { recursive: true, force: true });
532
+ await cmdSystem1Setup(quiet, 'repair');
533
+ break;
534
+ case 'verify':
535
+ await cmdSystem1Verify(quiet);
536
+ break;
537
+ case 'disable':
538
+ cmdSystem1Disable(quiet);
539
+ break;
540
+ case 'status':
541
+ await cmdSystem1Status(quiet);
542
+ break;
543
+ case 'clean':
544
+ case 'uninstall':
545
+ await cmdSystem1Clean(quiet);
546
+ break;
547
+ default:
548
+ err(`Unknown system1 command: "${subCommand || ''}"`);
549
+ dim('Available: setup, update, repair, verify, disable, status, uninstall');
550
+ process.exitCode = 1;
551
+ }
552
+ }
553
+
554
+ module.exports = {
555
+ cmdSystem1,
556
+ verifyChecksum,
557
+ RECEPTRON_LAYA_VERSION,
558
+ ONNXRUNTIME_NODE_VERSION,
559
+ checkHealth,
560
+ getTargetVersion,
561
+ getInstalledVersion
562
+ };