@event4u/agent-config 16.3.0 → 16.4.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +251 -0
- package/README.md +2 -2
- package/agents/templates/.ai-council.yml.example +26 -8
- package/dist/agent-src/commands/analyze/inbox.md +10 -7
- package/dist/agent-src/commands/bug/investigate.md +1 -1
- package/dist/agent-src/commands/commit/in-chunks.md +40 -31
- package/dist/agent-src/commands/commit.md +72 -33
- package/dist/agent-src/commands/condense.md +2 -8
- package/dist/agent-src/commands/council/debate.md +11 -7
- package/dist/agent-src/commands/council/default.md +10 -9
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/estimate-ticket.md +1 -1
- package/dist/agent-src/commands/feature/explore.md +3 -3
- package/dist/agent-src/commands/feature/plan.md +1 -1
- package/dist/agent-src/commands/fix/ci.md +17 -3
- package/dist/agent-src/commands/fix/commit-messages.md +48 -23
- package/dist/agent-src/commands/fix/pr-comments.md +3 -6
- package/dist/agent-src/commands/implement-ticket.md +3 -3
- package/dist/agent-src/commands/memory/add.md +4 -16
- package/dist/agent-src/commands/memory/load.md +5 -6
- package/dist/agent-src/commands/memory/promote.md +3 -16
- package/dist/agent-src/commands/mission/upgrade.md +3 -2
- package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
- package/dist/agent-src/commands/optimize/deep.md +4 -2
- package/dist/agent-src/commands/optimize/rtk.md +4 -26
- package/dist/agent-src/commands/pr/create/description-only.md +18 -15
- package/dist/agent-src/commands/pr/create.md +42 -34
- package/dist/agent-src/commands/pr/merge.md +136 -9
- package/dist/agent-src/commands/prepare-for-review.md +13 -11
- package/dist/agent-src/commands/project/analyze.md +7 -35
- package/dist/agent-src/commands/refine-ticket.md +1 -1
- package/dist/agent-src/commands/review/changes.md +14 -19
- package/dist/agent-src/commands/roadmap/next.md +10 -1
- package/dist/agent-src/commands/roadmap/process-full.md +52 -38
- package/dist/agent-src/commands/roadmap/resolve-blockers.md +64 -14
- package/dist/agent-src/commands/worktree/create.md +7 -3
- package/dist/agent-src/commands/worktree/verify.md +2 -1
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
- package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
- package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
- package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
- package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +67 -52
- package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
- package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
- package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +4 -10
- package/dist/agent-src/contexts/subagent-configuration.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
- package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
- package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
- package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
- package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
- package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
- package/dist/agent-src/guidelines/php/git.md +15 -2
- package/dist/agent-src/rules/active-remediation.md +0 -1
- package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
- package/dist/agent-src/rules/architecture.md +0 -1
- package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
- package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
- package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
- package/dist/agent-src/rules/autonomous-execution.md +0 -1
- package/dist/agent-src/rules/brand-consistency.md +0 -1
- package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
- package/dist/agent-src/rules/broken-access-control.md +0 -1
- package/dist/agent-src/rules/cli-output-handling.md +0 -1
- package/dist/agent-src/rules/code-comment-discipline.md +0 -1
- package/dist/agent-src/rules/code-provenance.md +0 -1
- package/dist/agent-src/rules/command-suggestion-policy.md +0 -1
- package/dist/agent-src/rules/commit-conventions.md +1 -2
- package/dist/agent-src/rules/communication-through-line.md +1 -2
- package/dist/agent-src/rules/content-quoting-floor.md +1 -2
- package/dist/agent-src/rules/context-hygiene.md +5 -5
- package/dist/agent-src/rules/copilot-routing.md +1 -2
- package/dist/agent-src/rules/council-availability.md +4 -4
- package/dist/agent-src/rules/cross-source-consistency.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +2 -3
- package/dist/agent-src/rules/delegation-policy.md +2 -3
- package/dist/agent-src/rules/design-fidelity.md +0 -1
- package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
- package/dist/agent-src/rules/devcontainer-routing.md +1 -2
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +0 -1
- package/dist/agent-src/rules/docker-commands.md +0 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
- package/dist/agent-src/rules/domain-safety-disclaimer.md +0 -1
- package/dist/agent-src/rules/domain-safety-pii.md +0 -1
- package/dist/agent-src/rules/domain-safety-retention.md +0 -1
- package/dist/agent-src/rules/downstream-changes.md +0 -1
- package/dist/agent-src/rules/engineering-safety-floor.md +0 -1
- package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
- package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
- package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -2
- package/dist/agent-src/rules/finance-safety-floor.md +0 -1
- package/dist/agent-src/rules/fix-what-you-see.md +6 -32
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
- package/dist/agent-src/rules/git-history-discipline.md +1 -2
- package/dist/agent-src/rules/guidelines.md +0 -1
- package/dist/agent-src/rules/history-discipline.md +0 -1
- package/dist/agent-src/rules/icon-consistency.md +0 -1
- package/dist/agent-src/rules/image-likeness-and-rights.md +0 -1
- package/dist/agent-src/rules/improve-before-implement.md +0 -1
- package/dist/agent-src/rules/invite-challenge.md +0 -1
- package/dist/agent-src/rules/laravel-routing.md +1 -2
- package/dist/agent-src/rules/laravel-translations.md +0 -1
- package/dist/agent-src/rules/legal-safety-floor.md +0 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +0 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +0 -1
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
- package/dist/agent-src/rules/media-governance-routing.md +1 -2
- package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
- package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
- package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
- package/dist/agent-src/rules/missing-tool-handling.md +0 -1
- package/dist/agent-src/rules/model-recommendation.md +0 -1
- package/dist/agent-src/rules/neighbour-precedence.md +64 -0
- package/dist/agent-src/rules/no-attribution-footers.md +0 -1
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
- package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
- package/dist/agent-src/rules/no-roadmap-references.md +0 -1
- package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
- package/dist/agent-src/rules/onboarding-gate.md +0 -1
- package/dist/agent-src/rules/output-discipline.md +0 -1
- package/dist/agent-src/rules/package-ci-checks.md +0 -1
- package/dist/agent-src/rules/persona-governance.md +2 -3
- package/dist/agent-src/rules/php-coding.md +0 -1
- package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
- package/dist/agent-src/rules/preservation-guard.md +0 -1
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -3
- package/dist/agent-src/rules/question-not-instruction.md +0 -1
- package/dist/agent-src/rules/reviewer-awareness.md +0 -1
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +3 -6
- package/dist/agent-src/rules/role-mode-adherence.md +0 -1
- package/dist/agent-src/rules/rule-type-governance.md +0 -1
- package/dist/agent-src/rules/runtime-safety.md +0 -1
- package/dist/agent-src/rules/scale-discipline.md +0 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +0 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +0 -1
- package/dist/agent-src/rules/self-repair-loop.md +0 -1
- package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
- package/dist/agent-src/rules/session-canary.md +0 -1
- package/dist/agent-src/rules/settings-ask-protocol.md +5 -6
- package/dist/agent-src/rules/size-enforcement.md +0 -1
- package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
- package/dist/agent-src/rules/skill-quality.md +0 -1
- package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
- package/dist/agent-src/rules/source-confidentiality.md +0 -1
- package/dist/agent-src/rules/source-discovery-gate.md +0 -1
- package/dist/agent-src/rules/source-of-truth.md +0 -1
- package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
- package/dist/agent-src/rules/strategy-safety-floor.md +0 -1
- package/dist/agent-src/rules/symfony-routing.md +1 -2
- package/dist/agent-src/rules/think-before-action.md +0 -1
- package/dist/agent-src/rules/token-budget-discipline.md +12 -46
- package/dist/agent-src/rules/token-efficiency.md +0 -1
- package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
- package/dist/agent-src/rules/tool-safety.md +0 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +0 -1
- package/dist/agent-src/rules/upstream-proposal.md +0 -1
- package/dist/agent-src/rules/user-interaction.md +0 -1
- package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
- package/dist/agent-src/scripts/gate_budget.ts +47 -23
- package/dist/agent-src/scripts/gate_execute.ts +12 -4
- package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
- package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
- package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
- package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
- package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
- package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
- package/dist/agent-src/skills/database/data/manifest.json +2 -2
- package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
- package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
- package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
- package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
- package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
- package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -2
- package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agent-settings.md +46 -129
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/roadmaps.md +6 -1
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
- package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
- package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
- package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
- package/dist/agent-src/templates/skill.md +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli-delegate/check_update_banner.js +195 -119
- package/dist/cli-delegate/{chunk-TRI6DQZ6.js → chunk-5GPULQBE.js} +60 -42
- package/dist/cli-delegate/{chunk-JQVYKIZA.js → chunk-6SRJTYJS.js} +33 -177
- package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
- package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
- package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
- package/dist/cli-delegate/{chunk-NQ7WT43P.js → chunk-AED2VQGM.js} +65 -11
- package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
- package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
- package/dist/cli-delegate/{chunk-NXEILF2K.js → chunk-F3QDG2GT.js} +481 -72
- package/dist/cli-delegate/{chunk-CQWX336L.js → chunk-G5VVIZRC.js} +3 -3
- package/dist/cli-delegate/{chunk-JY2I2DXV.js → chunk-H76PHZBI.js} +137 -60
- package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
- package/dist/cli-delegate/{chunk-LIYTLH6O.js → chunk-KXXWJTDO.js} +5 -10
- package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
- package/dist/cli-delegate/{chunk-S4YWNRKO.js → chunk-MDPPKQCQ.js} +34 -1
- package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-MSUL5NYP.js} +5 -5
- package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
- package/dist/cli-delegate/{chunk-GKE7ZVFA.js → chunk-PWX7CKMD.js} +1 -1
- package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
- package/dist/cli-delegate/{chunk-RQNNW7IF.js → chunk-T7XSJSUQ.js} +433 -632
- package/dist/cli-delegate/{chunk-EEHDXSYD.js → chunk-WQWXGIWB.js} +12 -273
- package/dist/cli-delegate/{chunk-QLDHIPWR.js → chunk-XQTPXKFA.js} +1 -1
- package/dist/cli-delegate/cmd_analyze_session.js +223 -43
- package/dist/cli-delegate/cmd_brand_status.js +3 -2
- package/dist/cli-delegate/cmd_conformance.js +105 -35
- package/dist/cli-delegate/cmd_converge.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +15 -12
- package/dist/cli-delegate/cmd_doctor_neighbours.js +11 -4
- package/dist/cli-delegate/cmd_explain.js +43 -19
- package/dist/cli-delegate/cmd_export.js +10 -10
- package/dist/cli-delegate/cmd_git_convention.js +1851 -0
- package/dist/cli-delegate/cmd_handoff.js +40 -21
- package/dist/cli-delegate/cmd_mcp_available.js +3 -2
- package/dist/cli-delegate/cmd_migrate.js +3 -3
- package/dist/cli-delegate/cmd_packs_active.js +4 -3
- package/dist/cli-delegate/cmd_prune.js +10 -10
- package/dist/cli-delegate/cmd_route_audit.js +7 -7
- package/dist/cli-delegate/cmd_route_explain.js +5 -5
- package/dist/cli-delegate/cmd_session_recycle.js +9 -7
- package/dist/cli-delegate/cmd_settings_check.js +54 -7
- package/dist/cli-delegate/cmd_settings_get.js +18 -8
- package/dist/cli-delegate/cmd_settings_migrate.js +10 -10
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +10 -10
- package/dist/cli-delegate/cmd_uninstall.js +10 -10
- package/dist/cli-delegate/cmd_update.js +7 -7
- package/dist/cli-delegate/cmd_upgrade.js +7 -7
- package/dist/cli-delegate/cmd_validate.js +10 -10
- package/dist/cli-delegate/cmd_versions.js +5 -5
- package/dist/cli-delegate/gate_budget.js +1 -1
- package/dist/cli-delegate/gate_execute.js +2 -2
- package/dist/cli-delegate/roadmap_gates.js +2 -2
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +129 -90
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +24 -9
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +5 -4
- package/dist/hooks/dispatch.js +2151 -1820
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/install/install.mjs +462 -431
- package/dist/install/installThinLayer.js +40 -12
- package/dist/install/installedRuleLinks.js +105 -19
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
- package/dist/mcp/registry-manifest.json +5 -5
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2702 -1995
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +15 -120
- package/dist/scripts/_lib/compile_time_toggles.js +12 -21
- package/dist/scripts/_lib/git_convention.js +232 -0
- package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
- package/dist/scripts/_lib/installed_layer.js +344 -18
- package/dist/scripts/_lib/package_root.js +68 -0
- package/dist/scripts/_lib/rule_law_section.js +1 -1
- package/dist/scripts/_lib/settings_removed_keys.js +168 -0
- package/dist/scripts/_lib/thin_rules.js +80 -3
- package/dist/server/app.js +2 -1
- package/dist/server/gitKeysGate.js +105 -0
- package/dist/server/routes/settings.js +67 -8
- package/dist/server/routes/wizard.js +4 -0
- package/dist/server/schemas/settings.js +23 -81
- package/dist/shared/skillRanking.js +30 -4
- package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
- package/dist/ui/index.html +1 -1
- package/docs/MIGRATION.md +72 -1
- package/docs/contracts/settings-classes.md +35 -65
- package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
- package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
- package/docs/guidelines/agent-infra/layered-settings.md +13 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
- package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
- package/docs/guidelines/php/git.md +15 -2
- package/package.json +1 -1
- package/src/agent-src/scripts/gate_budget.ts +47 -23
- package/src/agent-src/scripts/gate_execute.ts +12 -4
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
- package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
- package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
- package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
- package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
- package/src/config/agent-settings.template.yml +79 -312
- package/src/config/agents-paths.yml +16 -0
- package/src/config/assurance-capability-registry.json +7 -3
- package/src/config/ci-local-parity.yml +3 -0
- package/src/config/continuity-surface.json +3 -3
- package/src/config/discovery/packs.yml +17 -1
- package/src/config/evaluator-budgets.json +19 -6
- package/src/config/gate-coverage.yml +65 -23
- package/src/config/gate-violation-baselines.json +53 -13
- package/src/config/gitignore-block.txt +19 -0
- package/src/config/hook-bundle-budget.json +1 -1
- package/src/config/release-gate-locality.yml +2 -1
- package/src/config/routing-coverage-seed.json +48 -6
- package/src/config/rule-law-ceilings.json +12 -6
- package/src/config/rule-obligations.json +833 -0
- package/src/install/installThinLayer.ts +76 -10
- package/src/install/installedRuleLinks.ts +105 -17
- package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
- package/src/scripts/_cli/cmd_conformance.ts +13 -2
- package/src/scripts/_cli/cmd_doctor.ts +10 -10
- package/src/scripts/_cli/cmd_doctor_neighbours.ts +133 -0
- package/src/scripts/_cli/cmd_explain.ts +72 -14
- package/src/scripts/_cli/cmd_git_convention.ts +637 -0
- package/src/scripts/_cli/cmd_settings_check.ts +66 -8
- package/src/scripts/_cli/cmd_settings_get.ts +18 -3
- package/src/scripts/_cli/doctor_execution.ts +72 -1
- package/src/scripts/_dispatch.bash +37 -2
- package/src/scripts/_lib/agent_settings.ts +15 -124
- package/src/scripts/_lib/blocked_by_marker.ts +1 -1
- package/src/scripts/_lib/compile_time_toggles.ts +12 -21
- package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
- package/src/scripts/_lib/git_base_ref.ts +92 -0
- package/src/scripts/_lib/git_convention.ts +291 -0
- package/src/scripts/_lib/git_convention_carrier.ts +389 -0
- package/src/scripts/_lib/git_convention_grammar.ts +246 -0
- package/src/scripts/_lib/git_convention_measure.ts +344 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +74 -0
- package/src/scripts/_lib/graph_feeder_record.ts +236 -13
- package/src/scripts/_lib/installed_layer.ts +448 -23
- package/src/scripts/_lib/knowledge_global.ts +14 -1
- package/src/scripts/_lib/module_reach.ts +456 -0
- package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
- package/src/scripts/_lib/neighbour_tool_use.ts +8 -10
- package/src/scripts/_lib/ratification_artifact.ts +220 -1
- package/src/scripts/_lib/ratification_subject.ts +92 -0
- package/src/scripts/_lib/release_findings_ingest.ts +15 -7
- package/src/scripts/_lib/release_highlights.ts +5 -0
- package/src/scripts/_lib/rule_law_section.ts +1 -1
- package/src/scripts/_lib/rule_obligations.ts +205 -0
- package/src/scripts/_lib/self_repair.ts +1 -1
- package/src/scripts/_lib/settings_removed_keys.ts +173 -0
- package/src/scripts/_lib/test_red_state.ts +5 -0
- package/src/scripts/_lib/thin_rules.ts +83 -3
- package/src/scripts/_lib/touched_file_quality.ts +142 -6
- package/src/scripts/_lib/worker_budget.ts +1 -1
- package/src/scripts/adr/regenerate_index.ts +16 -1
- package/src/scripts/ai_council/config.ts +7 -7
- package/src/scripts/ai_council/modification_review.ts +100 -0
- package/src/scripts/ai_council/modification_review_questions.ts +90 -0
- package/src/scripts/ai_council/orchestrator.ts +5 -5
- package/src/scripts/ai_council/spend_gate.ts +18 -7
- package/src/scripts/ai_team/config.ts +11 -16
- package/src/scripts/audit_user_type_axis.ts +20 -8
- package/src/scripts/bench_ab_clone.ts +1 -2
- package/src/scripts/bench_concern_spawn_path.ts +129 -0
- package/src/scripts/bench_graph_feeder_latency.ts +584 -0
- package/src/scripts/check_agent_artifact_location.ts +36 -0
- package/src/scripts/check_branch_freshness.ts +147 -24
- package/src/scripts/check_enforcement_coverage.ts +130 -0
- package/src/scripts/check_evaluator_budgets.ts +4 -0
- package/src/scripts/check_finding_dispositions.ts +88 -25
- package/src/scripts/check_gate_coverage.ts +4 -3
- package/src/scripts/check_gate_reachability.ts +48 -1
- package/src/scripts/check_generator_sync.ts +48 -0
- package/src/scripts/check_hook_bundle_composition.ts +107 -0
- package/src/scripts/check_kernel_edit_ratified.ts +86 -6
- package/src/scripts/check_pack_size.ts +1 -1
- package/src/scripts/check_release_manifest_content.ts +189 -0
- package/src/scripts/check_standing_rule_delivery.ts +96 -0
- package/src/scripts/check_suppression_hygiene.ts +2 -5
- package/src/scripts/ci_settle.ts +42 -5
- package/src/scripts/classify_merge_risk.ts +320 -0
- package/src/scripts/closure_scan.ts +91 -1
- package/src/scripts/command_suggester/settings.ts +8 -108
- package/src/scripts/command_suggester/types.ts +4 -5
- package/src/scripts/consumer_matrix.ts +102 -0
- package/src/scripts/context_hygiene_hook.ts +13 -23
- package/src/scripts/cost/preflight.mjs +12 -1
- package/src/scripts/council_cli.ts +7 -7
- package/src/scripts/dispatch_r2_reviewer.ts +24 -11
- package/src/scripts/explain_run.ts +8 -13
- package/src/scripts/generate_git_convention_grammar.ts +127 -0
- package/src/scripts/generate_host_cost_table.ts +20 -3
- package/src/scripts/handoff_context_hook.ts +86 -37
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +25 -6
- package/src/scripts/hooks/block_config_weakening.ts +48 -5
- package/src/scripts/hooks/block_plumbing_writes.ts +8 -4
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
- package/src/scripts/hooks/evidence_independence.ts +12 -4
- package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
- package/src/scripts/hooks/push_settle_hook.ts +4 -3
- package/src/scripts/hooks/rule_inject_hook.ts +44 -3
- package/src/scripts/hooks/state_io.ts +8 -4
- package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
- package/src/scripts/hooks/turn_end_gate_hook.ts +1 -0
- package/src/scripts/install-hooks.sh +42 -14
- package/src/scripts/install.ts +7 -31
- package/src/scripts/lint_blocker_citations.ts +198 -0
- package/src/scripts/lint_evidence_artifacts.ts +9 -0
- package/src/scripts/lint_hook_concern_budget.ts +10 -21
- package/src/scripts/lint_pack_boundaries.ts +406 -28
- package/src/scripts/lint_roadmap_blockers.ts +282 -29
- package/src/scripts/lint_roadmap_complexity.ts +4 -2
- package/src/scripts/lint_rule_law_section.ts +151 -21
- package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
- package/src/scripts/lint_settings_classes.ts +1 -1
- package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
- package/src/scripts/lint_workflow_security.ts +12 -1
- package/src/scripts/measure_skill_ranker_baseline.ts +5 -0
- package/src/scripts/model_rule_injection.ts +3 -3
- package/src/scripts/onboarding_gate_hook.ts +7 -6
- package/src/scripts/print_required_checks.ts +15 -3
- package/src/scripts/probe_host_compliance.ts +33 -5
- package/src/scripts/probe_turnaround.ts +183 -3
- package/src/scripts/ratification_header.ts +77 -0
- package/src/scripts/refusal_envelope.ts +138 -0
- package/src/scripts/release_publication.ts +29 -3
- package/src/scripts/report_dispatch_import_closure.ts +76 -0
- package/src/scripts/report_installed_rule_links.ts +118 -1
- package/src/scripts/report_module_reach.ts +212 -0
- package/src/scripts/report_obligation_mechanism.ts +16 -18
- package/src/scripts/report_parked_blockers.ts +222 -0
- package/src/scripts/report_required_checks_drift.ts +196 -0
- package/src/scripts/report_skill_ranker_confusion.ts +103 -2
- package/src/scripts/report_standing_payload_by_host.ts +1 -1
- package/src/scripts/routing_doctor.ts +2 -2
- package/src/scripts/schemas/agent-settings.schema.json +17 -31
- package/src/scripts/schemas/command.schema.json +1 -1
- package/src/scripts/schemas/skill.schema.json +1 -1
- package/src/scripts/self_review_gate.ts +39 -2
- package/src/scripts/skill_tools/score_skill_relevance.ts +28 -19
- package/src/scripts/sync_pr_branch.ts +403 -132
- package/src/scripts/trigger_eval_grandfather.json +0 -16
- package/src/server/schemas/settings.ts +33 -177
- package/src/shared/skillRanking.ts +53 -4
- package/dist/cli-delegate/chunk-NYX3L2PZ.js +0 -99
- package/src/scripts/_lib/config_chain.ts +0 -477
- package/src/scripts/_lib/conformance_report.ts +0 -403
- package/src/scripts/_lib/eval_discrimination.ts +0 -95
- package/src/scripts/_lib/evaluator_promotion.ts +0 -225
- package/src/scripts/_lib/file_slicer.ts +0 -117
- package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
- package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
- package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
- package/src/scripts/_lib/role_split.ts +0 -338
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
atomic_write_json
|
|
5
|
+
} from "./chunk-7HKRE54K.js";
|
|
6
|
+
import {
|
|
7
|
+
readHookStdin
|
|
8
|
+
} from "./chunk-F7DQWYR5.js";
|
|
3
9
|
import {
|
|
4
10
|
StateLoadError,
|
|
5
11
|
load_state
|
|
@@ -7,22 +13,200 @@ import {
|
|
|
7
13
|
import {
|
|
8
14
|
ProjectRootError,
|
|
9
15
|
resolve_project_root
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-H76PHZBI.js";
|
|
17
|
+
import "./chunk-T6BP34WI.js";
|
|
18
|
+
import "./chunk-MCJYCQPF.js";
|
|
12
19
|
import "./chunk-J55WI3RR.js";
|
|
13
20
|
|
|
14
21
|
// src/scripts/_cli/cmd_analyze_session.ts
|
|
15
|
-
import * as
|
|
16
|
-
import * as
|
|
17
|
-
import
|
|
22
|
+
import * as fs2 from "node:fs";
|
|
23
|
+
import * as path2 from "node:path";
|
|
24
|
+
import process2 from "node:process";
|
|
25
|
+
import { fileURLToPath as fileURLToPath2, pathToFileURL as pathToFileURL2 } from "node:url";
|
|
26
|
+
|
|
27
|
+
// src/scripts/context_hygiene_hook.ts
|
|
28
|
+
import fs from "node:fs";
|
|
29
|
+
import path from "node:path";
|
|
18
30
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
var STATE_DIR = path.join("agents", "state");
|
|
32
|
+
var STATE_FILE = path.join(STATE_DIR, "context-hygiene.json");
|
|
33
|
+
var HISTORY_DEPTH = 5;
|
|
34
|
+
var FRESHNESS_MILESTONES = [20, 40, 60];
|
|
35
|
+
function _empty_state() {
|
|
36
|
+
return {
|
|
37
|
+
tool_calls: 0,
|
|
38
|
+
tool_history: [],
|
|
39
|
+
freshness_threshold: null
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function _load_state(target) {
|
|
43
|
+
let isFile = false;
|
|
44
|
+
try {
|
|
45
|
+
isFile = fs.statSync(target).isFile();
|
|
46
|
+
} catch {
|
|
47
|
+
isFile = false;
|
|
48
|
+
}
|
|
49
|
+
if (!isFile) {
|
|
50
|
+
return _empty_state();
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const decoded = JSON.parse(fs.readFileSync(target, "utf-8"));
|
|
54
|
+
if (typeof decoded === "object" && decoded !== null && !Array.isArray(decoded)) {
|
|
55
|
+
return decoded;
|
|
56
|
+
}
|
|
57
|
+
} catch {
|
|
58
|
+
}
|
|
59
|
+
return _empty_state();
|
|
60
|
+
}
|
|
61
|
+
function _extract_tool(payload) {
|
|
62
|
+
for (const key of ["tool_name", "toolName", "tool"]) {
|
|
63
|
+
const v = payload[key];
|
|
64
|
+
if (typeof v === "string" && v) {
|
|
65
|
+
return v;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
function _milestone_hit(prev, curr) {
|
|
71
|
+
for (const ms of FRESHNESS_MILESTONES) {
|
|
72
|
+
if (prev < ms && ms <= curr) {
|
|
73
|
+
return ms;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
function _now_iso() {
|
|
79
|
+
return (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d{3}Z$/, "+00:00");
|
|
80
|
+
}
|
|
81
|
+
function _asInt(v) {
|
|
82
|
+
if (!v) {
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
if (typeof v === "number") {
|
|
86
|
+
return Math.trunc(v);
|
|
87
|
+
}
|
|
88
|
+
const n = Number(v);
|
|
89
|
+
return Number.isFinite(n) ? Math.trunc(n) : 0;
|
|
90
|
+
}
|
|
91
|
+
function _update(state, tool) {
|
|
92
|
+
if (tool === null) {
|
|
93
|
+
state["checked_at"] = _now_iso();
|
|
94
|
+
return state;
|
|
95
|
+
}
|
|
96
|
+
const prev_count = _asInt(state["tool_calls"]);
|
|
97
|
+
const curr_count = prev_count + 1;
|
|
98
|
+
state["tool_calls"] = curr_count;
|
|
99
|
+
let hist = state["tool_history"];
|
|
100
|
+
if (!Array.isArray(hist)) {
|
|
101
|
+
hist = [];
|
|
102
|
+
}
|
|
103
|
+
hist.push(tool);
|
|
104
|
+
state["tool_history"] = hist.slice(-HISTORY_DEPTH);
|
|
105
|
+
const ms = _milestone_hit(prev_count, curr_count);
|
|
106
|
+
if (ms !== null) {
|
|
107
|
+
state["freshness_threshold"] = ms;
|
|
108
|
+
}
|
|
109
|
+
state["checked_at"] = _now_iso();
|
|
110
|
+
return state;
|
|
111
|
+
}
|
|
112
|
+
function _write_state(consumer_root, state) {
|
|
113
|
+
atomic_write_json(path.join(consumer_root, STATE_FILE), state);
|
|
114
|
+
}
|
|
115
|
+
function run(stdin_text, options) {
|
|
116
|
+
const { consumer_root } = options;
|
|
117
|
+
const verbose = options.verbose ?? false;
|
|
118
|
+
let payload = {};
|
|
119
|
+
if (stdin_text.trim()) {
|
|
120
|
+
try {
|
|
121
|
+
const decoded = JSON.parse(stdin_text);
|
|
122
|
+
if (typeof decoded === "object" && decoded !== null && !Array.isArray(decoded)) {
|
|
123
|
+
payload = decoded;
|
|
124
|
+
}
|
|
125
|
+
} catch {
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (["schema_version", "platform", "event", "payload"].every((k) => k in payload)) {
|
|
129
|
+
const inner = payload["payload"];
|
|
130
|
+
payload = typeof inner === "object" && inner !== null && !Array.isArray(inner) ? inner : {};
|
|
131
|
+
}
|
|
132
|
+
const target = path.join(consumer_root, STATE_FILE);
|
|
133
|
+
let state = _load_state(target);
|
|
134
|
+
state = _update(state, _extract_tool(payload));
|
|
135
|
+
try {
|
|
136
|
+
_write_state(consumer_root, state);
|
|
137
|
+
} catch {
|
|
138
|
+
if (verbose) {
|
|
139
|
+
process.stderr.write("context-hygiene-hook: state write failed\n");
|
|
140
|
+
}
|
|
141
|
+
return 0;
|
|
142
|
+
}
|
|
143
|
+
if (verbose) {
|
|
144
|
+
process.stderr.write(
|
|
145
|
+
`context-hygiene-hook: tool_calls=${pyRepr(state["tool_calls"])} threshold=${pyRepr(state["freshness_threshold"])}
|
|
146
|
+
`
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
return 0;
|
|
150
|
+
}
|
|
151
|
+
function pyRepr(value) {
|
|
152
|
+
if (value === null || value === void 0) {
|
|
153
|
+
return "None";
|
|
154
|
+
}
|
|
155
|
+
if (typeof value === "boolean") {
|
|
156
|
+
return value ? "True" : "False";
|
|
157
|
+
}
|
|
158
|
+
return String(value);
|
|
159
|
+
}
|
|
160
|
+
function parse_args(argv) {
|
|
161
|
+
let platform = "generic";
|
|
162
|
+
let verbose = false;
|
|
163
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
164
|
+
const arg = argv[i];
|
|
165
|
+
if (arg === "--platform") {
|
|
166
|
+
platform = argv[i + 1] ?? "generic";
|
|
167
|
+
i += 1;
|
|
168
|
+
} else if (arg !== void 0 && arg.startsWith("--platform=")) {
|
|
169
|
+
platform = arg.slice("--platform=".length);
|
|
170
|
+
} else if (arg === "--verbose") {
|
|
171
|
+
verbose = true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return { platform, verbose };
|
|
175
|
+
}
|
|
176
|
+
function _readStdin() {
|
|
177
|
+
return readHookStdin();
|
|
178
|
+
}
|
|
179
|
+
function main(argv) {
|
|
180
|
+
const args = parse_args(argv ?? process.argv.slice(2));
|
|
181
|
+
return run(_readStdin(), { consumer_root: process.cwd(), verbose: args.verbose });
|
|
182
|
+
}
|
|
183
|
+
function _isCliEntry() {
|
|
184
|
+
if (true) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
if (process.argv[1] === void 0) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
191
|
+
if (import.meta.url === argvUrl) {
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
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
|
+
var isCliEntry = _isCliEntry();
|
|
203
|
+
if (isCliEntry) {
|
|
204
|
+
process.exit(main(process.argv.slice(2)));
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// src/scripts/_cli/cmd_analyze_session.ts
|
|
208
|
+
var _HERE = fileURLToPath2(import.meta.url);
|
|
209
|
+
var CONTEXT_HYGIENE_RELATIVE = STATE_FILE;
|
|
26
210
|
var SystemExitError = class extends Error {
|
|
27
211
|
constructor(code) {
|
|
28
212
|
super(`system-exit-${code}`);
|
|
@@ -38,14 +222,14 @@ var ArgparseExit = class extends Error {
|
|
|
38
222
|
code;
|
|
39
223
|
};
|
|
40
224
|
function eprint(line = "") {
|
|
41
|
-
|
|
225
|
+
process2.stderr.write(line + "\n");
|
|
42
226
|
}
|
|
43
227
|
function isPlainObject(value) {
|
|
44
228
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
45
229
|
}
|
|
46
230
|
function _resolve_root(arg) {
|
|
47
231
|
try {
|
|
48
|
-
const [root] = resolve_project_root(arg, { cwd:
|
|
232
|
+
const [root] = resolve_project_root(arg, { cwd: process2.cwd() });
|
|
49
233
|
return root;
|
|
50
234
|
} catch (exc) {
|
|
51
235
|
if (exc instanceof ProjectRootError) {
|
|
@@ -56,21 +240,21 @@ function _resolve_root(arg) {
|
|
|
56
240
|
}
|
|
57
241
|
}
|
|
58
242
|
function relativeToOrNull(p, base) {
|
|
59
|
-
const rel =
|
|
243
|
+
const rel = path2.relative(base, p);
|
|
60
244
|
if (rel === "") return rel;
|
|
61
|
-
if (rel.startsWith("..") ||
|
|
245
|
+
if (rel.startsWith("..") || path2.isAbsolute(rel)) {
|
|
62
246
|
return null;
|
|
63
247
|
}
|
|
64
248
|
return rel;
|
|
65
249
|
}
|
|
66
250
|
function _load_context_hygiene(project_root) {
|
|
67
|
-
const p =
|
|
68
|
-
if (!
|
|
251
|
+
const p = path2.join(project_root, CONTEXT_HYGIENE_RELATIVE);
|
|
252
|
+
if (!fs2.existsSync(p)) {
|
|
69
253
|
return null;
|
|
70
254
|
}
|
|
71
255
|
let text;
|
|
72
256
|
try {
|
|
73
|
-
text =
|
|
257
|
+
text = fs2.readFileSync(p, "utf-8");
|
|
74
258
|
} catch {
|
|
75
259
|
return null;
|
|
76
260
|
}
|
|
@@ -140,11 +324,7 @@ function render_report(state, hygiene) {
|
|
|
140
324
|
lines.push("_Context-hygiene snapshot not available._");
|
|
141
325
|
} else {
|
|
142
326
|
const toolCalls = intOrUnknown(hygiene["tool_calls"]);
|
|
143
|
-
const consecutive = intOrUnknown(hygiene["consecutive_same_tool"]);
|
|
144
|
-
const loop = hygiene["loop_detected"] === true;
|
|
145
327
|
lines.push(`- Tool calls: ${toolCalls}`);
|
|
146
|
-
lines.push(`- Consecutive same-tool calls: ${consecutive}`);
|
|
147
|
-
lines.push(`- Loop detected: ${loop ? "yes" : "no"}`);
|
|
148
328
|
}
|
|
149
329
|
lines.push("");
|
|
150
330
|
lines.push("## Token / cost");
|
|
@@ -154,14 +334,14 @@ function render_report(state, hygiene) {
|
|
|
154
334
|
return lines.join("\n");
|
|
155
335
|
}
|
|
156
336
|
function _analyze_session(project_root, state_file) {
|
|
157
|
-
const target_state = state_file ||
|
|
337
|
+
const target_state = state_file || path2.join(project_root, ".work-state.json");
|
|
158
338
|
let state;
|
|
159
339
|
try {
|
|
160
340
|
state = load_state(target_state);
|
|
161
341
|
} catch (exc) {
|
|
162
342
|
if (exc instanceof StateLoadError) {
|
|
163
343
|
const rel = relativeToOrNull(target_state, project_root);
|
|
164
|
-
const shown = rel !== null ? rel :
|
|
344
|
+
const shown = rel !== null ? rel : path2.basename(target_state);
|
|
165
345
|
const msg = exc.message.split(target_state).join(shown);
|
|
166
346
|
eprint(`\u274C analyze-session: ${msg}`);
|
|
167
347
|
return exc.exitCode;
|
|
@@ -169,7 +349,7 @@ function _analyze_session(project_root, state_file) {
|
|
|
169
349
|
throw exc;
|
|
170
350
|
}
|
|
171
351
|
const hygiene = _load_context_hygiene(project_root);
|
|
172
|
-
|
|
352
|
+
process2.stdout.write(render_report(state, hygiene));
|
|
173
353
|
return 0;
|
|
174
354
|
}
|
|
175
355
|
var PROG = "agent-config analyze-session";
|
|
@@ -185,8 +365,8 @@ Sources read:
|
|
|
185
365
|
\xB7 changes \u2014 files touched
|
|
186
366
|
\xB7 outcomes \u2014 per-directive success / blocked
|
|
187
367
|
\xB7 halts \u2014 recorded halts
|
|
188
|
-
agents/
|
|
189
|
-
\xB7 tool_calls
|
|
368
|
+
agents/state/context-hygiene.json
|
|
369
|
+
\xB7 tool_calls
|
|
190
370
|
|
|
191
371
|
Token/cost is NOT reported \u2014 this package has no per-session token
|
|
192
372
|
source (only video-specific telemetry).
|
|
@@ -202,8 +382,8 @@ exit codes:
|
|
|
202
382
|
2 invocation error (bad project root, bad --state-file path)
|
|
203
383
|
`;
|
|
204
384
|
function _argError(msg) {
|
|
205
|
-
|
|
206
|
-
|
|
385
|
+
process2.stderr.write(USAGE);
|
|
386
|
+
process2.stderr.write(`${PROG}: error: ${msg}
|
|
207
387
|
`);
|
|
208
388
|
throw new ArgparseExit(2);
|
|
209
389
|
}
|
|
@@ -213,7 +393,7 @@ function _parse(argv) {
|
|
|
213
393
|
while (i < argv.length) {
|
|
214
394
|
const a = argv[i];
|
|
215
395
|
if (a === "-h" || a === "--help") {
|
|
216
|
-
|
|
396
|
+
process2.stdout.write(_HELP);
|
|
217
397
|
throw new ArgparseExit(0);
|
|
218
398
|
}
|
|
219
399
|
const eq = a.startsWith("--") ? a.indexOf("=") : -1;
|
|
@@ -239,8 +419,8 @@ function _parse(argv) {
|
|
|
239
419
|
}
|
|
240
420
|
return opts;
|
|
241
421
|
}
|
|
242
|
-
function
|
|
243
|
-
const argv_list = argv !== null ? Array.from(argv) :
|
|
422
|
+
function main2(argv = null) {
|
|
423
|
+
const argv_list = argv !== null ? Array.from(argv) : process2.argv.slice(2);
|
|
244
424
|
const opts = _parse(argv_list);
|
|
245
425
|
let project_root;
|
|
246
426
|
try {
|
|
@@ -253,30 +433,30 @@ function main(argv = null) {
|
|
|
253
433
|
}
|
|
254
434
|
return _analyze_session(project_root, opts.state_file);
|
|
255
435
|
}
|
|
256
|
-
function
|
|
257
|
-
if (
|
|
436
|
+
function _isCliEntry2() {
|
|
437
|
+
if (process2.argv[1] === void 0) {
|
|
258
438
|
return false;
|
|
259
439
|
}
|
|
260
|
-
const argvUrl =
|
|
440
|
+
const argvUrl = pathToFileURL2(path2.resolve(process2.argv[1])).href;
|
|
261
441
|
if (import.meta.url === argvUrl) {
|
|
262
442
|
return true;
|
|
263
443
|
}
|
|
264
444
|
try {
|
|
265
|
-
const here =
|
|
266
|
-
const argv =
|
|
445
|
+
const here = fs2.realpathSync(fileURLToPath2(import.meta.url));
|
|
446
|
+
const argv = fs2.realpathSync(path2.resolve(process2.argv[1]));
|
|
267
447
|
return here === argv;
|
|
268
448
|
} catch {
|
|
269
449
|
return false;
|
|
270
450
|
}
|
|
271
451
|
}
|
|
272
|
-
if (
|
|
452
|
+
if (_isCliEntry2() || process2.argv[1] === _HERE) {
|
|
273
453
|
try {
|
|
274
|
-
|
|
454
|
+
process2.exitCode = main2(process2.argv.slice(2));
|
|
275
455
|
} catch (e) {
|
|
276
456
|
if (e instanceof ArgparseExit) {
|
|
277
|
-
|
|
457
|
+
process2.exitCode = e.code;
|
|
278
458
|
} else if (e instanceof SystemExitError) {
|
|
279
|
-
|
|
459
|
+
process2.exitCode = e.code;
|
|
280
460
|
} else {
|
|
281
461
|
throw e;
|
|
282
462
|
}
|
|
@@ -289,6 +469,6 @@ export {
|
|
|
289
469
|
_load_context_hygiene,
|
|
290
470
|
_parse,
|
|
291
471
|
_resolve_root,
|
|
292
|
-
main,
|
|
472
|
+
main2 as main,
|
|
293
473
|
render_report
|
|
294
474
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
resolve_project_root
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-H76PHZBI.js";
|
|
5
|
+
import "./chunk-T6BP34WI.js";
|
|
6
|
+
import "./chunk-MCJYCQPF.js";
|
|
6
7
|
import "./chunk-J55WI3RR.js";
|
|
7
8
|
|
|
8
9
|
// src/scripts/_cli/cmd_brand_status.ts
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
+
THIN_ENTRY_MARKER,
|
|
3
4
|
readRecentEntries
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6YQC2HLF.js";
|
|
6
|
+
import {
|
|
7
|
+
detectToolPresence
|
|
8
|
+
} from "./chunk-A4QJ6ENT.js";
|
|
5
9
|
import {
|
|
6
10
|
NO_RED_EVIDENCE_REASON,
|
|
7
11
|
deriveSessionKey,
|
|
@@ -23,10 +27,7 @@ import {
|
|
|
23
27
|
shadowSetBy,
|
|
24
28
|
statePathFor,
|
|
25
29
|
validateAssumption
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import {
|
|
28
|
-
readHookStdin
|
|
29
|
-
} from "./chunk-F7DQWYR5.js";
|
|
30
|
+
} from "./chunk-AED2VQGM.js";
|
|
30
31
|
import {
|
|
31
32
|
LexicalIndex,
|
|
32
33
|
isSqliteAvailableSync,
|
|
@@ -35,9 +36,6 @@ import {
|
|
|
35
36
|
stampUserVersion,
|
|
36
37
|
tokenize
|
|
37
38
|
} from "./chunk-ZBZV2G5R.js";
|
|
38
|
-
import {
|
|
39
|
-
detectToolPresence
|
|
40
|
-
} from "./chunk-A4QJ6ENT.js";
|
|
41
39
|
import {
|
|
42
40
|
ArgparseExit,
|
|
43
41
|
STATUS_SYMBOLS,
|
|
@@ -56,7 +54,7 @@ import {
|
|
|
56
54
|
proseEqual,
|
|
57
55
|
resolveSessionRole,
|
|
58
56
|
splitFrontmatter
|
|
59
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-5GPULQBE.js";
|
|
60
58
|
import "./chunk-FTAISGDQ.js";
|
|
61
59
|
import "./chunk-6V6TA25H.js";
|
|
62
60
|
import "./chunk-ROYYTEZU.js";
|
|
@@ -64,12 +62,15 @@ import "./chunk-BTWUYDGN.js";
|
|
|
64
62
|
import {
|
|
65
63
|
atomicAppendLine,
|
|
66
64
|
probeHostCapabilities
|
|
67
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-MDPPKQCQ.js";
|
|
66
|
+
import "./chunk-DMSZHXZS.js";
|
|
68
67
|
import "./chunk-ULQRUR23.js";
|
|
69
68
|
import {
|
|
70
69
|
hardenedSpawnEnv,
|
|
71
70
|
projectStoreSlug
|
|
72
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-OAFSJBHH.js";
|
|
72
|
+
import "./chunk-IAYTIIQW.js";
|
|
73
|
+
import "./chunk-LQOCRFWT.js";
|
|
73
74
|
import {
|
|
74
75
|
atomic_write_json,
|
|
75
76
|
atomic_write_text,
|
|
@@ -79,36 +80,39 @@ import {
|
|
|
79
80
|
prune_legacy_state_file,
|
|
80
81
|
prune_stale_session_states,
|
|
81
82
|
session_state_file
|
|
82
|
-
} from "./chunk-
|
|
83
|
-
import "./chunk-
|
|
84
|
-
import "./chunk-DMSZHXZS.js";
|
|
85
|
-
import "./chunk-NXEILF2K.js";
|
|
83
|
+
} from "./chunk-7HKRE54K.js";
|
|
84
|
+
import "./chunk-F3QDG2GT.js";
|
|
86
85
|
import "./chunk-DEIV7XP7.js";
|
|
87
|
-
import "./chunk-KB5FZ655.js";
|
|
88
|
-
import "./chunk-JQOM7TTM.js";
|
|
89
86
|
import {
|
|
90
87
|
manifest_path,
|
|
91
88
|
read_manifest
|
|
92
89
|
} from "./chunk-OKJUIAPS.js";
|
|
90
|
+
import "./chunk-WQWXGIWB.js";
|
|
91
|
+
import "./chunk-KB5FZ655.js";
|
|
93
92
|
import "./chunk-MWRD5YOH.js";
|
|
93
|
+
import "./chunk-JQOM7TTM.js";
|
|
94
94
|
import {
|
|
95
95
|
DeadScopeError,
|
|
96
96
|
assertScanned,
|
|
97
97
|
reportScanned
|
|
98
98
|
} from "./chunk-I3EIN2YG.js";
|
|
99
|
+
import {
|
|
100
|
+
readHookStdin
|
|
101
|
+
} from "./chunk-F7DQWYR5.js";
|
|
99
102
|
import {
|
|
100
103
|
require_dist
|
|
101
104
|
} from "./chunk-OY53J6II.js";
|
|
102
|
-
import
|
|
103
|
-
resolvePackageRoot
|
|
104
|
-
} from "./chunk-MCJYCQPF.js";
|
|
105
|
+
import "./chunk-LF2KKJ4Q.js";
|
|
105
106
|
import {
|
|
106
107
|
load_agent_settings
|
|
107
|
-
} from "./chunk-
|
|
108
|
-
import "./chunk-NDJLNC6Q.js";
|
|
108
|
+
} from "./chunk-H76PHZBI.js";
|
|
109
109
|
import {
|
|
110
110
|
artefact_roots
|
|
111
111
|
} from "./chunk-YCU3TIXH.js";
|
|
112
|
+
import "./chunk-T6BP34WI.js";
|
|
113
|
+
import {
|
|
114
|
+
resolvePackageRoot
|
|
115
|
+
} from "./chunk-MCJYCQPF.js";
|
|
112
116
|
import {
|
|
113
117
|
__toESM
|
|
114
118
|
} from "./chunk-J55WI3RR.js";
|
|
@@ -133,10 +137,10 @@ var ROUTE_TARGET_TEMPLATES = Object.freeze({
|
|
|
133
137
|
])
|
|
134
138
|
});
|
|
135
139
|
function parseRouteTarget(target) {
|
|
136
|
-
const
|
|
137
|
-
if (
|
|
138
|
-
const kind = target.slice(0,
|
|
139
|
-
const id = target.slice(
|
|
140
|
+
const sep4 = target.indexOf(":");
|
|
141
|
+
if (sep4 <= 0) return null;
|
|
142
|
+
const kind = target.slice(0, sep4);
|
|
143
|
+
const id = target.slice(sep4 + 1);
|
|
140
144
|
if (!id) return null;
|
|
141
145
|
if (!Object.prototype.hasOwnProperty.call(ROUTE_TARGET_TEMPLATES, kind)) return null;
|
|
142
146
|
return { kind, id };
|
|
@@ -3139,10 +3143,51 @@ function untested(g, files, state) {
|
|
|
3139
3143
|
|
|
3140
3144
|
// src/scripts/_lib/graph_feeder_record.ts
|
|
3141
3145
|
var MAX_PATHS = 5;
|
|
3146
|
+
var OUTSIDE_WORKSPACE = "<outside-workspace>";
|
|
3142
3147
|
var MAX_ROWS_PER_SESSION = 200;
|
|
3143
3148
|
function feederFile(workspaceRoot, sessionKey) {
|
|
3144
3149
|
return path6.join(workspaceRoot, "agents", "state", "graph-feeder", `${sessionKey}.jsonl`);
|
|
3145
3150
|
}
|
|
3151
|
+
function toRepoRelative(root, paths) {
|
|
3152
|
+
let realRoot = null;
|
|
3153
|
+
return paths.map((p) => {
|
|
3154
|
+
if (!path6.isAbsolute(p)) return p;
|
|
3155
|
+
const raw = _relativeInside(root, p);
|
|
3156
|
+
if (raw !== null) return raw;
|
|
3157
|
+
realRoot ??= _resolveReal(root);
|
|
3158
|
+
return _relativeInside(realRoot, _resolveReal(p)) ?? p;
|
|
3159
|
+
});
|
|
3160
|
+
}
|
|
3161
|
+
function _relativeInside(from, to) {
|
|
3162
|
+
let rel;
|
|
3163
|
+
try {
|
|
3164
|
+
rel = path6.relative(from, to);
|
|
3165
|
+
} catch {
|
|
3166
|
+
return null;
|
|
3167
|
+
}
|
|
3168
|
+
if (rel === "") return ".";
|
|
3169
|
+
if (rel === ".." || rel.startsWith(`..${path6.sep}`) || path6.isAbsolute(rel)) return null;
|
|
3170
|
+
return rel.split(path6.sep).join("/");
|
|
3171
|
+
}
|
|
3172
|
+
function _resolveReal(p) {
|
|
3173
|
+
const abs = path6.resolve(p);
|
|
3174
|
+
const tail = [];
|
|
3175
|
+
let cur = abs;
|
|
3176
|
+
for (; ; ) {
|
|
3177
|
+
try {
|
|
3178
|
+
const real = fs7.realpathSync(cur);
|
|
3179
|
+
return tail.length === 0 ? real : path6.join(real, ...[...tail].reverse());
|
|
3180
|
+
} catch {
|
|
3181
|
+
const parent = path6.dirname(cur);
|
|
3182
|
+
if (parent === cur) return abs;
|
|
3183
|
+
tail.push(path6.basename(cur));
|
|
3184
|
+
cur = parent;
|
|
3185
|
+
}
|
|
3186
|
+
}
|
|
3187
|
+
}
|
|
3188
|
+
function _escapesWorkspace(p) {
|
|
3189
|
+
return path6.isAbsolute(p) || path6.win32.isAbsolute(p) || p === ".." || p.startsWith("../") || p.startsWith(`..${path6.sep}`);
|
|
3190
|
+
}
|
|
3146
3191
|
function graphUntestedVerdict(root, state, paths) {
|
|
3147
3192
|
const none = { verdict: null, untested: 0, tested: 0 };
|
|
3148
3193
|
if (state !== "fresh" && state !== "edited") return none;
|
|
@@ -3161,7 +3206,7 @@ function graphUntestedVerdict(root, state, paths) {
|
|
|
3161
3206
|
return none;
|
|
3162
3207
|
}
|
|
3163
3208
|
try {
|
|
3164
|
-
const r = untested(g, paths, state);
|
|
3209
|
+
const r = untested(g, toRepoRelative(root, paths), state);
|
|
3165
3210
|
if (r.seeds.length === 0) return { verdict: "no-seeds", untested: 0, tested: 0 };
|
|
3166
3211
|
return {
|
|
3167
3212
|
verdict: r.untested.length > 0 ? "untested" : "tested",
|
|
@@ -3203,7 +3248,32 @@ function buildFeederRow(input) {
|
|
|
3203
3248
|
graph: input.graph.verdict,
|
|
3204
3249
|
graph_untested: input.graph.untested,
|
|
3205
3250
|
graph_tested: input.graph.tested,
|
|
3206
|
-
|
|
3251
|
+
// An out-of-workspace edit is REDACTED, not dropped and not stored
|
|
3252
|
+
// verbatim. After relativising, a still-absolute path is exactly one
|
|
3253
|
+
// that lay outside the root.
|
|
3254
|
+
//
|
|
3255
|
+
// Verbatim is an egress surface: `paths` is handed to external council
|
|
3256
|
+
// seats at step 3.3's labelling, and a home-rooted path names a real
|
|
3257
|
+
// user and an unrelated project.
|
|
3258
|
+
//
|
|
3259
|
+
// Dropping it looked right and was worse, which a completion review
|
|
3260
|
+
// caught before it shipped. It would have shortened `paths` below
|
|
3261
|
+
// `path_count` and so reused the protocol's truncation signal for a
|
|
3262
|
+
// second, different cause — two meanings on one wire, with no field
|
|
3263
|
+
// separating them. Worse, a turn editing one in-repo file and one file
|
|
3264
|
+
// outside the root would then be excluded from labelling altogether,
|
|
3265
|
+
// losing a perfectly labellable in-repo path from a corpus that is
|
|
3266
|
+
// blocked precisely for want of rows.
|
|
3267
|
+
//
|
|
3268
|
+
// The marker keeps the lengths equal, so truncation stays the only
|
|
3269
|
+
// cause of `path_count > paths.length`; keeps the row honest that an
|
|
3270
|
+
// edit happened outside the tree, so a labeller can answer
|
|
3271
|
+
// `cannot tell` rather than be silently misled; and carries nothing
|
|
3272
|
+
// identifying. The graph's answer is unchanged either way — the probe
|
|
3273
|
+
// sees the real path and resolves no seeds for it.
|
|
3274
|
+
paths: toRepoRelative(input.root, input.paths.slice(0, MAX_PATHS)).map(
|
|
3275
|
+
(p) => _escapesWorkspace(p) ? OUTSIDE_WORKSPACE : p
|
|
3276
|
+
),
|
|
3207
3277
|
path_count: input.paths.length
|
|
3208
3278
|
};
|
|
3209
3279
|
}
|
|
@@ -4723,6 +4793,7 @@ function recordGraphFeeder(inputs, findings, layer) {
|
|
|
4723
4793
|
inputs.workspaceRoot,
|
|
4724
4794
|
inputs.sessionKey,
|
|
4725
4795
|
buildFeederRow({
|
|
4796
|
+
root: inputs.workspaceRoot,
|
|
4726
4797
|
turn: inputs.turnOrdinal,
|
|
4727
4798
|
layer,
|
|
4728
4799
|
state,
|
|
@@ -4917,10 +4988,10 @@ function extractDispatch(envelope) {
|
|
|
4917
4988
|
}
|
|
4918
4989
|
return [tool, ""];
|
|
4919
4990
|
}
|
|
4920
|
-
function _ledgerStamp(consumer_root) {
|
|
4991
|
+
function _ledgerStamp(consumer_root, session_id) {
|
|
4921
4992
|
try {
|
|
4922
4993
|
const raw = fs13.readFileSync(
|
|
4923
|
-
path11.join(consumer_root,
|
|
4994
|
+
path11.join(consumer_root, ledgerFileFor(session_id)),
|
|
4924
4995
|
"utf8"
|
|
4925
4996
|
);
|
|
4926
4997
|
const d = JSON.parse(raw);
|
|
@@ -5018,7 +5089,7 @@ function run3(stdin_text, options) {
|
|
|
5018
5089
|
const target = path11.join(options.consumer_root, STATE_FILE3);
|
|
5019
5090
|
const state = _load(target);
|
|
5020
5091
|
const session_id = typeof envelope["session_id"] === "string" ? envelope["session_id"] : "";
|
|
5021
|
-
const turnMarker = `${session_id}:${_ledgerStamp(options.consumer_root)}`;
|
|
5092
|
+
const turnMarker = `${session_id}:${_ledgerStamp(options.consumer_root, session_id)}`;
|
|
5022
5093
|
if (state.session_id !== turnMarker) {
|
|
5023
5094
|
state.session_id = turnMarker;
|
|
5024
5095
|
state.turn_started_at = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -5465,11 +5536,10 @@ function resolveActivation(workspace_root, hostId) {
|
|
|
5465
5536
|
const emergency = settings["emergency"] ?? {};
|
|
5466
5537
|
const halted = emergency["orchestration_halt"] === true;
|
|
5467
5538
|
const host_manifest = probeHostCapabilities(hostId);
|
|
5468
|
-
const sub = settings["subagents"] ?? {};
|
|
5469
|
-
const downshift = sub["downshift"] !== false;
|
|
5470
5539
|
return {
|
|
5471
5540
|
activation: { halted, subagent_spawn: host_manifest.subagent_spawn },
|
|
5472
|
-
downshift
|
|
5541
|
+
// Fixed on: the `subagents.downshift` key was retired with this default.
|
|
5542
|
+
downshift: true,
|
|
5473
5543
|
separate_quota_pool: host_manifest.separate_quota_pool,
|
|
5474
5544
|
agentTeams: host_manifest.agent_teams
|
|
5475
5545
|
};
|
|
@@ -7393,7 +7463,7 @@ var CONFORMANCE_CHECK_IDS = [
|
|
|
7393
7463
|
"lean-projection",
|
|
7394
7464
|
"host-manifest"
|
|
7395
7465
|
];
|
|
7396
|
-
var THIN_STUB_MARKER =
|
|
7466
|
+
var THIN_STUB_MARKER = THIN_ENTRY_MARKER;
|
|
7397
7467
|
var CONFORMANCE_STATUS_SYMBOLS = {
|
|
7398
7468
|
...STATUS_SYMBOLS,
|
|
7399
7469
|
unknown: "\u2754"
|
|
@@ -3,12 +3,12 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
|
|
|
3
3
|
import {
|
|
4
4
|
require_dist
|
|
5
5
|
} from "./chunk-OY53J6II.js";
|
|
6
|
+
import {
|
|
7
|
+
write_target
|
|
8
|
+
} from "./chunk-T6BP34WI.js";
|
|
6
9
|
import {
|
|
7
10
|
resolvePackageRoot
|
|
8
11
|
} from "./chunk-MCJYCQPF.js";
|
|
9
|
-
import {
|
|
10
|
-
write_target
|
|
11
|
-
} from "./chunk-NDJLNC6Q.js";
|
|
12
12
|
import {
|
|
13
13
|
__toESM
|
|
14
14
|
} from "./chunk-J55WI3RR.js";
|