@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
|
@@ -1001,10 +1001,29 @@ function _setDifference(a: Set<string>, b: Set<string>): string[] {
|
|
|
1001
1001
|
return out;
|
|
1002
1002
|
}
|
|
1003
1003
|
|
|
1004
|
-
|
|
1005
|
-
process.argv[1]
|
|
1006
|
-
|
|
1007
|
-
|
|
1004
|
+
function _isCliEntry(): boolean {
|
|
1005
|
+
if (process.argv[1] === undefined) {
|
|
1006
|
+
return false;
|
|
1007
|
+
}
|
|
1008
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
1009
|
+
if (import.meta.url === argvUrl) {
|
|
1010
|
+
return true;
|
|
1011
|
+
}
|
|
1012
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
1013
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
1014
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
1015
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
1016
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
1017
|
+
try {
|
|
1018
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
1019
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
1020
|
+
return here === argv;
|
|
1021
|
+
} catch {
|
|
1022
|
+
return false;
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
1008
1027
|
process.exitCode = lint();
|
|
1009
1028
|
}
|
|
1010
1029
|
|
|
@@ -193,10 +193,29 @@ function main(): number {
|
|
|
193
193
|
return 0;
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
|
|
197
|
-
process.argv[1]
|
|
198
|
-
|
|
199
|
-
|
|
196
|
+
function _isCliEntry(): boolean {
|
|
197
|
+
if (process.argv[1] === undefined) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
201
|
+
if (import.meta.url === argvUrl) {
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
205
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
206
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
207
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
208
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
209
|
+
try {
|
|
210
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
211
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
212
|
+
return here === argv;
|
|
213
|
+
} catch {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
200
219
|
process.exit(main());
|
|
201
220
|
}
|
|
202
221
|
|
|
@@ -352,10 +352,29 @@ function main(argv: readonly string[] = []): number {
|
|
|
352
352
|
return 0;
|
|
353
353
|
}
|
|
354
354
|
|
|
355
|
-
|
|
356
|
-
process.argv[1]
|
|
357
|
-
|
|
358
|
-
|
|
355
|
+
function _isCliEntry(): boolean {
|
|
356
|
+
if (process.argv[1] === undefined) {
|
|
357
|
+
return false;
|
|
358
|
+
}
|
|
359
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
360
|
+
if (import.meta.url === argvUrl) {
|
|
361
|
+
return true;
|
|
362
|
+
}
|
|
363
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
364
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
365
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
366
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
367
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
368
|
+
try {
|
|
369
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
370
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
371
|
+
return here === argv;
|
|
372
|
+
} catch {
|
|
373
|
+
return false;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
359
378
|
try {
|
|
360
379
|
process.exit(main(process.argv.slice(2)));
|
|
361
380
|
} catch (e) {
|
|
@@ -290,10 +290,29 @@ function main(argv?: readonly string[]): number {
|
|
|
290
290
|
return lint(args);
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
|
|
294
|
-
process.argv[1]
|
|
295
|
-
|
|
296
|
-
|
|
293
|
+
function _isCliEntry(): boolean {
|
|
294
|
+
if (process.argv[1] === undefined) {
|
|
295
|
+
return false;
|
|
296
|
+
}
|
|
297
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
298
|
+
if (import.meta.url === argvUrl) {
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
302
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
303
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
304
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
305
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
306
|
+
try {
|
|
307
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
308
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
309
|
+
return here === argv;
|
|
310
|
+
} catch {
|
|
311
|
+
return false;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
297
316
|
process.exit(main());
|
|
298
317
|
}
|
|
299
318
|
|
|
@@ -610,10 +610,29 @@ export function main(argv?: string[]): number {
|
|
|
610
610
|
return 0;
|
|
611
611
|
}
|
|
612
612
|
|
|
613
|
-
|
|
614
|
-
process.argv[1]
|
|
615
|
-
|
|
616
|
-
|
|
613
|
+
function _isCliEntry(): boolean {
|
|
614
|
+
if (process.argv[1] === undefined) {
|
|
615
|
+
return false;
|
|
616
|
+
}
|
|
617
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
618
|
+
if (import.meta.url === argvUrl) {
|
|
619
|
+
return true;
|
|
620
|
+
}
|
|
621
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
622
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
623
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
624
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
625
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
626
|
+
try {
|
|
627
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
628
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
629
|
+
return here === argv;
|
|
630
|
+
} catch {
|
|
631
|
+
return false;
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
617
636
|
process.exitCode = main();
|
|
618
637
|
}
|
|
619
638
|
|
|
@@ -229,10 +229,29 @@ function main(argv: readonly string[]): number {
|
|
|
229
229
|
return 0;
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
|
|
233
|
-
process.argv[1]
|
|
234
|
-
|
|
235
|
-
|
|
232
|
+
function _isCliEntry(): boolean {
|
|
233
|
+
if (process.argv[1] === undefined) {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
237
|
+
if (import.meta.url === argvUrl) {
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
241
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
242
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
243
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
244
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
245
|
+
try {
|
|
246
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
247
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
248
|
+
return here === argv;
|
|
249
|
+
} catch {
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
236
255
|
process.exitCode = main(process.argv.slice(2));
|
|
237
256
|
}
|
|
238
257
|
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// Compiled safety envelope for MCP shell-exec tools.
|
|
2
|
+
//
|
|
3
|
+
// Lives OUTSIDE src/scripts/mcp_server/ on purpose: the A0 contract bans
|
|
4
|
+
// direct child_process imports in mcp_server modules; approved exec-tier
|
|
5
|
+
// tools lazy-import this module instead (same transitive pattern as the
|
|
6
|
+
// roadmap_archive handler's git effects — accepted by the 2026-07-07
|
|
7
|
+
// council verdict, agents/decisions/mcp-write-exec-cut-2026-07-07.md).
|
|
8
|
+
//
|
|
9
|
+
// The envelope is compiled policy, not configuration (council Decision 2):
|
|
10
|
+
// - argv array, never a shell string — caller-supplied values cannot be
|
|
11
|
+
// interpolated into a command line;
|
|
12
|
+
// - hard timeout — the child is killed, never awaited indefinitely;
|
|
13
|
+
// - output cap per stream — a runaway process cannot flood the MCP
|
|
14
|
+
// response;
|
|
15
|
+
// - long-running policy is synchronous truncation (roadmap Phase 5
|
|
16
|
+
// Step 4): no job queue, no polling — a call that exceeds the timeout
|
|
17
|
+
// returns timed_out: true with whatever output was captured.
|
|
18
|
+
//
|
|
19
|
+
// Network isolation is NOT promised here: a spawned test runner executes
|
|
20
|
+
// arbitrary project test code, which may itself use the network. The
|
|
21
|
+
// envelope constrains the spawn surface (no shell, bounded time, bounded
|
|
22
|
+
// output), not the semantics of the tool under test — stated explicitly
|
|
23
|
+
// in the A0 amendment.
|
|
24
|
+
|
|
25
|
+
import { execFile } from 'node:child_process';
|
|
26
|
+
|
|
27
|
+
export interface EnvelopeSpec {
|
|
28
|
+
/** argv[0] is the executable; the rest are literal arguments. No shell. */
|
|
29
|
+
readonly argv: readonly string[];
|
|
30
|
+
/** Working directory for the child (the consumer root). */
|
|
31
|
+
readonly cwd: string;
|
|
32
|
+
/** Hard kill deadline in milliseconds. */
|
|
33
|
+
readonly timeout_ms: number;
|
|
34
|
+
/** Per-stream output cap in bytes; excess is truncated, flagged. */
|
|
35
|
+
readonly max_output_bytes: number;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface EnvelopeResult {
|
|
39
|
+
exit_code: number | null;
|
|
40
|
+
timed_out: boolean;
|
|
41
|
+
stdout: string;
|
|
42
|
+
stdout_truncated: boolean;
|
|
43
|
+
stderr: string;
|
|
44
|
+
stderr_truncated: boolean;
|
|
45
|
+
duration_ms: number;
|
|
46
|
+
argv: string[];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function _truncate(text: string, cap: number): [string, boolean] {
|
|
50
|
+
const buf = Buffer.from(text, 'utf8');
|
|
51
|
+
if (buf.byteLength <= cap) {
|
|
52
|
+
return [text, false];
|
|
53
|
+
}
|
|
54
|
+
return [buf.subarray(0, cap).toString('utf8'), true];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Run `spec.argv` under the compiled envelope and resolve with a
|
|
59
|
+
* structured result. Never rejects for child failure — a non-zero exit,
|
|
60
|
+
* timeout, or spawn error all surface inside the result object so the
|
|
61
|
+
* MCP handler can return them as data.
|
|
62
|
+
*/
|
|
63
|
+
export function run_enveloped(spec: EnvelopeSpec): Promise<EnvelopeResult> {
|
|
64
|
+
const started = Date.now();
|
|
65
|
+
const [cmd, ...args] = spec.argv;
|
|
66
|
+
if (cmd === undefined) {
|
|
67
|
+
throw new Error('envelope argv must not be empty');
|
|
68
|
+
}
|
|
69
|
+
return new Promise((resolve) => {
|
|
70
|
+
execFile(
|
|
71
|
+
cmd,
|
|
72
|
+
args,
|
|
73
|
+
{
|
|
74
|
+
cwd: spec.cwd,
|
|
75
|
+
timeout: spec.timeout_ms,
|
|
76
|
+
killSignal: 'SIGKILL',
|
|
77
|
+
windowsHide: true,
|
|
78
|
+
// Cap the in-memory buffer a little above the reported cap so
|
|
79
|
+
// truncation is ours (flagged), not execFile's (thrown).
|
|
80
|
+
maxBuffer: spec.max_output_bytes + 64 * 1024,
|
|
81
|
+
encoding: 'utf8',
|
|
82
|
+
},
|
|
83
|
+
(error, stdout, stderr) => {
|
|
84
|
+
const timedOut = Boolean(error && 'killed' in error && error.killed === true);
|
|
85
|
+
let exitCode: number | null = 0;
|
|
86
|
+
if (error) {
|
|
87
|
+
const code = (error as NodeJS.ErrnoException & { code?: unknown }).code;
|
|
88
|
+
exitCode = typeof code === 'number' ? code : null;
|
|
89
|
+
}
|
|
90
|
+
const [out, outTrunc] = _truncate(String(stdout ?? ''), spec.max_output_bytes);
|
|
91
|
+
const [err, errTrunc] = _truncate(String(stderr ?? ''), spec.max_output_bytes);
|
|
92
|
+
resolve({
|
|
93
|
+
exit_code: timedOut ? null : exitCode,
|
|
94
|
+
timed_out: timedOut,
|
|
95
|
+
stdout: out,
|
|
96
|
+
stdout_truncated: outTrunc,
|
|
97
|
+
stderr: err,
|
|
98
|
+
stderr_truncated: errTrunc,
|
|
99
|
+
duration_ms: Date.now() - started,
|
|
100
|
+
argv: [...spec.argv],
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
@@ -602,9 +602,30 @@ async function main(): Promise<number> {
|
|
|
602
602
|
return 0;
|
|
603
603
|
}
|
|
604
604
|
|
|
605
|
+
function _isCliEntry(): boolean {
|
|
606
|
+
if (process.argv[1] === undefined) {
|
|
607
|
+
return false;
|
|
608
|
+
}
|
|
609
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
610
|
+
if (import.meta.url === argvUrl) {
|
|
611
|
+
return true;
|
|
612
|
+
}
|
|
613
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
614
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
615
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
616
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
617
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
618
|
+
try {
|
|
619
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
620
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
621
|
+
return here === argv;
|
|
622
|
+
} catch {
|
|
623
|
+
return false;
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
605
627
|
const _isMain =
|
|
606
|
-
|
|
607
|
-
import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
|
|
628
|
+
_isCliEntry();
|
|
608
629
|
|
|
609
630
|
if (_isMain) {
|
|
610
631
|
// process.exitCode (not process.exit) so stdout drains fully before exit.
|
|
@@ -132,9 +132,16 @@ cd "$WORKDIR"
|
|
|
132
132
|
gh repo clone "$FORK_REPO" registry-fork
|
|
133
133
|
cd registry-fork
|
|
134
134
|
|
|
135
|
-
# Add upstream + sync default branch.
|
|
135
|
+
# Add upstream + sync default branch. `gh repo clone` of a fork already
|
|
136
|
+
# wires an `upstream` remote pointing at the parent — make the add
|
|
137
|
+
# idempotent (set-url) instead of dying on "remote upstream already
|
|
138
|
+
# exists" (the exact failure observed on the 2026-07-07 live run).
|
|
136
139
|
DEFAULT_BRANCH=$(gh repo view "$REGISTRY" --json defaultBranchRef --jq .defaultBranchRef.name)
|
|
137
|
-
git remote
|
|
140
|
+
if git remote get-url upstream >/dev/null 2>&1; then
|
|
141
|
+
git remote set-url upstream "https://github.com/$REGISTRY.git"
|
|
142
|
+
else
|
|
143
|
+
git remote add upstream "https://github.com/$REGISTRY.git"
|
|
144
|
+
fi
|
|
138
145
|
git fetch upstream "$DEFAULT_BRANCH"
|
|
139
146
|
git checkout -b "$BRANCH" "upstream/$DEFAULT_BRANCH"
|
|
140
147
|
|
|
@@ -155,10 +162,14 @@ _step "Pushing branch $BRANCH to fork"
|
|
|
155
162
|
git push -u origin "$BRANCH"
|
|
156
163
|
|
|
157
164
|
_step "Opening PR against $REGISTRY"
|
|
165
|
+
# gh pr create expects --head as OWNER:branch (not OWNER/REPO:branch) —
|
|
166
|
+
# the repo form fails with "Head sha can't be blank" (observed on the
|
|
167
|
+
# 2026-07-07 live run).
|
|
168
|
+
FORK_OWNER="${FORK_REPO%%/*}"
|
|
158
169
|
PR_URL=$(gh pr create \
|
|
159
170
|
--repo "$REGISTRY" \
|
|
160
171
|
--base "$DEFAULT_BRANCH" \
|
|
161
|
-
--head "$
|
|
172
|
+
--head "$FORK_OWNER:$BRANCH" \
|
|
162
173
|
--title "Add event4u/agent-config — universal AI agent OS" \
|
|
163
174
|
--body "$(cat <<'EOF'
|
|
164
175
|
Adds [`event4u/agent-config`](https://github.com/event4u-app/agent-config) to the registry.
|
|
@@ -338,9 +338,28 @@ export function main(argv: string[] | null = null): number {
|
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
-
|
|
342
|
-
process.argv[1]
|
|
343
|
-
|
|
344
|
-
|
|
341
|
+
function _isCliEntry(): boolean {
|
|
342
|
+
if (process.argv[1] === undefined) {
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
346
|
+
if (import.meta.url === argvUrl) {
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
350
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
351
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
352
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
353
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
354
|
+
try {
|
|
355
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
356
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
357
|
+
return here === argv;
|
|
358
|
+
} catch {
|
|
359
|
+
return false;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
345
364
|
process.exitCode = main();
|
|
346
365
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
// Entrypoint
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
// forwards to `server.main()`; keep this file flat so crash stack traces
|
|
8
|
-
// point at server.ts, not the bootstrap.
|
|
1
|
+
// Entrypoint for the MCP stdio server (`node node_modules/.bin/tsx
|
|
2
|
+
// src/scripts/mcp_server/__main__.ts`). glama launches this file directly
|
|
3
|
+
// via `internal/glama/run`; Claude Desktop / Zed / Continue stdio-server
|
|
4
|
+
// configs point at the same entry through `agent-config mcp:run`. Keep
|
|
5
|
+
// this file flat so crash stack traces point at server.ts, not the
|
|
6
|
+
// bootstrap.
|
|
9
7
|
//
|
|
10
8
|
// `node __main__.js` (or importing this module as the package main) runs
|
|
11
9
|
// the server, mirroring the Python `if __name__ == "__main__": main()`
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"name": "memory_signal",
|
|
76
76
|
"description": "Record an engineering-memory signal — a short, anchored observation such as a recurring bug pattern or an ownership note — to the monthly intake log `agents/memory/intake/signals-YYYY-MM.jsonl`. Use to capture a learning tied to a specific file so future `memory_lookup` calls surface it. Appends to the filesystem and is rate-limited per `(type, path)` within a rolling window. Returns the recorded signal.",
|
|
77
77
|
"side_effect": "fs-write",
|
|
78
|
-
"implemented_on": [],
|
|
78
|
+
"implemented_on": ["stdio"],
|
|
79
79
|
"input_schema": {
|
|
80
80
|
"type": "object",
|
|
81
81
|
"properties": {
|
|
@@ -198,9 +198,9 @@
|
|
|
198
198
|
},
|
|
199
199
|
{
|
|
200
200
|
"name": "run_tests",
|
|
201
|
-
"description": "Run the consumer project's test suite
|
|
201
|
+
"description": "Run the consumer project's vitest test suite under a compiled safety envelope: fixed argv (no shell interpolation), 120s timeout, 64KB output cap per stream. Shell-exec pilot per the 2026-07-07 council cut — vitest projects only; other runners (Pest / PHPUnit, pytest, Jest) return an error until a future council round approves them. Pass `filter` (vitest --testNamePattern) or `path` (in-tree file or directory) to narrow the run. Returns runner, passed, exit_code, timed_out, truncated stdout/stderr, and duration_ms.",
|
|
202
202
|
"side_effect": "shell",
|
|
203
|
-
"implemented_on": [],
|
|
203
|
+
"implemented_on": ["stdio"],
|
|
204
204
|
"input_schema": {
|
|
205
205
|
"type": "object",
|
|
206
206
|
"properties": {
|
|
@@ -270,6 +270,81 @@
|
|
|
270
270
|
"required": ["uri"],
|
|
271
271
|
"additionalProperties": false
|
|
272
272
|
}
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"name": "roadmap_progress",
|
|
276
|
+
"description": "Regenerate `agents/roadmaps-progress.md` from the current checkbox state of every active roadmap. Use after landing roadmap work to keep the dashboard in sync without a shell round-trip. Writes the dashboard file inside the project tree. Set `dry_run: true` to compute counts without writing.",
|
|
277
|
+
"side_effect": "fs-write",
|
|
278
|
+
"implemented_on": ["stdio"],
|
|
279
|
+
"input_schema": {
|
|
280
|
+
"type": "object",
|
|
281
|
+
"properties": {
|
|
282
|
+
"dry_run": {"type": "boolean", "default": false, "description": "When true, return the computed dashboard without writing the file."}
|
|
283
|
+
},
|
|
284
|
+
"additionalProperties": false
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"name": "roadmap_archive",
|
|
289
|
+
"description": "Archive every roadmap that has reached `count_open == 0` and was touched on the current branch — `git mv` to `agents/roadmaps/archive/`, migrate inbound references, and regenerate the dashboard. Use as the PR-gate sweep before opening a pull request. Mutates the git index (moves tracked files) but never commits or pushes.",
|
|
290
|
+
"side_effect": "fs-write",
|
|
291
|
+
"implemented_on": ["stdio"],
|
|
292
|
+
"input_schema": {"type": "object", "properties": {}, "additionalProperties": false}
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"name": "capabilities_index",
|
|
296
|
+
"description": "Regenerate `CAPABILITIES.yaml`, the package's coverage index of skills, rules, commands, and guidelines. Use after adding or removing an artifact to keep the index current. Pass `check: true` to run in read-only CI mode (fails instead of writing on drift).",
|
|
297
|
+
"side_effect": "fs-write",
|
|
298
|
+
"implemented_on": ["stdio"],
|
|
299
|
+
"input_schema": {
|
|
300
|
+
"type": "object",
|
|
301
|
+
"properties": {
|
|
302
|
+
"check": {"type": "boolean", "default": false, "description": "When true, run in read-only drift-check mode instead of writing the index."}
|
|
303
|
+
},
|
|
304
|
+
"additionalProperties": false
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"name": "doctor_report",
|
|
309
|
+
"description": "Run the consumer-project doctor diagnostic and return a structured health report (install drift, hook wiring, settings schema, discovery manifest freshness). Use to triage a misbehaving install. Read-only.",
|
|
310
|
+
"side_effect": "ro",
|
|
311
|
+
"implemented_on": ["stdio"],
|
|
312
|
+
"input_schema": {"type": "object", "properties": {}, "additionalProperties": false}
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"name": "conformance_check",
|
|
316
|
+
"description": "Run the consumer conformance contract (`doctor --ci` plus installed-and-firing checks) and return pass/fail per check. Use to verify a consumer project's install is fully wired before relying on it. Read-only.",
|
|
317
|
+
"side_effect": "ro",
|
|
318
|
+
"implemented_on": ["stdio"],
|
|
319
|
+
"input_schema": {"type": "object", "properties": {}, "additionalProperties": false}
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"name": "telemetry_report",
|
|
323
|
+
"description": "Return the artefact-engagement telemetry report — essential / useful / retirement-candidate skills and rules ranked by recorded consult+apply signals over a rolling window. Use to see which artifacts are actually load-bearing. Read-only. No-op (empty report) when telemetry recording is disabled.",
|
|
324
|
+
"side_effect": "ro",
|
|
325
|
+
"implemented_on": ["stdio"],
|
|
326
|
+
"input_schema": {
|
|
327
|
+
"type": "object",
|
|
328
|
+
"properties": {
|
|
329
|
+
"window_days": {"type": "integer", "minimum": 1, "default": 30, "description": "Reporting window in days. Defaults to 30."}
|
|
330
|
+
},
|
|
331
|
+
"additionalProperties": false
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"name": "council_estimate",
|
|
336
|
+
"description": "Estimate the token cost of an AI-council debate over a given input (roadmap, diff, prompt, or file set) without spending — no network call, no billing. Use before deciding whether to authorize a real council run. Read-only.",
|
|
337
|
+
"side_effect": "ro",
|
|
338
|
+
"implemented_on": ["stdio"],
|
|
339
|
+
"input_schema": {
|
|
340
|
+
"type": "object",
|
|
341
|
+
"properties": {
|
|
342
|
+
"input_path": {"type": "string", "description": "Path to the roadmap, diff, or file to estimate council cost for."},
|
|
343
|
+
"depth": {"type": "string", "enum": ["shallow", "deep"], "description": "Council depth tier to estimate for. Defaults to the configured default depth."}
|
|
344
|
+
},
|
|
345
|
+
"required": ["input_path"],
|
|
346
|
+
"additionalProperties": false
|
|
347
|
+
}
|
|
273
348
|
}
|
|
274
349
|
]
|
|
275
350
|
}
|