tribunal-kit 6.0.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/.agent/ARCHITECTURE.md +9 -6
  2. package/.agent/agents/accessibility-reviewer.md +23 -16
  3. package/.agent/agents/ai-code-reviewer.md +25 -21
  4. package/.agent/agents/anti-pattern-reviewer.md +12 -7
  5. package/.agent/agents/api-architect.md +1 -0
  6. package/.agent/agents/backend-specialist.md +23 -22
  7. package/.agent/agents/cloud-engineer.md +1 -0
  8. package/.agent/agents/code-archaeologist.md +1 -0
  9. package/.agent/agents/complexity-reviewer.md +10 -7
  10. package/.agent/agents/database-architect.md +3 -2
  11. package/.agent/agents/db-latency-auditor.md +6 -2
  12. package/.agent/agents/debugger.md +3 -2
  13. package/.agent/agents/dependency-reviewer.md +1 -0
  14. package/.agent/agents/devops-engineer.md +9 -8
  15. package/.agent/agents/documentation-writer.md +6 -5
  16. package/.agent/agents/explorer-agent.md +1 -0
  17. package/.agent/agents/frontend-reviewer.md +21 -17
  18. package/.agent/agents/frontend-specialist.md +23 -20
  19. package/.agent/agents/game-developer.md +1 -0
  20. package/.agent/agents/interaction-reviewer.md +10 -5
  21. package/.agent/agents/logic-reviewer.md +3 -0
  22. package/.agent/agents/minimalist-reviewer.md +6 -0
  23. package/.agent/agents/mobile-developer.md +7 -6
  24. package/.agent/agents/mobile-reviewer.md +14 -13
  25. package/.agent/agents/orchestrator.md +3 -0
  26. package/.agent/agents/penetration-tester.md +1 -0
  27. package/.agent/agents/performance-optimizer.md +6 -5
  28. package/.agent/agents/performance-reviewer.md +6 -6
  29. package/.agent/agents/pipeline-reviewer.md +144 -0
  30. package/.agent/agents/precedence-reviewer.md +1 -0
  31. package/.agent/agents/product-manager.md +1 -0
  32. package/.agent/agents/product-owner.md +1 -0
  33. package/.agent/agents/product-reviewer.md +12 -7
  34. package/.agent/agents/project-planner.md +3 -0
  35. package/.agent/agents/qa-automation-engineer.md +50 -43
  36. package/.agent/agents/resilience-reviewer.md +1 -0
  37. package/.agent/agents/schema-reviewer.md +1 -0
  38. package/.agent/agents/security-auditor.md +24 -24
  39. package/.agent/agents/seo-specialist.md +33 -23
  40. package/.agent/agents/sql-reviewer.md +5 -4
  41. package/.agent/agents/supervisor-agent.md +12 -2
  42. package/.agent/agents/swarm-worker-contracts.md +13 -13
  43. package/.agent/agents/swarm-worker-registry.md +51 -51
  44. package/.agent/agents/system-architect.md +1 -0
  45. package/.agent/agents/test-coverage-reviewer.md +25 -22
  46. package/.agent/agents/test-engineer.md +12 -11
  47. package/.agent/agents/throughput-optimizer.md +45 -40
  48. package/.agent/agents/type-safety-reviewer.md +5 -4
  49. package/.agent/agents/ui-ux-auditor.md +6 -4
  50. package/.agent/agents/ui-visual-auditor.md +3 -0
  51. package/.agent/agents/ux-reviewer.md +11 -6
  52. package/.agent/agents/visual-reviewer.md +11 -6
  53. package/.agent/agents/vitals-reviewer.md +5 -4
  54. package/.agent/history/memory/.memory.idx +1532 -1
  55. package/.agent/history/memory/MEMORY.md +102 -1
  56. package/.agent/mcp_config.json +1 -6
  57. package/.agent/routing_index.json +2033 -263
  58. package/.agent/rules/GEMINI.md +11 -9
  59. package/.agent/rules/GEMINI_PLANNER.md +19 -21
  60. package/.agent/scripts/_colors.js +52 -54
  61. package/.agent/scripts/_utils.js +52 -53
  62. package/.agent/scripts/auto_preview.js +39 -43
  63. package/.agent/scripts/bundle_analyzer.js +47 -60
  64. package/.agent/scripts/case_law_manager.js +200 -294
  65. package/.agent/scripts/checklist.js +73 -94
  66. package/.agent/scripts/cicd_validator.js +305 -0
  67. package/.agent/scripts/compile_router.py +4 -111
  68. package/.agent/scripts/context_broker.js +317 -412
  69. package/.agent/scripts/contract_engine.js +402 -0
  70. package/.agent/scripts/dependency_analyzer.js +112 -124
  71. package/.agent/scripts/graph_builder.js +75 -103
  72. package/.agent/scripts/graph_visualizer.js +10 -12
  73. package/.agent/scripts/graph_zoom.js +38 -55
  74. package/.agent/scripts/guardrail_engine.js +195 -145
  75. package/.agent/scripts/impact_classifier.js +55 -30
  76. package/.agent/scripts/inner_loop_validator.js +108 -159
  77. package/.agent/scripts/integrity_manifest.js +59 -67
  78. package/.agent/scripts/lint_runner.js +65 -75
  79. package/.agent/scripts/marathon_harness.js +131 -208
  80. package/.agent/scripts/migrate_skills_frontmatter.py +4 -63
  81. package/.agent/scripts/minify_context.js +29 -33
  82. package/.agent/scripts/minimal_change_engine.js +95 -87
  83. package/.agent/scripts/mutation_runner.js +46 -62
  84. package/.agent/scripts/pipeline_engine.js +320 -209
  85. package/.agent/scripts/prompt_compiler.js +118 -93
  86. package/.agent/scripts/schema_validator.js +73 -121
  87. package/.agent/scripts/security_scan.js +88 -117
  88. package/.agent/scripts/session_manager.js +52 -69
  89. package/.agent/scripts/signal_detector.js +24 -22
  90. package/.agent/scripts/skill_evolution.js +184 -245
  91. package/.agent/scripts/skill_integrator.js +35 -48
  92. package/.agent/scripts/socratic_gate_policy.js +15 -12
  93. package/.agent/scripts/strengthen_skills.js +29 -33
  94. package/.agent/scripts/swarm_dispatcher.js +120 -151
  95. package/.agent/scripts/test_runner.js +54 -56
  96. package/.agent/scripts/token_budget_broker.js +9 -7
  97. package/.agent/scripts/trace_engine.js +126 -0
  98. package/.agent/scripts/verify_all.js +76 -93
  99. package/.agent/scripts/visual_audit.js +16 -21
  100. package/.agent/skill_topic_map.json +22 -3
  101. package/.agent/skills/12-principles-of-animation/SKILL.md +7 -0
  102. package/.agent/skills/60fps-animation/SKILL.md +7 -0
  103. package/.agent/skills/accessible-animation/SKILL.md +5 -1
  104. package/.agent/skills/adapt/SKILL.md +7 -1
  105. package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -0
  106. package/.agent/skills/agent-organizer/SKILL.md +1 -0
  107. package/.agent/skills/agentic-patterns/SKILL.md +33 -25
  108. package/.agent/skills/agentic-workflows-2026/SKILL.md +6 -2
  109. package/.agent/skills/ai-app-hardening/SKILL.md +9 -8
  110. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +7 -6
  111. package/.agent/skills/animation-on-scroll/SKILL.md +24 -15
  112. package/.agent/skills/animation-systems/SKILL.md +11 -10
  113. package/.agent/skills/antfu-conventions/SKILL.md +7 -2
  114. package/.agent/skills/api-patterns/SKILL.md +14 -10
  115. package/.agent/skills/api-security-auditor/SKILL.md +15 -14
  116. package/.agent/skills/app-builder/SKILL.md +1 -0
  117. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +2 -2
  118. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
  119. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +12 -12
  120. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +3 -3
  121. package/.agent/skills/apple-design/SKILL.md +8 -7
  122. package/.agent/skills/architecture/SKILL.md +3 -2
  123. package/.agent/skills/audit-and-fix/SKILL.md +8 -5
  124. package/.agent/skills/authentication-best-practices/SKILL.md +9 -8
  125. package/.agent/skills/backend-security-expert/SKILL.md +1 -0
  126. package/.agent/skills/baseline-ui/SKILL.md +8 -7
  127. package/.agent/skills/bash-linux/SKILL.md +1 -0
  128. package/.agent/skills/behavioral-modes/SKILL.md +1 -0
  129. package/.agent/skills/better-colors/SKILL.md +11 -7
  130. package/.agent/skills/better-typography/SKILL.md +30 -16
  131. package/.agent/skills/better-ui/SKILL.md +17 -10
  132. package/.agent/skills/bolder/SKILL.md +6 -0
  133. package/.agent/skills/brainstorming/SKILL.md +6 -4
  134. package/.agent/skills/browser-native-ai/SKILL.md +5 -4
  135. package/.agent/skills/build-primitive/SKILL.md +5 -0
  136. package/.agent/skills/building-native-ui/SKILL.md +1 -0
  137. package/.agent/skills/cicd-pro/SKILL.md +2 -1
  138. package/.agent/skills/clarify/SKILL.md +19 -14
  139. package/.agent/skills/clean-code/SKILL.md +16 -15
  140. package/.agent/skills/cloud-architect/SKILL.md +1 -0
  141. package/.agent/skills/cobejs/SKILL.md +7 -9
  142. package/.agent/skills/code-review-checklist/SKILL.md +1 -0
  143. package/.agent/skills/codebase-design/SKILL.md +7 -2
  144. package/.agent/skills/colorize/SKILL.md +8 -3
  145. package/.agent/skills/compact-landing/SKILL.md +8 -3
  146. package/.agent/skills/company-logos/SKILL.md +6 -0
  147. package/.agent/skills/config-validator/SKILL.md +10 -9
  148. package/.agent/skills/containerization-pro/SKILL.md +6 -5
  149. package/.agent/skills/context-engineering-pro/SKILL.md +5 -4
  150. package/.agent/skills/create-design-md/SKILL.md +13 -5
  151. package/.agent/skills/critique/SKILL.md +10 -8
  152. package/.agent/skills/csharp-developer/SKILL.md +1 -0
  153. package/.agent/skills/data-validation-schemas/SKILL.md +28 -23
  154. package/.agent/skills/database-design/SKILL.md +2 -1
  155. package/.agent/skills/delight/SKILL.md +6 -0
  156. package/.agent/skills/deployment-procedures/SKILL.md +2 -1
  157. package/.agent/skills/design-lab/SKILL.md +5 -0
  158. package/.agent/skills/devops-engineer/SKILL.md +3 -2
  159. package/.agent/skills/devops-incident-responder/SKILL.md +2 -1
  160. package/.agent/skills/diagnosing-bugs/SKILL.md +12 -2
  161. package/.agent/skills/distill/SKILL.md +7 -2
  162. package/.agent/skills/documentation-templates/SKILL.md +3 -2
  163. package/.agent/skills/domain-modeling/SKILL.md +12 -4
  164. package/.agent/skills/duckdb-analytical-sql/SKILL.md +7 -3
  165. package/.agent/skills/edge-ai-mobile/SKILL.md +5 -1
  166. package/.agent/skills/edge-computing/SKILL.md +9 -8
  167. package/.agent/skills/emil-design-eng/SKILL.md +43 -27
  168. package/.agent/skills/error-resilience/SKILL.md +34 -16
  169. package/.agent/skills/expo-router-v4/SKILL.md +2 -1
  170. package/.agent/skills/extract-design-system/SKILL.md +12 -11
  171. package/.agent/skills/fabel-protocol/SKILL.md +24 -17
  172. package/.agent/skills/fixing-accessibility/SKILL.md +23 -16
  173. package/.agent/skills/fixing-metadata/SKILL.md +24 -13
  174. package/.agent/skills/fixing-motion-performance/SKILL.md +7 -5
  175. package/.agent/skills/framer-motion-expert/SKILL.md +29 -15
  176. package/.agent/skills/frontend-design/SKILL.md +21 -13
  177. package/.agent/skills/frontend-security-expert/SKILL.md +1 -0
  178. package/.agent/skills/game-design-expert/SKILL.md +1 -0
  179. package/.agent/skills/game-engineering-expert/SKILL.md +1 -0
  180. package/.agent/skills/generative-ui-expert/SKILL.md +3 -2
  181. package/.agent/skills/geo-fundamentals/SKILL.md +2 -1
  182. package/.agent/skills/git-pro/SKILL.md +10 -9
  183. package/.agent/skills/github-operations/SKILL.md +2 -1
  184. package/.agent/skills/gpt-taste/SKILL.md +7 -0
  185. package/.agent/skills/gsap-core/SKILL.md +26 -22
  186. package/.agent/skills/gsap-frameworks/SKILL.md +6 -5
  187. package/.agent/skills/gsap-performance/SKILL.md +4 -3
  188. package/.agent/skills/gsap-plugins/SKILL.md +34 -33
  189. package/.agent/skills/gsap-react/SKILL.md +9 -8
  190. package/.agent/skills/gsap-scrolltrigger/SKILL.md +34 -33
  191. package/.agent/skills/gsap-timeline/SKILL.md +18 -15
  192. package/.agent/skills/gsap-utils/SKILL.md +25 -24
  193. package/.agent/skills/harden/SKILL.md +9 -3
  194. package/.agent/skills/harness-protocol/SKILL.md +1 -0
  195. package/.agent/skills/i18n-localization/SKILL.md +10 -9
  196. package/.agent/skills/impeccable/SKILL.md +5 -0
  197. package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -5
  198. package/.agent/skills/improve-ui/SKILL.md +12 -5
  199. package/.agent/skills/intelligent-routing/SKILL.md +7 -6
  200. package/.agent/skills/knowledge-graph/SKILL.md +1 -0
  201. package/.agent/skills/landing-page/SKILL.md +1 -0
  202. package/.agent/skills/lint-and-validate/SKILL.md +9 -4
  203. package/.agent/skills/llm-engineering/SKILL.md +55 -54
  204. package/.agent/skills/local-first/SKILL.md +20 -19
  205. package/.agent/skills/local-first-architecture/SKILL.md +6 -1
  206. package/.agent/skills/lottie-animation/SKILL.md +7 -3
  207. package/.agent/skills/marquee-loop/SKILL.md +1 -0
  208. package/.agent/skills/masked-reveal/SKILL.md +17 -4
  209. package/.agent/skills/mcp-builder/SKILL.md +13 -10
  210. package/.agent/skills/micro-interaction/SKILL.md +20 -5
  211. package/.agent/skills/mobile-design/SKILL.md +26 -15
  212. package/.agent/skills/monorepo-management/SKILL.md +3 -2
  213. package/.agent/skills/morphing-icons/SKILL.md +16 -6
  214. package/.agent/skills/motion-engineering/SKILL.md +19 -15
  215. package/.agent/skills/nextjs-react-expert/SKILL.md +26 -21
  216. package/.agent/skills/nodejs-best-practices/SKILL.md +89 -76
  217. package/.agent/skills/observability/SKILL.md +45 -44
  218. package/.agent/skills/opentelemetry-observability/SKILL.md +2 -1
  219. package/.agent/skills/page-transition-animation/SKILL.md +6 -3
  220. package/.agent/skills/parallel-agents/SKILL.md +7 -2
  221. package/.agent/skills/performance-profiling/SKILL.md +24 -13
  222. package/.agent/skills/plan-writing/SKILL.md +1 -0
  223. package/.agent/skills/platform-engineer/SKILL.md +3 -2
  224. package/.agent/skills/platform-engineering-opentofu/SKILL.md +1 -0
  225. package/.agent/skills/playwright-ai-e2e/SKILL.md +3 -2
  226. package/.agent/skills/playwright-best-practices/SKILL.md +29 -28
  227. package/.agent/skills/polish/SKILL.md +13 -12
  228. package/.agent/skills/powershell-windows/SKILL.md +1 -0
  229. package/.agent/skills/pricing-page/SKILL.md +8 -3
  230. package/.agent/skills/product-aware-heuristics/SKILL.md +122 -72
  231. package/.agent/skills/progressive-blur/SKILL.md +9 -4
  232. package/.agent/skills/project-idioms/SKILL.md +1 -0
  233. package/.agent/skills/property-based-testing/SKILL.md +10 -12
  234. package/.agent/skills/python-patterns/SKILL.md +1 -0
  235. package/.agent/skills/python-pro/SKILL.md +1 -0
  236. package/.agent/skills/quieter/SKILL.md +6 -0
  237. package/.agent/skills/react-doctor/SKILL.md +6 -0
  238. package/.agent/skills/react-specialist/SKILL.md +32 -28
  239. package/.agent/skills/readme-builder/SKILL.md +1 -0
  240. package/.agent/skills/realtime-patterns/SKILL.md +34 -33
  241. package/.agent/skills/red-team-tactics/SKILL.md +1 -0
  242. package/.agent/skills/redesign-skill/SKILL.md +6 -0
  243. package/.agent/skills/review-animations/SKILL.md +5 -2
  244. package/.agent/skills/review-animations/STANDARDS.md +37 -23
  245. package/.agent/skills/rust-pro/SKILL.md +1 -0
  246. package/.agent/skills/seo-fundamentals/SKILL.md +4 -3
  247. package/.agent/skills/server-management/SKILL.md +1 -0
  248. package/.agent/skills/shadcn-ui-expert/SKILL.md +28 -22
  249. package/.agent/skills/shape/SKILL.md +9 -2
  250. package/.agent/skills/skill-creator/SKILL.md +1 -0
  251. package/.agent/skills/soft-skill/SKILL.md +6 -0
  252. package/.agent/skills/sounds-on-the-web/SKILL.md +1 -0
  253. package/.agent/skills/sql-pro/SKILL.md +1 -0
  254. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -0
  255. package/.agent/skills/svg-animation/SKILL.md +16 -7
  256. package/.agent/skills/swiftui-expert/SKILL.md +1 -0
  257. package/.agent/skills/swiss-design/SKILL.md +5 -0
  258. package/.agent/skills/system-design-pro/SKILL.md +1 -0
  259. package/.agent/skills/systematic-debugging/SKILL.md +1 -0
  260. package/.agent/skills/tailwind-patterns/SKILL.md +25 -11
  261. package/.agent/skills/taste-skill/SKILL.md +6 -0
  262. package/.agent/skills/tdd-workflow/SKILL.md +5 -0
  263. package/.agent/skills/test-result-analyzer/SKILL.md +1 -0
  264. package/.agent/skills/testing-patterns/SKILL.md +123 -115
  265. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +5 -0
  266. package/.agent/skills/thinking-protocol/SKILL.md +3 -0
  267. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -8
  268. package/.agent/skills/transitions-dev/SKILL.md +19 -6
  269. package/.agent/skills/trend-researcher/SKILL.md +1 -0
  270. package/.agent/skills/typescript-advanced/SKILL.md +23 -18
  271. package/.agent/skills/typeset/SKILL.md +10 -1
  272. package/.agent/skills/ui-reasoning-engine/SKILL.md +67 -48
  273. package/.agent/skills/ui-skill-packs/SKILL.md +6 -1
  274. package/.agent/skills/ui-skills-root/SKILL.md +39 -38
  275. package/.agent/skills/ui-ux-pro-max/SKILL.md +34 -26
  276. package/.agent/skills/ui-ux-researcher/SKILL.md +1 -0
  277. package/.agent/skills/vector-search-pgvector/SKILL.md +3 -2
  278. package/.agent/skills/vue-expert/SKILL.md +22 -19
  279. package/.agent/skills/vulnerability-scanner/SKILL.md +22 -21
  280. package/.agent/skills/web-accessibility-auditor/SKILL.md +2 -1
  281. package/.agent/skills/web-design-guidelines/SKILL.md +16 -10
  282. package/.agent/skills/web-quality-audit/SKILL.md +5 -0
  283. package/.agent/skills/webapp-testing/SKILL.md +14 -13
  284. package/.agent/skills/webgpu-performance/SKILL.md +1 -0
  285. package/.agent/skills/whimsy-injector/SKILL.md +9 -5
  286. package/.agent/skills/workflow-optimizer/SKILL.md +1 -0
  287. package/.agent/skills/zero-trust-passkeys/SKILL.md +11 -6
  288. package/.agent/templates/DESIGN.md +119 -110
  289. package/.agent/templates/design-tokens.json +9 -6
  290. package/.agent/workflows/acf.md +1 -0
  291. package/.agent/workflows/api-tester.md +1 -0
  292. package/.agent/workflows/audit.md +1 -0
  293. package/.agent/workflows/brainstorm.md +1 -0
  294. package/.agent/workflows/changelog.md +1 -0
  295. package/.agent/workflows/contract.md +60 -0
  296. package/.agent/workflows/create.md +1 -0
  297. package/.agent/workflows/debug.md +1 -0
  298. package/.agent/workflows/deploy.md +1 -0
  299. package/.agent/workflows/enhance.md +1 -0
  300. package/.agent/workflows/fix-ci.md +89 -0
  301. package/.agent/workflows/fix.md +1 -0
  302. package/.agent/workflows/generate.md +1 -0
  303. package/.agent/workflows/marathon.md +1 -0
  304. package/.agent/workflows/migrate.md +1 -0
  305. package/.agent/workflows/minimal.md +9 -7
  306. package/.agent/workflows/orchestrate.md +1 -0
  307. package/.agent/workflows/performance-benchmarker.md +1 -0
  308. package/.agent/workflows/pipeline.md +26 -21
  309. package/.agent/workflows/plan.md +1 -0
  310. package/.agent/workflows/preview.md +1 -0
  311. package/.agent/workflows/refactor.md +3 -2
  312. package/.agent/workflows/review-ai.md +4 -3
  313. package/.agent/workflows/review.md +1 -0
  314. package/.agent/workflows/session.md +1 -0
  315. package/.agent/workflows/status.md +1 -0
  316. package/.agent/workflows/strengthen-skills.md +1 -0
  317. package/.agent/workflows/super-prompt.md +1 -0
  318. package/.agent/workflows/swarm.md +15 -3
  319. package/.agent/workflows/test.md +8 -7
  320. package/.agent/workflows/tribunal-backend.md +3 -2
  321. package/.agent/workflows/tribunal-cicd.md +104 -0
  322. package/.agent/workflows/tribunal-database.md +1 -0
  323. package/.agent/workflows/tribunal-frontend.md +8 -6
  324. package/.agent/workflows/tribunal-full.md +2 -1
  325. package/.agent/workflows/tribunal-mobile.md +6 -5
  326. package/.agent/workflows/tribunal-performance.md +1 -0
  327. package/.agent/workflows/tribunal-speed.md +1 -0
  328. package/.agent/workflows/tribunal-ui.md +29 -21
  329. package/.agent/workflows/ui-ux-pro-max.md +19 -15
  330. package/CONTRIBUTING.md +3 -3
  331. package/README.md +94 -44
  332. package/SECURITY.md +10 -10
  333. package/bin/mcp-server.js +385 -252
  334. package/bin/tribunal-kit.js +29 -30
  335. package/bin/wrapper.js +40 -46
  336. package/dist/cli.js +6 -0
  337. package/dist/commands/case.js +2 -0
  338. package/dist/commands/contract.js +440 -0
  339. package/dist/commands/status.js +6 -0
  340. package/dist/index.d.ts +8 -1
  341. package/package.json +13 -12
  342. package/scripts/benchmark.js +62 -86
  343. package/scripts/changelog.js +67 -73
  344. package/scripts/fix-vbc.js +13 -15
  345. package/scripts/fix-vbc.ps1 +2 -118
  346. package/scripts/stress_benchmark.js +358 -0
  347. package/scripts/sync-version.js +71 -41
  348. package/scripts/validate-payload.js +23 -30
  349. package/scripts/visual_audit.js +23 -13
