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