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.
- package/.agent/ARCHITECTURE.md +9 -6
- package/.agent/agents/accessibility-reviewer.md +23 -16
- package/.agent/agents/ai-code-reviewer.md +25 -21
- package/.agent/agents/anti-pattern-reviewer.md +12 -7
- package/.agent/agents/api-architect.md +1 -0
- package/.agent/agents/backend-specialist.md +23 -22
- package/.agent/agents/cloud-engineer.md +1 -0
- package/.agent/agents/code-archaeologist.md +1 -0
- package/.agent/agents/complexity-reviewer.md +10 -7
- package/.agent/agents/database-architect.md +3 -2
- package/.agent/agents/db-latency-auditor.md +6 -2
- package/.agent/agents/debugger.md +3 -2
- package/.agent/agents/dependency-reviewer.md +1 -0
- package/.agent/agents/devops-engineer.md +9 -8
- package/.agent/agents/documentation-writer.md +6 -5
- package/.agent/agents/explorer-agent.md +1 -0
- package/.agent/agents/frontend-reviewer.md +21 -17
- package/.agent/agents/frontend-specialist.md +23 -20
- package/.agent/agents/game-developer.md +1 -0
- package/.agent/agents/interaction-reviewer.md +10 -5
- package/.agent/agents/logic-reviewer.md +3 -0
- package/.agent/agents/minimalist-reviewer.md +6 -0
- package/.agent/agents/mobile-developer.md +7 -6
- package/.agent/agents/mobile-reviewer.md +14 -13
- package/.agent/agents/orchestrator.md +3 -0
- package/.agent/agents/penetration-tester.md +1 -0
- package/.agent/agents/performance-optimizer.md +6 -5
- package/.agent/agents/performance-reviewer.md +6 -6
- package/.agent/agents/pipeline-reviewer.md +144 -0
- package/.agent/agents/precedence-reviewer.md +1 -0
- package/.agent/agents/product-manager.md +1 -0
- package/.agent/agents/product-owner.md +1 -0
- package/.agent/agents/product-reviewer.md +12 -7
- package/.agent/agents/project-planner.md +3 -0
- package/.agent/agents/qa-automation-engineer.md +50 -43
- package/.agent/agents/resilience-reviewer.md +1 -0
- package/.agent/agents/schema-reviewer.md +1 -0
- package/.agent/agents/security-auditor.md +24 -24
- package/.agent/agents/seo-specialist.md +33 -23
- package/.agent/agents/sql-reviewer.md +5 -4
- package/.agent/agents/supervisor-agent.md +12 -2
- package/.agent/agents/swarm-worker-contracts.md +13 -13
- package/.agent/agents/swarm-worker-registry.md +51 -51
- package/.agent/agents/system-architect.md +1 -0
- package/.agent/agents/test-coverage-reviewer.md +25 -22
- package/.agent/agents/test-engineer.md +12 -11
- package/.agent/agents/throughput-optimizer.md +45 -40
- package/.agent/agents/type-safety-reviewer.md +5 -4
- package/.agent/agents/ui-ux-auditor.md +6 -4
- package/.agent/agents/ui-visual-auditor.md +3 -0
- package/.agent/agents/ux-reviewer.md +11 -6
- package/.agent/agents/visual-reviewer.md +11 -6
- package/.agent/agents/vitals-reviewer.md +5 -4
- package/.agent/history/memory/.memory.idx +1532 -1
- package/.agent/history/memory/MEMORY.md +102 -1
- package/.agent/mcp_config.json +1 -6
- package/.agent/routing_index.json +2033 -263
- package/.agent/rules/GEMINI.md +11 -9
- package/.agent/rules/GEMINI_PLANNER.md +19 -21
- package/.agent/scripts/_colors.js +52 -54
- package/.agent/scripts/_utils.js +52 -53
- package/.agent/scripts/auto_preview.js +39 -43
- package/.agent/scripts/bundle_analyzer.js +47 -60
- package/.agent/scripts/case_law_manager.js +200 -294
- package/.agent/scripts/checklist.js +73 -94
- package/.agent/scripts/cicd_validator.js +305 -0
- package/.agent/scripts/compile_router.py +4 -111
- package/.agent/scripts/context_broker.js +317 -412
- package/.agent/scripts/contract_engine.js +402 -0
- package/.agent/scripts/dependency_analyzer.js +112 -124
- package/.agent/scripts/graph_builder.js +75 -103
- package/.agent/scripts/graph_visualizer.js +10 -12
- package/.agent/scripts/graph_zoom.js +38 -55
- package/.agent/scripts/guardrail_engine.js +195 -145
- package/.agent/scripts/impact_classifier.js +55 -30
- package/.agent/scripts/inner_loop_validator.js +108 -159
- package/.agent/scripts/integrity_manifest.js +59 -67
- package/.agent/scripts/lint_runner.js +65 -75
- package/.agent/scripts/marathon_harness.js +131 -208
- package/.agent/scripts/migrate_skills_frontmatter.py +4 -63
- package/.agent/scripts/minify_context.js +29 -33
- package/.agent/scripts/minimal_change_engine.js +95 -87
- package/.agent/scripts/mutation_runner.js +46 -62
- package/.agent/scripts/pipeline_engine.js +320 -209
- package/.agent/scripts/prompt_compiler.js +118 -93
- package/.agent/scripts/schema_validator.js +73 -121
- package/.agent/scripts/security_scan.js +88 -117
- package/.agent/scripts/session_manager.js +52 -69
- package/.agent/scripts/signal_detector.js +24 -22
- package/.agent/scripts/skill_evolution.js +184 -245
- package/.agent/scripts/skill_integrator.js +35 -48
- package/.agent/scripts/socratic_gate_policy.js +15 -12
- package/.agent/scripts/strengthen_skills.js +29 -33
- package/.agent/scripts/swarm_dispatcher.js +120 -151
- package/.agent/scripts/test_runner.js +54 -56
- package/.agent/scripts/token_budget_broker.js +9 -7
- package/.agent/scripts/trace_engine.js +126 -0
- package/.agent/scripts/verify_all.js +76 -93
- package/.agent/scripts/visual_audit.js +16 -21
- package/.agent/skill_topic_map.json +22 -3
- package/.agent/skills/12-principles-of-animation/SKILL.md +7 -0
- package/.agent/skills/60fps-animation/SKILL.md +7 -0
- package/.agent/skills/accessible-animation/SKILL.md +5 -1
- package/.agent/skills/adapt/SKILL.md +7 -1
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -0
- package/.agent/skills/agent-organizer/SKILL.md +1 -0
- package/.agent/skills/agentic-patterns/SKILL.md +33 -25
- package/.agent/skills/agentic-workflows-2026/SKILL.md +6 -2
- package/.agent/skills/ai-app-hardening/SKILL.md +9 -8
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +7 -6
- package/.agent/skills/animation-on-scroll/SKILL.md +24 -15
- package/.agent/skills/animation-systems/SKILL.md +11 -10
- package/.agent/skills/antfu-conventions/SKILL.md +7 -2
- package/.agent/skills/api-patterns/SKILL.md +14 -10
- package/.agent/skills/api-security-auditor/SKILL.md +15 -14
- package/.agent/skills/app-builder/SKILL.md +1 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +2 -2
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +12 -12
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +3 -3
- package/.agent/skills/apple-design/SKILL.md +8 -7
- package/.agent/skills/architecture/SKILL.md +3 -2
- package/.agent/skills/audit-and-fix/SKILL.md +8 -5
- package/.agent/skills/authentication-best-practices/SKILL.md +9 -8
- package/.agent/skills/backend-security-expert/SKILL.md +1 -0
- package/.agent/skills/baseline-ui/SKILL.md +8 -7
- package/.agent/skills/bash-linux/SKILL.md +1 -0
- package/.agent/skills/behavioral-modes/SKILL.md +1 -0
- package/.agent/skills/better-colors/SKILL.md +11 -7
- package/.agent/skills/better-typography/SKILL.md +30 -16
- package/.agent/skills/better-ui/SKILL.md +17 -10
- package/.agent/skills/bolder/SKILL.md +6 -0
- package/.agent/skills/brainstorming/SKILL.md +6 -4
- package/.agent/skills/browser-native-ai/SKILL.md +5 -4
- package/.agent/skills/build-primitive/SKILL.md +5 -0
- package/.agent/skills/building-native-ui/SKILL.md +1 -0
- package/.agent/skills/cicd-pro/SKILL.md +2 -1
- package/.agent/skills/clarify/SKILL.md +19 -14
- package/.agent/skills/clean-code/SKILL.md +16 -15
- package/.agent/skills/cloud-architect/SKILL.md +1 -0
- package/.agent/skills/cobejs/SKILL.md +7 -9
- package/.agent/skills/code-review-checklist/SKILL.md +1 -0
- package/.agent/skills/codebase-design/SKILL.md +7 -2
- package/.agent/skills/colorize/SKILL.md +8 -3
- package/.agent/skills/compact-landing/SKILL.md +8 -3
- package/.agent/skills/company-logos/SKILL.md +6 -0
- package/.agent/skills/config-validator/SKILL.md +10 -9
- package/.agent/skills/containerization-pro/SKILL.md +6 -5
- package/.agent/skills/context-engineering-pro/SKILL.md +5 -4
- package/.agent/skills/create-design-md/SKILL.md +13 -5
- package/.agent/skills/critique/SKILL.md +10 -8
- package/.agent/skills/csharp-developer/SKILL.md +1 -0
- package/.agent/skills/data-validation-schemas/SKILL.md +28 -23
- package/.agent/skills/database-design/SKILL.md +2 -1
- package/.agent/skills/delight/SKILL.md +6 -0
- package/.agent/skills/deployment-procedures/SKILL.md +2 -1
- package/.agent/skills/design-lab/SKILL.md +5 -0
- package/.agent/skills/devops-engineer/SKILL.md +3 -2
- package/.agent/skills/devops-incident-responder/SKILL.md +2 -1
- package/.agent/skills/diagnosing-bugs/SKILL.md +12 -2
- package/.agent/skills/distill/SKILL.md +7 -2
- package/.agent/skills/documentation-templates/SKILL.md +3 -2
- package/.agent/skills/domain-modeling/SKILL.md +12 -4
- package/.agent/skills/duckdb-analytical-sql/SKILL.md +7 -3
- package/.agent/skills/edge-ai-mobile/SKILL.md +5 -1
- package/.agent/skills/edge-computing/SKILL.md +9 -8
- package/.agent/skills/emil-design-eng/SKILL.md +43 -27
- package/.agent/skills/error-resilience/SKILL.md +34 -16
- package/.agent/skills/expo-router-v4/SKILL.md +2 -1
- package/.agent/skills/extract-design-system/SKILL.md +12 -11
- package/.agent/skills/fabel-protocol/SKILL.md +24 -17
- package/.agent/skills/fixing-accessibility/SKILL.md +23 -16
- package/.agent/skills/fixing-metadata/SKILL.md +24 -13
- package/.agent/skills/fixing-motion-performance/SKILL.md +7 -5
- package/.agent/skills/framer-motion-expert/SKILL.md +29 -15
- package/.agent/skills/frontend-design/SKILL.md +21 -13
- package/.agent/skills/frontend-security-expert/SKILL.md +1 -0
- package/.agent/skills/game-design-expert/SKILL.md +1 -0
- package/.agent/skills/game-engineering-expert/SKILL.md +1 -0
- package/.agent/skills/generative-ui-expert/SKILL.md +3 -2
- package/.agent/skills/geo-fundamentals/SKILL.md +2 -1
- package/.agent/skills/git-pro/SKILL.md +10 -9
- package/.agent/skills/github-operations/SKILL.md +2 -1
- package/.agent/skills/gpt-taste/SKILL.md +7 -0
- package/.agent/skills/gsap-core/SKILL.md +26 -22
- package/.agent/skills/gsap-frameworks/SKILL.md +6 -5
- package/.agent/skills/gsap-performance/SKILL.md +4 -3
- package/.agent/skills/gsap-plugins/SKILL.md +34 -33
- package/.agent/skills/gsap-react/SKILL.md +9 -8
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +34 -33
- package/.agent/skills/gsap-timeline/SKILL.md +18 -15
- package/.agent/skills/gsap-utils/SKILL.md +25 -24
- package/.agent/skills/harden/SKILL.md +9 -3
- package/.agent/skills/harness-protocol/SKILL.md +1 -0
- package/.agent/skills/i18n-localization/SKILL.md +10 -9
- package/.agent/skills/impeccable/SKILL.md +5 -0
- package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -5
- package/.agent/skills/improve-ui/SKILL.md +12 -5
- package/.agent/skills/intelligent-routing/SKILL.md +7 -6
- package/.agent/skills/knowledge-graph/SKILL.md +1 -0
- package/.agent/skills/landing-page/SKILL.md +1 -0
- package/.agent/skills/lint-and-validate/SKILL.md +9 -4
- package/.agent/skills/llm-engineering/SKILL.md +55 -54
- package/.agent/skills/local-first/SKILL.md +20 -19
- package/.agent/skills/local-first-architecture/SKILL.md +6 -1
- package/.agent/skills/lottie-animation/SKILL.md +7 -3
- package/.agent/skills/marquee-loop/SKILL.md +1 -0
- package/.agent/skills/masked-reveal/SKILL.md +17 -4
- package/.agent/skills/mcp-builder/SKILL.md +13 -10
- package/.agent/skills/micro-interaction/SKILL.md +20 -5
- package/.agent/skills/mobile-design/SKILL.md +26 -15
- package/.agent/skills/monorepo-management/SKILL.md +3 -2
- package/.agent/skills/morphing-icons/SKILL.md +16 -6
- package/.agent/skills/motion-engineering/SKILL.md +19 -15
- package/.agent/skills/nextjs-react-expert/SKILL.md +26 -21
- package/.agent/skills/nodejs-best-practices/SKILL.md +89 -76
- package/.agent/skills/observability/SKILL.md +45 -44
- package/.agent/skills/opentelemetry-observability/SKILL.md +2 -1
- package/.agent/skills/page-transition-animation/SKILL.md +6 -3
- package/.agent/skills/parallel-agents/SKILL.md +7 -2
- package/.agent/skills/performance-profiling/SKILL.md +24 -13
- package/.agent/skills/plan-writing/SKILL.md +1 -0
- package/.agent/skills/platform-engineer/SKILL.md +3 -2
- package/.agent/skills/platform-engineering-opentofu/SKILL.md +1 -0
- package/.agent/skills/playwright-ai-e2e/SKILL.md +3 -2
- package/.agent/skills/playwright-best-practices/SKILL.md +29 -28
- package/.agent/skills/polish/SKILL.md +13 -12
- package/.agent/skills/powershell-windows/SKILL.md +1 -0
- package/.agent/skills/pricing-page/SKILL.md +8 -3
- package/.agent/skills/product-aware-heuristics/SKILL.md +122 -72
- package/.agent/skills/progressive-blur/SKILL.md +9 -4
- package/.agent/skills/project-idioms/SKILL.md +1 -0
- package/.agent/skills/property-based-testing/SKILL.md +10 -12
- package/.agent/skills/python-patterns/SKILL.md +1 -0
- package/.agent/skills/python-pro/SKILL.md +1 -0
- package/.agent/skills/quieter/SKILL.md +6 -0
- package/.agent/skills/react-doctor/SKILL.md +6 -0
- package/.agent/skills/react-specialist/SKILL.md +32 -28
- package/.agent/skills/readme-builder/SKILL.md +1 -0
- package/.agent/skills/realtime-patterns/SKILL.md +34 -33
- package/.agent/skills/red-team-tactics/SKILL.md +1 -0
- package/.agent/skills/redesign-skill/SKILL.md +6 -0
- package/.agent/skills/review-animations/SKILL.md +5 -2
- package/.agent/skills/review-animations/STANDARDS.md +37 -23
- package/.agent/skills/rust-pro/SKILL.md +1 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +4 -3
- package/.agent/skills/server-management/SKILL.md +1 -0
- package/.agent/skills/shadcn-ui-expert/SKILL.md +28 -22
- package/.agent/skills/shape/SKILL.md +9 -2
- package/.agent/skills/skill-creator/SKILL.md +1 -0
- package/.agent/skills/soft-skill/SKILL.md +6 -0
- package/.agent/skills/sounds-on-the-web/SKILL.md +1 -0
- package/.agent/skills/sql-pro/SKILL.md +1 -0
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -0
- package/.agent/skills/svg-animation/SKILL.md +16 -7
- package/.agent/skills/swiftui-expert/SKILL.md +1 -0
- package/.agent/skills/swiss-design/SKILL.md +5 -0
- package/.agent/skills/system-design-pro/SKILL.md +1 -0
- package/.agent/skills/systematic-debugging/SKILL.md +1 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +25 -11
- package/.agent/skills/taste-skill/SKILL.md +6 -0
- package/.agent/skills/tdd-workflow/SKILL.md +5 -0
- package/.agent/skills/test-result-analyzer/SKILL.md +1 -0
- package/.agent/skills/testing-patterns/SKILL.md +123 -115
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +5 -0
- package/.agent/skills/thinking-protocol/SKILL.md +3 -0
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -8
- package/.agent/skills/transitions-dev/SKILL.md +19 -6
- package/.agent/skills/trend-researcher/SKILL.md +1 -0
- package/.agent/skills/typescript-advanced/SKILL.md +23 -18
- package/.agent/skills/typeset/SKILL.md +10 -1
- package/.agent/skills/ui-reasoning-engine/SKILL.md +67 -48
- package/.agent/skills/ui-skill-packs/SKILL.md +6 -1
- package/.agent/skills/ui-skills-root/SKILL.md +39 -38
- package/.agent/skills/ui-ux-pro-max/SKILL.md +34 -26
- package/.agent/skills/ui-ux-researcher/SKILL.md +1 -0
- package/.agent/skills/vector-search-pgvector/SKILL.md +3 -2
- package/.agent/skills/vue-expert/SKILL.md +22 -19
- package/.agent/skills/vulnerability-scanner/SKILL.md +22 -21
- package/.agent/skills/web-accessibility-auditor/SKILL.md +2 -1
- package/.agent/skills/web-design-guidelines/SKILL.md +16 -10
- package/.agent/skills/web-quality-audit/SKILL.md +5 -0
- package/.agent/skills/webapp-testing/SKILL.md +14 -13
- package/.agent/skills/webgpu-performance/SKILL.md +1 -0
- package/.agent/skills/whimsy-injector/SKILL.md +9 -5
- package/.agent/skills/workflow-optimizer/SKILL.md +1 -0
- package/.agent/skills/zero-trust-passkeys/SKILL.md +11 -6
- package/.agent/templates/DESIGN.md +119 -110
- package/.agent/templates/design-tokens.json +9 -6
- package/.agent/workflows/acf.md +1 -0
- package/.agent/workflows/api-tester.md +1 -0
- package/.agent/workflows/audit.md +1 -0
- package/.agent/workflows/brainstorm.md +1 -0
- package/.agent/workflows/changelog.md +1 -0
- package/.agent/workflows/contract.md +60 -0
- package/.agent/workflows/create.md +1 -0
- package/.agent/workflows/debug.md +1 -0
- package/.agent/workflows/deploy.md +1 -0
- package/.agent/workflows/enhance.md +1 -0
- package/.agent/workflows/fix-ci.md +89 -0
- package/.agent/workflows/fix.md +1 -0
- package/.agent/workflows/generate.md +1 -0
- package/.agent/workflows/marathon.md +1 -0
- package/.agent/workflows/migrate.md +1 -0
- package/.agent/workflows/minimal.md +9 -7
- package/.agent/workflows/orchestrate.md +1 -0
- package/.agent/workflows/performance-benchmarker.md +1 -0
- package/.agent/workflows/pipeline.md +26 -21
- package/.agent/workflows/plan.md +1 -0
- package/.agent/workflows/preview.md +1 -0
- package/.agent/workflows/refactor.md +3 -2
- package/.agent/workflows/review-ai.md +4 -3
- package/.agent/workflows/review.md +1 -0
- package/.agent/workflows/session.md +1 -0
- package/.agent/workflows/status.md +1 -0
- package/.agent/workflows/strengthen-skills.md +1 -0
- package/.agent/workflows/super-prompt.md +1 -0
- package/.agent/workflows/swarm.md +15 -3
- package/.agent/workflows/test.md +8 -7
- package/.agent/workflows/tribunal-backend.md +3 -2
- package/.agent/workflows/tribunal-cicd.md +104 -0
- package/.agent/workflows/tribunal-database.md +1 -0
- package/.agent/workflows/tribunal-frontend.md +8 -6
- package/.agent/workflows/tribunal-full.md +2 -1
- package/.agent/workflows/tribunal-mobile.md +6 -5
- package/.agent/workflows/tribunal-performance.md +1 -0
- package/.agent/workflows/tribunal-speed.md +1 -0
- package/.agent/workflows/tribunal-ui.md +29 -21
- package/.agent/workflows/ui-ux-pro-max.md +19 -15
- package/CONTRIBUTING.md +3 -3
- package/README.md +94 -44
- package/SECURITY.md +10 -10
- package/bin/mcp-server.js +385 -252
- package/bin/tribunal-kit.js +29 -30
- package/bin/wrapper.js +40 -46
- package/dist/cli.js +6 -0
- package/dist/commands/case.js +2 -0
- package/dist/commands/contract.js +440 -0
- package/dist/commands/status.js +6 -0
- package/dist/index.d.ts +8 -1
- package/package.json +13 -12
- package/scripts/benchmark.js +62 -86
- package/scripts/changelog.js +67 -73
- package/scripts/fix-vbc.js +13 -15
- package/scripts/fix-vbc.ps1 +2 -118
- package/scripts/stress_benchmark.js +358 -0
- package/scripts/sync-version.js +71 -41
- package/scripts/validate-payload.js +23 -30
- package/scripts/visual_audit.js +23 -13
package/bin/tribunal-kit.js
CHANGED
|
@@ -26,31 +26,30 @@
|
|
|
26
26
|
* tribunal-kit uninstall
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
'use strict';
|
|
30
30
|
|
|
31
|
-
const path = require(
|
|
31
|
+
const path = require('path');
|
|
32
32
|
|
|
33
33
|
// Delegate core execution to the modular dist/ entry point
|
|
34
|
-
const { main } = require(
|
|
34
|
+
const { main } = require('../dist/cli.js');
|
|
35
35
|
|
|
36
36
|
// Utilities re-exported for backwards compatibility with tests
|
|
37
|
-
const { compareSemver } = require(
|
|
38
|
-
const { copyDir, countDir, isSelfInstall: _isSelfInstall } = require(
|
|
39
|
-
const { CORE_AGENTS, CORE_SKILLS, generateIDEBridges } = require(
|
|
40
|
-
const { cmdMarathon: _cmdMarathon } = require(
|
|
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(
|
|
65
|
+
if (!arg.startsWith('--') && !arg.startsWith('-') && !args.command) {
|
|
67
66
|
args.command = arg;
|
|
68
67
|
continue;
|
|
69
68
|
}
|
|
70
|
-
if (arg ===
|
|
71
|
-
else if (arg ===
|
|
72
|
-
else if (arg ===
|
|
73
|
-
else if (arg ===
|
|
74
|
-
else if (arg ===
|
|
75
|
-
else if (arg ===
|
|
76
|
-
else if (arg ===
|
|
77
|
-
else if (arg ===
|
|
78
|
-
else if (arg.startsWith(
|
|
79
|
-
args.flags.path = arg.split(
|
|
80
|
-
} else if (arg ===
|
|
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(
|
|
83
|
-
args.flags.branch = arg.split(
|
|
84
|
-
} else if (arg.startsWith(
|
|
85
|
-
args.flags.log = arg.split(
|
|
86
|
-
} else if (arg ===
|
|
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(
|
|
89
|
-
args.flags.strategy = arg.split(
|
|
90
|
-
} else if (arg ===
|
|
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(
|
|
11
|
-
const path = require(
|
|
12
|
-
const { spawnSync } = require(
|
|
13
|
-
const os = require(
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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 ===
|
|
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() ===
|
|
46
|
-
const ext = isWindows ?
|
|
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,
|
|
70
|
-
path.resolve(__dirname,
|
|
71
|
-
path.resolve(__dirname,
|
|
72
|
-
path.resolve(__dirname,
|
|
73
|
-
path.resolve(process.cwd(),
|
|
74
|
-
path.resolve(process.cwd(),
|
|
75
|
-
path.resolve(process.cwd(),
|
|
76
|
-
path.resolve(process.cwd(),
|
|
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,
|
|
85
|
+
const cargoTomlPath = path.resolve(__dirname, '..', 'Cargo.toml');
|
|
87
86
|
if (fs.existsSync(cargoTomlPath)) {
|
|
88
87
|
try {
|
|
89
|
-
const buildResult = spawnSync(
|
|
90
|
-
cwd: path.resolve(__dirname,
|
|
91
|
-
stdio:
|
|
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(
|
|
137
|
-
main().catch(
|
|
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(
|
|
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 ===
|
|
156
|
-
const sourceDir = path.resolve(__dirname,
|
|
157
|
-
args.push(
|
|
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
|
-
|
|
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);
|
package/dist/commands/case.js
CHANGED
|
@@ -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
|