@event4u/agent-config 8.4.1 → 8.5.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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +67 -0
- package/README.md +17 -5
- package/dist/agent-src/README.md +1 -1
- package/dist/agent-src/commands/{analyze-reference-repo.md → analyze/reference-repo.md} +3 -1
- package/dist/agent-src/commands/analyze.md +9 -6
- package/dist/agent-src/commands/{bug-fix.md → bug/fix.md} +3 -1
- package/dist/agent-src/commands/{bug-investigate.md → bug/investigate.md} +4 -2
- package/dist/agent-src/commands/bug.md +59 -0
- package/dist/agent-src/commands/{set-cost-profile.md → cost/profile.md} +9 -6
- package/dist/agent-src/commands/{cost-report.md → cost/report.md} +18 -17
- package/dist/agent-src/commands/cost.md +57 -0
- package/dist/agent-src/commands/evals/{review-changes.json → review.json} +12 -8
- package/dist/agent-src/commands/{quality-fix.md → fix/quality.md} +5 -2
- package/dist/agent-src/commands/fix.md +7 -4
- package/dist/agent-src/commands/optimize/project.md +250 -0
- package/dist/agent-src/commands/{optimize-prompt.md → optimize/prompt.md} +3 -2
- package/dist/agent-src/commands/optimize.md +17 -12
- package/dist/agent-src/commands/{package-reset.md → package/reset.md} +2 -0
- package/dist/agent-src/commands/{package-test.md → package/test.md} +3 -1
- package/dist/agent-src/commands/package.md +56 -0
- package/dist/agent-src/commands/{project-analyze.md → project/analyze.md} +10 -8
- package/dist/agent-src/commands/{project-health.md → project/health.md} +2 -0
- package/dist/agent-src/commands/project.md +60 -0
- package/dist/agent-src/commands/{review-changes.md → review/changes.md} +26 -24
- package/dist/agent-src/commands/{review-routing.md → review/routing.md} +21 -17
- package/dist/agent-src/commands/review.md +61 -0
- package/dist/agent-src/commands/security-audit-config.md +24 -23
- package/dist/agent-src/commands/{sync-agent-settings.md → sync/agent-settings.md} +11 -7
- package/dist/agent-src/commands/{sync-gitignore → sync/gitignore}/fix.md +36 -27
- package/dist/agent-src/commands/{sync-gitignore.md → sync/gitignore.md} +22 -21
- package/dist/agent-src/commands/sync.md +58 -0
- package/dist/agent-src/commands/{e2e-heal.md → tests/e2e-heal.md} +5 -2
- package/dist/agent-src/commands/{e2e-plan.md → tests/e2e-plan.md} +5 -2
- package/dist/agent-src/commands/tests.md +11 -5
- package/dist/agent-src/contexts/augment-infrastructure.md +3 -3
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
- package/dist/agent-src/contexts/skills-and-commands.md +2 -2
- package/dist/agent-src/rules/external-reference-deep-dive.md +1 -1
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-security-auditor/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-test-coverage/SKILL.md +1 -1
- package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
- package/dist/agent-src/skills/mobile-e2e-strategy/SKILL.md +5 -5
- package/dist/agent-src/skills/prompt-optimizer/SKILL.md +2 -2
- package/dist/agent-src/skills/quality-tools/SKILL.md +1 -1
- package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/templates/agent-settings.md +1 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +2 -2
- package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
- package/dist/cli/commands/config.js +44 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/uiServe.js +1 -0
- package/dist/cli/commands/uiServe.js.map +1 -1
- package/dist/cli/help.js +38 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/initRouting.js +16 -1
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/main.js +43 -37
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +45 -44
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +419 -210
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +31 -25
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +30 -24
- package/dist/install/install.mjs +6064 -159
- package/dist/install/selectedTools.js +39 -10
- package/dist/install/selectedTools.js.map +1 -1
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/server/app.js +15 -3
- package/dist/server/app.js.map +1 -1
- package/dist/server/routes/ping.js +16 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/settings.js +42 -6
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/settingsChanges.js +55 -0
- package/dist/server/routes/settingsChanges.js.map +1 -0
- package/dist/server/routes/userMd.js +7 -2
- package/dist/server/routes/userMd.js.map +1 -1
- package/dist/server/routes/wizard.js +76 -14
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/writeRoot.js +17 -0
- package/dist/server/writeRoot.js.map +1 -1
- package/dist/shared/settingsSurface.js +120 -0
- package/dist/shared/settingsSurface.js.map +1 -0
- package/dist/ui/assets/index-BPFMZWUs.css +1 -0
- package/dist/ui/assets/index-BiEZiZ31.js +40 -0
- package/dist/ui/assets/index-BiEZiZ31.js.map +1 -0
- package/dist/ui/index.html +15 -2
- package/docs/CLAIMS.md +20 -15
- package/docs/architecture.md +1 -1
- package/docs/catalog.md +37 -31
- package/docs/command-flows.md +22 -16
- package/docs/contracts/command-clusters.md +39 -9
- package/docs/contracts/file-ownership-matrix.json +21 -0
- package/docs/contracts/frontmatter-contract.md +1 -1
- package/docs/contracts/gui-wizard.md +16 -4
- package/docs/contracts/iron-law-overrides.txt +1 -0
- package/docs/contracts/rule-classification.md +2 -2
- package/docs/contracts/settings-api.md +58 -2
- package/docs/contracts/surface-matrix.md +5 -0
- package/docs/cookbook.md +7 -7
- package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +74 -0
- package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +91 -0
- package/docs/decisions/INDEX.md +2 -0
- package/docs/featured-commands.md +1 -1
- package/docs/featured-skills.md +4 -4
- package/docs/flows.md +2 -2
- package/docs/getting-started-by-role.md +1 -1
- package/docs/getting-started-laravel.md +1 -1
- package/docs/getting-started.md +6 -3
- package/docs/governance-advantage.md +1 -1
- package/docs/guidelines/agent-infra/5w2h-analysis.md +1 -1
- package/docs/guidelines/agent-infra/ios-simulator-guide.md +1 -1
- package/docs/proof.md +11 -2
- package/package.json +3 -1
- package/src/agent-src/README.md +1 -1
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
- package/src/config/agent-settings.template.yml +1 -1
- package/src/install/selectedTools.ts +38 -10
- package/src/scripts/_cli/cmd_converge.ts +38 -0
- package/src/scripts/_cli/cmd_doctor.ts +113 -2
- package/src/scripts/_cli/cmd_explain.ts +2 -2
- package/src/scripts/_cli/cmd_export.ts +3 -3
- package/src/scripts/_cli/cmd_fleet.ts +13 -1
- package/src/scripts/_cli/cmd_migrate.ts +3 -3
- package/src/scripts/_cli/cmd_prune.ts +2 -2
- package/src/scripts/_cli/cmd_refresh.ts +4 -4
- package/src/scripts/_cli/cmd_settings_check.ts +2 -2
- package/src/scripts/_cli/cmd_settings_migrate.ts +2 -2
- package/src/scripts/_cli/cmd_sync.ts +2 -2
- package/src/scripts/_cli/cmd_uninstall.ts +2 -2
- package/src/scripts/_cli/cmd_update.ts +8 -8
- package/src/scripts/_cli/cmd_upgrade.ts +4 -3
- package/src/scripts/_cli/cmd_validate.ts +3 -3
- package/src/scripts/_cli/cmd_versions.ts +2 -2
- package/src/scripts/_cli/explain_last/assumptions.ts +2 -2
- package/src/scripts/_cli/explain_last/council.ts +2 -2
- package/src/scripts/_cli/explain_last/halt.ts +2 -2
- package/src/scripts/_cli/explain_last/index.ts +2 -2
- package/src/scripts/_cli/explain_last/inputs.ts +4 -4
- package/src/scripts/_cli/explain_last/memory.ts +2 -2
- package/src/scripts/_cli/explain_last/provider.ts +2 -2
- package/src/scripts/_cli/explain_last/render.ts +2 -2
- package/src/scripts/_cli/explain_last/route.ts +2 -2
- package/src/scripts/_cli/explain_last/scrubber.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/assumptions.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/council.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/halt.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/header.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/index.ts +1 -1
- package/src/scripts/_cli/explain_last/sections/inputs.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/memory.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/pack.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/provider.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/route.ts +2 -2
- package/src/scripts/_cli/explain_last/state_loader.ts +2 -2
- package/src/scripts/_dispatch.bash +20 -1
- package/src/scripts/_lib/agent_settings.ts +1 -1
- package/src/scripts/_lib/agent_src.ts +7 -7
- package/src/scripts/_lib/agents_overlay.ts +1 -1
- package/src/scripts/_lib/bench_ab_cache.ts +1 -1
- package/src/scripts/_lib/bench_ab_scoring.ts +1 -1
- package/src/scripts/_lib/bench_ab_scoring_v2.ts +3 -3
- package/src/scripts/_lib/bench_cost.ts +1 -1
- package/src/scripts/_lib/bench_quality.ts +3 -3
- package/src/scripts/_lib/bench_report.ts +4 -4
- package/src/scripts/_lib/bench_telegraph.ts +1 -1
- package/src/scripts/_lib/bench_telegraph_report.ts +4 -4
- package/src/scripts/_lib/changelog_eras.ts +1 -1
- package/src/scripts/_lib/claude_desktop_bundler.ts +1 -1
- package/src/scripts/_lib/cli_wrapper.ts +1 -1
- package/src/scripts/_lib/fs_atomic.ts +1 -1
- package/src/scripts/_lib/global_deploy_inventory.ts +1 -1
- package/src/scripts/_lib/install_layout.ts +1 -1
- package/src/scripts/_lib/install_regenerator.ts +1 -1
- package/src/scripts/_lib/installed_lock.ts +1 -1
- package/src/scripts/_lib/installed_tools.ts +1 -1
- package/src/scripts/_lib/json_pointers.ts +1 -1
- package/src/scripts/_lib/knowledge_global.ts +1 -1
- package/src/scripts/_lib/knowledge_global_promote.ts +2 -2
- package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
- package/src/scripts/_lib/link_crypto.ts +4 -4
- package/src/scripts/_lib/linked_projects.ts +4 -4
- package/src/scripts/_lib/model_tier.ts +1 -1
- package/src/scripts/_lib/module_detection.ts +2 -2
- package/src/scripts/_lib/pin_resolver.ts +1 -1
- package/src/scripts/_lib/script_output.ts +1 -1
- package/src/scripts/_lib/security_lint.ts +1 -1
- package/src/scripts/_lib/surface_tiers.ts +1 -1
- package/src/scripts/_lib/text_similarity.ts +1 -1
- package/src/scripts/_lib/update_check.ts +2 -2
- package/src/scripts/_lib/user_global_paths.ts +1 -1
- package/src/scripts/_lib/value_ladder.ts +1 -1
- package/src/scripts/_lib/value_report.ts +1 -1
- package/src/scripts/_lib/zip_min.ts +2 -2
- package/src/scripts/adoption_report.ts +3 -3
- package/src/scripts/adoption_snapshot.ts +3 -3
- package/src/scripts/adoption_status.ts +2 -2
- package/src/scripts/adr/regenerate_index.ts +3 -3
- package/src/scripts/ai_council/_default_prices.ts +2 -3
- package/src/scripts/ai_council/advisors.ts +1 -1
- package/src/scripts/ai_council/airgap.ts +1 -1
- package/src/scripts/ai_council/budget_guard.ts +1 -1
- package/src/scripts/ai_council/bundler.ts +1 -1
- package/src/scripts/ai_council/cli_hints.ts +1 -1
- package/src/scripts/ai_council/clients.ts +5 -5
- package/src/scripts/ai_council/compile_corpus.ts +1 -1
- package/src/scripts/ai_council/confidence_gate.ts +1 -1
- package/src/scripts/ai_council/config.ts +1 -1
- package/src/scripts/ai_council/consensus.ts +1 -1
- package/src/scripts/ai_council/events_log.ts +1 -1
- package/src/scripts/ai_council/learn_low_impact_preview.ts +1 -1
- package/src/scripts/ai_council/low_impact_corpus.ts +1 -1
- package/src/scripts/ai_council/low_impact_intake.ts +1 -1
- package/src/scripts/ai_council/modes.ts +1 -1
- package/src/scripts/ai_council/orchestrator.ts +3 -3
- package/src/scripts/ai_council/pricing.ts +2 -2
- package/src/scripts/ai_council/probation_gate.ts +2 -2
- package/src/scripts/ai_council/project_context.ts +1 -1
- package/src/scripts/ai_council/prompts.ts +1 -1
- package/src/scripts/ai_council/redact_low_impact_entry.ts +2 -2
- package/src/scripts/ai_council/session.ts +1 -1
- package/src/scripts/ai_council/shadow_dispatch.ts +1 -1
- package/src/scripts/ai_council/solo_dispatch.ts +1 -1
- package/src/scripts/analysis_freshness.ts +2 -2
- package/src/scripts/annotate_discovery.ts +2 -2
- package/src/scripts/apply_modules_config.ts +2 -2
- package/src/scripts/audit_adr_coverage.ts +3 -3
- package/src/scripts/audit_auto_rules.ts +2 -2
- package/src/scripts/audit_cloud_compatibility.ts +3 -3
- package/src/scripts/audit_command_surface.ts +2 -2
- package/src/scripts/audit_initial_context.ts +7 -6
- package/src/scripts/audit_likelihood.ts +5 -5
- package/src/scripts/audit_mcp_tools.ts +3 -3
- package/src/scripts/audit_overlap.ts +2 -2
- package/src/scripts/audit_skill_descriptions.ts +2 -2
- package/src/scripts/audit_skill_overlap.ts +5 -5
- package/src/scripts/audit_user_type_axis.ts +4 -4
- package/src/scripts/backfill_model_tier.ts +1 -1
- package/src/scripts/bench_ab_cache_dispatch.ts +2 -2
- package/src/scripts/bench_ab_clone.ts +2 -2
- package/src/scripts/bench_ab_diff.ts +3 -3
- package/src/scripts/bench_ab_integrity.ts +2 -2
- package/src/scripts/bench_ab_run.ts +4 -4
- package/src/scripts/bench_ab_task_runner.ts +1 -1
- package/src/scripts/bench_ab_tracka_run.ts +2 -2
- package/src/scripts/bench_ab_v2_run.ts +1 -1
- package/src/scripts/bench_ab_v2_stats.ts +2 -2
- package/src/scripts/bench_baseline_ready.ts +1 -1
- package/src/scripts/bench_condense_memory.ts +4 -4
- package/src/scripts/bench_drift_check.ts +3 -3
- package/src/scripts/bench_per_tool.ts +1 -1
- package/src/scripts/bench_rtk_savings.ts +4 -4
- package/src/scripts/bench_run.ts +4 -4
- package/src/scripts/bench_runner.ts +1 -1
- package/src/scripts/build_cloud_bundle.ts +3 -3
- package/src/scripts/build_discovery_manifest.ts +13 -15
- package/src/scripts/build_linear_digest.ts +2 -2
- package/src/scripts/build_mcp_registry_manifest.ts +3 -3
- package/src/scripts/build_proof.ts +6 -0
- package/src/scripts/build_rule_trigger_matrix.ts +2 -2
- package/src/scripts/capture_showcase_session.ts +3 -3
- package/src/scripts/chat_history.ts +1 -1
- package/src/scripts/check_always_budget.ts +1 -1
- package/src/scripts/check_artefact_checksums.ts +4 -4
- package/src/scripts/check_artefact_count_messaging.ts +197 -0
- package/src/scripts/check_augment_description_cap.ts +3 -3
- package/src/scripts/check_augmentignore.ts +1 -1
- package/src/scripts/check_beta_review_markers.ts +3 -3
- package/src/scripts/check_bite_sized_granularity.ts +1 -1
- package/src/scripts/check_cluster_patterns.ts +47 -3
- package/src/scripts/check_command_count_messaging.ts +2 -2
- package/src/scripts/check_condensation.ts +2 -2
- package/src/scripts/check_condensed_paths.ts +6 -6
- package/src/scripts/check_context_paths.ts +1 -1
- package/src/scripts/check_council_config_location.ts +3 -3
- package/src/scripts/check_council_layout.ts +2 -2
- package/src/scripts/check_council_references.ts +2 -2
- package/src/scripts/check_discovery_determinism.ts +3 -3
- package/src/scripts/check_gate_paths.ts +4 -4
- package/src/scripts/check_iron_law_prominence.ts +2 -2
- package/src/scripts/check_kernel_rule_bundle.ts +3 -3
- package/src/scripts/check_knowledge_cards.ts +4 -4
- package/src/scripts/check_knowledge_pages.ts +1 -1
- package/src/scripts/check_md_language.ts +3 -3
- package/src/scripts/check_memory.ts +3 -3
- package/src/scripts/check_memory_proposal.ts +2 -2
- package/src/scripts/check_module_management_neutral.ts +1 -1
- package/src/scripts/check_no_conflict_markers.ts +1 -1
- package/src/scripts/check_no_external_sources.ts +1 -1
- package/src/scripts/check_no_local_settings_committed.ts +2 -2
- package/src/scripts/check_no_new_legacy_path.ts +3 -3
- package/src/scripts/check_no_roadmap_refs.ts +3 -3
- package/src/scripts/check_one_off_location.ts +3 -3
- package/src/scripts/check_overlay_cascade_subdirs.ts +3 -3
- package/src/scripts/check_portability.ts +3 -3
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_public_catalog_links.ts +1 -1
- package/src/scripts/check_public_links.ts +2 -2
- package/src/scripts/check_references.ts +3 -3
- package/src/scripts/check_release_includes_discovery.ts +2 -2
- package/src/scripts/check_release_pr_shape.ts +2 -2
- package/src/scripts/check_release_published.ts +1 -1
- package/src/scripts/check_release_trunk_sync.ts +3 -3
- package/src/scripts/check_reply_consistency.ts +1 -1
- package/src/scripts/check_roadmap_trackable.ts +2 -2
- package/src/scripts/check_role_doc_links.ts +2 -2
- package/src/scripts/check_safety_floor_untouched.ts +3 -3
- package/src/scripts/check_skill_requires.ts +2 -2
- package/src/scripts/check_structural_breaking.ts +2 -2
- package/src/scripts/check_surface_tiers.ts +2 -2
- package/src/scripts/check_template_pin_drift.ts +1 -1
- package/src/scripts/check_test_coverage_diff.ts +2 -2
- package/src/scripts/check_token_optimizer_freshness.ts +3 -3
- package/src/scripts/check_trigger_evals.ts +2 -2
- package/src/scripts/check_update_banner.ts +1 -1
- package/src/scripts/ci_status.ts +0 -0
- package/src/scripts/ci_summary.ts +3 -3
- package/src/scripts/ci_time_ratio.ts +1 -1
- package/src/scripts/command_suggester/cooldown.ts +1 -1
- package/src/scripts/command_suggester/index.ts +1 -1
- package/src/scripts/command_suggester/loader.ts +1 -1
- package/src/scripts/command_suggester/match.ts +1 -1
- package/src/scripts/command_suggester/rank.ts +1 -1
- package/src/scripts/command_suggester/render.ts +1 -1
- package/src/scripts/command_suggester/sanitize.ts +1 -1
- package/src/scripts/command_suggester/settings.ts +1 -1
- package/src/scripts/command_suggester/types.ts +0 -0
- package/src/scripts/compile_router.ts +4 -4
- package/src/scripts/condense.ts +3 -3
- package/src/scripts/condense_memory.ts +1 -1
- package/src/scripts/config/index.ts +1 -1
- package/src/scripts/config/packs.ts +1 -1
- package/src/scripts/config/presets.ts +1 -1
- package/src/scripts/config/profile_explain.ts +1 -1
- package/src/scripts/config/profiles.ts +1 -1
- package/src/scripts/config/session_profiles.ts +1 -1
- package/src/scripts/context_hygiene_hook.ts +2 -2
- package/src/scripts/cost_by_conversation.ts +1 -1
- package/src/scripts/cost_summary.ts +2 -2
- package/src/scripts/council_cli.ts +1 -1
- package/src/scripts/council_prune.ts +1 -1
- package/src/scripts/cross_repo_retrieve.ts +2 -2
- package/src/scripts/discovery_stats.ts +3 -3
- package/src/scripts/evidence_report.ts +4 -4
- package/src/scripts/extract_audit_patterns.ts +2 -2
- package/src/scripts/first_run_gate_hook.ts +1 -1
- package/src/scripts/gen_discovery_baseline.ts +2 -2
- package/src/scripts/generate_capabilities_index.ts +2 -2
- package/src/scripts/generate_capability_matrix.ts +2 -2
- package/src/scripts/generate_catalog.ts +2 -2
- package/src/scripts/generate_command_flows.ts +2 -2
- package/src/scripts/generate_cookbook.ts +1 -1
- package/src/scripts/generate_index.ts +3 -3
- package/src/scripts/generate_ownership_matrix.ts +2 -2
- package/src/scripts/generate_pack_manifests.ts +2 -2
- package/src/scripts/generate_role_experiences_catalog.ts +3 -3
- package/src/scripts/hooks/block_no_verify.ts +2 -2
- package/src/scripts/hooks/dispatch_hook.ts +2 -2
- package/src/scripts/hooks/dispatch_issues.ts +1 -1
- package/src/scripts/hooks/envelope.ts +1 -1
- package/src/scripts/hooks/replay_hook.ts +1 -1
- package/src/scripts/hooks/state_io.ts +1 -1
- package/src/scripts/hooks_doctor.ts +1 -1
- package/src/scripts/hooks_status.ts +1 -1
- package/src/scripts/injection_scan_hook.ts +1 -1
- package/src/scripts/install.ts +145 -3
- package/src/scripts/inventory_abstraction_budget.ts +5 -5
- package/src/scripts/inventory_frontmatter.ts +1 -1
- package/src/scripts/inventory_meta_layers.ts +1 -1
- package/src/scripts/iron_law_sha.ts +1 -1
- package/src/scripts/knowledge_global_cli.ts +3 -3
- package/src/scripts/linked_projects_list.ts +1 -1
- package/src/scripts/lint_agent_security.ts +4 -4
- package/src/scripts/lint_agent_skill_names.ts +1 -1
- package/src/scripts/lint_agents_layout.ts +2 -2
- package/src/scripts/lint_agents_md.ts +3 -3
- package/src/scripts/lint_archived_skills.ts +2 -2
- package/src/scripts/lint_artefact_frontmatter.ts +2 -2
- package/src/scripts/lint_bench_ab.ts +2 -2
- package/src/scripts/lint_bench_corpus.ts +1 -1
- package/src/scripts/lint_command_flow_coverage.ts +1 -1
- package/src/scripts/lint_command_routing.ts +2 -2
- package/src/scripts/lint_command_tiers.ts +1 -1
- package/src/scripts/lint_command_verbs.ts +4 -4
- package/src/scripts/lint_commit_subjects.ts +2 -2
- package/src/scripts/lint_context_spine_usage.ts +3 -3
- package/src/scripts/lint_discovery_manifest.ts +4 -4
- package/src/scripts/lint_discovery_vocabulary.ts +2 -2
- package/src/scripts/lint_empty_roadmaps.ts +3 -3
- package/src/scripts/lint_eval_freshness.ts +2 -2
- package/src/scripts/lint_examples.ts +2 -2
- package/src/scripts/lint_explain_trace.ts +2 -2
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_flows.ts +5 -5
- package/src/scripts/lint_framework_leakage.ts +1 -1
- package/src/scripts/lint_framework_leakage_allowlist.json +10 -2
- package/src/scripts/lint_frontmatter_boilerplate.ts +2 -2
- package/src/scripts/lint_ghostwriter_source.ts +3 -3
- package/src/scripts/lint_global_paths.ts +1 -1
- package/src/scripts/lint_handoffs.ts +1 -1
- package/src/scripts/lint_hidden_unicode.ts +1 -1
- package/src/scripts/lint_hook_concern_budget.ts +2 -2
- package/src/scripts/lint_hook_manifest.ts +2 -2
- package/src/scripts/lint_instruction_smuggling.ts +1 -1
- package/src/scripts/lint_load_context.ts +2 -2
- package/src/scripts/lint_marketplace.ts +1 -1
- package/src/scripts/lint_marketplace_install_completeness.ts +2 -2
- package/src/scripts/lint_mcp_config_security.ts +1 -1
- package/src/scripts/lint_mcp_registry_manifest.ts +1 -1
- package/src/scripts/lint_media_policy_linkage.ts +3 -3
- package/src/scripts/lint_missions.ts +3 -3
- package/src/scripts/lint_model_tier_coverage.ts +3 -3
- package/src/scripts/lint_namespace.ts +2 -2
- package/src/scripts/lint_namespace_collisions.ts +2 -2
- package/src/scripts/lint_new_skill_gate.ts +3 -3
- package/src/scripts/lint_no_new_atomic_commands.ts +9 -6
- package/src/scripts/lint_no_python_twin_rationale.ts +102 -0
- package/src/scripts/lint_one_off_age.ts +2 -2
- package/src/scripts/lint_orchestration_dsl.ts +3 -3
- package/src/scripts/lint_orchestrator_auto_detect.ts +1 -1
- package/src/scripts/lint_pack_boundaries.ts +2 -2
- package/src/scripts/lint_pack_dependencies.ts +2 -2
- package/src/scripts/lint_pack_first_win.ts +2 -2
- package/src/scripts/lint_persona_governance.ts +3 -3
- package/src/scripts/lint_positioning.ts +1 -1
- package/src/scripts/lint_profile_overlay_set_only.ts +2 -2
- package/src/scripts/lint_readme_jargon.ts +2 -2
- package/src/scripts/lint_readme_size.ts +2 -2
- package/src/scripts/lint_regression.ts +3 -3
- package/src/scripts/lint_roadmap_ci_steps.ts +3 -3
- package/src/scripts/lint_roadmap_complexity.ts +1 -1
- package/src/scripts/lint_roadmap_later_disposition.ts +2 -2
- package/src/scripts/lint_role_experiences.ts +2 -2
- package/src/scripts/lint_rule_interactions.ts +1 -1
- package/src/scripts/lint_rule_tiers.ts +1 -1
- package/src/scripts/lint_showcase_sessions.ts +2 -2
- package/src/scripts/lint_skill_frontmatter_safety.ts +1 -1
- package/src/scripts/lint_skill_originality.ts +1 -1
- package/src/scripts/lint_skill_tools.ts +3 -3
- package/src/scripts/lint_ticket_buildable.ts +2 -2
- package/src/scripts/lint_topics_yaml.ts +3 -3
- package/src/scripts/lint_trust_coherence.ts +3 -3
- package/src/scripts/lint_value_dashboard.ts +3 -3
- package/src/scripts/lint_workflow_security.ts +3 -3
- package/src/scripts/lint_workspace_boundary.ts +2 -2
- package/src/scripts/mcp_parity_smoke.ts +1 -1
- package/src/scripts/mcp_render.ts +1 -1
- package/src/scripts/mcp_server/catalog.ts +1 -1
- package/src/scripts/mcp_server/index.ts +1 -1
- package/src/scripts/mcp_server/metadata.ts +1 -1
- package/src/scripts/mcp_server/prompts.ts +1 -1
- package/src/scripts/mcp_server/resources.ts +1 -1
- package/src/scripts/mcp_server/server.ts +1 -1
- package/src/scripts/mcp_server/telemetry.ts +1 -1
- package/src/scripts/mcp_server/tools.ts +1 -1
- package/src/scripts/mcp_telemetry_health.ts +1 -1
- package/src/scripts/mcp_telemetry_query.ts +3 -3
- package/src/scripts/mcp_telemetry_store.ts +3 -3
- package/src/scripts/measure_augment_budget.ts +2 -2
- package/src/scripts/measure_density.ts +2 -2
- package/src/scripts/measure_frugality_savings.ts +3 -3
- package/src/scripts/measure_markitdown_lift.ts +1 -1
- package/src/scripts/measure_patterns.ts +1 -1
- package/src/scripts/measure_projection_bytes.ts +1 -1
- package/src/scripts/measure_rule_budget.ts +1 -1
- package/src/scripts/measure_skill_reduction.ts +1 -1
- package/src/scripts/memory_hash.ts +1 -1
- package/src/scripts/memory_lookup.ts +6 -6
- package/src/scripts/memory_report.ts +1 -1
- package/src/scripts/memory_signal.ts +1 -1
- package/src/scripts/memory_status.ts +2 -2
- package/src/scripts/migrate_command_suggestions.ts +1 -1
- package/src/scripts/migrate_frontmatter_defaults.ts +1 -1
- package/src/scripts/mine_session.ts +3 -3
- package/src/scripts/minimal_safe_diff_hook.ts +2 -2
- package/src/scripts/move_artefact.ts +3 -3
- package/src/scripts/new_skill.ts +3 -3
- package/src/scripts/onboarding_gate_hook.ts +2 -2
- package/src/scripts/pack_mcp_content.ts +1 -1
- package/src/scripts/parity/replay.ts +3 -2
- package/src/scripts/pattern_share.ts +2 -2
- package/src/scripts/plan_physical_move.ts +3 -3
- package/src/scripts/prediction-pool/poisson_sim.ts +2 -2
- package/src/scripts/prediction-pool/pool_winsim.ts +2 -2
- package/src/scripts/prediction-pool/score_ev.ts +2 -2
- package/src/scripts/print_required_checks.ts +2 -2
- package/src/scripts/probe_projection_fidelity.ts +2 -2
- package/src/scripts/probe_skill_registration.ts +2 -2
- package/src/scripts/profile_staleness_hook.ts +2 -2
- package/src/scripts/profile_use.ts +2 -2
- package/src/scripts/project_thin_rules.ts +3 -3
- package/src/scripts/propose_modules_config.ts +2 -2
- package/src/scripts/prototype_lint_contradictions.ts +2 -2
- package/src/scripts/prove_pack_extractable.ts +1 -1
- package/src/scripts/readme_linter.ts +4 -4
- package/src/scripts/redact_hook_capture.ts +2 -2
- package/src/scripts/refine_ticket_detect.ts +1 -1
- package/src/scripts/release.ts +30 -19
- package/src/scripts/render_benchmark_md.ts +2 -2
- package/src/scripts/render_value_md.ts +2 -2
- package/src/scripts/roadmap_progress_hook.ts +1 -1
- package/src/scripts/router_telemetry.ts +1 -1
- package/src/scripts/run_skill_evals.ts +2 -2
- package/src/scripts/runtime_dispatcher.ts +1 -1
- package/src/scripts/runtime_handler.ts +1 -1
- package/src/scripts/runtime_registry.ts +3 -3
- package/src/scripts/score_skill_selection.ts +1 -1
- package/src/scripts/security_audit_config.ts +2 -2
- package/src/scripts/skill_collision_clusters.ts +1 -1
- package/src/scripts/skill_discovery.ts +1 -1
- package/src/scripts/skill_linter.ts +8 -7
- package/src/scripts/skill_overlap.ts +2 -2
- package/src/scripts/skill_preview.ts +1 -1
- package/src/scripts/skill_tools/audit_persona_coverage.ts +3 -3
- package/src/scripts/skill_tools/audit_user_type_coverage.ts +3 -3
- package/src/scripts/skill_tools/index.ts +1 -1
- package/src/scripts/skill_tools/run_block_d_eval.ts +3 -3
- package/src/scripts/skill_tools/score_skill_relevance.ts +3 -3
- package/src/scripts/skill_tools/suggest_skill_for_task.ts +3 -3
- package/src/scripts/skill_trigger_eval.ts +2 -2
- package/src/scripts/skill_usage_collect.ts +2 -2
- package/src/scripts/skill_usage_report.ts +2 -2
- package/src/scripts/smoke_path_resolution.ts +2 -2
- package/src/scripts/smoke_quickstart.ts +4 -4
- package/src/scripts/snapshot_agent_outputs.ts +2 -2
- package/src/scripts/spotcheck_thin_root.ts +2 -2
- package/src/scripts/surface-tiers.yml +1 -0
- package/src/scripts/sync_agent_settings.ts +2 -2
- package/src/scripts/sync_github_metadata.ts +4 -4
- package/src/scripts/sync_gitignore.ts +3 -3
- package/src/scripts/sync_yaml_rt.ts +2 -2
- package/src/scripts/telegraph_stats.ts +1 -1
- package/src/scripts/tool_registry.ts +2 -2
- package/src/scripts/tools/adapter_errors.ts +1 -1
- package/src/scripts/tools/base_adapter.ts +1 -1
- package/src/scripts/tools/github_adapter.ts +1 -1
- package/src/scripts/tools/jira_adapter.ts +1 -1
- package/src/scripts/trigger_coverage.ts +2 -2
- package/src/scripts/update_counts.ts +68 -6
- package/src/scripts/update_prices.ts +3 -3
- package/src/scripts/validate_agent_settings.ts +3 -3
- package/src/scripts/validate_decision_engine.ts +2 -2
- package/src/scripts/validate_discovery_manifest.ts +3 -3
- package/src/scripts/validate_frontmatter.ts +5 -5
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/scripts/validate_safe_paths.ts +2 -2
- package/src/scripts/validate_telegraph_carveouts.ts +3 -3
- package/src/scripts/verify_before_complete_hook.ts +2 -2
- package/src/scripts/verify_physical_move.ts +2 -2
- package/src/scripts/wrapper_freshness_hook.ts +3 -3
- package/src/server/schemas/settings.ts +426 -0
- package/src/shared/settingsSurface.ts +184 -0
- package/src/shared/userMd/formAdapter.ts +86 -0
- package/src/shared/userMd/schema.ts +59 -0
- package/src/shared/userMd/utils.ts +91 -0
- package/dist/agent-src/commands/optimize-project.md +0 -243
- package/dist/ui/assets/index-BbWWuFrF.css +0 -1
- package/dist/ui/assets/index-UjcTG_9O.js +0 -40
- package/dist/ui/assets/index-UjcTG_9O.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shadow-mode dispatch for low-impact solo-member decisions (step-9 P10).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/ai_council/shadow_dispatch.py`
|
|
5
5
|
* (ADR-200 — Python→TS migration, Phase 1).
|
|
6
6
|
*
|
|
7
7
|
* When `low_impact.dispatch: single` is active, a Bernoulli-sampled subset
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Solo-member dispatch — step-9 P9 (U2).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/ai_council/solo_dispatch.py` (ADR-200 —
|
|
5
5
|
* Python→TS migration, Phase 1). Picks the first enabled, auth-valid member
|
|
6
6
|
* from `routing.solo_member_fallback_chain` so low-impact decisions can
|
|
7
7
|
* optionally route to a single member instead of the full council. The
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Project-analysis freshness loop — a cheap *heuristic* staleness signal.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Python→TypeScript migration). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/analysis_freshness.py` (ADR-200,
|
|
6
|
+
* Python→TypeScript migration). The CLI contract is pinned — the
|
|
7
7
|
* required mutually-exclusive group (`--stamp FILE | --stamp-all | --check FILE
|
|
8
8
|
* | --check-all`), the argparse usage banner + error text (missing required
|
|
9
9
|
* group → exit 2, conflicting args → exit 2, missing value → exit 2,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* R3 Phase 4 mass-annotator — discovery frontmatter helper.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/annotate_discovery.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration, Phase 8 / Wave 8g). Mirrors the Python CLI contract
|
|
7
7
|
* EXACTLY — the `--pack` choice flag + positional `paths`, exit code (0),
|
|
8
8
|
* the stdout/stderr split, byte-identical messages, and byte-identical
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* Idempotent: re-runs leave already-annotated files untouched.
|
|
21
21
|
*
|
|
22
22
|
* Mapping table (`PACK_DEFAULTS`) is the council-locked authority. No
|
|
23
|
-
* behaviour changes —
|
|
23
|
+
* behaviour changes — historical quirks preserved (consumers pin the exact behaviour).
|
|
24
24
|
*/
|
|
25
25
|
import * as crypto from 'node:crypto';
|
|
26
26
|
import * as fs from 'node:fs';
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Persist a `modules:` block into `.agent-project-settings.yml`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 8 / Wave 8g).
|
|
5
|
+
* Ported from the retired Python `src/scripts/apply_modules_config.py` (ADR-200,
|
|
6
|
+
* Phase 8 / Wave 8g). The CLI contract is pinned — `--project`
|
|
7
7
|
* / `--input-file` / `--decline` / `--acknowledge-only` flags, JSON payload
|
|
8
8
|
* shape + validation, comment-preserving line-patch (byte-identical written
|
|
9
9
|
* output), exit codes (0 ok/no-op, 2 args/unreachable/malformed-JSON,
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Audit per-area ADR coverage against docs/contracts/ and the canonical
|
|
4
4
|
* AREAS inventory. Contract: docs/contracts/adr-layout.md.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* Wave 8a). The CLI contract is
|
|
6
|
+
* Ported from the retired Python `src/scripts/audit_adr_coverage.py` (ADR-200, Phase 8 /
|
|
7
|
+
* Wave 8a). The CLI contract is pinned — the mutually exclusive
|
|
8
8
|
* `--check` / `--regen-area-readme AREA` group (default `--report`), exit
|
|
9
9
|
* codes, the stdout/stderr split, byte-identical messages, AND byte-identical
|
|
10
10
|
* generated `README.md` for `--regen-area-readme`.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* ADRs and dangling references.
|
|
16
16
|
* --regen-area-readme <area> rewrite docs/adrs/<area>/README.md. Idempotent.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
19
19
|
*/
|
|
20
20
|
import * as fs from 'node:fs';
|
|
21
21
|
import * as path from 'node:path';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Audit auto-rules for the Rule-Governance pass (Phase 5.1 of
|
|
4
4
|
* road-to-augment-limit-fit).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Ported from the retired Python `src/scripts/audit_auto_rules.py` (ADR-200 —
|
|
7
7
|
* Python→TS migration, Phase 8 / Wave 8c). Mirrors the Python CLI
|
|
8
8
|
* contract EXACTLY — no flags, exit codes (0 ok / 1 no source rules),
|
|
9
9
|
* the stdout/stderr split, byte-identical stdout messages, and
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Imports the `_lib/agent_src` twin (the SAME surface the Python
|
|
14
14
|
* original imports `artefact_roots` from). No behaviour changes —
|
|
15
|
-
*
|
|
15
|
+
* historical quirks preserved (consumers pin the exact behaviour).
|
|
16
16
|
*
|
|
17
17
|
* Walk every artefact root's `rules/*.md`, collect per-rule
|
|
18
18
|
* frontmatter (`description`, `triggers`, `routes_to`, `tier`),
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* audit_cloud_compatibility.ts — tier each artefact for cloud distribution.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 8 / Wave 8a). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/audit_cloud_compatibility.py` (ADR-200,
|
|
6
|
+
* Phase 8 / Wave 8a). The CLI contract is pinned — the flags
|
|
7
7
|
* `--details` / `--tier` / `--cloud-action` / `--format` / `--iron-law`,
|
|
8
8
|
* exit codes, the stdout/stderr split, byte-identical messages, AND
|
|
9
9
|
* byte-identical JSON output (`json.dumps(indent=2)` — insertion-order keys,
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* `<!-- cloud_safe: noop|degrade -->` markers, and emits a JSON summary
|
|
15
15
|
* (or `--details` rows, or the `--iron-law` bypass scan).
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour. (including the
|
|
18
18
|
* Counter.most_common tie-ordering and the regex-findall set dedup).
|
|
19
19
|
*/
|
|
20
20
|
import * as fs from 'node:fs';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Command-surface inventory + overlap detection + usage signal.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/audit_command_surface.py` (ADR-200, Phase 8 /
|
|
6
6
|
* Wave 8b). Mirrors the CLI contract EXACTLY — the `--root`, `--budget`,
|
|
7
7
|
* `--check-new`, `--baseline`, `--quiet` flags, exit codes (0 ok / 1 budget
|
|
8
8
|
* violation / 2 root-missing / 3 git error), the stdout/stderr split,
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* overlap pairs by keyword-cosine similarity, and adds a usage signal from
|
|
15
15
|
* git history.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour. (incl. git-history
|
|
18
18
|
* `days_since_*` values, which depend on the wall clock and the worktree's
|
|
19
19
|
* git log — golden parity is run in the SAME repo so both sides observe the
|
|
20
20
|
* identical history; the day arithmetic is reproduced with the same floor).
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Initial-context token audit (roadmap `road-to-lean-initial-context`).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/audit_initial_context.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration, Phase 8 / Wave 8b). The CLI contract is mirrored
|
|
7
7
|
* EXACTLY — the `--json` / `--write` / `--fail-if-over-budget` flags,
|
|
8
8
|
* exit codes (0 ok / advisory · 1 over-budget), the stdout/stderr split,
|
|
@@ -10,13 +10,14 @@
|
|
|
10
10
|
* (`json.dumps(indent=2, sort_keys=True)`).
|
|
11
11
|
*
|
|
12
12
|
* Imports the `_lib/token_count` and `_lib/agent_src` twins (the SAME
|
|
13
|
-
* surfaces the Python
|
|
14
|
-
*
|
|
13
|
+
* surfaces the retired Python implementation imports). `thin_projection()` preserves the
|
|
14
|
+
* historical behaviour exactly: the retired implementation imported
|
|
15
|
+
* `project_thin_rules.measure`
|
|
15
16
|
* and swallows any failure to `{}`; this twin imports the `measure()` of the
|
|
16
17
|
* `project_thin_rules.ts` twin and falls back to `{}` on any error in the same
|
|
17
18
|
* best-effort try/catch. The default JSON stays byte-identical.
|
|
18
19
|
*
|
|
19
|
-
*
|
|
20
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
20
21
|
*
|
|
21
22
|
* NOTE (divergence-free by construction): the `generated` field carries a
|
|
22
23
|
* UTC timestamp, so the default/`--json`/`--write` outputs are inherently
|
|
@@ -80,7 +81,7 @@ export const BUDGETS: Record<string, number | null> = {
|
|
|
80
81
|
'rules.gpt': null,
|
|
81
82
|
'skill_catalog.gpt': 12_500, // always-scanned skill descriptions (skills_core_source, 258); current ~10,999
|
|
82
83
|
'command_catalog.gpt': 5_800, // always-scanned command catalog; current ~5,005
|
|
83
|
-
'mcp_schemas.gpt':
|
|
84
|
+
'mcp_schemas.gpt': 4_250, // per-connected-client MCP tool schemas; current ~3,694 after the council-gated run_tests exec pilot (598a8a49f) — re-anchored current + ~15% per this cap's own policy
|
|
84
85
|
};
|
|
85
86
|
|
|
86
87
|
/**
|
|
@@ -324,7 +325,7 @@ export function longest_rules(top = 10): LongestRule[] {
|
|
|
324
325
|
|
|
325
326
|
// --- thin_projection: delegate to the project_thin_rules twin ----------------
|
|
326
327
|
//
|
|
327
|
-
//
|
|
328
|
+
// the retired Python implementation does `from project_thin_rules import measure as _measure`
|
|
328
329
|
// inside a try/except that returns `{}` on any failure. This twin mirrors that
|
|
329
330
|
// exactly: import the same-named `measure()` from the TS twin and swallow any
|
|
330
331
|
// error to `{}`. The thin-entry pointer's legacy-path literal now lives ONLY
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Activation-likelihood heuristic for the Rule-Governance pass
|
|
4
4
|
* (Phase 5.3 of road-to-augment-limit-fit).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Ported from the retired Python `src/scripts/audit_likelihood.py` (ADR-200 —
|
|
7
7
|
* Python→TS migration, Phase 8 / Wave 8c). Mirrors the Python CLI
|
|
8
8
|
* contract EXACTLY — no flags, exit codes (0 ok / 1 missing audit
|
|
9
9
|
* JSON), the stdout/stderr split, byte-identical stdout messages, and
|
|
10
10
|
* byte-identical written artefacts (`json.dumps(..., indent=2)` for the
|
|
11
11
|
* likelihood dump + the exact appended Markdown section).
|
|
12
12
|
*
|
|
13
|
-
* No `_lib` imports — the Python
|
|
13
|
+
* No `_lib` imports — the retired Python implementation has none; it reads the audit
|
|
14
14
|
* JSON written by `audit_auto_rules.py` and globs a fixed corpus.
|
|
15
15
|
*
|
|
16
16
|
* For every auto-rule from `agents/reports/auto-rules-audit.json`:
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* 3. Score `corpus_hits = sum(1 for token in tokens if token in corpus)`.
|
|
23
23
|
* 4. Flag rules with `< 2` corpus hits as "low-likelihood".
|
|
24
24
|
*
|
|
25
|
-
*
|
|
25
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour., including the
|
|
26
26
|
* `dict(sorted(...)[:8])` top-8 hit truncation and the corpus-keyword
|
|
27
27
|
* heuristic.
|
|
28
28
|
*/
|
|
@@ -92,7 +92,7 @@ function pyLen(s: string): number {
|
|
|
92
92
|
* Recursive glob for the four fixed patterns. Each pattern is anchored at
|
|
93
93
|
* REPO_ROOT. `**` matches any depth; the trailing component is a basename or
|
|
94
94
|
* `*.md` suffix. Returns SORTED absolute paths (Python `Path.glob` yields
|
|
95
|
-
* unsorted; the Python
|
|
95
|
+
* unsorted; the retired Python implementation does NOT sort, but iterates corpus globs in
|
|
96
96
|
* list order and merely counts tokens into a Counter, so token membership is
|
|
97
97
|
* order-independent — we still walk deterministically).
|
|
98
98
|
*/
|
|
@@ -219,7 +219,7 @@ export function score(rule: Json, corpus: Map<string, number>): Score {
|
|
|
219
219
|
// dict(sorted(hits.items(), key=lambda x: -x[1])[:8]) — top-8 by volume desc.
|
|
220
220
|
// Python's sort is stable; ties keep the iteration order of `hits`. Since
|
|
221
221
|
// `hits` here is sorted by token, ties resolve token-ascending — but the
|
|
222
|
-
// CPython
|
|
222
|
+
// retired CPython implementation's `hits` dict ordering was hash-based, so ties COULD differ.
|
|
223
223
|
// This is a latent non-determinism candidate (see report). We canonicalise to
|
|
224
224
|
// token-ascending tie-break, which the differential test pins.
|
|
225
225
|
const topHits = stableSortByVolumeDesc(hits).slice(0, 8);
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP-tool inventory generator.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* migration, Phase 8 / Wave 8b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/audit_mcp_tools.py` (ADR-200 — Python→TS
|
|
6
|
+
* migration, Phase 8 / Wave 8b). The CLI contract is pinned —
|
|
7
7
|
* the mutually-exclusive `--check` / `--write` flags, `--quiet`, exit codes
|
|
8
8
|
* (0 ok / in-sync · 1 drift), the stdout/stderr split, byte-identical
|
|
9
9
|
* messages, and byte-identical written file content.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* `docs/contracts/mcp-tool-inventory.md` with every tool cited by
|
|
15
15
|
* `<file>:<line>`.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
18
18
|
*/
|
|
19
19
|
import * as fs from 'node:fs';
|
|
20
20
|
import * as path from 'node:path';
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* Trigger-overlap analysis for the Rule-Governance pass (Phase 5.2 of
|
|
4
4
|
* road-to-augment-limit-fit).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Ported from the retired Python `src/scripts/audit_overlap.py` (ADR-200 —
|
|
7
7
|
* Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract
|
|
8
8
|
* EXACTLY: no flags, exit codes (0 normal, 1 when the input audit JSON
|
|
9
9
|
* is missing), byte-identical stdout/stderr split, and byte-identical
|
|
10
10
|
* written output (`auto-rules-overlap.json` via json.dumps(indent=2)
|
|
11
11
|
* and the appended `auto-rules-audit.md` section). No behaviour changes
|
|
12
|
-
* —
|
|
12
|
+
* — historical quirks preserved (consumers pin the exact behaviour).
|
|
13
13
|
*
|
|
14
14
|
* Reads `agents/reports/auto-rules-audit.json` (produced by
|
|
15
15
|
* `audit_auto_rules.py`) and computes:
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Audit skill descriptions for triggering quality.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 8 Wave 8a).
|
|
5
|
+
* Ported from the retired Python `src/scripts/audit_skill_descriptions.py` (ADR-200,
|
|
6
|
+
* Phase 8 Wave 8a). The CLI contract is pinned — flags
|
|
7
7
|
* (`--root`, `--json`, `--full`), exit codes (0 / 2), stdout/stderr split,
|
|
8
8
|
* byte-identical text table AND byte-identical JSON (`json.dumps(...,
|
|
9
9
|
* indent=2)`, ensure_ascii=True, field order skill/path/description/
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Skill-family content-overlap analysis (6.0.0-C Phase 4 Step 8).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/audit_skill_overlap.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration, Phase 8 / Wave 8c). Mirrors the Python CLI
|
|
7
7
|
* contract EXACTLY — the `--threshold` / `--quiet` flags, exit codes
|
|
8
8
|
* (0 ok / 3 no skills), the stdout/stderr split, byte-identical stdout
|
|
9
9
|
* messages, and byte-identical written artefacts (`json.dumps(...,
|
|
10
10
|
* indent=2)` for the JSON + the exact Markdown renderer).
|
|
11
11
|
*
|
|
12
|
-
* No `_lib` imports — the Python
|
|
12
|
+
* No `_lib` imports — the retired Python implementation has none; it carries its own
|
|
13
13
|
* `_skill_roots()` (which references the `.agent-src.uncondensed/skills`
|
|
14
14
|
* layout literally — this twin reproduces that literal faithfully, since
|
|
15
15
|
* the .py original carries it).
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* is >= OVERLAP_THRESHOLD. Same-domain (shared `packs:`) >= threshold pairs
|
|
20
20
|
* are the merge candidates. THIS SCRIPT MERGES NOTHING.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
23
23
|
*/
|
|
24
24
|
import * as fs from 'node:fs';
|
|
25
25
|
import * as path from 'node:path';
|
|
@@ -91,8 +91,8 @@ function _iterdirSorted(p: string): string[] {
|
|
|
91
91
|
* if not roots and legacy.is_dir(): roots = [legacy]
|
|
92
92
|
*
|
|
93
93
|
* `packages.glob("*\/.agent-src.uncondensed/skills")` iterates packages
|
|
94
|
-
* children sorted (pathlib glob over a single level is unsorted,
|
|
95
|
-
* Python
|
|
94
|
+
* children sorted (pathlib glob over a single level is unsorted, and the
|
|
95
|
+
* retired Python implementation did NOT sort here — it relied on `collect()`'s `seen`
|
|
96
96
|
* dedup keyed on dir name. To stay deterministic we sort the package
|
|
97
97
|
* children; the resulting root order only affects first-win dedup, and no
|
|
98
98
|
* skill dir name collides across packages in practice.)
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Audit the user-type axis frontmatter coverage (step-9 Phase 4).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 8 / Wave 8a). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/audit_user_type_axis.py` (ADR-200,
|
|
6
|
+
* Phase 8 / Wave 8a). The CLI contract is pinned — the single
|
|
7
7
|
* `--quiet` flag, exit code (1 when orphans exist, else 0), the stdout
|
|
8
8
|
* split, byte-identical stdout summary, AND byte-identical generated
|
|
9
9
|
* Markdown report. Stdlib-only — no YAML dependency.
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
* 2. Unused configs — every `user-types/*.yml` should be consumed by at
|
|
16
16
|
* least one skill. Unused configs are WARN-only (exit 0).
|
|
17
17
|
*
|
|
18
|
-
* NOTE: the Python
|
|
18
|
+
* NOTE: the retired Python implementation scans only the LEGACY `.agent-src.uncondensed/
|
|
19
19
|
* skills/` root (not the 6.0.0-D `src/skills/` library). This twin replicates
|
|
20
20
|
* that exact root for byte-identical parity. The report path is
|
|
21
21
|
* `agents/reports/user-type-axis-audit.md` (matching the Python constant,
|
|
22
22
|
* which differs from the docstring's `agents/runtime/reports/` mention —
|
|
23
23
|
* latent bug replicated).
|
|
24
24
|
*
|
|
25
|
-
*
|
|
25
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
26
26
|
*/
|
|
27
27
|
import * as fs from 'node:fs';
|
|
28
28
|
import * as path from 'node:path';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Backfill / migrate `model_tier` on every skill and command (ADR-035).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/backfill_model_tier.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration, Phase 8 / Wave 8e). The CLI contract is mirrored
|
|
7
7
|
* EXACTLY: same flag (`--dry-run`), same exit code (0), same byte-identical
|
|
8
8
|
* stdout report, and byte-identical frontmatter rewrites of every skill +
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Cache-aware dispatch for `task bench:ab` arms.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_cache_dispatch.py` (ADR-200
|
|
6
6
|
* Python→TS migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY:
|
|
7
7
|
* positional `corpus` (`tracka` / `trackb`), the `REMAINDER` `extra` args
|
|
8
8
|
* forwarded to the underlying runner, exit codes (1 corpus missing, else the
|
|
9
9
|
* underlying runner's return code), and byte-identical stdout/stderr.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* the retired Python implementation shelled out via `sys.executable <runner>.py …`; this twin
|
|
12
12
|
* invokes the `.ts` runner twins through the repo-local `tsx` binary (those
|
|
13
13
|
* runners are referenced as runtime subprocesses, not imported logic).
|
|
14
14
|
*
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Materialise the `with`, `without`, and `with-rdp` clones for the value bench.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 8 / Wave 8d). The CLI contract mirrors the Python
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_clone.py` (ADR-200 py2ts
|
|
6
|
+
* Phase 8 / Wave 8d). The CLI contract mirrors the retired Python implementation
|
|
7
7
|
* EXACTLY — `--refresh`, `--variant`, `--print-shape-hash`, exit codes,
|
|
8
8
|
* stdout/stderr split, byte-identical written manifest
|
|
9
9
|
* (`json.dumps(indent=2)` + trailing newline) and the
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Diff two A/B reports (one per variant) into a comparison artefact.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 8 / Wave 8d). The CLI contract mirrors the Python
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_diff.py` (ADR-200 py2ts
|
|
6
|
+
* Phase 8 / Wave 8d). The CLI contract mirrors the retired Python implementation
|
|
7
7
|
* EXACTLY — positional args, `--out-dir`, exit codes, stdout/stderr
|
|
8
8
|
* split, and byte-identical written JSON (`json.dumps(indent=2)` +
|
|
9
9
|
* trailing newline) / Markdown artefacts. No behaviour changes; latent
|
|
@@ -44,7 +44,7 @@ type Dict = Record<string, unknown>;
|
|
|
44
44
|
* Marker for a value that is a Python `float`. CPython's `json.dumps`
|
|
45
45
|
* renders a float `2.0` as `2.0` (not `2`); JS numbers lose that
|
|
46
46
|
* distinction. The `take()` / `mean()` / `round()` helpers in the
|
|
47
|
-
* Python
|
|
47
|
+
* retired Python implementation all returned floats, so the diff's numeric fields must
|
|
48
48
|
* carry the `.0` to stay byte-identical.
|
|
49
49
|
*/
|
|
50
50
|
export class PyFloat {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Assert the two A/B clones differ only in the agent-config surface.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 8 / Wave 8d). The CLI contract mirrors the Python
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_integrity.py` (ADR-200 py2ts
|
|
6
|
+
* Phase 8 / Wave 8d). The CLI contract mirrors the retired Python implementation
|
|
7
7
|
* EXACTLY — `--verbose`, exit codes (0 clean / 1 missing-or-divergent /
|
|
8
8
|
* 2 usage), and byte-identical stdout/stderr. No behaviour changes;
|
|
9
9
|
* latent Python bugs are replicated and flagged as divergence
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Top-level orchestrator for the package-impact A/B bench.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Wave 8d). The CLI contract
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_run.py` (ADR-200, Phase 8 /
|
|
6
|
+
* Wave 8d). The CLI contract pins the historical contract exactly — same
|
|
7
7
|
* `--variant {with,without}` / `--corpus` / `--non-interactive` /
|
|
8
8
|
* `--reuse-cache` flags, same exit codes, stdout-only messages, and
|
|
9
9
|
* byte-identical written report JSON (`json.dumps(indent=2) + "\n"`) and the
|
|
10
|
-
* Markdown layout. No behaviour changes —
|
|
11
|
-
*
|
|
10
|
+
* Markdown layout. No behaviour changes — historical quirks are
|
|
11
|
+
* preserved and flagged as divergence candidates.
|
|
12
12
|
*
|
|
13
13
|
* NON-DETERMINISM: this script stamps reports with `utc_stamp()` (current
|
|
14
14
|
* UTC) and a `duration_seconds` from a monotonic clock. Those fields are
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Track B — task runner for the package-impact A/B bench.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_task_runner.py` (ADR-200 Python→TS
|
|
6
6
|
* migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY: flags
|
|
7
7
|
* (`--variant`, `--mode`, `--timeout`), exit codes (0 ok / 1 corpus missing or
|
|
8
8
|
* empty), byte-identical stdout/stderr, and byte-identical written JSON + md
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Track A — behavioural eval runner for the package-impact A/B bench.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Wave 8d). The CLI contract
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_tracka_run.py` (ADR-200, Phase 8 /
|
|
6
|
+
* Wave 8d). The CLI contract pins the historical contract exactly — same
|
|
7
7
|
* `--variant {with,without,both}` flag, same exit codes, stdout/stderr split,
|
|
8
8
|
* byte-identical messages, and byte-identical written report JSON
|
|
9
9
|
* (`json.dumps(indent=2) + "\n"`) + Markdown. No behaviour changes — latent
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* bench:ab v2 — discipline-axis runner (Phases 2-4).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_v2_run.py` (ADR-200 Python→TS
|
|
6
6
|
* migration). Mirrors the CLI contract EXACTLY: flags (`--arms`, `--seeds`,
|
|
7
7
|
* `--tasks`, `--limit`, `--model`, `--budget`, `--timeout`, `--mode`), exit
|
|
8
8
|
* codes (0 ok / 1 unknown arm or missing CLI), byte-identical stdout/stderr,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* bench:ab v2 — paired statistics (Phase 3).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_ab_v2_stats.py` (ADR-200 Python→TS
|
|
6
6
|
* migration). Mirrors the CLI contract EXACTLY: positional `report` arg, the
|
|
7
7
|
* `--json` / `--markdown PATH` flags, exit codes (0 ok / 1 no report found),
|
|
8
8
|
* byte-identical stdout/stderr, byte-identical analysis JSON, and byte-identical
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*
|
|
23
23
|
* Float parity: `math.erf` is ported from CPython's `m_erf` series and `math.comb`
|
|
24
24
|
* from an exact BigInt computation, so every `round(p, 4)` / `round(h, 4)` output
|
|
25
|
-
* is byte-
|
|
25
|
+
* is byte-stable — downstream consumers and checksum gates pin these bytes.
|
|
26
26
|
*/
|
|
27
27
|
import * as fs from 'node:fs';
|
|
28
28
|
import * as path from 'node:path';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Baseline-closure check — step-4 Phase 3 Step 4.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_baseline_ready.py` (ADR-200 Python→TS
|
|
6
6
|
* migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY: flags
|
|
7
7
|
* (`--corpus`, `--reports-dir`, `--baseline-file`, `--min-days`,
|
|
8
8
|
* `--min-reports`, `--json`), exit codes (0 ready / 1 file error / 2 not
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Offline bench for input-side memory condensation (Phase 2 / Step 11).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 7 / dev-side memory). The public API and CLI contract
|
|
7
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_condense_memory.py` (ADR-200,
|
|
6
|
+
* Phase 7 / dev-side memory). The public API and CLI contract are pinned
|
|
7
|
+
* — same exit code, stdout/stderr, byte-identical
|
|
8
8
|
* generated reports (`internal/bench/reports/telegraph-v2.{json,md}`,
|
|
9
9
|
* matching json.dumps(indent=2) + the Markdown layout / number formats).
|
|
10
10
|
* No behaviour changes — latent Python bugs are replicated and flagged as
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* (no API calls).
|
|
17
17
|
*
|
|
18
18
|
* The condense step is run as a subprocess against the `condense_memory`
|
|
19
|
-
* twin in this repo (via the tsx runner), mirroring the Python
|
|
19
|
+
* twin in this repo (via the tsx runner), mirroring the retired Python implementation's
|
|
20
20
|
* `subprocess.run([sys.executable, CONDENSE_SCRIPT, ...])`.
|
|
21
21
|
*/
|
|
22
22
|
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Drift detector for the bench corpus — step-4 Phase 3 Step 2.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Wave 8d). The CLI contract
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_drift_check.py` (ADR-200, Phase 8 /
|
|
6
|
+
* Wave 8d). The CLI contract pins the historical contract exactly — same
|
|
7
7
|
* flags, same exit codes (0 no-drift/warmup, 1 read error, 2 drift), same
|
|
8
8
|
* stdout/stderr split, byte-identical `--json` payload
|
|
9
9
|
* (`json.dumps(indent=2)` / compact warmup) and Markdown lines. No behaviour
|
|
10
|
-
* changes —
|
|
10
|
+
* changes — historical quirks are preserved and flagged as divergence
|
|
11
11
|
* candidates.
|
|
12
12
|
*
|
|
13
13
|
* The drift VERDICT logic is deterministic against a fixed set of reports;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Per-tool projection-fidelity bench — step-4 Phase 4.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_per_tool.py` (ADR-200 Python→TS
|
|
6
6
|
* migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY: flags
|
|
7
7
|
* (`--corpus`, `--top-k`, `--threshold`, `--json`, `--write-report`), exit
|
|
8
8
|
* codes (0 / 1 below-threshold / 2 corpus not found), byte-identical
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Measure rtk's token savings on a fixed corpus of verbose CLI invocations.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 8 / Wave 8d). The CLI contract mirrors the Python
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_rtk_savings.py` (ADR-200 py2ts
|
|
6
|
+
* Phase 8 / Wave 8d). The CLI contract mirrors the retired Python implementation
|
|
7
7
|
* EXACTLY — `--corpus`, `--out`, `--quiet`, exit codes, stdout/stderr
|
|
8
8
|
* split, the one-line headline summary, and byte-identical written
|
|
9
9
|
* reports (`json.dumps(indent=2, ensure_ascii=False)` + trailing
|
|
@@ -53,7 +53,7 @@ type Dict = Record<string, unknown>;
|
|
|
53
53
|
* Marker for a value that is a Python `float`. CPython's `json.dumps`
|
|
54
54
|
* renders a float `0.0` as `0.0` (not `0`); JS numbers lose that
|
|
55
55
|
* distinction. Wrapping the report's float fields keeps the written
|
|
56
|
-
* JSON byte-identical with the Python
|
|
56
|
+
* JSON byte-identical with the retired Python implementation.
|
|
57
57
|
*/
|
|
58
58
|
class PyFloat {
|
|
59
59
|
constructor(readonly value: number) {}
|
|
@@ -366,7 +366,7 @@ export function run(corpus_path: string = DEFAULT_CORPUS, out_dir: string = DEFA
|
|
|
366
366
|
|
|
367
367
|
/**
|
|
368
368
|
* Mirror Path.relative_to(REPO_ROOT) — raises (ValueError-equivalent) when
|
|
369
|
-
* the path is not under REPO_ROOT, matching the Python
|
|
369
|
+
* the path is not under REPO_ROOT, matching the retired Python implementation's behaviour.
|
|
370
370
|
*/
|
|
371
371
|
function _relativeToRepo(p: string): string {
|
|
372
372
|
const resolvedRoot = path.resolve(REPO_ROOT);
|
package/src/scripts/bench_run.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Bench orchestrator — step-4 measurement-and-benchmark Phase 2.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Wave 8d). The CLI contract
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_run.py` (ADR-200, Phase 8 /
|
|
6
|
+
* Wave 8d). The CLI contract pins the historical contract exactly — same
|
|
7
7
|
* flags, exit codes, stdout/stderr split, byte-identical headline / Markdown
|
|
8
8
|
* stdout and byte-identical written report JSON
|
|
9
9
|
* (`json.dumps(indent=2) + "\n"`). No behaviour changes — latent Python
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* `ai_council.clients` module (it carries no legacy source-tree literal, so
|
|
24
24
|
* ADR-051 does not require porting it in this wave). The `--telegraph-dry-run`
|
|
25
25
|
* path is fully self-contained; the live path degrades to the same "cannot
|
|
26
|
-
* build Anthropic client" exit-2 surface the Python
|
|
26
|
+
* build Anthropic client" exit-2 surface the retired Python implementation produces when the
|
|
27
27
|
* client can't be built. Flagged as a divergence candidate.
|
|
28
28
|
*/
|
|
29
29
|
import * as fs from 'node:fs';
|
|
@@ -390,7 +390,7 @@ function _run_telegraph(args: Args): number {
|
|
|
390
390
|
/**
|
|
391
391
|
* Live-API telegraph path. Builds the Anthropic client; on any failure prints
|
|
392
392
|
* the same "cannot build Anthropic client" message and returns 2, mirroring
|
|
393
|
-
* the Python
|
|
393
|
+
* the retired Python implementation's `try/except Exception` guard. Because the
|
|
394
394
|
* `ai_council.clients` twin is not yet present, this currently always takes
|
|
395
395
|
* the failure branch (flagged divergence — the live happy path is unreachable
|
|
396
396
|
* until that module is ported).
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Bench runner for the eval corpora — step-4 measurement-and-benchmark Phase 1.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/bench_runner.py` (ADR-200 Python→TS
|
|
6
6
|
* migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY: flags
|
|
7
7
|
* (`--corpus`, `--top-k`, `--json`), exit codes (0 PASS / 1 FAIL / 2 corpus
|
|
8
8
|
* not found), byte-identical stdout/stderr, and byte-identical JSON
|