@@ -26,31 +26,30 @@
26
26
  * tribunal-kit uninstall
27
27
  */
28
28
 
29
- "use strict";
29
+ 'use strict';
30
30
 
31
- const path = require("path");
31
+ const path = require('path');
32
32
 
33
33
  // Delegate core execution to the modular dist/ entry point
34
- const { main } = require("../dist/cli.js");
34
+ const { main } = require('../dist/cli.js');
35
35
 
36
36
  // Utilities re-exported for backwards compatibility with tests
37
- const { compareSemver } = require("../dist/utils/version");
38
- const { copyDir, countDir, isSelfInstall: _isSelfInstall } = require("../dist/utils/fs");
39
- const { CORE_AGENTS, CORE_SKILLS, generateIDEBridges } = require("../dist/commands/init");
40
- const { cmdMarathon: _cmdMarathon } = require("../dist/commands/marathon");
37
+ const { compareSemver } = require('../dist/utils/version');
38
+ const { copyDir, countDir, isSelfInstall: _isSelfInstall } = require('../dist/utils/fs');
39
+ const { CORE_AGENTS, CORE_SKILLS, generateIDEBridges } = require('../dist/commands/init');
40
+ const { cmdMarathon: _cmdMarathon } = require('../dist/commands/marathon');
41
41
 
