@event4u/agent-config 16.3.0 → 16.5.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 +178 -78
- 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/design.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/design-antipatterns.md +1 -1
- 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 +14 -48
- 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/accessibility-auditor/data/aria-patterns.csv +2 -0
- package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +3 -3
- 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/canvas-design/SKILL.md +4 -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-intelligence/references/integration-mapping.md +13 -10
- 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/fe-design/references/design-patterns.md +49 -2
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +9 -0
- 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 +4 -2
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +16 -5
- package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
- package/dist/agent-src/skills/logo-generation/SKILL.md +12 -8
- 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/svg-authoring/SKILL.md +318 -0
- 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/skills/wireframe/SKILL.md +5 -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/commands/uiRender.js +201 -4
- package/dist/cli/commands/uiRenderAsset.js +1308 -0
- package/dist/cli/commands/uiRenderAssetCompare.js +752 -0
- package/dist/cli/commands/uiRenderAssetGrid.js +265 -0
- package/dist/cli/commands/uiRenderAssetGrounds.js +323 -0
- package/dist/cli/commands/uiRenderAssetIsolation.js +85 -0
- package/dist/cli/commands/uiRenderAssetTypes.js +145 -0
- package/dist/cli/main.js +47 -1
- package/dist/cli/registry.js +2 -1
- package/dist/cli-delegate/check_update_banner.js +195 -119
- package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-4DBG5K7M.js} +5 -5
- 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-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-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-NQ7WT43P.js → chunk-TMWYUOK4.js} +75 -12
- 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 +489 -238
- 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 +171 -107
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +7 -7
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +41 -22
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +16 -11
- package/dist/hooks/dispatch.js +2520 -1924
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/hooks/svg_rules.chunk.cjs +1626 -0
- package/dist/hooks/svg_rules.chunk.cjs.sha256 +1 -0
- 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 +3063 -2160
- 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/scan_scope.js +105 -0
- package/dist/scripts/_lib/settings_removed_keys.js +168 -0
- package/dist/scripts/_lib/svg_dom.js +284 -0
- package/dist/scripts/_lib/svg_geometry.js +477 -0
- package/dist/scripts/_lib/svg_motion.js +179 -0
- package/dist/scripts/_lib/svg_rules.js +1337 -0
- package/dist/scripts/_lib/svg_urls.js +67 -0
- package/dist/scripts/_lib/thin_rules.js +80 -3
- package/dist/scripts/lint_svg_asset.js +324 -0
- 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/design-antipatterns.md +1 -1
- package/docs/guidelines/php/git.md +15 -2
- package/package.json +4 -3
- 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 +56 -16
- 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 +55 -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/svg_dom.ts +318 -0
- package/src/scripts/_lib/svg_geometry.ts +480 -0
- package/src/scripts/_lib/svg_motion.ts +208 -0
- package/src/scripts/_lib/svg_rules.ts +1453 -0
- package/src/scripts/_lib/svg_urls.ts +72 -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/verification_command.ts +59 -0
- package/src/scripts/_lib/verify_clause.ts +27 -17
- 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/block_speaking_inbox_dir.ts +16 -1
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
- package/src/scripts/hooks/design_pass_hook.ts +157 -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/svg_obligation.ts +497 -0
- package/src/scripts/hooks/svg_rules_loader.ts +133 -0
- package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
- package/src/scripts/hooks/turn_end_gate_hook.ts +6 -3
- 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_consolidation_lineage.ts +6 -3
- package/src/scripts/lint_design_quality.ts +60 -12
- package/src/scripts/lint_evidence_artifacts.ts +9 -0
- package/src/scripts/lint_hook_concern_budget.ts +10 -21
- package/src/scripts/lint_motion_authority_drift.ts +27 -0
- 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_svg_asset.ts +365 -0
- 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,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
} from "./chunk-
|
|
3
|
+
read_lockfile
|
|
4
|
+
} from "./chunk-LQOCRFWT.js";
|
|
5
5
|
import {
|
|
6
6
|
has_stable_session_id,
|
|
7
7
|
owns_session_state,
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
prune_stale_session_states,
|
|
10
10
|
session_state_file,
|
|
11
11
|
update_json_under_lock
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import {
|
|
14
|
-
read_lockfile
|
|
15
|
-
} from "./chunk-T7L2QK3K.js";
|
|
12
|
+
} from "./chunk-7HKRE54K.js";
|
|
16
13
|
import {
|
|
17
14
|
scanText
|
|
18
15
|
} from "./chunk-KB5FZ655.js";
|
|
16
|
+
import {
|
|
17
|
+
readHookStdin
|
|
18
|
+
} from "./chunk-F7DQWYR5.js";
|
|
19
19
|
|
|
20
20
|
// src/scripts/_lib/subagent_capsule.ts
|
|
21
21
|
var EPISTEMIC_STATES = ["verified", "assumed", "gap"];
|
|
@@ -562,6 +562,8 @@ function segmentVerifies(rawWords) {
|
|
|
562
562
|
case "node":
|
|
563
563
|
case "deno":
|
|
564
564
|
return rest.some((a) => a === "test" || a.startsWith("--test"));
|
|
565
|
+
case "agent-config":
|
|
566
|
+
return false;
|
|
565
567
|
case "scripts-run": {
|
|
566
568
|
const script = bareName(arg1);
|
|
567
569
|
return /^(check|lint|verify|validate)[-_]/.test(script);
|
|
@@ -579,6 +581,12 @@ var _WIDE_CANDIDATE_RE = /\b(test|tests|vitest|jest|pytest|phpunit|pest|tsc|esli
|
|
|
579
581
|
function mightBeVerification(command) {
|
|
580
582
|
return _WIDE_CANDIDATE_RE.test(command);
|
|
581
583
|
}
|
|
584
|
+
function isAssetRenderCommand(command) {
|
|
585
|
+
return /\bui:render\b/.test(command) && /--profile[= ]\s*asset\b/.test(command);
|
|
586
|
+
}
|
|
587
|
+
function isVerificationAttempt(command) {
|
|
588
|
+
return isVerificationCommand(command) || isAssetRenderCommand(command);
|
|
589
|
+
}
|
|
582
590
|
|
|
583
591
|
// src/scripts/_lib/touched_file_quality.ts
|
|
584
592
|
import { spawnSync } from "node:child_process";
|
|
@@ -586,9 +594,18 @@ import * as fs2 from "node:fs";
|
|
|
586
594
|
import * as path2 from "node:path";
|
|
587
595
|
var OUTPUT_HEAD_LINES = 20;
|
|
588
596
|
var DEFAULT_TIMEOUT_MS = 3e4;
|
|
597
|
+
var ESLINT_IGNORED = /^\s+\d+:\d+\s+warning\s+File ignored because of a matching ignore pattern\b/;
|
|
589
598
|
var JS_EXTENSIONS = [".js", ".jsx", ".mjs", ".cjs", ".ts", ".tsx", ".mts", ".cts"];
|
|
590
599
|
var SCOPED_FORMS = /* @__PURE__ */ new Map([
|
|
591
|
-
[
|
|
600
|
+
[
|
|
601
|
+
"npx eslint .",
|
|
602
|
+
{
|
|
603
|
+
argv: ["npx", "eslint"],
|
|
604
|
+
extensions: JS_EXTENSIONS,
|
|
605
|
+
check_form: false,
|
|
606
|
+
ignored_signal: ESLINT_IGNORED
|
|
607
|
+
}
|
|
608
|
+
],
|
|
592
609
|
[
|
|
593
610
|
"vendor/bin/phpstan analyse",
|
|
594
611
|
{ argv: ["vendor/bin/phpstan", "analyse"], extensions: [".php"], check_form: false }
|
|
@@ -605,6 +622,15 @@ var SCOPED_FORMS = /* @__PURE__ */ new Map([
|
|
|
605
622
|
["mypy .", { argv: ["mypy"], extensions: [".py"], check_form: false }]
|
|
606
623
|
]);
|
|
607
624
|
var MUTATING_WITHOUT_CHECK_FORM = /* @__PURE__ */ new Set([]);
|
|
625
|
+
var SCOPED_FORM_COMMANDS = [...SCOPED_FORMS.keys()];
|
|
626
|
+
var MUTATING_COMMANDS = [...MUTATING_WITHOUT_CHECK_FORM];
|
|
627
|
+
var TYPE_CHECK_COMMANDS = /* @__PURE__ */ new Set([
|
|
628
|
+
"npx tsc --noEmit",
|
|
629
|
+
"vendor/bin/phpstan analyse",
|
|
630
|
+
"mypy .",
|
|
631
|
+
"go vet ./...",
|
|
632
|
+
"cargo clippy"
|
|
633
|
+
]);
|
|
608
634
|
function extensionOf(file) {
|
|
609
635
|
const base = path2.basename(file);
|
|
610
636
|
const dot = base.lastIndexOf(".");
|
|
@@ -665,6 +691,7 @@ function runTouchedFileQuality(opts) {
|
|
|
665
691
|
output_head: [],
|
|
666
692
|
skipped: plan.skipped,
|
|
667
693
|
files: [],
|
|
694
|
+
ignored_files: [],
|
|
668
695
|
at: now()
|
|
669
696
|
});
|
|
670
697
|
continue;
|
|
@@ -681,25 +708,60 @@ function runTouchedFileQuality(opts) {
|
|
|
681
708
|
enoent = true;
|
|
682
709
|
}
|
|
683
710
|
const absent = enoent || status === 127;
|
|
711
|
+
const signal = SCOPED_FORMS.get(plan.source_command)?.ignored_signal;
|
|
712
|
+
const ignored = absent || signal === void 0 ? [] : ignoredFiles(output2, signal, plan.files);
|
|
713
|
+
const nothingLooked = ignored.length === plan.files.length && status === 0;
|
|
684
714
|
out.push({
|
|
685
715
|
command: renderCommand(plan.argv),
|
|
686
716
|
source_command: plan.source_command,
|
|
687
|
-
exit_code: absent ? null : status,
|
|
717
|
+
exit_code: absent || nothingLooked ? null : status,
|
|
688
718
|
output_head: absent ? [] : headLines(output2, OUTPUT_HEAD_LINES),
|
|
689
719
|
skipped: absent ? "absent" : null,
|
|
690
720
|
files: plan.files,
|
|
721
|
+
ignored_files: ignored,
|
|
691
722
|
at: now()
|
|
692
723
|
});
|
|
693
724
|
}
|
|
694
|
-
|
|
725
|
+
const typecheck_not_run = out.filter(
|
|
726
|
+
(r) => TYPE_CHECK_COMMANDS.has(r.source_command) && r.exit_code === null && r.skipped !== "no_files" && r.skipped !== null
|
|
727
|
+
).map((r) => r.source_command);
|
|
728
|
+
return out.map((r) => ({ ...r, typecheck_not_run: [...typecheck_not_run] }));
|
|
729
|
+
}
|
|
730
|
+
function ignoredFiles(output2, signal, files) {
|
|
731
|
+
const reported = [];
|
|
732
|
+
let unattributed = false;
|
|
733
|
+
let current = null;
|
|
734
|
+
for (const line of output2.split(/\r\n|\r|\n/)) {
|
|
735
|
+
if (signal.test(line)) {
|
|
736
|
+
if (current === null) unattributed = true;
|
|
737
|
+
else reported.push(normalizePath(current));
|
|
738
|
+
continue;
|
|
739
|
+
}
|
|
740
|
+
if (line !== "" && !/^\s/.test(line)) current = line.trim();
|
|
741
|
+
}
|
|
742
|
+
const hit = files.filter((f) => {
|
|
743
|
+
const want = normalizePath(f);
|
|
744
|
+
return reported.some((r) => r === want || r.endsWith(`/${want}`));
|
|
745
|
+
});
|
|
746
|
+
if (hit.length === 0 && unattributed && files.length === 1) return [...files];
|
|
747
|
+
return hit;
|
|
695
748
|
}
|
|
696
749
|
var WARN_LINE_MAX_BYTES = 200;
|
|
697
750
|
function advisoryLine(runs) {
|
|
751
|
+
const ignored = [...new Set(runs.flatMap((r) => r.ignored_files))];
|
|
752
|
+
const ignoredPart = ignored.length === 0 ? "" : `ignored ${ignored[0] ?? ""}${ignored.length > 1 ? ` (+${String(ignored.length - 1)} more)` : ""}`;
|
|
698
753
|
const failed = runs.find((r) => r.skipped === null && r.exit_code !== null && r.exit_code !== 0);
|
|
699
|
-
if (failed === void 0)
|
|
754
|
+
if (failed === void 0) {
|
|
755
|
+
if (ignored.length === 0) return null;
|
|
756
|
+
return truncateToBytes(
|
|
757
|
+
`touched-file quality: no verdict, ${ignoredPart}`,
|
|
758
|
+
WARN_LINE_MAX_BYTES
|
|
759
|
+
);
|
|
760
|
+
}
|
|
700
761
|
const file = failed.files[0] ?? "(no file)";
|
|
701
762
|
const more = failed.files.length > 1 ? ` (+${String(failed.files.length - 1)} more)` : "";
|
|
702
|
-
const
|
|
763
|
+
const tail = ignoredPart === "" ? "" : `; ${ignoredPart}`;
|
|
764
|
+
const line = `touched-file quality: ${failed.source_command} exited ${String(failed.exit_code)} on ${file}${more}${tail}`;
|
|
703
765
|
return truncateToBytes(line, WARN_LINE_MAX_BYTES);
|
|
704
766
|
}
|
|
705
767
|
function truncateToBytes(text, max) {
|
|
@@ -2699,7 +2761,8 @@ function pruneAgedRefusalState(workspaceRoot, opts = {}) {
|
|
|
2699
2761
|
}
|
|
2700
2762
|
|
|
2701
2763
|
export {
|
|
2702
|
-
|
|
2764
|
+
isAssetRenderCommand,
|
|
2765
|
+
isVerificationAttempt,
|
|
2703
2766
|
readRunEvidence,
|
|
2704
2767
|
hasRedThenGreen,
|
|
2705
2768
|
describeRecordFinding,
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
resolve_with_fallback,
|
|
7
7
|
write_target
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-T6BP34WI.js";
|
|
9
9
|
import {
|
|
10
10
|
__export,
|
|
11
11
|
__toESM
|
|
@@ -875,7 +875,7 @@ function _build_debate(d) {
|
|
|
875
875
|
if (!_isDict(d)) {
|
|
876
876
|
throw new CouncilConfigError("`debate` must be a mapping.");
|
|
877
877
|
}
|
|
878
|
-
const cap = _pyFloat(_get(d, "max_cost_usd",
|
|
878
|
+
const cap = _pyFloat(_get(d, "max_cost_usd", 0));
|
|
879
879
|
if (cap < 0) {
|
|
880
880
|
throw new CouncilConfigError(
|
|
881
881
|
`debate.max_cost_usd must be >= 0 (got ${_pyRepr(_f(cap))}; use 0 to disable the cap).`
|
|
@@ -1400,10 +1400,14 @@ function _build_cost_budget(d) {
|
|
|
1400
1400
|
throw new CouncilConfigError("`cost_budget` must be a mapping.");
|
|
1401
1401
|
}
|
|
1402
1402
|
const cb = {
|
|
1403
|
-
max_input_tokens: _pyInt(_get(d, "max_input_tokens",
|
|
1404
|
-
|
|
1403
|
+
max_input_tokens: _pyInt(_get(d, "max_input_tokens", 0)),
|
|
1404
|
+
// 0 = unbounded (ADR-279)
|
|
1405
|
+
max_output_tokens: _pyInt(_get(d, "max_output_tokens", 0)),
|
|
1406
|
+
// 0 = unbounded (ADR-279)
|
|
1405
1407
|
max_calls: _pyInt(_get(d, "max_calls", 50)),
|
|
1406
|
-
|
|
1408
|
+
// fan-out, not money — kept
|
|
1409
|
+
max_total_usd: _pyFloat(_get(d, "max_total_usd", 0)),
|
|
1410
|
+
// 0 = unbounded (ADR-279)
|
|
1407
1411
|
daily_limit_usd: _pyFloat(_get(d, "daily_limit_usd", 0))
|
|
1408
1412
|
};
|
|
1409
1413
|
const fields = [
|
|
@@ -1749,275 +1753,7 @@ function _pyTruthy(value) {
|
|
|
1749
1753
|
return Object.keys(value).length > 0;
|
|
1750
1754
|
}
|
|
1751
1755
|
|
|
1752
|
-
// src/scripts/_lib/cc_transcript.ts
|
|
1753
|
-
import * as fs3 from "node:fs";
|
|
1754
|
-
import * as path3 from "node:path";
|
|
1755
|
-
import { homedir as homedir2 } from "node:os";
|
|
1756
|
-
var DEFAULT_PROJECTS_ROOT = path3.join(homedir2(), ".claude", "projects");
|
|
1757
|
-
function projectStoreSlug(cwd) {
|
|
1758
|
-
return cwd.replace(/[^A-Za-z0-9-]/g, "-");
|
|
1759
|
-
}
|
|
1760
|
-
function billableInputTokens(u) {
|
|
1761
|
-
return u.input_tokens + u.cache_read_input_tokens + u.cache_creation_input_tokens;
|
|
1762
|
-
}
|
|
1763
|
-
function weightedInputUnits(u) {
|
|
1764
|
-
const knownSplit = u.ephemeral_5m_input_tokens + u.ephemeral_1h_input_tokens;
|
|
1765
|
-
const unaccounted = Math.max(0, u.cache_creation_input_tokens - knownSplit);
|
|
1766
|
-
return u.input_tokens * 1 + u.cache_read_input_tokens * 0.1 + (u.ephemeral_5m_input_tokens + unaccounted) * 1.25 + u.ephemeral_1h_input_tokens * 2;
|
|
1767
|
-
}
|
|
1768
|
-
function numOr0(value) {
|
|
1769
|
-
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
1770
|
-
}
|
|
1771
|
-
function toTokenCounts(raw) {
|
|
1772
|
-
const cc = raw?.cache_creation ?? {};
|
|
1773
|
-
return {
|
|
1774
|
-
input_tokens: numOr0(raw?.input_tokens),
|
|
1775
|
-
cache_read_input_tokens: numOr0(raw?.cache_read_input_tokens),
|
|
1776
|
-
cache_creation_input_tokens: numOr0(raw?.cache_creation_input_tokens),
|
|
1777
|
-
output_tokens: numOr0(raw?.output_tokens),
|
|
1778
|
-
ephemeral_5m_input_tokens: numOr0(cc.ephemeral_5m_input_tokens),
|
|
1779
|
-
ephemeral_1h_input_tokens: numOr0(cc.ephemeral_1h_input_tokens)
|
|
1780
|
-
};
|
|
1781
|
-
}
|
|
1782
|
-
function measureContentBytes(raw) {
|
|
1783
|
-
const content = raw.message?.content;
|
|
1784
|
-
if (content === void 0 || content === null) return null;
|
|
1785
|
-
if (typeof content === "string") return Buffer.byteLength(content, "utf8");
|
|
1786
|
-
try {
|
|
1787
|
-
return Buffer.byteLength(JSON.stringify(content), "utf8");
|
|
1788
|
-
} catch {
|
|
1789
|
-
return null;
|
|
1790
|
-
}
|
|
1791
|
-
}
|
|
1792
|
-
function classifyBucket(raw) {
|
|
1793
|
-
const hasAgentId = typeof raw.agentId === "string" && raw.agentId.length > 0;
|
|
1794
|
-
return hasAgentId || raw.isSidechain === true ? "subagent" : "main";
|
|
1795
|
-
}
|
|
1796
|
-
function dedupKey(raw) {
|
|
1797
|
-
const id = typeof raw.message?.id === "string" ? raw.message.id : "";
|
|
1798
|
-
const reqId = typeof raw.requestId === "string" ? raw.requestId : "";
|
|
1799
|
-
return `${id}\0${reqId}`;
|
|
1800
|
-
}
|
|
1801
|
-
function parseLine(line) {
|
|
1802
|
-
if (line.trim().length === 0) return null;
|
|
1803
|
-
try {
|
|
1804
|
-
return JSON.parse(line);
|
|
1805
|
-
} catch {
|
|
1806
|
-
return null;
|
|
1807
|
-
}
|
|
1808
|
-
}
|
|
1809
|
-
function listTranscriptFiles(opts = {}) {
|
|
1810
|
-
const root = opts.root ?? DEFAULT_PROJECTS_ROOT;
|
|
1811
|
-
const base = opts.projectDir ? path3.isAbsolute(opts.projectDir) ? opts.projectDir : path3.join(root, opts.projectDir) : root;
|
|
1812
|
-
if (!fs3.existsSync(base)) return [];
|
|
1813
|
-
const cutoffMs = opts.maxAgeDays !== void 0 ? (opts.now ?? /* @__PURE__ */ new Date()).getTime() - opts.maxAgeDays * 24 * 60 * 60 * 1e3 : null;
|
|
1814
|
-
const out = [];
|
|
1815
|
-
const stack = [base];
|
|
1816
|
-
while (stack.length > 0) {
|
|
1817
|
-
const dir = stack.pop();
|
|
1818
|
-
let entries;
|
|
1819
|
-
try {
|
|
1820
|
-
entries = fs3.readdirSync(dir, { withFileTypes: true });
|
|
1821
|
-
} catch {
|
|
1822
|
-
continue;
|
|
1823
|
-
}
|
|
1824
|
-
for (const entry of entries) {
|
|
1825
|
-
const full = path3.join(dir, entry.name);
|
|
1826
|
-
if (entry.isDirectory()) {
|
|
1827
|
-
stack.push(full);
|
|
1828
|
-
continue;
|
|
1829
|
-
}
|
|
1830
|
-
if (!entry.isFile() || !entry.name.endsWith(".jsonl")) continue;
|
|
1831
|
-
if (cutoffMs !== null) {
|
|
1832
|
-
let mtimeMs;
|
|
1833
|
-
try {
|
|
1834
|
-
mtimeMs = fs3.statSync(full).mtimeMs;
|
|
1835
|
-
} catch {
|
|
1836
|
-
continue;
|
|
1837
|
-
}
|
|
1838
|
-
if (mtimeMs < cutoffMs) continue;
|
|
1839
|
-
}
|
|
1840
|
-
out.push(full);
|
|
1841
|
-
}
|
|
1842
|
-
}
|
|
1843
|
-
return out.sort();
|
|
1844
|
-
}
|
|
1845
|
-
function scanTranscripts(opts = {}) {
|
|
1846
|
-
const files = listTranscriptFiles(opts);
|
|
1847
|
-
const seen = /* @__PURE__ */ new Set();
|
|
1848
|
-
const records = [];
|
|
1849
|
-
let totalSeen = 0;
|
|
1850
|
-
for (const file of files) {
|
|
1851
|
-
let text;
|
|
1852
|
-
try {
|
|
1853
|
-
text = fs3.readFileSync(file, "utf-8");
|
|
1854
|
-
} catch {
|
|
1855
|
-
continue;
|
|
1856
|
-
}
|
|
1857
|
-
for (const line of text.split("\n")) {
|
|
1858
|
-
const raw = parseLine(line);
|
|
1859
|
-
if (!raw || raw.type !== "assistant" || !raw.message?.usage) continue;
|
|
1860
|
-
totalSeen += 1;
|
|
1861
|
-
const key = dedupKey(raw);
|
|
1862
|
-
if (seen.has(key)) continue;
|
|
1863
|
-
seen.add(key);
|
|
1864
|
-
records.push({
|
|
1865
|
-
bucket: classifyBucket(raw),
|
|
1866
|
-
agentId: typeof raw.agentId === "string" ? raw.agentId : null,
|
|
1867
|
-
model: typeof raw.message.model === "string" ? raw.message.model : "unknown",
|
|
1868
|
-
timestamp: typeof raw.timestamp === "string" ? raw.timestamp : null,
|
|
1869
|
-
usage: toTokenCounts(raw.message.usage),
|
|
1870
|
-
content_bytes: opts.measureBytes === true ? measureContentBytes(raw) : null
|
|
1871
|
-
});
|
|
1872
|
-
}
|
|
1873
|
-
}
|
|
1874
|
-
const dedupedCount = records.length;
|
|
1875
|
-
return {
|
|
1876
|
-
records,
|
|
1877
|
-
totalSeen,
|
|
1878
|
-
dedupedCount,
|
|
1879
|
-
dedup_ratio: totalSeen > 0 ? (totalSeen - dedupedCount) / totalSeen : 0
|
|
1880
|
-
};
|
|
1881
|
-
}
|
|
1882
|
-
function measureBytesPerToken(records) {
|
|
1883
|
-
let bytes = 0;
|
|
1884
|
-
let tokens = 0;
|
|
1885
|
-
let n = 0;
|
|
1886
|
-
for (const rec of records) {
|
|
1887
|
-
if (rec.content_bytes === null || rec.usage.output_tokens <= 0) continue;
|
|
1888
|
-
bytes += rec.content_bytes;
|
|
1889
|
-
tokens += rec.usage.output_tokens;
|
|
1890
|
-
n += 1;
|
|
1891
|
-
}
|
|
1892
|
-
if (n === 0 || tokens <= 0) return null;
|
|
1893
|
-
return {
|
|
1894
|
-
basis: "measured",
|
|
1895
|
-
content_bytes: bytes,
|
|
1896
|
-
output_tokens: tokens,
|
|
1897
|
-
bytes_per_token: bytes / tokens,
|
|
1898
|
-
records: n
|
|
1899
|
-
};
|
|
1900
|
-
}
|
|
1901
|
-
function derivedBytes(tokens, factor) {
|
|
1902
|
-
if (factor === null) return null;
|
|
1903
|
-
return {
|
|
1904
|
-
basis: "derived",
|
|
1905
|
-
tokens,
|
|
1906
|
-
factor,
|
|
1907
|
-
bytes: Math.round(tokens * factor.bytes_per_token)
|
|
1908
|
-
};
|
|
1909
|
-
}
|
|
1910
|
-
function emptyAggregate(bucket) {
|
|
1911
|
-
return {
|
|
1912
|
-
bucket,
|
|
1913
|
-
calls: 0,
|
|
1914
|
-
input_tokens: 0,
|
|
1915
|
-
cache_read_input_tokens: 0,
|
|
1916
|
-
cache_creation_input_tokens: 0,
|
|
1917
|
-
output_tokens: 0,
|
|
1918
|
-
ephemeral_5m_input_tokens: 0,
|
|
1919
|
-
ephemeral_1h_input_tokens: 0,
|
|
1920
|
-
read_share: 0,
|
|
1921
|
-
weighted_input_units: 0
|
|
1922
|
-
};
|
|
1923
|
-
}
|
|
1924
|
-
function aggregateByBucket(records) {
|
|
1925
|
-
const buckets = {
|
|
1926
|
-
main: emptyAggregate("main"),
|
|
1927
|
-
subagent: emptyAggregate("subagent")
|
|
1928
|
-
};
|
|
1929
|
-
for (const rec of records) {
|
|
1930
|
-
const agg = buckets[rec.bucket];
|
|
1931
|
-
agg.calls += 1;
|
|
1932
|
-
agg.input_tokens += rec.usage.input_tokens;
|
|
1933
|
-
agg.cache_read_input_tokens += rec.usage.cache_read_input_tokens;
|
|
1934
|
-
agg.cache_creation_input_tokens += rec.usage.cache_creation_input_tokens;
|
|
1935
|
-
agg.output_tokens += rec.usage.output_tokens;
|
|
1936
|
-
agg.ephemeral_5m_input_tokens += rec.usage.ephemeral_5m_input_tokens;
|
|
1937
|
-
agg.ephemeral_1h_input_tokens += rec.usage.ephemeral_1h_input_tokens;
|
|
1938
|
-
}
|
|
1939
|
-
for (const bucket of Object.values(buckets)) {
|
|
1940
|
-
const billable = billableInputTokens(bucket);
|
|
1941
|
-
bucket.read_share = billable > 0 ? bucket.cache_read_input_tokens / billable : 0;
|
|
1942
|
-
bucket.weighted_input_units = weightedInputUnits(bucket);
|
|
1943
|
-
}
|
|
1944
|
-
return buckets;
|
|
1945
|
-
}
|
|
1946
|
-
|
|
1947
|
-
// src/scripts/_lib/spawn_env.ts
|
|
1948
|
-
var DENY_EXACT = /* @__PURE__ */ new Set([
|
|
1949
|
-
// dynamic loader
|
|
1950
|
-
"LD_PRELOAD",
|
|
1951
|
-
"LD_LIBRARY_PATH",
|
|
1952
|
-
"LD_AUDIT",
|
|
1953
|
-
"DYLD_INSERT_LIBRARIES",
|
|
1954
|
-
"DYLD_LIBRARY_PATH",
|
|
1955
|
-
"DYLD_FRAMEWORK_PATH",
|
|
1956
|
-
"GCONV_PATH",
|
|
1957
|
-
// git command-injection
|
|
1958
|
-
"GIT_EXTERNAL_DIFF",
|
|
1959
|
-
"GIT_SSH",
|
|
1960
|
-
"GIT_SSH_COMMAND",
|
|
1961
|
-
"GIT_PROXY_COMMAND",
|
|
1962
|
-
"GIT_PAGER",
|
|
1963
|
-
"PAGER",
|
|
1964
|
-
// git config-injection: GIT_ALTERNATE_OBJECT_DIRECTORIES can point git at
|
|
1965
|
-
// attacker-controlled object stores; the GIT_CONFIG* family is handled by
|
|
1966
|
-
// prefix below (it is a general arbitrary-config-injection primitive).
|
|
1967
|
-
"GIT_ALTERNATE_OBJECT_DIRECTORIES",
|
|
1968
|
-
// git path-redirection: GIT_DIR / GIT_INDEX_FILE / GIT_NAMESPACE point a
|
|
1969
|
-
// child's git at an attacker-controlled repo, index file, or ref namespace
|
|
1970
|
-
// — ordinary git ops then read and write attacker state (low severity,
|
|
1971
|
-
// same family as GIT_ALTERNATE_OBJECT_DIRECTORIES above).
|
|
1972
|
-
"GIT_DIR",
|
|
1973
|
-
"GIT_INDEX_FILE",
|
|
1974
|
-
"GIT_NAMESPACE",
|
|
1975
|
-
// resolver hijack: HOSTALIASES remaps hostnames via an attacker file,
|
|
1976
|
-
// redirecting any network fetch the child performs (CWE-427-adjacent).
|
|
1977
|
-
"HOSTALIASES",
|
|
1978
|
-
// runtime auto-exec hooks
|
|
1979
|
-
"NODE_OPTIONS",
|
|
1980
|
-
"BASH_ENV",
|
|
1981
|
-
"ENV",
|
|
1982
|
-
"PYTHONPATH",
|
|
1983
|
-
"PYTHONSTARTUP",
|
|
1984
|
-
"PYTHONINSPECT",
|
|
1985
|
-
"PERL5OPT",
|
|
1986
|
-
"PERL5LIB",
|
|
1987
|
-
"RUBYOPT",
|
|
1988
|
-
// shell field-splitting
|
|
1989
|
-
"IFS"
|
|
1990
|
-
]);
|
|
1991
|
-
function isDeniedByFamily(name) {
|
|
1992
|
-
if (name.startsWith("LD_") || name.startsWith("DYLD_")) return true;
|
|
1993
|
-
if (name.startsWith("GIT_") && name.endsWith("_COMMAND")) return true;
|
|
1994
|
-
if (name === "GIT_CONFIG" || name.startsWith("GIT_CONFIG_")) return true;
|
|
1995
|
-
return false;
|
|
1996
|
-
}
|
|
1997
|
-
function hardenedSpawnEnv(overrides = {}) {
|
|
1998
|
-
const out = {};
|
|
1999
|
-
for (const [key, value] of Object.entries(process.env)) {
|
|
2000
|
-
if (value === void 0) continue;
|
|
2001
|
-
if (DENY_EXACT.has(key)) continue;
|
|
2002
|
-
if (isDeniedByFamily(key)) continue;
|
|
2003
|
-
out[key] = value;
|
|
2004
|
-
}
|
|
2005
|
-
for (const [key, value] of Object.entries(overrides)) {
|
|
2006
|
-
out[key] = value;
|
|
2007
|
-
}
|
|
2008
|
-
return out;
|
|
2009
|
-
}
|
|
2010
|
-
|
|
2011
1756
|
export {
|
|
2012
|
-
DEFAULT_PROJECTS_ROOT,
|
|
2013
|
-
projectStoreSlug,
|
|
2014
|
-
billableInputTokens,
|
|
2015
|
-
weightedInputUnits,
|
|
2016
|
-
scanTranscripts,
|
|
2017
|
-
measureBytesPerToken,
|
|
2018
|
-
derivedBytes,
|
|
2019
|
-
aggregateByBucket,
|
|
2020
|
-
hardenedSpawnEnv,
|
|
2021
1757
|
CLI_CALLS_ATTRIBUTION_SUFFIX,
|
|
2022
1758
|
CLI_CONSUMER_COUNCIL,
|
|
2023
1759
|
CLI_CONSUMER_TEAM,
|
|
@@ -2036,5 +1772,8 @@ export {
|
|
|
2036
1772
|
admitsContent,
|
|
2037
1773
|
policyExclusionReason,
|
|
2038
1774
|
_RAW_KEY_PREFIXES,
|
|
1775
|
+
COUNCIL_CONFIG_ENV,
|
|
1776
|
+
resolve_config_path,
|
|
1777
|
+
load_council_config,
|
|
2039
1778
|
config_exports
|
|
2040
1779
|
};
|