@event4u/agent-config 16.2.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 +337 -234
- package/README.md +15 -13
- package/agents/templates/.ai-council.yml.example +26 -8
- package/dist/agent-src/commands/analyze/inbox.md +11 -8
- package/dist/agent-src/commands/analyze/roadmap-repos.md +1 -1
- package/dist/agent-src/commands/bug/fix.md +17 -2
- 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 +2 -2
- package/dist/agent-src/commands/feature/roadmap.md +1 -1
- package/dist/agent-src/commands/fix/ci.md +18 -4
- 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 +4 -4
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- 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/create.md +1 -1
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/next.md +10 -1
- package/dist/agent-src/commands/roadmap/process-full.md +56 -42
- package/dist/agent-src/commands/roadmap/resolve-blockers.md +411 -0
- package/dist/agent-src/commands/roadmap/triage-parked.md +325 -0
- package/dist/agent-src/commands/roadmap.md +18 -4
- package/dist/agent-src/commands/tests/create.md +17 -3
- package/dist/agent-src/commands/tests/execute.md +22 -5
- 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/authority/decision-revisit-gate-enforcement.md +43 -0
- package/dist/agent-src/contexts/communication/rules-auto/design-fidelity-enforcement.md +24 -0
- 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 +7 -7
- 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 +99 -54
- package/dist/agent-src/contexts/execution/session-canary-enforcement-history.md +67 -0
- 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 +95 -7
- 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 +1 -2
- 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 +1 -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 +1 -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 +1 -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 +6 -6
- 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 +17 -35
- package/dist/agent-src/rules/delegation-policy.md +2 -3
- package/dist/agent-src/rules/design-fidelity.md +12 -16
- 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 +1 -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 +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +1 -1
- package/dist/agent-src/rules/domain-safety-retention.md +1 -1
- package/dist/agent-src/rules/downstream-changes.md +0 -1
- package/dist/agent-src/rules/engineering-safety-floor.md +1 -1
- package/dist/agent-src/rules/evaluator-independence.md +3 -2
- 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 +2 -2
- package/dist/agent-src/rules/finance-safety-floor.md +1 -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 +2 -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 +1 -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 +3 -3
- package/dist/agent-src/rules/lethal-trifecta-guard.md +1 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -1
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
- package/dist/agent-src/rules/media-governance-routing.md +13 -17
- 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 +4 -5
- 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 +3 -4
- package/dist/agent-src/rules/question-not-instruction.md +1 -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 +4 -7
- 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 +1 -1
- package/dist/agent-src/rules/scale-discipline.md +0 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +3 -3
- 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 +7 -62
- package/dist/agent-src/rules/settings-ask-protocol.md +6 -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 +1 -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 +1 -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 +1 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +1 -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 +1 -1
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
- package/dist/agent-src/scripts/deferral_carry.ts +339 -0
- package/dist/agent-src/scripts/gate_budget.ts +47 -23
- package/dist/agent-src/scripts/gate_execute.ts +12 -4
- package/dist/agent-src/scripts/update_roadmap_progress.ts +4 -1
- 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/api-design/data/manifest.json +2 -2
- package/dist/agent-src/skills/api-testing/SKILL.md +17 -0
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +14 -2
- 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/design-system-capture/references/import-procedure.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +2 -2
- package/dist/agent-src/skills/fe-design/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/iconography/SKILL.md +1 -1
- package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +2 -2
- package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +11 -1
- package/dist/agent-src/skills/quality-tools/references/go-tools.md +76 -0
- package/dist/agent-src/skills/quality-tools/references/python-tools.md +104 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +5 -3
- package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +3 -3
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +4 -2
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +7 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +17 -0
- package/dist/agent-src/skills/test-performance/SKILL.md +19 -1
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +2 -2
- 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/directives/ui/apply.ts +48 -6
- 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/scripts/work_engine/stack/runner.ts +774 -109
- package/dist/agent-src/templates/skill.md +1 -1
- package/dist/cli/registry.js +2 -1
- package/dist/cli-delegate/archive_completed_roadmaps.js +92 -12
- package/dist/cli-delegate/check_update_banner.js +207 -120
- package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
- package/dist/cli-delegate/{chunk-FP36SWJD.js → chunk-5GPULQBE.js} +2797 -338
- package/dist/cli-delegate/{chunk-IGD6ERX6.js → chunk-6SRJTYJS.js} +42 -176
- package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
- package/dist/cli-delegate/{chunk-M2DPGFZ4.js → chunk-6V6TA25H.js} +22 -152
- 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-7IQE3D5S.js +191 -0
- package/dist/cli-delegate/{chunk-YJ72UIAK.js → chunk-AED2VQGM.js} +1245 -249
- package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
- package/dist/cli-delegate/chunk-DEIV7XP7.js +108 -0
- package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
- package/dist/cli-delegate/chunk-F3QDG2GT.js +2569 -0
- package/dist/cli-delegate/{chunk-6KFEC3G7.js → chunk-G5VVIZRC.js} +3 -3
- package/dist/cli-delegate/{chunk-FC75PGJE.js → chunk-H76PHZBI.js} +149 -61
- package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
- package/dist/cli-delegate/chunk-JQOM7TTM.js +1201 -0
- package/dist/cli-delegate/chunk-KB5FZ655.js +208 -0
- package/dist/cli-delegate/{chunk-7RQP4UDH.js → chunk-KR6EM23A.js} +235 -1455
- package/dist/cli-delegate/{chunk-LTYVIY76.js → chunk-KXXWJTDO.js} +6 -11
- package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
- package/dist/cli-delegate/{chunk-6KM6ORRY.js → chunk-MDPPKQCQ.js} +58 -9
- package/dist/cli-delegate/{chunk-4XFP2Y3E.js → chunk-MSUL5NYP.js} +5 -5
- package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
- package/dist/cli-delegate/{chunk-4E2W63DA.js → chunk-OKJUIAPS.js} +62 -1
- package/dist/cli-delegate/{chunk-QAJS5YWY.js → chunk-PHD7OOLE.js} +2 -1
- package/dist/cli-delegate/{chunk-P6ZHP5W2.js → chunk-PWX7CKMD.js} +4 -4
- package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
- package/dist/cli-delegate/{chunk-7XGBX6ZH.js → chunk-T7XSJSUQ.js} +1144 -589
- package/dist/cli-delegate/chunk-ULQRUR23.js +208 -0
- package/dist/cli-delegate/chunk-WQWXGIWB.js +1779 -0
- package/dist/cli-delegate/{chunk-RGNIWTEA.js → chunk-XQTPXKFA.js} +1 -1
- package/dist/cli-delegate/{chunk-NUHLI2RX.js → chunk-YCU3TIXH.js} +2 -0
- package/dist/cli-delegate/chunk-ZBZV2G5R.js +210 -0
- package/dist/cli-delegate/{chunk-WGXTVKCQ.js → chunk-ZUZKZYCN.js} +5 -3
- 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 +1252 -249
- package/dist/cli-delegate/cmd_converge.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +19 -9
- package/dist/cli-delegate/cmd_doctor_neighbours.js +30 -0
- package/dist/cli-delegate/cmd_explain.js +45 -21
- package/dist/cli-delegate/cmd_export.js +13 -10
- package/dist/cli-delegate/cmd_fleet.js +3 -3
- package/dist/cli-delegate/cmd_git_convention.js +1851 -0
- package/dist/cli-delegate/cmd_handoff.js +44 -22
- package/dist/cli-delegate/cmd_mcp_available.js +3 -2
- package/dist/cli-delegate/cmd_memory_get.js +3 -1
- package/dist/cli-delegate/cmd_migrate.js +3 -3
- package/dist/cli-delegate/cmd_packs_active.js +5 -4
- package/dist/cli-delegate/cmd_preflight.js +6 -6
- package/dist/cli-delegate/cmd_prune.js +14 -11
- package/dist/cli-delegate/cmd_refresh.js +2 -1
- package/dist/cli-delegate/cmd_route_audit.js +10 -8
- package/dist/cli-delegate/cmd_route_explain.js +4 -4
- package/dist/cli-delegate/cmd_session_recycle.js +10 -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 +13 -10
- package/dist/cli-delegate/cmd_settings_set.js +4 -4
- package/dist/cli-delegate/cmd_sync.js +14 -11
- package/dist/cli-delegate/cmd_uninstall.js +15 -12
- package/dist/cli-delegate/cmd_update.js +7 -7
- package/dist/cli-delegate/cmd_upgrade.js +9 -8
- package/dist/cli-delegate/cmd_validate.js +15 -12
- package/dist/cli-delegate/cmd_versions.js +5 -5
- package/dist/cli-delegate/deferral_carry.js +16 -0
- package/dist/cli-delegate/gate_budget.js +1 -1
- package/dist/cli-delegate/gate_execute.js +3 -3
- package/dist/cli-delegate/roadmap_gates.js +6 -6
- package/dist/cli-delegate/update_roadmap_progress.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +232 -141
- 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 +26 -9
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +7 -4
- package/dist/hooks/dispatch.js +5655 -6623
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/install/claudePathsPlan.js +47 -6
- package/dist/install/claudeRuleRewrite.js +7 -0
- package/dist/install/emit_host_rules_cli.js +39 -36
- package/dist/install/globalRuleScope.js +87 -0
- package/dist/install/host_rule_ownership.js +160 -0
- package/dist/install/install.mjs +2336 -1249
- package/dist/install/installThinLayer.js +289 -0
- package/dist/install/installedRuleLinks.js +262 -0
- package/dist/install/wizard-plan.js +24 -0
- 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 +36504 -30986
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +26 -120
- package/dist/scripts/_lib/claude_settings_hooks.js +10 -8
- 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 +704 -0
- package/dist/scripts/_lib/lean_projection_mode.js +218 -15
- package/dist/scripts/_lib/package_root.js +68 -0
- package/dist/scripts/_lib/rule_consequence_class.js +45 -0
- package/dist/scripts/_lib/rule_injection.js +67 -10
- package/dist/scripts/_lib/rule_law_section.js +122 -0
- package/dist/scripts/_lib/settings_removed_keys.js +168 -0
- package/dist/scripts/_lib/thin_rules.js +535 -0
- package/dist/scripts/_lib/windsurf_render.js +60 -0
- package/dist/scripts/condense.js +14 -26
- package/dist/scripts/project_thin_rules.js +14 -294
- 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 +29 -81
- package/dist/shared/skillRanking.js +103 -16
- 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 +39 -67
- 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/archive_completed_roadmaps.ts +115 -20
- package/src/agent-src/scripts/deferral_carry.ts +339 -0
- package/src/agent-src/scripts/gate_budget.ts +47 -23
- package/src/agent-src/scripts/gate_execute.ts +12 -4
- package/src/agent-src/scripts/update_roadmap_progress.ts +4 -1
- 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/directives/ui/apply.ts +48 -6
- 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/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/src/config/agent-settings.template.yml +141 -334
- 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 +10 -3
- package/src/config/discovery/packs.yml +17 -1
- package/src/config/evaluator-budgets.json +23 -10
- package/src/config/gate-coverage.yml +138 -3
- package/src/config/gate-violation-baselines.json +64 -16
- package/src/config/gitignore-block.txt +19 -0
- package/src/config/hook-bundle-budget.json +25 -0
- package/src/config/hook-token-budget.json +6 -1
- package/src/config/host-instruction-limits.json +33 -0
- package/src/config/release-gate-locality.yml +2 -1
- package/src/config/routing-coverage-seed.json +67 -4
- package/src/config/rule-activation-census.json +7 -3
- package/src/config/rule-consequence-class.json +161 -0
- package/src/config/rule-law-ceilings.json +105 -0
- package/src/config/rule-obligations.json +833 -0
- package/src/install/claudePathsPlan.ts +46 -4
- package/src/install/claudeRuleRewrite.ts +10 -1
- package/src/install/emit_host_rules_cli.ts +43 -34
- package/src/install/globalRuleScope.ts +109 -0
- package/src/install/host_rule_ownership.ts +170 -0
- package/src/install/installThinLayer.ts +378 -0
- package/src/install/installedRuleLinks.ts +308 -0
- package/src/install/wizard-plan.ts +24 -0
- 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 +33 -81
- package/src/scripts/_cli/cmd_doctor_neighbours.ts +426 -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 +53 -4
- package/src/scripts/_lib/agent_settings.ts +26 -124
- package/src/scripts/_lib/blocked_by_marker.ts +1 -1
- package/src/scripts/_lib/claude_settings_hooks.ts +10 -8
- package/src/scripts/_lib/compile_time_toggles.ts +12 -21
- package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
- package/src/scripts/_lib/estate_offsets.ts +241 -0
- package/src/scripts/_lib/exemption_shape.ts +143 -0
- package/src/scripts/_lib/fnv.ts +23 -0
- package/src/scripts/_lib/foreign_scan.ts +106 -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/gitignore_block.ts +314 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +106 -0
- package/src/scripts/_lib/graph_feeder_record.ts +437 -0
- package/src/scripts/_lib/hook_settings.ts +73 -0
- package/src/scripts/_lib/host_capability.ts +40 -19
- package/src/scripts/_lib/host_hook_merge.ts +165 -0
- package/src/scripts/_lib/installed_layer.ts +963 -0
- package/src/scripts/_lib/json_merge.ts +82 -0
- package/src/scripts/_lib/json_pointers.ts +93 -11
- package/src/scripts/_lib/knowledge_global.ts +14 -1
- package/src/scripts/_lib/lean_projection_mode.ts +275 -15
- package/src/scripts/_lib/machine_wake.ts +16 -3
- package/src/scripts/_lib/module_reach.ts +456 -0
- package/src/scripts/_lib/neighbour_census.ts +760 -0
- package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
- package/src/scripts/_lib/neighbour_scan.ts +122 -0
- package/src/scripts/_lib/neighbour_tool_use.ts +187 -0
- package/src/scripts/_lib/prompt_shape.ts +46 -0
- 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/release_migration_gate.ts +19 -3
- package/src/scripts/_lib/reserved_name_sweep.ts +73 -0
- package/src/scripts/_lib/review_coverage.ts +134 -0
- package/src/scripts/_lib/rule_consequence_class.ts +71 -0
- package/src/scripts/_lib/rule_injection.ts +130 -10
- package/src/scripts/_lib/rule_law_section.ts +147 -0
- package/src/scripts/_lib/rule_layer_overlap.ts +58 -0
- 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/skill_origin.ts +254 -0
- package/src/scripts/_lib/structured_ask.ts +64 -21
- package/src/scripts/_lib/test_red_state.ts +5 -0
- package/src/scripts/_lib/thin_rules.ts +620 -0
- package/src/scripts/_lib/touched_file_quality.ts +570 -0
- package/src/scripts/_lib/turn_end_refusals.ts +77 -2
- package/src/scripts/_lib/windsurf_render.ts +63 -0
- package/src/scripts/_lib/worker_budget.ts +1 -1
- package/src/scripts/adr/regenerate_index.ts +16 -1
- package/src/scripts/ai_council/cli_call_budget.ts +13 -5
- package/src/scripts/ai_council/clients.ts +26 -57
- package/src/scripts/ai_council/config.ts +8 -8
- 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_council/vendor_defaults.ts +45 -0
- package/src/scripts/ai_team/config.ts +11 -16
- package/src/scripts/audit_skill_overlap.ts +261 -0
- package/src/scripts/audit_user_type_axis.ts +20 -8
- package/src/scripts/before_complete_hook.ts +243 -12
- 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/bench_touched_file_quality.ts +238 -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_enforcement_matrix.ts +377 -20
- package/src/scripts/check_estate_count.ts +130 -153
- package/src/scripts/check_evaluator_budgets.ts +4 -0
- package/src/scripts/check_finding_dispositions.ts +196 -21
- 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 +477 -0
- package/src/scripts/check_kernel_edit_ratified.ts +132 -14
- package/src/scripts/check_memory.ts +7 -1
- package/src/scripts/check_pack_size.ts +1 -1
- package/src/scripts/check_release_highlights.ts +10 -0
- package/src/scripts/check_release_manifest_content.ts +189 -0
- package/src/scripts/check_release_pr_shape.ts +38 -15
- package/src/scripts/check_standing_rule_delivery.ts +129 -13
- package/src/scripts/check_suppression_hygiene.ts +2 -5
- package/src/scripts/check_verify_expectation_delta.ts +521 -0
- 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/code_graph/detect.ts +127 -7
- package/src/scripts/code_graph/foreign.ts +194 -0
- package/src/scripts/code_graph/query.ts +217 -4
- package/src/scripts/code_graph/types.ts +26 -2
- package/src/scripts/code_graph/validate.ts +3 -1
- package/src/scripts/code_graph/verbs.ts +103 -0
- package/src/scripts/command_suggester/settings.ts +8 -108
- package/src/scripts/command_suggester/types.ts +4 -5
- package/src/scripts/compile_hook_manifest.ts +33 -1
- package/src/scripts/condense.ts +14 -27
- 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/estate_exemption_shape.ts +202 -0
- 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 +21 -4
- package/src/scripts/handoff_context_hook.ts +86 -37
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +175 -15
- package/src/scripts/hooks/block_config_weakening.ts +115 -7
- package/src/scripts/hooks/block_plumbing_writes.ts +37 -5
- package/src/scripts/hooks/code_graph_context_hook.ts +252 -23
- package/src/scripts/hooks/concern_failure_policy.ts +280 -0
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
- package/src/scripts/hooks/dispatch_hook.ts +52 -52
- package/src/scripts/hooks/evidence_independence.ts +12 -4
- package/src/scripts/hooks/exit_codes.ts +2 -1
- package/src/scripts/hooks/host_lowering.json +1 -1
- package/src/scripts/hooks/host_lowering.ts +19 -1
- package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
- package/src/scripts/hooks/one_question_per_ask_hook.ts +41 -25
- package/src/scripts/hooks/payload_stub.ts +10 -1
- package/src/scripts/hooks/push_settle_hook.ts +4 -3
- package/src/scripts/hooks/rule_inject_hook.ts +795 -60
- package/src/scripts/hooks/state_io.ts +8 -4
- package/src/scripts/hooks/table_fingerprint.ts +21 -0
- package/src/scripts/hooks/telemetry_usage_hook.ts +24 -7
- package/src/scripts/hooks/turn_end_gate_hook.ts +85 -0
- package/src/scripts/hooks_status.ts +112 -0
- package/src/scripts/injection_scan_hook.ts +7 -0
- package/src/scripts/install-hooks.sh +42 -14
- package/src/scripts/install.ts +78 -215
- package/src/scripts/installed_layer_report.ts +103 -0
- package/src/scripts/language_mirror_hook.ts +15 -6
- package/src/scripts/learning_sidecar.ts +119 -8
- 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_hook_manifest.ts +53 -0
- package/src/scripts/lint_major_migration_sections.ts +156 -26
- package/src/scripts/lint_pack_boundaries.ts +465 -29
- 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 +647 -0
- 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 +173 -6
- package/src/scripts/mcp_server/consumer_tool_catalog.json +53 -0
- package/src/scripts/mcp_server/graph_tools.ts +72 -3
- package/src/scripts/measure_routing_signal.ts +54 -16
- package/src/scripts/measure_skill_ranker_baseline.ts +221 -8
- package/src/scripts/memory_learn_hook.ts +91 -6
- package/src/scripts/model_rule_injection.ts +55 -8
- 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/project_thin_rules.ts +34 -327
- 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_evidence_temperature.ts +657 -0
- package/src/scripts/report_installed_rule_links.ts +274 -0
- package/src/scripts/report_label_agreement.ts +233 -0
- package/src/scripts/report_module_reach.ts +212 -0
- package/src/scripts/report_obligation_mechanism.ts +228 -0
- package/src/scripts/report_parked_blockers.ts +222 -0
- package/src/scripts/report_required_checks_drift.ts +196 -0
- package/src/scripts/report_single_token_triggers.ts +277 -0
- package/src/scripts/report_skill_ranker_confusion.ts +543 -0
- package/src/scripts/report_standing_payload_by_host.ts +188 -15
- package/src/scripts/report_verification_record_coverage.ts +306 -0
- package/src/scripts/routing_doctor.ts +2 -2
- package/src/scripts/rule_activation_census.ts +5 -2
- package/src/scripts/rule_trigger_eval.ts +9 -9
- package/src/scripts/schemas/agent-settings.schema.json +17 -31
- package/src/scripts/schemas/command.schema.json +1 -1
- package/src/scripts/schemas/review-findings.schema.json +3 -2
- package/src/scripts/schemas/rule.schema.json +5 -0
- package/src/scripts/schemas/skill.schema.json +1 -1
- package/src/scripts/self_review_gate.ts +101 -9
- package/src/scripts/skill_tools/score_skill_relevance.ts +314 -40
- package/src/scripts/sweep_skill_ranker_signals.ts +129 -0
- package/src/scripts/sync_gitignore.ts +29 -235
- package/src/scripts/sync_pr_branch.ts +403 -132
- package/src/scripts/trigger_eval_grandfather.json +0 -21
- package/src/server/schemas/settings.ts +42 -176
- package/src/shared/skillRanking.ts +169 -14
- package/dist/cli-delegate/chunk-5R7HOLAF.js +0 -99
- package/dist/cli-delegate/chunk-JNMVLWLR.js +0 -4457
- package/dist/cli-delegate/chunk-YDPILCOL.js +0 -152
- 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
|
@@ -28,6 +28,7 @@ function _deriveRoots(root) {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
var _roots = _deriveRoots(_DEFAULT_ROOT);
|
|
31
|
+
var SRC_SKILLS = () => _roots.SRC_SKILLS;
|
|
31
32
|
function _isDir(p) {
|
|
32
33
|
try {
|
|
33
34
|
return fs.statSync(p).isDirectory();
|
|
@@ -76,5 +77,6 @@ function artefact_roots() {
|
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
export {
|
|
80
|
+
SRC_SKILLS,
|
|
79
81
|
artefact_roots
|
|
80
82
|
};
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/scripts/_lib/lexical_index.ts
|
|
4
|
+
var BM25_K1 = 1.5;
|
|
5
|
+
var BM25_B = 0.75;
|
|
6
|
+
var MIN_TOKEN_LEN = 2;
|
|
7
|
+
function tokenize(s) {
|
|
8
|
+
const out = [];
|
|
9
|
+
for (const raw of s.toLowerCase().split(/[^a-z0-9]+/)) {
|
|
10
|
+
if (raw.length >= MIN_TOKEN_LEN) out.push(raw);
|
|
11
|
+
}
|
|
12
|
+
return out;
|
|
13
|
+
}
|
|
14
|
+
function trigrams(s) {
|
|
15
|
+
const norm = s.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
|
|
16
|
+
const out = /* @__PURE__ */ new Set();
|
|
17
|
+
if (norm.length < 3) {
|
|
18
|
+
if (norm.length > 0) out.add(norm);
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
21
|
+
for (let i = 0; i + 3 <= norm.length; i++) {
|
|
22
|
+
out.add(norm.slice(i, i + 3));
|
|
23
|
+
}
|
|
24
|
+
return out;
|
|
25
|
+
}
|
|
26
|
+
var LexicalIndex = class {
|
|
27
|
+
docs = /* @__PURE__ */ new Map();
|
|
28
|
+
df = /* @__PURE__ */ new Map();
|
|
29
|
+
n;
|
|
30
|
+
avgdl;
|
|
31
|
+
constructor(documents) {
|
|
32
|
+
let totalLen = 0;
|
|
33
|
+
for (const d of documents) {
|
|
34
|
+
const tokens = tokenize(d.text);
|
|
35
|
+
const tf = /* @__PURE__ */ new Map();
|
|
36
|
+
for (const t of tokens) tf.set(t, (tf.get(t) ?? 0) + 1);
|
|
37
|
+
for (const t of tf.keys()) this.df.set(t, (this.df.get(t) ?? 0) + 1);
|
|
38
|
+
this.docs.set(d.id, { id: d.id, len: tokens.length, tf, trigrams: trigrams(d.text) });
|
|
39
|
+
totalLen += tokens.length;
|
|
40
|
+
}
|
|
41
|
+
this.n = documents.length;
|
|
42
|
+
this.avgdl = this.n > 0 ? totalLen / this.n : 0;
|
|
43
|
+
}
|
|
44
|
+
/** Robertson–Spärck-Jones IDF, floored at 0 so common terms never subtract. */
|
|
45
|
+
idf(term) {
|
|
46
|
+
const df = this.df.get(term) ?? 0;
|
|
47
|
+
if (df === 0) return 0;
|
|
48
|
+
return Math.max(0, Math.log(1 + (this.n - df + 0.5) / (df + 0.5)));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* BM25 score of one document against the tokenised query terms, weighted by
|
|
52
|
+
* **term coverage**: the raw BM25 sum is multiplied by `coverage²`, where
|
|
53
|
+
* `coverage = distinct-query-terms-matched / distinct-query-terms`. This
|
|
54
|
+
* stops a single generic, high-TF term match from outranking a document that
|
|
55
|
+
* matches several rarer query terms once each (Phase 1 refinement). A
|
|
56
|
+
* single-term query has `coverage == 1`, so its score is unchanged — the
|
|
57
|
+
* weighting only re-orders genuinely multi-term queries.
|
|
58
|
+
*/
|
|
59
|
+
score(queryTerms, docId) {
|
|
60
|
+
const doc = this.docs.get(docId);
|
|
61
|
+
if (doc === void 0 || doc.len === 0) return 0;
|
|
62
|
+
let s = 0;
|
|
63
|
+
const matched = /* @__PURE__ */ new Set();
|
|
64
|
+
for (const term of queryTerms) {
|
|
65
|
+
const tf = doc.tf.get(term);
|
|
66
|
+
if (tf === void 0) continue;
|
|
67
|
+
const idf = this.idf(term);
|
|
68
|
+
if (idf === 0) continue;
|
|
69
|
+
const denom = tf + BM25_K1 * (1 - BM25_B + BM25_B * doc.len / (this.avgdl || 1));
|
|
70
|
+
s += idf * (tf * (BM25_K1 + 1)) / denom;
|
|
71
|
+
matched.add(term);
|
|
72
|
+
}
|
|
73
|
+
if (s === 0) return 0;
|
|
74
|
+
const distinctQuery = new Set(queryTerms).size;
|
|
75
|
+
const coverage = distinctQuery > 0 ? matched.size / distinctQuery : 1;
|
|
76
|
+
return s * coverage * coverage;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Rank documents for a set of query keys (phrases are tokenised). A
|
|
80
|
+
* character-trigram prefilter selects candidates cheaply; the guard keeps
|
|
81
|
+
* any doc sharing a query TOKEN even when no trigram overlaps, so the
|
|
82
|
+
* prefilter never drops a genuine lexical match. Ties break by id for a
|
|
83
|
+
* stable, deterministic order.
|
|
84
|
+
*/
|
|
85
|
+
rank(queryKeys) {
|
|
86
|
+
const queryText = queryKeys.join(" ");
|
|
87
|
+
const qTerms = tokenize(queryText);
|
|
88
|
+
const qTermSet = new Set(qTerms);
|
|
89
|
+
const qTrigrams = trigrams(queryText);
|
|
90
|
+
const candidates = [];
|
|
91
|
+
for (const [id, doc] of this.docs) {
|
|
92
|
+
let hit = false;
|
|
93
|
+
for (const t of qTrigrams) {
|
|
94
|
+
if (doc.trigrams.has(t)) {
|
|
95
|
+
hit = true;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (!hit) {
|
|
100
|
+
for (const t of qTermSet) {
|
|
101
|
+
if (doc.tf.has(t)) {
|
|
102
|
+
hit = true;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (hit) candidates.push(id);
|
|
108
|
+
}
|
|
109
|
+
const scored = candidates.map((id) => ({ id, score: this.score(qTerms, id) })).filter((r) => r.score > 0);
|
|
110
|
+
scored.sort((a, b) => b.score - a.score || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
|
|
111
|
+
return scored;
|
|
112
|
+
}
|
|
113
|
+
/** Document count — for the caller's tripwire / diagnostics. */
|
|
114
|
+
get size() {
|
|
115
|
+
return this.n;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// src/scripts/_lib/sqlite_guard.ts
|
|
120
|
+
import { createRequire } from "node:module";
|
|
121
|
+
var SqliteUnavailableError = class extends Error {
|
|
122
|
+
constructor(callerName, cause) {
|
|
123
|
+
super(
|
|
124
|
+
`node:sqlite is unavailable in this runtime (${cause}). ${callerName} requires Node with the built-in SQLite module.`
|
|
125
|
+
);
|
|
126
|
+
this.name = "SqliteUnavailableError";
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
var _sqliteWarningSilenced = false;
|
|
130
|
+
function _silenceSqliteExperimentalWarning() {
|
|
131
|
+
if (_sqliteWarningSilenced) return;
|
|
132
|
+
_sqliteWarningSilenced = true;
|
|
133
|
+
const orig = process.emitWarning.bind(process);
|
|
134
|
+
process.emitWarning = ((warning, ...rest) => {
|
|
135
|
+
const text = typeof warning === "string" ? warning : warning?.message ?? "";
|
|
136
|
+
if (/SQLite is an experimental/i.test(text)) return;
|
|
137
|
+
orig(warning, ...rest);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
var _require;
|
|
141
|
+
function _syncRequire() {
|
|
142
|
+
if (_require === void 0) {
|
|
143
|
+
_require = createRequire(import.meta.url);
|
|
144
|
+
}
|
|
145
|
+
return _require;
|
|
146
|
+
}
|
|
147
|
+
function loadSqliteSync(callerName) {
|
|
148
|
+
_silenceSqliteExperimentalWarning();
|
|
149
|
+
try {
|
|
150
|
+
return _syncRequire()("node:sqlite");
|
|
151
|
+
} catch (exc) {
|
|
152
|
+
const message = exc instanceof Error ? exc.message : String(exc);
|
|
153
|
+
throw new SqliteUnavailableError(callerName, message);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function isSqliteAvailableSync() {
|
|
157
|
+
_silenceSqliteExperimentalWarning();
|
|
158
|
+
try {
|
|
159
|
+
_syncRequire()("node:sqlite");
|
|
160
|
+
return true;
|
|
161
|
+
} catch {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function probeFts5Sync() {
|
|
166
|
+
let sqlite;
|
|
167
|
+
try {
|
|
168
|
+
sqlite = loadSqliteSync("sqlite_guard.probeFts5Sync");
|
|
169
|
+
} catch {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
let conn = null;
|
|
173
|
+
try {
|
|
174
|
+
conn = new sqlite.DatabaseSync(":memory:");
|
|
175
|
+
conn.exec("CREATE VIRTUAL TABLE _fts5_probe USING fts5(body)");
|
|
176
|
+
conn.exec("INSERT INTO _fts5_probe(body) VALUES ('probe')");
|
|
177
|
+
const row = conn.prepare("SELECT body FROM _fts5_probe WHERE _fts5_probe MATCH 'probe'").get();
|
|
178
|
+
return row !== void 0;
|
|
179
|
+
} catch {
|
|
180
|
+
return false;
|
|
181
|
+
} finally {
|
|
182
|
+
try {
|
|
183
|
+
conn?.close();
|
|
184
|
+
} catch {
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function readUserVersion(conn) {
|
|
189
|
+
const row = conn.prepare("PRAGMA user_version").get();
|
|
190
|
+
const v = row?.["user_version"];
|
|
191
|
+
if (typeof v === "bigint") return Number(v);
|
|
192
|
+
if (typeof v === "number") return v;
|
|
193
|
+
return 0;
|
|
194
|
+
}
|
|
195
|
+
function stampUserVersion(conn, version) {
|
|
196
|
+
if (!Number.isInteger(version) || version < 0 || version > 2 ** 31 - 1) {
|
|
197
|
+
throw new RangeError(`stampUserVersion: version out of range: ${version}`);
|
|
198
|
+
}
|
|
199
|
+
conn.exec(`PRAGMA user_version = ${version}`);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export {
|
|
203
|
+
tokenize,
|
|
204
|
+
LexicalIndex,
|
|
205
|
+
loadSqliteSync,
|
|
206
|
+
isSqliteAvailableSync,
|
|
207
|
+
probeFts5Sync,
|
|
208
|
+
readUserVersion,
|
|
209
|
+
stampUserVersion
|
|
210
|
+
};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
buildInstallPlan,
|
|
4
|
-
classifyOwnership,
|
|
5
|
-
recordedHashesForRoot,
|
|
6
4
|
sha256File
|
|
7
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-523HCFYO.js";
|
|
8
6
|
import {
|
|
9
7
|
detectToolPresence
|
|
10
8
|
} from "./chunk-A4QJ6ENT.js";
|
|
9
|
+
import {
|
|
10
|
+
classifyOwnership,
|
|
11
|
+
recordedHashesForRoot
|
|
12
|
+
} from "./chunk-OKJUIAPS.js";
|
|
11
13
|
|
|
12
14
|
// src/install/preflight.ts
|
|
13
15
|
import { accessSync, constants, existsSync as existsSync2, statSync } from "node:fs";
|
|
@@ -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
|