42
42
  function cmdMarathon(flags, processArgs = process.argv) {
43
43
  return _cmdMarathon(flags, processArgs, flags?.quiet || false);
44
44
  }
45
45
 
46
-
47
- const PKG = require(path.resolve(__dirname, "..", "package.json"));
46
+ const PKG = require(path.resolve(__dirname, '..', 'package.json'));
48
47
 
49
48
  /**
50
49
  * Returns true if the target directory IS the tribunal-kit package itself.
51
50
  */
52
51
  function isSelfInstall(targetDir) {
53
- const kitRoot = path.resolve(__dirname, "..");
52
+ const kitRoot = path.resolve(__dirname, '..');
54
53
  return _isSelfInstall(targetDir, PKG.name, kitRoot);
55
54
  }
56
55
 
@@ -63,31 +62,31 @@ function parseArgs(argv) {
63
62
 
64
63
  for (let i = 0; i < raw.length; i++) {
65
64
  const arg = raw[i];
66
- if (!arg.startsWith("--") && !arg.startsWith("-") && !args.command) {
65
+ if (!arg.startsWith('--') && !arg.startsWith('-') && !args.command) {
67
66
  args.command = arg;
68
67
  continue;
69
68
  }
70
- if (arg === "--force") args.flags.force = true;
71
- else if (arg === "--quiet") args.flags.quiet = true;
72
- else if (arg === "--verbose") args.flags.verbose = true;
73
- else if (arg === "--dry-run") args.flags.dryRun = true;
74
- else if (arg === "--minimal") args.flags.minimal = true;
75
- else if (arg === "--token-optimized") args.flags.tokenOptimized = true;
76
- else if (arg === "--skip-update-check") args.flags.skipUpdateCheck = true;
77
- else if (arg === "--head") args.flags.head = true;
78
- else if (arg.startsWith("--path=")) {
79
- args.flags.path = arg.split("=").slice(1).join("=");
80
- } else if (arg === "--path" && raw[i + 1] && !raw[i + 1].startsWith("-")) {
69
+ if (arg === '--force') args.flags.force = true;
70
+ else if (arg === '--quiet') args.flags.quiet = true;
71
+ else if (arg === '--verbose') args.flags.verbose = true;
72
+ else if (arg === '--dry-run') args.flags.dryRun = true;
73
+ else if (arg === '--minimal') args.flags.minimal = true;
74
+ else if (arg === '--token-optimized') args.flags.tokenOptimized = true;
75
+ else if (arg === '--skip-update-check') args.flags.skipUpdateCheck = true;
76
+ else if (arg === '--head') args.flags.head = true;
77
+ else if (arg.startsWith('--path=')) {
78
+ args.flags.path = arg.split('=').slice(1).join('=');
79
+ } else if (arg === '--path' && raw[i + 1] && !raw[i + 1].startsWith('-')) {
81
80
  args.flags.path = raw[++i];
82
- } else if (arg.startsWith("--branch=")) {
83
- args.flags.branch = arg.split("=").slice(1).join("=");
84
- } else if (arg.startsWith("--log=")) {
85
- args.flags.log = arg.split("=").slice(1).join("=");
86
- } else if (arg === "--log" && raw[i + 1] && !raw[i + 1].startsWith("-")) {
81
+ } else if (arg.startsWith('--branch=')) {
82
+ args.flags.branch = arg.split('=').slice(1).join('=');
83
+ } else if (arg.startsWith('--log=')) {
84
+ args.flags.log = arg.split('=').slice(1).join('=');
85
+ } else if (arg === '--log' && raw[i + 1] && !raw[i + 1].startsWith('-')) {
87
86
  args.flags.log = raw[++i];
88
- } else if (arg.startsWith("--strategy=")) {
89
- args.flags.strategy = arg.split("=").slice(1).join("=");
90
- } else if (arg === "--strategy" && raw[i + 1] && !raw[i + 1].startsWith("-")) {
87
+ } else if (arg.startsWith('--strategy=')) {
88
+ args.flags.strategy = arg.split('=').slice(1).join('=');
89
+ } else if (arg === '--strategy' && raw[i + 1] && !raw[i + 1].startsWith('-')) {
91
90
  args.flags.strategy = raw[++i];
92
91
  }
93
92
  }
package/bin/wrapper.js CHANGED
@@ -7,34 +7,33 @@
7
7
  * falls back to the original JavaScript implementation.
8
8
  */
9
9
 
10
- const fs = require("fs");
11
- const path = require("path");
12
- const { spawnSync } = require("child_process");
13
- const os = require("os");
10
+ const fs = require('fs');
11
+ const path = require('path');
12
+ const { spawnSync } = require('child_process');
13
+ const os = require('os');
14
14
 
15
15
  // Commands that have been fully ported to Rust so far
16
16
  const RUST_COMMANDS = new Set([
17
- "init",
18
- "validate",
19
- "status",
20
- "sync",
21
- "hook",
22
- "uninstall",
23
- "memory",
24
- "min-context",
25
- "dag-schedule",
26
- "context-compress",
27
- "context-broker",
28
- "optimize-step",
29
- "impact-tier",
17
+ 'init',
18
+ 'validate',
19
+ 'status',
20
+ 'sync',
21
+ 'hook',
22
+ 'uninstall',
23
+ 'memory',
24
+ 'min-context',
25
+ 'dag-schedule',
26
+ 'context-compress',
27
+ 'context-broker',
28
+ 'optimize-step',
29
+ 'impact-tier',
30
30
  ]);
31
31
 
32
-
33
32
  // Determine the path to the compiled Rust binary
34
33
  // In a full production release, this checks optionalDependencies in node_modules
35
34
  // For development, it checks the local target/release folder
36
35
  function getBinaryPath() {
37
- if (process.env.TRIBUNAL_FORCE_JS === "1") {
36
+ if (process.env.TRIBUNAL_FORCE_JS === '1') {
38
37
  return null;
39
38
  }
40
39
 
@@ -42,8 +41,8 @@ function getBinaryPath() {
42
41
  return process.env.TRIBUNAL_CORE_PATH;
43
42
  }
44
43
 
45
- const isWindows = os.platform() === "win32";
46
- const ext = isWindows ? ".exe" : "";
44
+ const isWindows = os.platform() === 'win32';
45
+ const ext = isWindows ? '.exe' : '';
47
46
  const platform = os.platform();
48
47
  const arch = os.arch();
49
48
 
@@ -66,14 +65,14 @@ function getBinaryPath() {
66
65
 
67
66
  // Second, try to find the binary in local dev target directories
68
67
  const candidatePaths = [
69
- path.resolve(__dirname, "..", "target", "release", `tribunal-core${ext}`),
70
- path.resolve(__dirname, "..", "target", "debug", `tribunal-core${ext}`),
71
- path.resolve(__dirname, "..", "..", "target", "release", `tribunal-core${ext}`),
72
- path.resolve(__dirname, "..", "..", "target", "debug", `tribunal-core${ext}`),
73
- path.resolve(process.cwd(), "target", "release", `tribunal-core${ext}`),
74
- path.resolve(process.cwd(), "target", "debug", `tribunal-core${ext}`),
75
- path.resolve(process.cwd(), "tribunal-kit", "target", "release", `tribunal-core${ext}`),
76
- path.resolve(process.cwd(), "tribunal-kit", "target", "debug", `tribunal-core${ext}`),
68
+ path.resolve(__dirname, '..', 'target', 'release', `tribunal-core${ext}`),
69
+ path.resolve(__dirname, '..', 'target', 'debug', `tribunal-core${ext}`),
70
+ path.resolve(__dirname, '..', '..', 'target', 'release', `tribunal-core${ext}`),
71
+ path.resolve(__dirname, '..', '..', 'target', 'debug', `tribunal-core${ext}`),
72
+ path.resolve(process.cwd(), 'target', 'release', `tribunal-core${ext}`),
73
+ path.resolve(process.cwd(), 'target', 'debug', `tribunal-core${ext}`),
74
+ path.resolve(process.cwd(), 'tribunal-kit', 'target', 'release', `tribunal-core${ext}`),
75
+ path.resolve(process.cwd(), 'tribunal-kit', 'target', 'debug', `tribunal-core${ext}`),
77
76
  ];
78
77
 
79
78
  for (const candidate of candidatePaths) {
@@ -83,12 +82,12 @@ function getBinaryPath() {
83
82
  }
84
83
 
85
84
  // Third, attempt on-demand compilation if Cargo.toml exists locally and cargo is installed
86
- const cargoTomlPath = path.resolve(__dirname, "..", "Cargo.toml");
85
+ const cargoTomlPath = path.resolve(__dirname, '..', 'Cargo.toml');
87
86
  if (fs.existsSync(cargoTomlPath)) {
88
87
  try {
89
- const buildResult = spawnSync("cargo", ["build", "--release"], {
90
- cwd: path.resolve(__dirname, ".."),
91
- stdio: "ignore",
88
+ const buildResult = spawnSync('cargo', ['build', '--release'], {
89
+ cwd: path.resolve(__dirname, '..'),
90
+ stdio: 'ignore',
92
91
  timeout: 60000,
93
92
  });
94
93
  if (buildResult.status === 0) {
@@ -105,13 +104,8 @@ function getBinaryPath() {
105
104
  return null;
106
105
  }
107
106
 
108
-
109
107
  function runRustBinary(binPath, args) {
110
- const stdio = [
111
- "inherit",
112
- "inherit",
113
- "inherit",
114
- ];
108
+ const stdio = ['inherit', 'inherit', 'inherit'];
115
109
  const result = spawnSync(binPath, args, {
116
110
  stdio: stdio,
117
111
  env: process.env,
@@ -133,8 +127,8 @@ function runRustBinary(binPath, args) {
133
127
  function runLegacyFallback() {
134
128
  // Use the modular dist/ CLI with lazy-loaded commands for faster cold-start.
135
129
  // Each command module is require()'d only when invoked (~70% fewer files loaded).
136
- const { main } = require("../dist/cli.js");
137
- main().catch((err) => {
130
+ const { main } = require('../dist/cli.js');
131
+ main().catch(err => {
138
132
  console.error(`\x1b[91m✖ Fatal Error:\x1b[0m ${err.message || err}`);
139
133
  process.exit(1);
140
134
  });
@@ -145,16 +139,16 @@ function main() {
145
139
  const args = process.argv.slice(2);
146
140
 
147
141
  // Extract the command (the first non-flag argument)
148
- const command = args.find((a) => !a.startsWith("-"));
142
+ const command = args.find(a => !a.startsWith('-'));
149
143
 
150
144
  if (command && RUST_COMMANDS.has(command)) {
151
145
  const binPath = getBinaryPath();
152
146
 
153
147
  if (binPath) {
154
148
  // For the init command, Rust needs to know where the .agent template folder is.
155
- if (command === "init") {
156
- const sourceDir = path.resolve(__dirname, "..", ".agent");
157
- args.push("--source-dir", sourceDir);
149
+ if (command === 'init') {
150
+ const sourceDir = path.resolve(__dirname, '..', '.agent');
151
+ args.push('--source-dir', sourceDir);
158
152
  }
159
153
 
160
154
  // Route to Rust engine
@@ -168,7 +162,7 @@ function main() {
168
162
  // Warn if Rust command was requested but binary is missing (in verbose mode)
169
163
  if (process.env.TK_VERBOSE || process.env.VERBOSE) {
170
164
  console.warn(
171
- "\x1b[93m⚠ Rust binary not found in target/. Falling back to JS engine.\x1b[0m",
165
+ '\x1b[93m⚠ Rust binary not found in target/. Falling back to JS engine.\x1b[0m',
172
166
  );
173
167
  }
174
168
  }
package/dist/cli.js CHANGED
@@ -121,6 +121,7 @@ function cmdHelp(quiet = false) {
121
121
  (0, logger_1.log)(cmd('context-compress', 'Compress a context file while retaining VERIFY comments'));
122
122
  (0, logger_1.log)(cmd('optimize-step', 'Apply bounded SkillOpt edits from a JSON payload'));
123
123
  (0, logger_1.log)(cmd('guardrail', 'Validate .agent/ integrity (phantom refs, count mismatches, drift)'));
124
+ (0, logger_1.log)(cmd('contract', 'AI Agent Behavioral Contract Testing (init, verify, list, trace, replay)'));
124
125
  (0, logger_1.log)(cmd('impact-tier', 'Classify task governance impact tier (0-3)'));
125
126
  (0, logger_1.log)(cmd('uninstall', 'Remove .agent/ folder from project'));
126
127
  console.log();
@@ -288,6 +289,11 @@ async function runWithUpdateCheck(command, flags) {
288
289
  await cmdGuardrail(flags, process.argv, quiet);
289
290
  break;
290
291
  }
292
+ case 'contract': {
293
+ const cmdContract = loadCmd('./commands/contract', 'cmdContract');
294
+ await cmdContract(flags, process.argv, quiet);
295
+ break;
296
+ }
291
297
  case 'validate': {
292
298
  const cmdValidate = loadCmd('./commands/validate', 'cmdValidate');
293
299
  cmdValidate(flags, process.argv, quiet);
@@ -59,6 +59,8 @@ async function cmdCase(flags, processArgs, quiet = false) {
59
59
  );
60
60
  if (!quiet) {
61
61
  (0, logger_1.log)(` ${(0, logger_1.c)('cyan', '\u25b8')} Memory bridge: case law rejection stored to memory index`);
62
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', '💡')} Tip: Auto-generate a behavioral contract to prevent recurrence:`);
63
+ (0, logger_1.log)(` ${(0, logger_1.c)('cyan', 'tk contract generate --from-case latest')}`);
62
64
  }
63
65
  } catch {
64
66
  // Non-critical — case law was still saved, memory bridge is a bonus