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.
- package/.agent/.manifest.json +78 -0
- package/.agent/ARCHITECTURE.md +19 -241
- 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 +3716 -1
- package/.agent/history/memory/MEMORY.md +246 -1
- package/.agent/mcp_config.json +1 -6
- package/.agent/routing_index.json +2034 -263
- package/.agent/rules/GEMINI.md +12 -10
- 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 +237 -0
- 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 +80 -0
- package/.agent/skills/ai-app-hardening/SKILL.md +59 -0
- 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 +70 -0
- 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 +59 -0
- package/.agent/skills/edge-ai-mobile/SKILL.md +50 -0
- 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 +81 -0
- 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 +59 -0
- 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 +68 -0
- package/.agent/skills/playwright-ai-e2e/SKILL.md +60 -0
- 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 +58 -0
- 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 +78 -0
- 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 +90 -0
- 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 +15 -14
- 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 +160 -88
- package/SECURITY.md +11 -11
- package/bin/mcp-server.js +512 -233
- package/bin/tribunal-kit.js +29 -30
- package/bin/wrapper.js +45 -48
- package/dist/cli.js +26 -0
- package/dist/commands/case.js +2 -0
- package/dist/commands/contract.js +440 -0
- package/dist/commands/memory.js +3 -2
- package/dist/commands/native.js +36 -0
- package/dist/commands/status.js +6 -0
- package/dist/esm/index.mjs +32 -0
- package/dist/index.d.ts +58 -3
- package/package.json +20 -16
- 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,33 +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
|
-
|
|
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 ===
|
|
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() ===
|
|
45
|
-
const ext = isWindows ?
|
|
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,
|
|
69
|
-
path.resolve(__dirname,
|
|
70
|
-
path.resolve(__dirname,
|
|
71
|
-
path.resolve(__dirname,
|
|
72
|
-
path.resolve(process.cwd(),
|
|
73
|
-
path.resolve(process.cwd(),
|
|
74
|
-
path.resolve(process.cwd(),
|
|
75
|
-
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}`),
|
|
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,
|
|
85
|
+
const cargoTomlPath = path.resolve(__dirname, '..', 'Cargo.toml');
|
|
86
86
|
if (fs.existsSync(cargoTomlPath)) {
|
|
87
87
|
try {
|
|
88
|
-
const buildResult = spawnSync(
|
|
89
|
-
cwd: path.resolve(__dirname,
|
|
90
|
-
stdio:
|
|
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(
|
|
136
|
-
main().catch(
|
|
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(
|
|
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 ===
|
|
155
|
-
const sourceDir = path.resolve(__dirname,
|
|
156
|
-
args.push(
|
|
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
|
-
|
|
169
|
-
|
|
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();
|
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
|