@event4u/agent-config 8.4.1 → 8.6.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 +92 -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} +38 -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/auto-dispatch-classification.md +30 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +15 -1
- package/dist/agent-src/contexts/execution/subagent-steering.md +54 -1
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
- package/dist/agent-src/contexts/model-recommendations.md +19 -0
- package/dist/agent-src/contexts/skills-and-commands.md +2 -2
- package/dist/agent-src/contexts/subagent-configuration.md +8 -0
- 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 +27 -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/ADR-116-memory-tripwire-activation-path.md +125 -0
- package/docs/decisions/INDEX.md +3 -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 +12 -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/auto_dispatch.ts +63 -0
- 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/subagent_routing.ts +24 -0
- package/src/scripts/_lib/subagent_steering.ts +213 -3
- 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
|
@@ -93,3 +93,66 @@ export function classifyTask(signals: TaskSignals, activation: ActivationInputs)
|
|
|
93
93
|
const action: DispatchAction = activation.auto === 'on' ? 'dispatch' : 'ask';
|
|
94
94
|
return { delegable: true, action, mode, reason };
|
|
95
95
|
}
|
|
96
|
+
|
|
97
|
+
// ── Per-slice tier inference (v1.5 — road-to-cost-aware-model-routing) ──
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Task-TYPE outputs the tier inference keys on. NEVER raw size metrics —
|
|
101
|
+
* size enters only as the negative guard below. Contract:
|
|
102
|
+
* `auto-dispatch-classification.md § Per-slice tier inference`.
|
|
103
|
+
*/
|
|
104
|
+
export type SliceType =
|
|
105
|
+
| 'read-only-fanout' // grep / inventory / discovery targets
|
|
106
|
+
| 'mechanical-covered' // template-driven transform WITH test coverage
|
|
107
|
+
| 'mutating-uncovered' // mutation without test coverage
|
|
108
|
+
| 'synthesis' // review / analysis / judgment slice
|
|
109
|
+
| 'unknown';
|
|
110
|
+
|
|
111
|
+
export interface SliceTierSignals {
|
|
112
|
+
slice_type: SliceType;
|
|
113
|
+
/**
|
|
114
|
+
* Negative size guard: slice scope exceeds the mechanical envelope
|
|
115
|
+
* (multi-file mutation / beyond single responsibility). Revokes a `lite`
|
|
116
|
+
* candidacy — never creates one.
|
|
117
|
+
*/
|
|
118
|
+
exceeds_mechanical_envelope?: boolean;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export type InferredTier = 'lite' | 'medium' | 'inherit';
|
|
122
|
+
|
|
123
|
+
export interface TierInference {
|
|
124
|
+
tier: InferredTier;
|
|
125
|
+
/** 'inferred' for a real downshift decision; 'inherit' when no inference fired. */
|
|
126
|
+
tier_source: 'inferred' | 'inherit';
|
|
127
|
+
reason: string;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Infer a delegable slice's model tier from its task TYPE. Deterministic,
|
|
132
|
+
* no LLM meta-call. Unknown/ambiguous → inherit (session tier) — never
|
|
133
|
+
* guess down.
|
|
134
|
+
*/
|
|
135
|
+
export function inferSliceTier(signals: SliceTierSignals): TierInference {
|
|
136
|
+
const guard = signals.exceeds_mechanical_envelope === true;
|
|
137
|
+
|
|
138
|
+
switch (signals.slice_type) {
|
|
139
|
+
case 'read-only-fanout':
|
|
140
|
+
case 'mechanical-covered': {
|
|
141
|
+
if (guard) {
|
|
142
|
+
return {
|
|
143
|
+
tier: 'medium',
|
|
144
|
+
tier_source: 'inferred',
|
|
145
|
+
reason: `${signals.slice_type} slice, but scope exceeds the mechanical envelope — lite candidacy revoked`,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const cascade = signals.slice_type === 'mechanical-covered' ? ' (verify-fail escalates to medium)' : '';
|
|
149
|
+
return { tier: 'lite', tier_source: 'inferred', reason: `${signals.slice_type} slice${cascade}` };
|
|
150
|
+
}
|
|
151
|
+
case 'mutating-uncovered':
|
|
152
|
+
return { tier: 'medium', tier_source: 'inferred', reason: 'mutating slice without test coverage' };
|
|
153
|
+
case 'synthesis':
|
|
154
|
+
return { tier: 'medium', tier_source: 'inferred', reason: 'synthesis/judgment slice — judge one tier up' };
|
|
155
|
+
default:
|
|
156
|
+
return { tier: 'inherit', tier_source: 'inherit', reason: 'unknown/ambiguous slice type — session tier, never guess down' };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Baseline-cache helpers for the package-impact A/B bench.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/bench_ab_cache.py` (ADR-200,
|
|
5
5
|
* Phase 2 Wave 2a). Public API mirrors the Python module exactly — same
|
|
6
6
|
* exported names (deliberately snake_case), same cache-key shape and
|
|
7
7
|
* `to_dict()` / `from_dict()` serialization, same freshness diagnosis.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Structural success criteria for Track B.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/bench_ab_scoring.py` (ADR-200,
|
|
5
5
|
* Phase 2 Wave 2a). Public API mirrors the Python module exactly — same
|
|
6
6
|
* exported names (deliberately snake_case), same A/B scoring math, same
|
|
7
7
|
* check ordering, same JSON-identical result shape.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Dual-axis deterministic scoring for the bench:ab v2 discipline-axis benchmark.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Python→TS migration). Public API
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/bench_ab_scoring_v2.py` (ADR-200
|
|
5
|
+
* Python→TS migration). Public API pins the historical contract exactly — same
|
|
6
6
|
* exported name (`score_task_v2`, deliberately snake_case), same check
|
|
7
7
|
* ordering, same JSON-identical result shape, same scoring math.
|
|
8
8
|
*
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* The `_diff_line_count` helper replicates CPython `difflib.unified_diff` with
|
|
24
24
|
* default `n=3` context: the SequenceMatcher matching-block algorithm (incl. the
|
|
25
25
|
* `autojunk` popular-element pruning) is ported verbatim so the added+removed
|
|
26
|
-
* line tally is byte-for-byte identical to the Python
|
|
26
|
+
* line tally is byte-for-byte identical to the retired Python implementation.
|
|
27
27
|
*/
|
|
28
28
|
import { spawnSync } from 'node:child_process';
|
|
29
29
|
import * as fs from 'node:fs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cost capture helper for the bench runner.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/bench_cost.py` (ADR-200, Phase 2
|
|
5
5
|
* Wave 2a). Public API mirrors the Python module exactly — same exported
|
|
6
6
|
* names (deliberately snake_case), same per-tier aggregation, same
|
|
7
7
|
* recompute-from-rates fallback, same 6-decimal rounding, same JSON-identical
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// assertions against actual output. Without it, we emit `not_collected`
|
|
7
7
|
// per docs/contracts/benchmark-report-schema.md § quality invariants.
|
|
8
8
|
//
|
|
9
|
-
//
|
|
9
|
+
// Ported from the retired Python `src/scripts/_lib/bench_quality.py` (ADR-200 py2ts
|
|
10
10
|
// Phase 2 / Wave 2a). Scoring math, rubric/regex semantics, and the
|
|
11
11
|
// `not_collected` shape are mirrored exactly; `quality_score` uses
|
|
12
12
|
// Python's round-half-to-even on `round(passing/total, 4)`.
|
|
@@ -194,8 +194,8 @@ function _pyRound(value: number, ndigits: number): number {
|
|
|
194
194
|
/**
|
|
195
195
|
* Translate a Python `re` pattern + `re.MULTILINE` flag into a JS RegExp.
|
|
196
196
|
* The corpus assertions use simple patterns; we surface a thrown error for
|
|
197
|
-
* patterns JS cannot compile so `_eval_regex` reports `bad_regex`
|
|
198
|
-
*
|
|
197
|
+
* patterns JS cannot compile so `_eval_regex` reports `bad_regex` — the
|
|
198
|
+
* historical contract (the retired implementation caught `re.error`).
|
|
199
199
|
*/
|
|
200
200
|
function _pyCompile(pattern: string): RegExp {
|
|
201
201
|
// re.MULTILINE → 'm'. Python `.search` is unanchored; RegExp.test is too.
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
// docs/contracts/benchmark-report-schema.md. Filename format:
|
|
5
5
|
// `internal/bench/reports/<UTC ISO-8601 with : -> ->-<corpus_id>.{json,md}`.
|
|
6
6
|
//
|
|
7
|
-
//
|
|
8
|
-
// Phase 2 / Wave 2a). Markdown / JSON rendering is byte-
|
|
9
|
-
//
|
|
7
|
+
// Ported from the retired Python `src/scripts/_lib/bench_report.py` (ADR-200 py2ts
|
|
8
|
+
// Phase 2 / Wave 2a). Markdown / JSON rendering is byte-stable (goldens pin
|
|
9
|
+
// it); the inline `:.2%` formatting replicates Python's
|
|
10
10
|
// round-half-to-even semantics.
|
|
11
11
|
import * as fs from 'node:fs';
|
|
12
12
|
import * as path from 'node:path';
|
|
@@ -52,7 +52,7 @@ export function write_json(filePath: string, report: unknown): void {
|
|
|
52
52
|
//
|
|
53
53
|
// Python's f"{x:.2%}" rounds half-to-even on the decimal representation.
|
|
54
54
|
// JS `toFixed` rounds half away from zero, so we reimplement to stay
|
|
55
|
-
// byte-exact with the Python
|
|
55
|
+
// byte-exact with the retired Python implementation.
|
|
56
56
|
|
|
57
57
|
/** Replicate Python `format(x, ".2%")` — value × 100, banker-rounded, '%' suffix. */
|
|
58
58
|
function _fmt_pct2(x: number): string {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
//
|
|
12
12
|
// Cost-touch: 10 prompts × 3 arms × claude-sonnet-4-5 (~$3/M in, ~$15/M out).
|
|
13
13
|
//
|
|
14
|
-
//
|
|
14
|
+
// Ported from the retired Python `src/scripts/_lib/bench_telegraph.py` (ADR-200
|
|
15
15
|
// py2ts Phase 2 / Wave 2a). Public API mirrored exactly — snake_case
|
|
16
16
|
// names kept deliberately. Numeric helpers replicate Python's
|
|
17
17
|
// round-half-to-even (banker's rounding) and the `statistics` module
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
// blocks are disjoint: telegraph has no `selection`/`quality`, and the
|
|
6
6
|
// selection bench has no three-arm condensation metrics.
|
|
7
7
|
//
|
|
8
|
-
//
|
|
8
|
+
// Ported from the retired Python `src/scripts/_lib/bench_telegraph_report.py`
|
|
9
9
|
// (ADR-200 py2ts Phase 2 / Wave 2a). Markdown rendering is byte-exact
|
|
10
|
-
// with the Python
|
|
10
|
+
// with the retired Python implementation; the `_fmt_pct` / `:.0f` helpers replicate
|
|
11
11
|
// Python's round-half-to-even formatting.
|
|
12
12
|
import {
|
|
13
13
|
ARMS,
|
|
@@ -137,8 +137,8 @@ function _prompt_block(r: PromptResult): PromptBlock {
|
|
|
137
137
|
//
|
|
138
138
|
// Python's f"{x:.2%}" and f"{m:.0f}" both round half-to-even (banker's
|
|
139
139
|
// rounding) on the decimal representation. JS `toFixed` rounds half away
|
|
140
|
-
// from zero, so we reimplement the formatting to
|
|
141
|
-
//
|
|
140
|
+
// from zero, so we reimplement the formatting to keep the report bytes
|
|
141
|
+
// stable (goldens pin them).
|
|
142
142
|
|
|
143
143
|
/** Replicate Python `format(x, f".{ndigits}%")` — value × 100, banker-rounded, '%' suffix. */
|
|
144
144
|
function _py_format_pct(x: number, ndigits: number): string {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared constants + helpers for CHANGELOG.md era discipline.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/changelog_eras.py` (ADR-200
|
|
5
5
|
* py2ts Phase 2 / Wave 1). The drift gate (`tests/test_changelog_eras.py`
|
|
6
6
|
* / `tests/lib/changelog_eras.test.ts`) and the release automation
|
|
7
7
|
* (`scripts/release.py`) both reason about the same era shape: a single
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Claude Desktop skill ZIP bundler (Phase 4 of event4u-namespace roadmap).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/claude_desktop_bundler.py`
|
|
5
5
|
* (ADR-200 py2ts Phase 2 / Wave 1).
|
|
6
6
|
*
|
|
7
7
|
* Claude Desktop has no filesystem convention for skills; the Customize →
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Install / refresh the consumer-facing `./agent-config` wrapper.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/cli_wrapper.py` (ADR-200 —
|
|
5
5
|
* Python→TS migration, Phase 2 / Wave 1). Public API mirrors the
|
|
6
6
|
* Python module exactly (snake_case kept deliberately).
|
|
7
7
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Atomic file-write primitive shared by lockfile-schema-v2 writers.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/fs_atomic.py` (ADR-200 — Python→TS
|
|
5
5
|
* migration, Phase 2 / Wave 1). Public API mirrors the Python module
|
|
6
6
|
* exactly (snake_case kept deliberately — fidelity over TS idiom).
|
|
7
7
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-tool inventory of files written by global deploys — and stale reaping.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/global_deploy_inventory.py` (ADR-200 —
|
|
5
5
|
* Python→TS migration, Phase 2 / Wave 2a). Public API mirrors the Python
|
|
6
6
|
* module exactly (snake_case kept deliberately), including the JSON
|
|
7
7
|
* serialization shape (`indent=2, sort_keys=True` + trailing newline) and the
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Install-layout ABI version.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/install_layout.py` (ADR-200 — Python→TS
|
|
5
5
|
* migration). Public API mirrors the Python module exactly (snake_case kept
|
|
6
6
|
* deliberately — fidelity over TS idiom): the two version constants and the
|
|
7
7
|
* `coerce_layout_version` / `needs_migration` helpers, with Python `int()`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provision the roadmap-progress regenerator into a consumer.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/install_regenerator.py` (ADR-200 —
|
|
5
5
|
* Python→TS migration, Phase 2 / Wave 2a). Public API mirrors the Python
|
|
6
6
|
* module exactly (snake_case kept deliberately).
|
|
7
7
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Global-install lockfile at `~/.event4u/agent-config/installed.lock`.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/installed_lock.py` (ADR-200 — Python→TS
|
|
5
5
|
* migration, Phase 2 / Wave 2a). Public API mirrors the Python module exactly
|
|
6
6
|
* (snake_case kept deliberately — fidelity over TS idiom), including the
|
|
7
7
|
* byte-exact lockfile wire format and the tempfile + rename atomic write.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Project-scope installed-tools manifest at `agents/installed-tools.lock`.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/installed_tools.py` (ADR-200 — Python→TS
|
|
5
5
|
* migration, Phase 2 / Wave 2a). Public API mirrors the Python module exactly
|
|
6
6
|
* (snake_case kept deliberately — fidelity over TS idiom), including the
|
|
7
7
|
* byte-exact YAML wire format the `_render` golden tests pin.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* JSON-pointer helpers for the v2 `merged_keys[]` manifest field.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/json_pointers.py` (ADR-200 —
|
|
5
5
|
* Python→TS migration, Phase 2 / Wave 1). Public API mirrors the Python
|
|
6
6
|
* module exactly (snake_case kept deliberately).
|
|
7
7
|
*
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* File-first global knowledge-card layer — store path, config, origin-tier.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/_lib/knowledge_global.py` (ADR-200,
|
|
6
6
|
* Python→TS migration). The public API and CLI contract mirror the Python
|
|
7
7
|
* original EXACTLY — same exported snake_case names, same semantics, same
|
|
8
8
|
* tier-classification, provenance footer, and config-merge behavior, same
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* File-first usage signal + hybrid promotion for global knowledge cards.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* The public API and CLI contract mirror the Python
|
|
5
|
+
* Ported from the retired Python `src/scripts/_lib/knowledge_global_promote.py` (ADR-200).
|
|
6
|
+
* The public API and CLI contract mirror the retired Python implementation EXACTLY — same
|
|
7
7
|
* exported snake_case names, same repo-slug / card-id derivation, same usage
|
|
8
8
|
* sidecar shape (sorted-key JSON), same suggestion decision, same exit codes
|
|
9
9
|
* and byte-identical stdout. No behaviour changes.
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Write-time redaction + tier gate for global knowledge-card sharing.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/_lib/knowledge_global_redaction.py`
|
|
6
6
|
* (ADR-200). Security-sensitive: the redaction patterns + replacements and
|
|
7
|
-
* the tier gate are matched byte-for-byte against the Python
|
|
7
|
+
* the tier gate are matched byte-for-byte against the retired Python implementation. The
|
|
8
8
|
* public API and CLI contract mirror Python exactly — same exported
|
|
9
9
|
* snake_case names, same `GateResult` shape + `summary()` text, same exit
|
|
10
10
|
* codes and stdout. No behaviour changes.
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* link_crypto — encrypt/decrypt stored third-party package links.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/_lib/link_crypto.py` (ADR-200). The public
|
|
6
6
|
* API is mirrored EXACTLY — `encrypt`, `decrypt`, `is_token`, `project_key`,
|
|
7
7
|
* `global_key`, `resolve_keys`, plus the CLI (`encrypt` / `decrypt` / `keygen`
|
|
8
|
-
* / `keystatus`). The crypto scheme
|
|
9
|
-
*
|
|
10
|
-
* identically
|
|
8
|
+
* / `keystatus`). The crypto scheme matches the retired Python implementation byte-for-byte
|
|
9
|
+
* so that ENC1 tokens minted before the migration still round-trip
|
|
10
|
+
* identically: PBKDF2-HMAC-SHA256 (200 000 iters, dklen 64) key
|
|
11
11
|
* derivation, an HMAC-SHA256 counter-mode keystream, encrypt-then-MAC with
|
|
12
12
|
* HMAC-SHA256, standard base64, constant-time tag compare. Every primitive has
|
|
13
13
|
* an identical `node:crypto` counterpart, so encrypt-then-decrypt and the token
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Detect IDE-attached sibling projects (linked-projects scope, Option A).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/linked_projects.py` (ADR-200,
|
|
5
5
|
* Phase 2 Wave 1 batch C). Public API mirrors the Python module exactly —
|
|
6
6
|
* same exported snake_case names, same entry dict shape (`path` /
|
|
7
7
|
* `detected_via` / `large`, JSON-identical), same parsing tolerances.
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* sibling files in context and does NOT persist anything. Opt-in +
|
|
34
34
|
* persistence is the caller's job.
|
|
35
35
|
*
|
|
36
|
-
* Note on logging: the Python
|
|
36
|
+
* Note on logging: the retired Python implementation emits `logger.info(...)` diagnostics
|
|
37
37
|
* which are silent under the default logging configuration. The TS twin
|
|
38
38
|
* omits them — observable behavior (return value) is identical.
|
|
39
39
|
*/
|
|
@@ -261,7 +261,7 @@ function _resolve_idea_url(raw: string, root: string): string | null {
|
|
|
261
261
|
return null;
|
|
262
262
|
}
|
|
263
263
|
// path.resolve handles both the absolute and the root-relative branch
|
|
264
|
-
// of the Python
|
|
264
|
+
// of the retired Python implementation; _resolve_path never throws (the Python
|
|
265
265
|
// OSError → None branch maps to the lexical fallback inside it).
|
|
266
266
|
return _resolve_path(path.resolve(root, value));
|
|
267
267
|
}
|
|
@@ -363,7 +363,7 @@ function _read_jsonc(filePath: string): unknown {
|
|
|
363
363
|
/* ------------------------------------------------------------------ */
|
|
364
364
|
/* Minimal well-formed-XML attribute scanner. */
|
|
365
365
|
/* */
|
|
366
|
-
/*
|
|
366
|
+
/* the retired Python implementation parses with xml.etree.ElementTree and treats */
|
|
367
367
|
/* any ParseError as "no entries". Rather than pull in an XML */
|
|
368
368
|
/* dependency, this scanner tokenizes the document, enforces the */
|
|
369
369
|
/* well-formedness rules ET relies on for the IDE-config input domain */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared `model_tier` → native Claude `model:` mapping (ADR-034 / ADR-035).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/model_tier.py` (ADR-200 —
|
|
5
5
|
* Python→TS migration, Phase 2 / Wave 1). Public API mirrors the
|
|
6
6
|
* Python module exactly (snake_case kept deliberately).
|
|
7
7
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Detect module root directories from a project tree.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/module_detection.py` (ADR-200,
|
|
5
5
|
* Phase 2 Wave 1 batch C). Public API mirrors the Python module exactly —
|
|
6
6
|
* same exported snake_case names, same return shapes, same confidence
|
|
7
7
|
* ladder, same read-only / tolerant contract.
|
|
@@ -126,7 +126,7 @@ export function is_module_like_path(rel_path: string): boolean {
|
|
|
126
126
|
* Fields mirror the JSON shape callers ultimately persist into
|
|
127
127
|
* `modules.root_paths` (the `path` field) plus metadata used by the
|
|
128
128
|
* installer to phrase the numbered-options prompt. Mirrors the frozen
|
|
129
|
-
* `ModuleCandidate` dataclass of the Python
|
|
129
|
+
* `ModuleCandidate` dataclass of the retired Python implementation.
|
|
130
130
|
*/
|
|
131
131
|
export interface ModuleCandidate {
|
|
132
132
|
/** Repo-relative POSIX path of the module root (e.g. `app/Modules`). */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pin-aware version resolver for the `agent-config` dispatcher.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/pin_resolver.py` (ADR-200,
|
|
5
5
|
* Phase 2 / Wave 1 batch B). The dispatcher consults this module
|
|
6
6
|
* **before** doing any work. If `.agent-settings.yml` carries a
|
|
7
7
|
* non-empty `agent_config_version` pin and the currently running
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Verbosity-aware print router for scripts.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Ported from the retired Python `src/scripts/_lib/script_output.py` (ADR-200,
|
|
5
5
|
* Phase 2 / Wave 2b). Mirrors the Python module's public API exactly —
|
|
6
6
|
* same exported snake_case names, same resolution order, same level
|
|
7
7
|
* semantics, same output channels (stdout vs stderr), same module-level
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Shared helpers for the agent-security corpus linters (road-to-security-pillar.md P1).
|
|
2
2
|
//
|
|
3
|
-
//
|
|
3
|
+
// Ported from the retired Python `src/scripts/_lib/security_lint.py` (ADR-200 — Python→TS
|
|
4
4
|
// migration). Public API mirrors the Python module exactly (snake_case kept
|
|
5
5
|
// deliberately) so the two dependent linters — lint_hidden_unicode and
|
|
6
6
|
// lint_instruction_smuggling — depend on one source of truth.
|
|
@@ -18,6 +18,16 @@
|
|
|
18
18
|
export type Tier = 'lite' | 'medium' | 'high' | 'inherit';
|
|
19
19
|
export type QuotaPool = 'separate' | 'shared';
|
|
20
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Where a resolved tier came from (road-to-cost-aware-model-routing Phase 0):
|
|
23
|
+
* - 'static' — declared by frontmatter / category pin,
|
|
24
|
+
* - 'inferred' — produced by the deterministic per-slice tier inference,
|
|
25
|
+
* - 'inherit' — session tier; no downshift decision was made.
|
|
26
|
+
* Mirrors the `tier_source` telemetry field in
|
|
27
|
+
* `src/agent-src/contexts/execution/orchestration-telemetry.md`.
|
|
28
|
+
*/
|
|
29
|
+
export type TierSource = 'static' | 'inferred' | 'inherit';
|
|
30
|
+
|
|
21
31
|
/** Per-tier model alias overrides (empty string = use the tier's runtime default). */
|
|
22
32
|
export interface ModelMap {
|
|
23
33
|
lite?: string;
|
|
@@ -35,6 +45,12 @@ export interface RoutingInputs {
|
|
|
35
45
|
model_map: ModelMap;
|
|
36
46
|
/** From the host-capability manifest. */
|
|
37
47
|
separate_quota_pool: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* How `task_tier` was produced: 'static' (frontmatter/category pin) or
|
|
50
|
+
* 'inferred' (deterministic per-slice inference). Optional — absent
|
|
51
|
+
* defaults to 'static'. Ignored when the slice runs on the session tier.
|
|
52
|
+
*/
|
|
53
|
+
task_tier_origin?: Exclude<TierSource, 'inherit'>;
|
|
38
54
|
}
|
|
39
55
|
|
|
40
56
|
export interface RoutingDecision {
|
|
@@ -44,6 +60,8 @@ export interface RoutingDecision {
|
|
|
44
60
|
model: string;
|
|
45
61
|
/** Whether a separate quota pool is used (bonus) or the shared one. */
|
|
46
62
|
quota_pool: QuotaPool;
|
|
63
|
+
/** Telemetry value for `tier_source`: 'inherit' when no downshift decision applied. */
|
|
64
|
+
tier_source: TierSource;
|
|
47
65
|
reason: string;
|
|
48
66
|
}
|
|
49
67
|
|
|
@@ -64,6 +82,11 @@ export function resolveSubagentRouting(inp: RoutingInputs): RoutingDecision {
|
|
|
64
82
|
const tier: Tier = !inp.downshift || inp.task_tier === 'inherit' ? inp.session_tier : inp.task_tier;
|
|
65
83
|
const downshifted = inp.downshift && inp.task_tier !== 'inherit' && tier !== inp.session_tier;
|
|
66
84
|
|
|
85
|
+
// Telemetry provenance: only a real downshift decision carries its origin;
|
|
86
|
+
// session-tier runs (inherit task, downshift off, or tier == session) are 'inherit'.
|
|
87
|
+
const applied = inp.downshift && inp.task_tier !== 'inherit';
|
|
88
|
+
const tier_source: TierSource = applied ? (inp.task_tier_origin ?? 'static') : 'inherit';
|
|
89
|
+
|
|
67
90
|
// Quota arbitrage: a bonus, only when BOTH the setting and the host allow it.
|
|
68
91
|
const useSeparate = inp.quota_arbitrage && inp.separate_quota_pool;
|
|
69
92
|
const quota_pool: QuotaPool = useSeparate ? 'separate' : 'shared';
|
|
@@ -76,6 +99,7 @@ export function resolveSubagentRouting(inp: RoutingInputs): RoutingDecision {
|
|
|
76
99
|
tier,
|
|
77
100
|
model: modelForTier(tier, inp.model_map),
|
|
78
101
|
quota_pool,
|
|
102
|
+
tier_source,
|
|
79
103
|
reason: reasonParts.join(' · '),
|
|
80
104
|
};
|
|
81
105
|
}
|