@event4u/agent-config 8.1.0 → 8.3.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 +3 -3
- package/CHANGELOG.md +83 -292
- package/MIGRATION.md +18 -0
- package/README.md +86 -3
- package/dist/agent-src/commands/agents/init.md +3 -3
- package/dist/agent-src/commands/chat-history/import.md +5 -5
- package/dist/agent-src/commands/chat-history.md +1 -1
- package/dist/agent-src/commands/condense.md +1 -1
- package/dist/agent-src/commands/context/create.md +1 -1
- package/dist/agent-src/commands/council/analysis.md +2 -2
- package/dist/agent-src/commands/council/default.md +3 -3
- package/dist/agent-src/commands/council/design.md +2 -2
- package/dist/agent-src/commands/council/optimize.md +1 -1
- package/dist/agent-src/commands/council/pr.md +2 -2
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/feature/plan.md +1 -1
- package/dist/agent-src/commands/ghostwriter/list.md +1 -1
- package/dist/agent-src/commands/ghostwriter/write.md +1 -1
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/implement-ticket.md +2 -2
- package/dist/agent-src/commands/judge/on-diff.md +1 -1
- package/dist/agent-src/commands/judge/steps.md +3 -1
- package/dist/agent-src/commands/memory/add.md +2 -2
- package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
- package/dist/agent-src/commands/memory/load.md +1 -1
- package/dist/agent-src/commands/memory/mine-session.md +1 -1
- package/dist/agent-src/commands/memory/promote.md +1 -1
- package/dist/agent-src/commands/memory/propose.md +1 -1
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +3 -3
- package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +1 -1
- package/dist/agent-src/commands/optimize-project.md +1 -1
- package/dist/agent-src/commands/orchestrate.md +2 -2
- package/dist/agent-src/commands/project-analyze.md +1 -1
- package/dist/agent-src/commands/project-health.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/roadmap/create.md +2 -2
- package/dist/agent-src/commands/roadmap/process-full.md +3 -1
- package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
- package/dist/agent-src/commands/roadmap/process-step.md +3 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +7 -7
- package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
- package/dist/agent-src/commands/sync-gitignore.md +4 -4
- package/dist/agent-src/commands/work.md +3 -3
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
- package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
- package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
- package/dist/agent-src/packs/README.md +1 -1
- package/dist/agent-src/presets/README.md +1 -1
- package/dist/agent-src/profiles/README.md +1 -1
- package/dist/agent-src/rules/architecture.md +2 -2
- package/dist/agent-src/rules/context-hygiene.md +2 -2
- package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
- package/dist/agent-src/rules/media-governance-routing.md +1 -1
- package/dist/agent-src/rules/no-roadmap-references.md +3 -3
- package/dist/agent-src/rules/preservation-guard.md +2 -2
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
- package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
- package/dist/agent-src/rules/source-confidentiality.md +1 -1
- package/dist/agent-src/rules/telegraph-speak.md +1 -1
- package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -1
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
- package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
- package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
- package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
- package/dist/agent-src/skills/api-design/SKILL.md +1 -1
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
- package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
- package/dist/agent-src/skills/code-review/SKILL.md +3 -4
- package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
- package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/context-document/SKILL.md +1 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
- package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
- package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
- package/dist/agent-src/skills/database/SKILL.md +2 -1
- package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
- package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
- package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
- package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
- package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
- package/dist/agent-src/skills/flux/SKILL.md +10 -9
- package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
- package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
- package/dist/agent-src/skills/livewire/SKILL.md +10 -9
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
- package/dist/agent-src/skills/module-management/SKILL.md +2 -2
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
- package/dist/agent-src/skills/premortem/SKILL.md +1 -1
- package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
- package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
- package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
- package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
- package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
- package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
- package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
- package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
- package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
- package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
- package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
- package/dist/agent-src/templates/agent-settings.md +34 -25
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
- package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
- package/dist/agent-src/templates/agents/proposal.example.md +4 -4
- package/dist/agent-src/templates/copilot-instructions.md +1 -1
- package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
- package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
- package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
- package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
- package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
- package/dist/agent-src/templates/roadmaps.md +9 -4
- package/dist/agent-src/templates/rule.md +3 -3
- package/dist/agent-src/templates/scripts/README.md +6 -6
- package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
- package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
- package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
- package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
- package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
- package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
- package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
- package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
- package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
- package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
- package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
- package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
- package/dist/agent-src/templates/skill.md +2 -2
- package/dist/cli/python/knowledge_ingest.js +24 -3
- package/dist/cli/python/knowledge_ingest.js.map +1 -1
- package/dist/cli/python/workspace_analytics.js +23 -3
- package/dist/cli/python/workspace_analytics.js.map +1 -1
- package/dist/cli/python/workspace_crypto.js +23 -3
- package/dist/cli/python/workspace_crypto.js.map +1 -1
- package/dist/cli/python/workspace_documents.js +23 -3
- package/dist/cli/python/workspace_documents.js.map +1 -1
- package/dist/cli/python/workspace_drive.js +24 -3
- package/dist/cli/python/workspace_drive.js.map +1 -1
- package/dist/cli/python/workspace_drive_health.js +23 -3
- package/dist/cli/python/workspace_drive_health.js.map +1 -1
- package/dist/cli/python/workspace_explain.js +23 -3
- package/dist/cli/python/workspace_explain.js.map +1 -1
- package/dist/cli/python/workspace_hosts.js +23 -3
- package/dist/cli/python/workspace_hosts.js.map +1 -1
- package/dist/cli/python/workspace_inbox.js +23 -3
- package/dist/cli/python/workspace_inbox.js.map +1 -1
- package/dist/cli/python/workspace_render.js +23 -3
- package/dist/cli/python/workspace_render.js.map +1 -1
- package/dist/cli/python/workspace_roles.js +23 -3
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/cli/python/workspace_sessions.js +23 -3
- package/dist/cli/python/workspace_sessions.js.map +1 -1
- package/dist/cli/python/workspace_skills.js +23 -3
- package/dist/cli/python/workspace_skills.js.map +1 -1
- package/dist/cli/registry.js +2 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +118 -118
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +2 -2
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +3 -3
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +3 -3
- package/dist/install/install.mjs +647 -408
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/server/routes/settings.js +4 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +1 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +2 -2
- package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
- package/docs/benchmark.md +40 -0
- package/docs/contracts/CHANGELOG-conventions.md +8 -5
- package/docs/contracts/branch-protection-policy.md +14 -5
- package/docs/contracts/mcp-phase-1-scope.md +75 -0
- package/docs/contracts/mcp-tool-inventory.md +22 -15
- package/docs/contracts/release-pr-gating.md +22 -11
- package/docs/contracts/skill-bundled-assets.md +2 -2
- package/docs/customization.md +1 -1
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
- package/docs/decisions/ADR-111-canonical-glama-listing.md +97 -0
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +92 -0
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +201 -0
- package/docs/decisions/INDEX.md +3 -0
- package/docs/distribution/registry-submissions.md +1 -1
- package/docs/getting-started.md +8 -6
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
- package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
- package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
- package/docs/guidelines/agent-infra/layered-settings.md +4 -4
- package/docs/guidelines/agent-infra/memory-access.md +19 -18
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
- package/docs/guidelines/agent-infra/role-contracts.md +1 -1
- package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
- package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/installation.md +13 -14
- package/docs/mcp-server.md +32 -20
- package/docs/proof.md +1 -1
- package/docs/setup/mcp-cloud-endpoints.md +9 -2
- package/docs/setup/per-ide/claude-code.md +10 -4
- package/package.json +4 -3
- package/src/config/agent-settings.template.yml +31 -17
- package/src/config/host-capabilities.yml +25 -16
- package/src/config/profiles/balanced.ini +5 -3
- package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
- package/src/scripts/_cli/cmd_conformance.ts +23 -4
- package/src/scripts/_cli/cmd_doctor.ts +196 -8
- package/src/scripts/_cli/cmd_explain.ts +23 -4
- package/src/scripts/_cli/cmd_export.ts +23 -4
- package/src/scripts/_cli/cmd_fleet.ts +23 -4
- package/src/scripts/_cli/cmd_migrate.ts +23 -4
- package/src/scripts/_cli/cmd_preflight.ts +24 -4
- package/src/scripts/_cli/cmd_prune.ts +23 -4
- package/src/scripts/_cli/cmd_refresh.ts +23 -4
- package/src/scripts/_cli/cmd_settings_check.ts +23 -4
- package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
- package/src/scripts/_cli/cmd_sync.ts +23 -4
- package/src/scripts/_cli/cmd_uninstall.ts +45 -4
- package/src/scripts/_cli/cmd_update.ts +23 -4
- package/src/scripts/_cli/cmd_upgrade.ts +307 -17
- package/src/scripts/_cli/cmd_validate.ts +23 -4
- package/src/scripts/_cli/cmd_versions.ts +23 -4
- package/src/scripts/_dispatch.bash +62 -19
- package/src/scripts/_lib/claude_plugin.ts +83 -0
- package/src/scripts/_lib/claude_settings_hooks.ts +251 -0
- package/src/scripts/_lib/knowledge_global.ts +24 -2
- package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
- package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
- package/src/scripts/_lib/link_crypto.ts +24 -5
- package/src/scripts/_lib/pin_resolver.ts +24 -3
- package/src/scripts/adoption_report.ts +23 -4
- package/src/scripts/adoption_snapshot.ts +23 -1
- package/src/scripts/adoption_status.ts +23 -4
- package/src/scripts/adr/regenerate_index.ts +24 -3
- package/src/scripts/ai_council/airgap.ts +25 -2
- package/src/scripts/ai_council/compile_corpus.ts +24 -2
- package/src/scripts/ai_council/pricing.ts +11 -1
- package/src/scripts/analysis_freshness.ts +23 -4
- package/src/scripts/annotate_discovery.ts +23 -1
- package/src/scripts/apply_modules_config.ts +23 -4
- package/src/scripts/audit_adr_coverage.ts +23 -4
- package/src/scripts/audit_auto_rules.ts +23 -1
- package/src/scripts/audit_cloud_compatibility.ts +23 -4
- package/src/scripts/audit_command_surface.ts +23 -4
- package/src/scripts/audit_initial_context.ts +23 -3
- package/src/scripts/audit_likelihood.ts +23 -1
- package/src/scripts/audit_mcp_tools.ts +23 -3
- package/src/scripts/audit_overlap.ts +23 -1
- package/src/scripts/audit_skill_descriptions.ts +24 -2
- package/src/scripts/audit_skill_overlap.ts +23 -1
- package/src/scripts/audit_user_type_axis.ts +23 -4
- package/src/scripts/backfill_model_tier.ts +23 -4
- package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
- package/src/scripts/bench_ab_clone.ts +23 -1
- package/src/scripts/bench_ab_diff.ts +23 -1
- package/src/scripts/bench_ab_integrity.ts +23 -1
- package/src/scripts/bench_ab_run.ts +23 -2
- package/src/scripts/bench_ab_task_runner.ts +23 -1
- package/src/scripts/bench_ab_tracka_run.ts +23 -2
- package/src/scripts/bench_ab_v2_run.ts +23 -1
- package/src/scripts/bench_ab_v2_stats.ts +23 -1
- package/src/scripts/bench_baseline_ready.ts +23 -1
- package/src/scripts/bench_condense_memory.ts +23 -1
- package/src/scripts/bench_drift_check.ts +23 -2
- package/src/scripts/bench_matrix.ts +23 -4
- package/src/scripts/bench_per_tool.ts +23 -1
- package/src/scripts/bench_quality_run.ts +23 -2
- package/src/scripts/bench_rtk_savings.ts +23 -1
- package/src/scripts/bench_rule_load_latency.ts +23 -2
- package/src/scripts/bench_run.ts +23 -2
- package/src/scripts/bench_runner.ts +23 -1
- package/src/scripts/build_cloud_bundle.ts +23 -3
- package/src/scripts/build_discovery_manifest.ts +23 -4
- package/src/scripts/build_linear_digest.ts +23 -3
- package/src/scripts/build_mcp_registry_manifest.ts +23 -4
- package/src/scripts/build_rule_trigger_matrix.ts +23 -4
- package/src/scripts/capture_showcase_session.ts +23 -1
- package/src/scripts/chat_history.ts +24 -3
- package/src/scripts/check_always_budget.ts +23 -2
- package/src/scripts/check_artefact_checksums.ts +23 -4
- package/src/scripts/check_augment_description_cap.ts +23 -4
- package/src/scripts/check_augmentignore.ts +23 -4
- package/src/scripts/check_beta_review_markers.ts +23 -4
- package/src/scripts/check_cluster_patterns.ts +23 -4
- package/src/scripts/check_command_count_messaging.ts +23 -4
- package/src/scripts/check_comparison.ts +23 -1
- package/src/scripts/check_condensation.ts +24 -3
- package/src/scripts/check_condensed_paths.ts +23 -2
- package/src/scripts/check_context_paths.ts +23 -4
- package/src/scripts/check_council_config_location.ts +23 -4
- package/src/scripts/check_council_layout.ts +23 -4
- package/src/scripts/check_council_references.ts +23 -4
- package/src/scripts/check_discovery_determinism.ts +24 -4
- package/src/scripts/check_gate_paths.ts +23 -4
- package/src/scripts/check_generated_artefact_headers.ts +23 -4
- package/src/scripts/check_generator_output_coverage.ts +23 -4
- package/src/scripts/check_gitignore_freshness.ts +23 -4
- package/src/scripts/check_iron_law_prominence.ts +23 -4
- package/src/scripts/check_kernel_prefix_stability.ts +0 -0
- package/src/scripts/check_kernel_rule_bundle.ts +23 -4
- package/src/scripts/check_knowledge_cards.ts +23 -1
- package/src/scripts/check_md_language.ts +23 -4
- package/src/scripts/check_media_deps.ts +24 -1
- package/src/scripts/check_memory.ts +24 -2
- package/src/scripts/check_memory_proposal.ts +23 -4
- package/src/scripts/check_module_management_neutral.ts +23 -4
- package/src/scripts/check_no_conflict_markers.ts +23 -4
- package/src/scripts/check_no_external_sources.ts +23 -4
- package/src/scripts/check_no_local_settings_committed.ts +24 -4
- package/src/scripts/check_no_new_legacy_path.ts +23 -4
- package/src/scripts/check_no_roadmap_refs.ts +23 -4
- package/src/scripts/check_one_off_location.ts +23 -4
- package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
- package/src/scripts/check_portability.ts +24 -3
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_public_catalog_links.ts +23 -4
- package/src/scripts/check_public_links.ts +23 -4
- package/src/scripts/check_quality_regression.ts +23 -2
- package/src/scripts/check_references.ts +23 -4
- package/src/scripts/check_release_includes_discovery.ts +23 -4
- package/src/scripts/check_release_pr_shape.ts +23 -4
- package/src/scripts/check_release_published.ts +23 -4
- package/src/scripts/check_release_trunk_sync.ts +23 -4
- package/src/scripts/check_reply_consistency.ts +23 -4
- package/src/scripts/check_roadmap_trackable.ts +23 -4
- package/src/scripts/check_role_doc_links.ts +23 -4
- package/src/scripts/check_safety_floor_untouched.ts +24 -4
- package/src/scripts/check_site_links.ts +23 -1
- package/src/scripts/check_skill_gaps.ts +23 -1
- package/src/scripts/check_skill_requires.ts +23 -4
- package/src/scripts/check_structural_breaking.ts +24 -4
- package/src/scripts/check_surface_tiers.ts +23 -4
- package/src/scripts/check_template_pin_drift.ts +23 -4
- package/src/scripts/check_test_coverage_diff.ts +23 -4
- package/src/scripts/check_token_optimizer_freshness.ts +23 -4
- package/src/scripts/check_token_quality_golden.ts +23 -2
- package/src/scripts/check_token_regression.ts +23 -2
- package/src/scripts/check_tracked_but_ignored.ts +24 -4
- package/src/scripts/check_trigger_evals.ts +23 -4
- package/src/scripts/check_trunk_drift.ts +24 -1
- package/src/scripts/check_update_banner.ts +23 -4
- package/src/scripts/ci_summary.ts +23 -4
- package/src/scripts/ci_time_ratio.ts +23 -4
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +23 -4
- package/src/scripts/condense.ts +30 -31
- package/src/scripts/condense_memory.ts +24 -2
- package/src/scripts/config/packs.ts +24 -4
- package/src/scripts/config/session_profiles.ts +23 -4
- package/src/scripts/context_hygiene_hook.ts +24 -3
- package/src/scripts/cost_by_conversation.ts +23 -4
- package/src/scripts/cost_summary.ts +23 -4
- package/src/scripts/council_cli.ts +35 -7
- package/src/scripts/council_prune.ts +25 -2
- package/src/scripts/cross_repo_retrieve.ts +23 -4
- package/src/scripts/discovery_stats.ts +23 -4
- package/src/scripts/evidence_report.ts +23 -1
- package/src/scripts/export_replay_corpus.ts +23 -2
- package/src/scripts/extract_audit_patterns.ts +23 -1
- package/src/scripts/first_run_gate_hook.ts +24 -3
- package/src/scripts/gen_discovery_baseline.ts +23 -4
- package/src/scripts/generate_capabilities_index.ts +24 -5
- package/src/scripts/generate_capability_matrix.ts +23 -4
- package/src/scripts/generate_catalog.ts +23 -1
- package/src/scripts/generate_command_flows.ts +23 -4
- package/src/scripts/generate_cookbook.ts +23 -4
- package/src/scripts/generate_index.ts +23 -4
- package/src/scripts/generate_ownership_matrix.ts +23 -1
- package/src/scripts/generate_pack_manifests.ts +24 -5
- package/src/scripts/generate_role_experiences_catalog.ts +23 -4
- package/src/scripts/hooks/block_no_verify.ts +23 -4
- package/src/scripts/hooks/design_slop_hook.ts +24 -3
- package/src/scripts/hooks/dispatch_hook.ts +47 -14
- package/src/scripts/hooks/replay_hook.ts +23 -2
- package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
- package/src/scripts/hooks_doctor.ts +23 -2
- package/src/scripts/hooks_status.ts +23 -2
- package/src/scripts/injection_scan_hook.ts +24 -5
- package/src/scripts/install +23 -4
- package/src/scripts/install.ts +102 -44
- package/src/scripts/inventory_abstraction_budget.ts +23 -1
- package/src/scripts/inventory_frontmatter.ts +23 -1
- package/src/scripts/inventory_meta_layers.ts +23 -1
- package/src/scripts/iron_law_sha.ts +23 -4
- package/src/scripts/janitor.ts +23 -4
- package/src/scripts/knowledge_global_cli.ts +24 -2
- package/src/scripts/linked_projects_list.ts +23 -4
- package/src/scripts/lint_agent_security.ts +23 -4
- package/src/scripts/lint_agent_skill_names.ts +23 -4
- package/src/scripts/lint_agents_layout.ts +23 -4
- package/src/scripts/lint_agents_md.ts +23 -4
- package/src/scripts/lint_archived_skills.ts +23 -4
- package/src/scripts/lint_artefact_frontmatter.ts +23 -4
- package/src/scripts/lint_bench_ab.ts +23 -4
- package/src/scripts/lint_bench_corpus.ts +23 -2
- package/src/scripts/lint_command_flow_coverage.ts +23 -4
- package/src/scripts/lint_command_routing.ts +23 -4
- package/src/scripts/lint_command_tiers.ts +23 -2
- package/src/scripts/lint_command_verbs.ts +23 -4
- package/src/scripts/lint_commit_subjects.ts +24 -4
- package/src/scripts/lint_confusables.ts +25 -5
- package/src/scripts/lint_context_spine_usage.ts +23 -4
- package/src/scripts/lint_discovery_manifest.ts +23 -4
- package/src/scripts/lint_discovery_vocabulary.ts +23 -4
- package/src/scripts/lint_empty_roadmaps.ts +23 -4
- package/src/scripts/lint_eval_freshness.ts +23 -4
- package/src/scripts/lint_examples.ts +23 -4
- package/src/scripts/lint_explain_trace.ts +23 -4
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_flows.ts +23 -4
- package/src/scripts/lint_framework_leakage.ts +23 -4
- package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
- package/src/scripts/lint_ghostwriter_source.ts +23 -4
- package/src/scripts/lint_glama_drift.ts +75 -0
- package/src/scripts/lint_global_paths.ts +23 -2
- package/src/scripts/lint_handoffs.ts +23 -4
- package/src/scripts/lint_hidden_unicode.ts +24 -5
- package/src/scripts/lint_hook_concern_budget.ts +23 -4
- package/src/scripts/lint_hook_manifest.ts +23 -2
- package/src/scripts/lint_instruction_smuggling.ts +25 -5
- package/src/scripts/lint_legal_pack.ts +23 -1
- package/src/scripts/lint_load_context.ts +23 -4
- package/src/scripts/lint_marketplace.ts +24 -3
- package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
- package/src/scripts/lint_mcp_config_security.ts +25 -5
- package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
- package/src/scripts/lint_media_policy_linkage.ts +23 -4
- package/src/scripts/lint_missions.ts +23 -4
- package/src/scripts/lint_model_tier_coverage.ts +23 -4
- package/src/scripts/lint_namespace.ts +23 -4
- package/src/scripts/lint_namespace_collisions.ts +23 -4
- package/src/scripts/lint_new_skill_gate.ts +23 -4
- package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
- package/src/scripts/lint_one_off_age.ts +23 -4
- package/src/scripts/lint_orchestration_dsl.ts +23 -4
- package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
- package/src/scripts/lint_pack_boundaries.ts +23 -4
- package/src/scripts/lint_pack_dependencies.ts +23 -2
- package/src/scripts/lint_pack_first_win.ts +23 -4
- package/src/scripts/lint_pack_risk_class.ts +23 -1
- package/src/scripts/lint_persona_governance.ts +23 -4
- package/src/scripts/lint_positioning.ts +23 -4
- package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
- package/src/scripts/lint_readme_jargon.ts +23 -4
- package/src/scripts/lint_readme_size.ts +23 -4
- package/src/scripts/lint_regression.ts +23 -4
- package/src/scripts/lint_roadmap_blockers.ts +23 -4
- package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
- package/src/scripts/lint_roadmap_complexity.ts +23 -4
- package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
- package/src/scripts/lint_role_experiences.ts +23 -4
- package/src/scripts/lint_rule_interactions.ts +23 -4
- package/src/scripts/lint_rule_tiers.ts +24 -3
- package/src/scripts/lint_showcase_sessions.ts +23 -4
- package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
- package/src/scripts/lint_skill_originality.ts +23 -4
- package/src/scripts/lint_skill_tools.ts +23 -4
- package/src/scripts/lint_subagent_determinism.ts +23 -4
- package/src/scripts/lint_ticket_buildable.ts +23 -4
- package/src/scripts/lint_topics_yaml.ts +23 -4
- package/src/scripts/lint_trust_coherence.ts +23 -4
- package/src/scripts/lint_value_dashboard.ts +23 -4
- package/src/scripts/lint_workflow_security.ts +23 -4
- package/src/scripts/lint_workspace_boundary.ts +23 -4
- package/src/scripts/mcp_exec/safety_envelope.ts +105 -0
- package/src/scripts/mcp_parity_smoke.ts +23 -2
- package/src/scripts/mcp_registry_submit.sh +14 -3
- package/src/scripts/mcp_render.ts +23 -4
- package/src/scripts/mcp_server/__main__.ts +6 -8
- package/src/scripts/mcp_server/consumer_tool_catalog.json +78 -3
- package/src/scripts/mcp_server/tools.ts +731 -0
- package/src/scripts/mcp_telemetry_health.ts +23 -4
- package/src/scripts/mcp_telemetry_query.ts +23 -4
- package/src/scripts/mcp_telemetry_store.ts +23 -4
- package/src/scripts/measure_augment_budget.ts +23 -1
- package/src/scripts/measure_density.ts +23 -1
- package/src/scripts/measure_frugality_savings.ts +23 -1
- package/src/scripts/measure_markitdown_lift.ts +23 -1
- package/src/scripts/measure_patterns.ts +23 -1
- package/src/scripts/measure_projection_bytes.ts +23 -1
- package/src/scripts/measure_rule_budget.ts +23 -4
- package/src/scripts/measure_skill_reduction.ts +23 -1
- package/src/scripts/memory_hash.ts +24 -2
- package/src/scripts/memory_lookup.ts +24 -2
- package/src/scripts/memory_report.ts +24 -2
- package/src/scripts/memory_signal.ts +24 -2
- package/src/scripts/memory_status.ts +26 -2
- package/src/scripts/migrate_command_suggestions.ts +23 -4
- package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
- package/src/scripts/migration_status.ts +25 -4
- package/src/scripts/mine_missing_guardrails.ts +23 -1
- package/src/scripts/mine_session.ts +23 -1
- package/src/scripts/minimal_safe_diff_hook.ts +24 -3
- package/src/scripts/new_skill.ts +23 -3
- package/src/scripts/onboarding_gate_hook.ts +24 -3
- package/src/scripts/parity/coverage_diff.ts +25 -3
- package/src/scripts/parity/phase_gate.ts +25 -4
- package/src/scripts/parity/replay.ts +25 -3
- package/src/scripts/pattern_share.ts +23 -4
- package/src/scripts/plan_physical_move.ts +23 -4
- package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
- package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
- package/src/scripts/prediction-pool/score_ev.ts +24 -3
- package/src/scripts/print_required_checks.ts +24 -4
- package/src/scripts/probe_host_compliance.ts +23 -2
- package/src/scripts/probe_projection_fidelity.ts +23 -1
- package/src/scripts/probe_skill_registration.ts +24 -2
- package/src/scripts/profile_staleness_hook.ts +24 -3
- package/src/scripts/profile_use.ts +23 -4
- package/src/scripts/project_thin_rules.ts +23 -3
- package/src/scripts/propose_modules_config.ts +23 -4
- package/src/scripts/prototype_lint_contradictions.ts +23 -1
- package/src/scripts/prove_pack_extractable.ts +23 -4
- package/src/scripts/readme_linter.ts +23 -3
- package/src/scripts/redact_hook_capture.ts +23 -4
- package/src/scripts/refine_ticket_detect.ts +23 -4
- package/src/scripts/release.ts +226 -43
- package/src/scripts/render_benchmark_composite.ts +23 -4
- package/src/scripts/render_benchmark_md.ts +23 -4
- package/src/scripts/roadmap_progress_hook.ts +46 -16
- package/src/scripts/run_skill_evals.ts +23 -4
- package/src/scripts/runtime_dispatcher.ts +23 -4
- package/src/scripts/runtime_registry.ts +23 -4
- package/src/scripts/score_skill_selection.ts +23 -1
- package/src/scripts/security_audit_config.ts +24 -5
- package/src/scripts/skill_collision_clusters.ts +23 -4
- package/src/scripts/skill_discovery.ts +23 -4
- package/src/scripts/skill_linter.ts +23 -2
- package/src/scripts/skill_preview.ts +23 -4
- package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
- package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
- package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
- package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
- package/src/scripts/skill_usage_collect.ts +23 -4
- package/src/scripts/smoke_path_resolution.ts +23 -4
- package/src/scripts/smoke_quickstart.ts +23 -4
- package/src/scripts/snapshot_agent_outputs.ts +23 -4
- package/src/scripts/spotcheck_thin_root.ts +23 -4
- package/src/scripts/sync_agent_settings.ts +23 -4
- package/src/scripts/sync_github_metadata.ts +23 -4
- package/src/scripts/sync_gitignore.ts +23 -4
- package/src/scripts/telegraph_stats.ts +23 -4
- package/src/scripts/tool_registry.ts +24 -4
- package/src/scripts/trigger_coverage.ts +23 -4
- package/src/scripts/update_counts.ts +23 -4
- package/src/scripts/update_prices.ts +23 -1
- package/src/scripts/validate_agent_settings.ts +23 -4
- package/src/scripts/validate_decision_engine.ts +23 -4
- package/src/scripts/validate_discovery_manifest.ts +23 -4
- package/src/scripts/validate_frontmatter.ts +23 -2
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/scripts/validate_safe_paths.ts +24 -4
- package/src/scripts/validate_telegraph_carveouts.ts +23 -4
- package/src/scripts/verify_before_complete_hook.ts +24 -3
- package/src/scripts/verify_physical_move.ts +23 -4
- package/src/scripts/wrapper_freshness_hook.ts +107 -8
- package/tests/fixtures/hooks/README.md +92 -0
- package/tests/fixtures/hooks/agent_error.json +7 -0
- package/tests/fixtures/hooks/post_tool_use.json +13 -0
- package/tests/fixtures/hooks/pre_compact.json +7 -0
- package/tests/fixtures/hooks/pre_tool_use.json +9 -0
- package/tests/fixtures/hooks/session_end.json +6 -0
- package/tests/fixtures/hooks/session_start.json +6 -0
- package/tests/fixtures/hooks/stop.json +6 -0
- package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
|
@@ -31,7 +31,7 @@ import * as crypto from 'node:crypto';
|
|
|
31
31
|
import * as fs from 'node:fs';
|
|
32
32
|
import * as path from 'node:path';
|
|
33
33
|
import process from 'node:process';
|
|
34
|
-
import { pathToFileURL } from 'node:url';
|
|
34
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
35
35
|
|
|
36
36
|
// Mutable so tests can repoint at a tmp tree (monkeypatch parity).
|
|
37
37
|
export let INTAKE_ROOT = path.join('agents', 'memory', 'intake');
|
|
@@ -415,8 +415,30 @@ export function main(): number {
|
|
|
415
415
|
return 0;
|
|
416
416
|
}
|
|
417
417
|
|
|
418
|
+
function _isCliEntry(): boolean {
|
|
419
|
+
if (process.argv[1] === undefined) {
|
|
420
|
+
return false;
|
|
421
|
+
}
|
|
422
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
423
|
+
if (import.meta.url === argvUrl) {
|
|
424
|
+
return true;
|
|
425
|
+
}
|
|
426
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
427
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
428
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
429
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
430
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
431
|
+
try {
|
|
432
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
433
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
434
|
+
return here === argv;
|
|
435
|
+
} catch {
|
|
436
|
+
return false;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
418
440
|
const _isMain =
|
|
419
|
-
|
|
441
|
+
_isCliEntry();
|
|
420
442
|
if (_isMain) {
|
|
421
443
|
process.exit(main());
|
|
422
444
|
}
|
|
@@ -22,7 +22,9 @@
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import process from 'node:process';
|
|
25
|
-
import
|
|
25
|
+
import * as fs from 'node:fs';
|
|
26
|
+
import * as path from 'node:path';
|
|
27
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
26
28
|
|
|
27
29
|
// Retrieval contract version served by the file-backed backend.
|
|
28
30
|
// Source of truth: internal/schemas/retrieval-v1.schema.json.
|
|
@@ -176,8 +178,30 @@ export function main(): number {
|
|
|
176
178
|
return 0;
|
|
177
179
|
}
|
|
178
180
|
|
|
181
|
+
function _isCliEntry(): boolean {
|
|
182
|
+
if (process.argv[1] === undefined) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
186
|
+
if (import.meta.url === argvUrl) {
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
190
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
191
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
192
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
193
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
194
|
+
try {
|
|
195
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
196
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
197
|
+
return here === argv;
|
|
198
|
+
} catch {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
179
203
|
const _isMain =
|
|
180
|
-
|
|
204
|
+
_isCliEntry();
|
|
181
205
|
if (_isMain) {
|
|
182
206
|
try {
|
|
183
207
|
process.exitCode = main();
|
|
@@ -27,7 +27,7 @@ import { spawnSync } from 'node:child_process';
|
|
|
27
27
|
import { createRequire } from 'node:module';
|
|
28
28
|
import * as fs from 'node:fs';
|
|
29
29
|
import process from 'node:process';
|
|
30
|
-
import { pathToFileURL } from 'node:url';
|
|
30
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
31
31
|
import * as path from 'node:path';
|
|
32
32
|
import type * as YamlModule from 'yaml';
|
|
33
33
|
|
|
@@ -515,9 +515,30 @@ export function main(argv: string[] = process.argv.slice(2)): number {
|
|
|
515
515
|
return 0;
|
|
516
516
|
}
|
|
517
517
|
|
|
518
|
+
function _isCliEntry(): boolean {
|
|
519
|
+
if (process.argv[1] === undefined) {
|
|
520
|
+
return false;
|
|
521
|
+
}
|
|
522
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
523
|
+
if (import.meta.url === argvUrl) {
|
|
524
|
+
return true;
|
|
525
|
+
}
|
|
526
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
527
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
528
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
529
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
530
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
531
|
+
try {
|
|
532
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
533
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
534
|
+
return here === argv;
|
|
535
|
+
} catch {
|
|
536
|
+
return false;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
518
540
|
const _invokedDirectly =
|
|
519
|
-
|
|
520
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
541
|
+
_isCliEntry();
|
|
521
542
|
if (_invokedDirectly) {
|
|
522
543
|
process.exitCode = main();
|
|
523
544
|
}
|
|
Binary file
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import * as fs from 'node:fs';
|
|
17
17
|
import process from 'node:process';
|
|
18
|
-
import { pathToFileURL } from 'node:url';
|
|
18
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
19
19
|
import * as path from 'node:path';
|
|
20
20
|
|
|
21
21
|
import { record_event } from './telemetry/boundary.js';
|
|
@@ -247,9 +247,30 @@ function _osErr(exc: unknown): string {
|
|
|
247
247
|
return exc instanceof Error ? exc.message : String(exc);
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
+
function _isCliEntry(): boolean {
|
|
251
|
+
if (process.argv[1] === undefined) {
|
|
252
|
+
return false;
|
|
253
|
+
}
|
|
254
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
255
|
+
if (import.meta.url === argvUrl) {
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
259
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
260
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
261
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
262
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
263
|
+
try {
|
|
264
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
265
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
266
|
+
return here === argv;
|
|
267
|
+
} catch {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
250
272
|
const _invokedDirectly =
|
|
251
|
-
|
|
252
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
273
|
+
_isCliEntry();
|
|
253
274
|
if (_invokedDirectly) {
|
|
254
275
|
process.exitCode = main();
|
|
255
276
|
}
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
* failure on a row sourced from the log
|
|
12
12
|
*/
|
|
13
13
|
import process from 'node:process';
|
|
14
|
-
import
|
|
14
|
+
import * as fs from 'node:fs';
|
|
15
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
15
16
|
import * as path from 'node:path';
|
|
16
17
|
|
|
17
18
|
import { aggregate } from './telemetry/aggregator.js';
|
|
@@ -181,9 +182,30 @@ function _osErr(exc: unknown): string {
|
|
|
181
182
|
return exc instanceof Error ? exc.message : String(exc);
|
|
182
183
|
}
|
|
183
184
|
|
|
185
|
+
function _isCliEntry(): boolean {
|
|
186
|
+
if (process.argv[1] === undefined) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
190
|
+
if (import.meta.url === argvUrl) {
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
194
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
195
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
196
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
197
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
198
|
+
try {
|
|
199
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
200
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
201
|
+
return here === argv;
|
|
202
|
+
} catch {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
184
207
|
const _invokedDirectly =
|
|
185
|
-
|
|
186
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
208
|
+
_isCliEntry();
|
|
187
209
|
if (_invokedDirectly) {
|
|
188
210
|
process.exitCode = main();
|
|
189
211
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import * as fs from 'node:fs';
|
|
10
10
|
import process from 'node:process';
|
|
11
|
-
import { pathToFileURL } from 'node:url';
|
|
11
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
12
12
|
import * as path from 'node:path';
|
|
13
13
|
|
|
14
14
|
import { EngagementSchemaError, parse_event } from './telemetry/engagement.js';
|
|
@@ -304,9 +304,30 @@ function _pyJsonStringAscii(s: string): string {
|
|
|
304
304
|
return `${out}"`;
|
|
305
305
|
}
|
|
306
306
|
|
|
307
|
+
function _isCliEntry(): boolean {
|
|
308
|
+
if (process.argv[1] === undefined) {
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
312
|
+
if (import.meta.url === argvUrl) {
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
316
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
317
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
318
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
319
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
320
|
+
try {
|
|
321
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
322
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
323
|
+
return here === argv;
|
|
324
|
+
} catch {
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
307
329
|
const _invokedDirectly =
|
|
308
|
-
|
|
309
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
330
|
+
_isCliEntry();
|
|
310
331
|
if (_invokedDirectly) {
|
|
311
332
|
process.exitCode = main();
|
|
312
333
|
}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
import * as fs from 'node:fs';
|
|
44
44
|
import * as path from 'node:path';
|
|
45
45
|
import process from 'node:process';
|
|
46
|
-
import { pathToFileURL } from 'node:url';
|
|
46
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
47
47
|
import { parse as parseYaml } from 'yaml';
|
|
48
48
|
|
|
49
49
|
// Contract whitelist (see `docs/contracts/command-clusters.md`).
|
|
@@ -590,8 +590,30 @@ function _osErrorMessage(exc: unknown, log_path: string): string {
|
|
|
590
590
|
return err && err.message ? err.message : String(exc);
|
|
591
591
|
}
|
|
592
592
|
|
|
593
|
+
function _isCliEntry(): boolean {
|
|
594
|
+
if (process.argv[1] === undefined) {
|
|
595
|
+
return false;
|
|
596
|
+
}
|
|
597
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
598
|
+
if (import.meta.url === argvUrl) {
|
|
599
|
+
return true;
|
|
600
|
+
}
|
|
601
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
602
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
603
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
604
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
605
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
606
|
+
try {
|
|
607
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
608
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
609
|
+
return here === argv;
|
|
610
|
+
} catch {
|
|
611
|
+
return false;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
|
|
593
615
|
const _isMain =
|
|
594
|
-
|
|
616
|
+
_isCliEntry();
|
|
595
617
|
if (_isMain) {
|
|
596
618
|
process.exit(main());
|
|
597
619
|
}
|
|
@@ -1131,18 +1131,36 @@ function _posix_join(a: string, b: string): string {
|
|
|
1131
1131
|
|
|
1132
1132
|
export type DisciplineProfile = 'off' | 'essential' | 'full' | 'custom';
|
|
1133
1133
|
|
|
1134
|
+
export type LiftDefault = 'lift_enabled' | 'lift_disabled';
|
|
1135
|
+
|
|
1134
1136
|
export interface HostCapabilities {
|
|
1135
1137
|
/** Models with a MEASURED null discipline lift (prefix-matched ids). */
|
|
1136
1138
|
lift_disabled_models: string[];
|
|
1137
|
-
/**
|
|
1138
|
-
|
|
1139
|
+
/**
|
|
1140
|
+
* Resolution for UNMEASURED models, per vendor family (P2-verdict
|
|
1141
|
+
* council 2026-07-07): keys are family names plus a required `default`.
|
|
1142
|
+
* Evidence-structure granularity — anthropic keeps the fail-safe toward
|
|
1143
|
+
* the one measured lift; everything else defaults off after the failed
|
|
1144
|
+
* GPT-weak replication.
|
|
1145
|
+
*/
|
|
1146
|
+
unknown_defaults: Record<string, LiftDefault> & { default: LiftDefault };
|
|
1139
1147
|
}
|
|
1140
1148
|
|
|
1141
1149
|
const _CAPABILITIES_FALLBACK: HostCapabilities = {
|
|
1142
1150
|
lift_disabled_models: [],
|
|
1143
|
-
|
|
1151
|
+
// File missing/unreadable → mirror the SHIPPED yml (anthropic enabled,
|
|
1152
|
+
// rest disabled) so a broken read never silently widens the lift.
|
|
1153
|
+
unknown_defaults: { anthropic: 'lift_enabled', default: 'lift_disabled' },
|
|
1144
1154
|
};
|
|
1145
1155
|
|
|
1156
|
+
/** Map a session model id onto a vendor family for unknown_defaults. */
|
|
1157
|
+
export function vendor_family(model_id: string | null): string {
|
|
1158
|
+
if (!model_id) {
|
|
1159
|
+
return 'default';
|
|
1160
|
+
}
|
|
1161
|
+
return model_id.trim().toLowerCase().startsWith('claude-') ? 'anthropic' : 'default';
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1146
1164
|
/**
|
|
1147
1165
|
* Load `host-capabilities.yml` — tolerant like every settings read: a
|
|
1148
1166
|
* missing / unreadable / malformed file resolves to the fail-safe fallback
|
|
@@ -1167,8 +1185,22 @@ export function load_host_capabilities(p: string): HostCapabilities {
|
|
|
1167
1185
|
}
|
|
1168
1186
|
}
|
|
1169
1187
|
}
|
|
1170
|
-
const
|
|
1171
|
-
|
|
1188
|
+
const unknown_defaults: Record<string, 'lift_enabled' | 'lift_disabled'> & {
|
|
1189
|
+
default: 'lift_enabled' | 'lift_disabled';
|
|
1190
|
+
} = { ..._CAPABILITIES_FALLBACK.unknown_defaults };
|
|
1191
|
+
const granular = raw['unknown_defaults'];
|
|
1192
|
+
if (_is_plain_dict(granular)) {
|
|
1193
|
+
for (const [family, value] of Object.entries(granular)) {
|
|
1194
|
+
if (value === 'lift_enabled' || value === 'lift_disabled') {
|
|
1195
|
+
unknown_defaults[family] = value;
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
} else if (raw['unknown_default'] === 'lift_disabled' || raw['unknown_default'] === 'lift_enabled') {
|
|
1199
|
+
// Legacy single-value key (pre-P2 files) maps onto the blanket default.
|
|
1200
|
+
unknown_defaults['default'] = raw['unknown_default'];
|
|
1201
|
+
unknown_defaults['anthropic'] = raw['unknown_default'];
|
|
1202
|
+
}
|
|
1203
|
+
return { lift_disabled_models: ids, unknown_defaults };
|
|
1172
1204
|
}
|
|
1173
1205
|
|
|
1174
1206
|
/** Prefix match a session model id against the measured disable-list. */
|
|
@@ -1187,10 +1219,10 @@ export function is_lift_disabled_model(model_id: string | null, caps: HostCapabi
|
|
|
1187
1219
|
* `rule_loading_tier` mapping (minimal→off, balanced→essential, full→full,
|
|
1188
1220
|
* custom→custom); both absent → `essential` (the successor of the
|
|
1189
1221
|
* documented `balanced` default). `auto` resolves against the capabilities:
|
|
1190
|
-
* measured NULL-lift model → `off`;
|
|
1191
|
-
*
|
|
1192
|
-
*
|
|
1193
|
-
*
|
|
1222
|
+
* measured NULL-lift model → `off`; unmeasured models resolve per
|
|
1223
|
+
* `unknown_defaults[vendor_family(model_id)]` (anthropic → essential, the
|
|
1224
|
+
* one family with a measured lift; everything else — including a missing
|
|
1225
|
+
* model id — → off, per the failed P2 replication).
|
|
1194
1226
|
*
|
|
1195
1227
|
* Pure function — callers pass the merged settings dict, the session model
|
|
1196
1228
|
* id (null when the host does not expose one), and the loaded capabilities.
|
|
@@ -1208,7 +1240,9 @@ export function resolve_discipline_profile(
|
|
|
1208
1240
|
if (is_lift_disabled_model(model_id, caps)) {
|
|
1209
1241
|
return 'off';
|
|
1210
1242
|
}
|
|
1211
|
-
|
|
1243
|
+
const family = vendor_family(model_id);
|
|
1244
|
+
const fallback = caps.unknown_defaults[family] ?? caps.unknown_defaults['default'];
|
|
1245
|
+
return fallback === 'lift_disabled' ? 'off' : 'essential';
|
|
1212
1246
|
}
|
|
1213
1247
|
const legacy = settings['rule_loading_tier'];
|
|
1214
1248
|
if (legacy === 'minimal') {
|
|
@@ -11,6 +11,7 @@ import { spawnSync, type SpawnSyncReturns } from 'node:child_process';
|
|
|
11
11
|
import * as fs from 'node:fs';
|
|
12
12
|
import * as path from 'node:path';
|
|
13
13
|
import * as process from 'node:process';
|
|
14
|
+
import { fileURLToPath } from 'node:url';
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Subset of Python's `subprocess.CompletedProcess[str]` the hooks read:
|
|
@@ -56,21 +57,33 @@ export function _default_runner(cmd: string[]): CompletedProcess {
|
|
|
56
57
|
export function _resolve_chat_history_invocation(script_path: string): string[] {
|
|
57
58
|
const tsScript = script_path.replace(/\.py$/, '.ts');
|
|
58
59
|
const binName = process.platform === 'win32' ? 'tsx.cmd' : 'tsx';
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
const walkUp = (start: string): string | null => {
|
|
61
|
+
let dir = start;
|
|
62
|
+
for (;;) {
|
|
63
|
+
const candidate = path.join(dir, 'node_modules', '.bin', binName);
|
|
64
|
+
try {
|
|
65
|
+
if (fs.statSync(candidate).isFile()) {
|
|
66
|
+
return candidate;
|
|
67
|
+
}
|
|
68
|
+
} catch {
|
|
69
|
+
// not here — keep walking up.
|
|
65
70
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
break;
|
|
71
|
+
const parent = path.dirname(dir);
|
|
72
|
+
if (parent === dir) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
dir = parent;
|
|
72
76
|
}
|
|
73
|
-
|
|
77
|
+
};
|
|
78
|
+
// Script's tree first, then THIS module's package tree (the package
|
|
79
|
+
// ships tsx as a runtime dependency). `npx tsx` stays last-resort only:
|
|
80
|
+
// it runs against the consumer's npm config and fails hard on e.g.
|
|
81
|
+
// devEngines pins (the 8.1.0 EBADDEVENGINES regression).
|
|
82
|
+
const tsx =
|
|
83
|
+
walkUp(path.dirname(path.resolve(tsScript))) ??
|
|
84
|
+
walkUp(path.dirname(fileURLToPath(import.meta.url)));
|
|
85
|
+
if (tsx !== null) {
|
|
86
|
+
return [tsx, tsScript];
|
|
74
87
|
}
|
|
75
88
|
return ['npx', 'tsx', tsScript];
|
|
76
89
|
}
|
|
@@ -139,7 +139,7 @@ Do NOT use when:
|
|
|
139
139
|
<!-- FRUGALITY STANDARDS (writer skills only — REQUIRED for skills whose
|
|
140
140
|
name ends in `-writing`, `-authoring`, or `-create`, AND for any
|
|
141
141
|
skill on the `FRUGALITY_WRITER_SKILLS` allowlist in
|
|
142
|
-
`scripts/skill_linter.
|
|
142
|
+
`scripts/skill_linter.ts`. Mid-/untiered non-writer skills MUST
|
|
143
143
|
remove this section entirely.
|
|
144
144
|
|
|
145
145
|
Layer-1 of the linter checks for:
|
|
@@ -173,7 +173,7 @@ Do NOT use when:
|
|
|
173
173
|
blocks per `.agent-src.uncondensed/rules/skill-quality.md` §
|
|
174
174
|
Senior-Tier Required Structure. Mid-tier and untiered skills MUST
|
|
175
175
|
remove this section entirely. The four blocks are enforced by
|
|
176
|
-
`scripts/skill_linter.
|
|
176
|
+
`scripts/skill_linter.ts` for `tier: senior` skills only.
|
|
177
177
|
|
|
178
178
|
## Related Skills
|
|
179
179
|
|
|
@@ -74,7 +74,7 @@ import { spawnSync } from 'node:child_process';
|
|
|
74
74
|
import * as os from 'node:os';
|
|
75
75
|
import * as path from 'node:path';
|
|
76
76
|
import process from 'node:process';
|
|
77
|
-
import { pathToFileURL } from 'node:url';
|
|
77
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
78
78
|
import * as workspace_secrets from './workspace_secrets.js';
|
|
79
79
|
// --- Bounds (contract §Bounds) ---------------------------------------------
|
|
80
80
|
export const KNOWLEDGE_ROOT = path.join('agents', 'memory', 'knowledge');
|
|
@@ -1030,8 +1030,29 @@ export function _cli(argv = null) {
|
|
|
1030
1030
|
}
|
|
1031
1031
|
return 1;
|
|
1032
1032
|
}
|
|
1033
|
-
|
|
1034
|
-
|
|
1033
|
+
function _isCliEntry() {
|
|
1034
|
+
if (process.argv[1] === undefined) {
|
|
1035
|
+
return false;
|
|
1036
|
+
}
|
|
1037
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
1038
|
+
if (import.meta.url === argvUrl) {
|
|
1039
|
+
return true;
|
|
1040
|
+
}
|
|
1041
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
1042
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
1043
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
1044
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
1045
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
1046
|
+
try {
|
|
1047
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
1048
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
1049
|
+
return here === argv;
|
|
1050
|
+
}
|
|
1051
|
+
catch {
|
|
1052
|
+
return false;
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
const _isMain = _isCliEntry();
|
|
1035
1056
|
if (_isMain) {
|
|
1036
1057
|
try {
|
|
1037
1058
|
process.exitCode = _cli();
|