@event4u/agent-config 16.1.0 → 16.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +98 -257
- package/README.md +14 -12
- package/dist/agent-src/commands/analyze/inbox.md +1 -1
- 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/feature/plan.md +1 -1
- package/dist/agent-src/commands/feature/roadmap.md +1 -1
- package/dist/agent-src/commands/fix/ci.md +1 -1
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- 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/process-full.md +5 -5
- package/dist/agent-src/commands/roadmap/resolve-blockers.md +361 -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/work.md +4 -0
- 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/execution/auto-dispatch-classification.md +6 -6
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +4 -8
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +32 -2
- package/dist/agent-src/contexts/execution/session-canary-enforcement-history.md +67 -0
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +101 -7
- package/dist/agent-src/rules/active-remediation.md +1 -1
- package/dist/agent-src/rules/autonomous-execution.md +1 -0
- package/dist/agent-src/rules/broken-access-control.md +1 -0
- package/dist/agent-src/rules/command-suggestion-policy.md +1 -0
- package/dist/agent-src/rules/context-hygiene.md +1 -1
- package/dist/agent-src/rules/decision-revisit-gate.md +16 -33
- package/dist/agent-src/rules/design-fidelity.md +13 -16
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -0
- package/dist/agent-src/rules/domain-safety-disclaimer.md +1 -0
- package/dist/agent-src/rules/domain-safety-pii.md +1 -0
- package/dist/agent-src/rules/domain-safety-retention.md +1 -0
- package/dist/agent-src/rules/engineering-safety-floor.md +1 -0
- package/dist/agent-src/rules/evaluator-independence.md +3 -2
- package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -0
- package/dist/agent-src/rules/finance-safety-floor.md +1 -0
- package/dist/agent-src/rules/git-history-discipline.md +1 -0
- package/dist/agent-src/rules/image-likeness-and-rights.md +1 -0
- package/dist/agent-src/rules/legal-safety-floor.md +3 -2
- package/dist/agent-src/rules/lethal-trifecta-guard.md +1 -0
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -0
- package/dist/agent-src/rules/media-governance-routing.md +14 -17
- package/dist/agent-src/rules/persona-governance.md +2 -2
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +1 -1
- package/dist/agent-src/rules/question-not-instruction.md +1 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +1 -1
- package/dist/agent-src/rules/runtime-safety.md +1 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +3 -2
- package/dist/agent-src/rules/session-canary.md +8 -62
- package/dist/agent-src/rules/settings-ask-protocol.md +1 -0
- package/dist/agent-src/rules/source-confidentiality.md +1 -0
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -0
- package/dist/agent-src/rules/tool-safety.md +1 -0
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +1 -0
- package/dist/agent-src/rules/user-interrupt-priority.md +1 -0
- 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/update_roadmap_progress.ts +4 -1
- package/dist/agent-src/skills/accessibility-auditor/data/aria-patterns.csv +1 -1
- package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +2 -2
- 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/code-intelligence/SKILL.md +14 -2
- package/dist/agent-src/skills/design-review/SKILL.md +30 -4
- package/dist/agent-src/skills/design-review/references/verification-automation.md +32 -0
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +18 -3
- package/dist/agent-src/skills/existing-ui-audit/references/component-taxonomy-detection.md +56 -0
- package/dist/agent-src/skills/fe-design/SKILL.md +1 -1
- package/dist/agent-src/skills/iconography/SKILL.md +1 -1
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +2 -2
- package/dist/agent-src/skills/markitdown/SKILL.md +4 -0
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
- package/dist/agent-src/skills/playwright-testing/SKILL.md +30 -6
- 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/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +1 -1
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +3 -3
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
- 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/ui-component-architect/SKILL.md +25 -2
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +30 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +10 -4
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +302 -21
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +22 -3
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +6 -1
- package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/dist/agent-src/templates/scripts/work_engine/state.ts +57 -7
- package/dist/agent-src/templates/scripts/work_engine/taxonomy/detect.ts +500 -0
- package/dist/agent-src/templates/scripts/work_engine/taxonomy/place.ts +183 -0
- package/dist/cli/python/knowledge_ingest.js +1 -1
- package/dist/cli/python/workspace_drive.js +1 -1
- package/dist/cli/registry.js +1 -1
- package/dist/cli-delegate/archive_completed_roadmaps.js +92 -12
- package/dist/cli-delegate/check_update_banner.js +12 -1
- package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
- package/dist/cli-delegate/{chunk-M2DPGFZ4.js → chunk-6V6TA25H.js} +22 -152
- package/dist/cli-delegate/chunk-7IQE3D5S.js +191 -0
- package/dist/cli-delegate/{chunk-6KFEC3G7.js → chunk-CQWX336L.js} +1 -1
- package/dist/cli-delegate/chunk-DEIV7XP7.js +108 -0
- package/dist/cli-delegate/chunk-EEHDXSYD.js +2040 -0
- package/dist/cli-delegate/{chunk-P6ZHP5W2.js → chunk-GKE7ZVFA.js} +4 -4
- package/dist/cli-delegate/chunk-JQOM7TTM.js +1201 -0
- package/dist/cli-delegate/{chunk-UNCRJBT3.js → chunk-JQVYKIZA.js} +41 -0
- package/dist/cli-delegate/{chunk-FC75PGJE.js → chunk-JY2I2DXV.js} +12 -1
- package/dist/cli-delegate/chunk-KB5FZ655.js +208 -0
- package/dist/cli-delegate/{chunk-YUM5KURG.js → chunk-KR6EM23A.js} +235 -1455
- package/dist/cli-delegate/{chunk-LTYVIY76.js → chunk-LIYTLH6O.js} +1 -1
- package/dist/cli-delegate/chunk-NQ7WT43P.js +2729 -0
- package/dist/cli-delegate/chunk-NXEILF2K.js +2160 -0
- package/dist/cli-delegate/{chunk-5R7HOLAF.js → chunk-NYX3L2PZ.js} +1 -1
- 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-RGNIWTEA.js → chunk-QLDHIPWR.js} +1 -1
- package/dist/cli-delegate/{chunk-HDVVGPQW.js → chunk-RQNNW7IF.js} +1405 -567
- package/dist/cli-delegate/{chunk-S3VFXMTM.js → chunk-S4UMZNES.js} +1 -1
- package/dist/cli-delegate/{chunk-6KM6ORRY.js → chunk-S4YWNRKO.js} +24 -8
- package/dist/cli-delegate/{chunk-GJCBB2UG.js → chunk-TRI6DQZ6.js} +3054 -325
- package/dist/cli-delegate/chunk-ULQRUR23.js +208 -0
- 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 +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +1 -1
- package/dist/cli-delegate/cmd_conformance.js +1862 -809
- package/dist/cli-delegate/cmd_doctor.js +13 -6
- package/dist/cli-delegate/cmd_doctor_neighbours.js +23 -0
- package/dist/cli-delegate/cmd_explain.js +5 -5
- package/dist/cli-delegate/cmd_export.js +11 -8
- package/dist/cli-delegate/cmd_fleet.js +3 -3
- package/dist/cli-delegate/cmd_handoff.js +10 -7
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_memory_get.js +3 -1
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +3 -3
- package/dist/cli-delegate/cmd_preflight.js +6 -6
- package/dist/cli-delegate/cmd_prune.js +11 -8
- package/dist/cli-delegate/cmd_refresh.js +2 -1
- package/dist/cli-delegate/cmd_route_audit.js +8 -6
- package/dist/cli-delegate/cmd_route_explain.js +4 -4
- package/dist/cli-delegate/cmd_session_recycle.js +4 -3
- package/dist/cli-delegate/cmd_settings_get.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +11 -8
- package/dist/cli-delegate/cmd_settings_set.js +4 -4
- package/dist/cli-delegate/cmd_sync.js +11 -8
- package/dist/cli-delegate/cmd_uninstall.js +11 -8
- package/dist/cli-delegate/cmd_update.js +1 -1
- package/dist/cli-delegate/cmd_upgrade.js +3 -2
- package/dist/cli-delegate/cmd_validate.js +11 -8
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/cli-delegate/deferral_carry.js +16 -0
- package/dist/cli-delegate/gate_execute.js +2 -2
- package/dist/cli-delegate/roadmap_gates.js +5 -5
- package/dist/cli-delegate/update_roadmap_progress.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +132 -80
- 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 +7 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +6 -4
- package/dist/hooks/dispatch.js +7972 -5186
- package/dist/hooks/dispatch.sha256 +1 -0
- 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 +2226 -1055
- package/dist/install/installThinLayer.js +261 -0
- package/dist/install/installedRuleLinks.js +176 -0
- package/dist/install/wizard-plan.js +24 -0
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +40913 -34865
- package/dist/scripts/_lib/agent_settings.js +11 -0
- package/dist/scripts/_lib/claude_settings_hooks.js +10 -8
- package/dist/scripts/_lib/installed_layer.js +378 -0
- package/dist/scripts/_lib/lean_projection_mode.js +218 -15
- 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/thin_rules.js +458 -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/schemas/settings.js +29 -0
- package/dist/shared/skillRanking.js +74 -13
- package/dist/ui/assets/index-Cwq4d0hX.js +23 -0
- package/dist/ui/assets/index-Cyjy8bWO.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/contracts/settings-classes.md +10 -6
- package/package.json +4 -4
- 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/update_roadmap_progress.ts +4 -1
- package/src/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +10 -4
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +302 -21
- package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +22 -3
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +6 -1
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/src/agent-src/templates/scripts/work_engine/state.ts +57 -7
- package/src/agent-src/templates/scripts/work_engine/taxonomy/detect.ts +500 -0
- package/src/agent-src/templates/scripts/work_engine/taxonomy/place.ts +183 -0
- package/src/config/agent-settings.template.yml +91 -22
- package/src/config/ci-local-parity.yml +18 -0
- package/src/config/continuity-surface.json +9 -2
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +327 -3
- package/src/config/gate-violation-baselines.json +21 -9
- package/src/config/hook-bundle-budget.json +25 -0
- package/src/config/hook-latency-budget.json +21 -0
- package/src/config/hook-token-budget.json +8 -3
- package/src/config/host-instruction-limits.json +33 -0
- package/src/config/metric-registry.yml +114 -0
- package/src/config/placeholder-drift-budget.json +10 -0
- package/src/config/routing-coverage-seed.json +38 -3
- 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 +99 -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 +312 -0
- package/src/install/installedRuleLinks.ts +220 -0
- package/src/install/wizard-plan.ts +24 -0
- package/src/scripts/_cli/cmd_doctor.ts +28 -90
- package/src/scripts/_cli/cmd_doctor_neighbours.ts +293 -0
- package/src/scripts/_cli/doctor_execution.ts +100 -17
- package/src/scripts/_cli/doctor_network_posture.ts +226 -0
- package/src/scripts/_dispatch.bash +16 -2
- package/src/scripts/_lib/agent_settings.ts +11 -0
- package/src/scripts/_lib/body_portable.ts +102 -0
- package/src/scripts/_lib/cc_transcript.ts +132 -1
- package/src/scripts/_lib/claude_settings_hooks.ts +10 -8
- package/src/scripts/_lib/concern_sla_window.ts +200 -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/forge_protection.ts +114 -0
- package/src/scripts/_lib/forge_reader.ts +558 -0
- package/src/scripts/_lib/gitignore_block.ts +314 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +32 -0
- package/src/scripts/_lib/graph_feeder_record.ts +214 -0
- package/src/scripts/_lib/hook_settings.ts +73 -0
- package/src/scripts/_lib/host_capability.ts +40 -19
- package/src/scripts/_lib/host_env_write.ts +111 -0
- package/src/scripts/_lib/host_hook_merge.ts +165 -0
- package/src/scripts/_lib/installed_layer.ts +538 -0
- package/src/scripts/_lib/json_merge.ts +82 -0
- package/src/scripts/_lib/json_pointers.ts +93 -11
- package/src/scripts/_lib/lean_projection_mode.ts +275 -15
- package/src/scripts/_lib/llm_proposer_transport.ts +14 -4
- package/src/scripts/_lib/machine_wake.ts +16 -3
- package/src/scripts/_lib/neighbour_census.ts +760 -0
- package/src/scripts/_lib/neighbour_scan.ts +122 -0
- package/src/scripts/_lib/neighbour_tool_use.ts +189 -0
- package/src/scripts/_lib/obligations.ts +119 -8
- package/src/scripts/_lib/probe_inputs.ts +271 -0
- package/src/scripts/_lib/prompt_shape.ts +46 -0
- package/src/scripts/_lib/read_surface_scan.ts +322 -0
- package/src/scripts/_lib/release_highlights.ts +2 -1
- package/src/scripts/_lib/release_migration_gate.ts +19 -3
- package/src/scripts/_lib/reserved_name_sweep.ts +73 -0
- package/src/scripts/_lib/retrieval_sanitize.ts +77 -16
- 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/shell_write_shapes.ts +108 -0
- package/src/scripts/_lib/skill_origin.ts +254 -0
- package/src/scripts/_lib/structural_hiding.ts +622 -0
- package/src/scripts/_lib/structured_ask.ts +64 -21
- package/src/scripts/_lib/thin_rules.ts +540 -0
- package/src/scripts/_lib/touched_file_quality.ts +434 -0
- package/src/scripts/_lib/turn_end_refusals.ts +600 -4
- package/src/scripts/_lib/turn_end_transcript.ts +216 -0
- package/src/scripts/_lib/verification_command.ts +324 -0
- package/src/scripts/_lib/verification_evidence.ts +647 -0
- package/src/scripts/_lib/verify_clause.ts +280 -0
- package/src/scripts/_lib/windsurf_render.ts +63 -0
- 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 +1 -1
- package/src/scripts/ai_council/vendor_defaults.ts +45 -0
- package/src/scripts/ai_team/team_dispatch.ts +4 -0
- package/src/scripts/audit_skill_overlap.ts +261 -0
- package/src/scripts/before_complete_hook.ts +573 -25
- package/src/scripts/bench_hook_latency.ts +412 -5
- package/src/scripts/bench_touched_file_quality.ts +238 -0
- package/src/scripts/cache_realization_report.ts +61 -1
- package/src/scripts/check_argument_hint.ts +287 -0
- package/src/scripts/check_claims.ts +125 -1
- package/src/scripts/check_enforcement_coverage.ts +38 -9
- package/src/scripts/check_enforcement_matrix.ts +621 -22
- package/src/scripts/check_estate_count.ts +130 -153
- package/src/scripts/check_finding_dispositions.ts +138 -7
- package/src/scripts/check_generator_sync.ts +71 -0
- package/src/scripts/check_hook_bundle_composition.ts +370 -0
- package/src/scripts/check_host_docs_digest.ts +786 -0
- package/src/scripts/check_host_format_column.ts +559 -0
- package/src/scripts/check_input_references.ts +228 -0
- package/src/scripts/check_inputs_parity.ts +235 -0
- package/src/scripts/check_kernel_edit_ratified.ts +89 -9
- package/src/scripts/check_kill_switch_table.ts +294 -0
- package/src/scripts/check_memory.ts +7 -1
- package/src/scripts/check_placeholder_drift.ts +221 -0
- package/src/scripts/check_read_surface_coverage.ts +515 -0
- package/src/scripts/check_release_highlights.ts +10 -0
- package/src/scripts/check_release_holds.ts +2 -1
- package/src/scripts/check_release_pr_shape.ts +38 -15
- package/src/scripts/check_routing_coverage.ts +378 -11
- package/src/scripts/check_standing_rule_delivery.ts +33 -13
- package/src/scripts/check_static_parity.ts +17 -0
- package/src/scripts/check_verify_expectation_delta.ts +521 -0
- package/src/scripts/ci_settle.ts +145 -19
- package/src/scripts/closure_scan.ts +115 -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/compile_hook_manifest.ts +90 -14
- package/src/scripts/condense.ts +14 -27
- package/src/scripts/estate_exemption_shape.ts +202 -0
- package/src/scripts/external_sources_denylist.json +29 -4
- package/src/scripts/generate_host_cost_table.ts +1 -1
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +192 -14
- package/src/scripts/hooks/block_config_weakening.ts +294 -4
- package/src/scripts/hooks/block_kernel_rule_writes.ts +9 -78
- package/src/scripts/hooks/block_plumbing_writes.ts +342 -0
- package/src/scripts/hooks/bundle_integrity.ts +291 -0
- package/src/scripts/hooks/chain_nudge_hook.ts +1 -2
- package/src/scripts/hooks/code_graph_context_hook.ts +253 -25
- package/src/scripts/hooks/comment_discipline_hook.ts +1 -3
- package/src/scripts/hooks/concern_failure_policy.ts +280 -0
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/concern_timings.ts +94 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +1 -2
- package/src/scripts/hooks/design_pass_hook.ts +100 -9
- package/src/scripts/hooks/design_slop_hook.ts +1 -2
- package/src/scripts/hooks/dispatch_hook.ts +77 -71
- package/src/scripts/hooks/edit_shape_hook.ts +1 -2
- package/src/scripts/hooks/end_review_nudge_hook.ts +1 -1
- package/src/scripts/hooks/evidence_independence.ts +1 -2
- package/src/scripts/hooks/exit_codes.ts +129 -0
- package/src/scripts/hooks/host_lowering.json +1 -0
- package/src/scripts/hooks/host_lowering.ts +146 -3
- package/src/scripts/hooks/host_lowering.yaml +262 -46
- package/src/scripts/hooks/host_semantics.ts +30 -2
- package/src/scripts/hooks/injection_budget.ts +9 -2
- package/src/scripts/hooks/interruption_ledger_hook.ts +1 -2
- package/src/scripts/hooks/journal_record_hook.ts +1 -2
- package/src/scripts/hooks/memory_recall_hook.ts +1 -2
- package/src/scripts/hooks/obligation_settle_hook.ts +151 -5
- package/src/scripts/hooks/one_question_per_ask_hook.ts +43 -6
- package/src/scripts/hooks/orchestration_record_hook.ts +1 -2
- package/src/scripts/hooks/payload_stub.ts +10 -1
- package/src/scripts/hooks/permission_gate.ts +1 -2
- package/src/scripts/hooks/push_settle_hook.ts +1 -3
- package/src/scripts/hooks/replay_hook.ts +2 -1
- package/src/scripts/hooks/reread_guard_hook.ts +1 -2
- package/src/scripts/hooks/review_baseline_hook.ts +1 -2
- package/src/scripts/hooks/rtk_wrap_hook.ts +1 -2
- package/src/scripts/hooks/rule_inject_hook.ts +765 -68
- package/src/scripts/hooks/run_continuation_hook.ts +13 -15
- package/src/scripts/hooks/skill_route_hook.ts +1 -2
- package/src/scripts/hooks/source_first_gate_hook.ts +1 -2
- package/src/scripts/hooks/spawn_guard_shadow_hook.ts +1 -2
- package/src/scripts/hooks/subagent_ledger_hook.ts +1 -2
- package/src/scripts/hooks/suggestion_capture_hook.ts +1 -1
- package/src/scripts/hooks/table_fingerprint.ts +70 -0
- package/src/scripts/hooks/telemetry_flush_hook.ts +1 -2
- package/src/scripts/hooks/telemetry_usage_hook.ts +65 -10
- package/src/scripts/hooks/tool_result_bytes_hook.ts +93 -9
- package/src/scripts/hooks/turn_end_gate_hook.ts +421 -324
- package/src/scripts/hooks/ui_route_nudge_hook.ts +1 -2
- package/src/scripts/hooks_status.ts +112 -0
- package/src/scripts/injection_scan_hook.ts +7 -0
- package/src/scripts/install.ts +75 -189
- 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_deny_text.ts +419 -0
- package/src/scripts/lint_exit_codes.ts +262 -0
- package/src/scripts/lint_hook_manifest.ts +108 -0
- package/src/scripts/lint_major_migration_sections.ts +156 -26
- package/src/scripts/lint_pack_boundaries.ts +63 -5
- package/src/scripts/lint_roadmap_blockers.ts +78 -12
- package/src/scripts/lint_rule_law_section.ts +517 -0
- package/src/scripts/lint_skill_descriptions.ts +1 -1
- package/src/scripts/lint_skill_scripts_readonly.ts +1 -1
- package/src/scripts/lint_workflow_security.ts +161 -5
- package/src/scripts/mcp_server/consumer_tool_catalog.json +53 -0
- package/src/scripts/mcp_server/graph_tools.ts +72 -3
- package/src/scripts/mcp_server/prompts.ts +142 -1
- package/src/scripts/measure_routing_signal.ts +54 -16
- package/src/scripts/measure_skill_ranker_baseline.ts +515 -53
- package/src/scripts/measure_turn_end_gate.ts +193 -0
- package/src/scripts/memory_learn_hook.ts +91 -6
- package/src/scripts/memory_lookup.ts +1 -1
- package/src/scripts/model_rule_injection.ts +52 -5
- package/src/scripts/prepack-check.mjs +53 -0
- package/src/scripts/project_thin_rules.ts +34 -327
- package/src/scripts/release_publication.ts +13 -1
- package/src/scripts/report_evidence_temperature.ts +657 -0
- package/src/scripts/report_installed_rule_links.ts +157 -0
- package/src/scripts/report_invocation_surface.ts +383 -0
- package/src/scripts/report_label_agreement.ts +233 -0
- package/src/scripts/report_obligation_carriers.ts +699 -0
- package/src/scripts/report_obligation_mechanism.ts +230 -0
- package/src/scripts/report_obligation_writer_split.ts +236 -0
- package/src/scripts/report_single_token_triggers.ts +277 -0
- package/src/scripts/report_skill_menu_census.ts +208 -0
- package/src/scripts/report_skill_ranker_confusion.ts +442 -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/roadmap_verify_share.ts +213 -0
- package/src/scripts/rule_activation_census.ts +5 -2
- package/src/scripts/rule_trigger_eval.ts +9 -9
- package/src/scripts/schemas/command.schema.json +44 -0
- package/src/scripts/schemas/review-findings.schema.json +7 -2
- package/src/scripts/schemas/rule.schema.json +5 -0
- package/src/scripts/schemas/skill.schema.json +44 -0
- package/src/scripts/self_review_gate.ts +421 -17
- package/src/scripts/semantic_parity_census.ts +314 -0
- package/src/scripts/session_eol_report.ts +54 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +290 -25
- package/src/scripts/sweep_dead_scan_roots.ts +1 -1
- package/src/scripts/sweep_skill_ranker_signals.ts +129 -0
- package/src/scripts/sync_gitignore.ts +29 -235
- package/src/scripts/trigger_eval_grandfather.json +0 -7
- package/src/scripts/trigger_eval_rotation.ts +122 -27
- package/src/scripts/ui_conformance_probe.ts +156 -4
- package/src/scripts/update_prices.ts +85 -3
- package/src/scripts/write_bundle_digest.mjs +74 -0
- package/src/server/schemas/settings.ts +41 -0
- package/src/shared/skillRanking.ts +117 -11
- package/src/templates/consumer-settings/ONBOARDING.md +1 -0
- package/dist/cli-delegate/chunk-FXYUYU4N.js +0 -4416
- package/dist/cli-delegate/chunk-QJWAUMJW.js +0 -1072
- package/dist/cli-delegate/chunk-YDPILCOL.js +0 -152
- package/dist/ui/assets/index-DH1xc62v.js +0 -29
- package/dist/ui/assets/index-jSfMW8_t.css +0 -1
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/scripts/_lib/gitignore_block.ts
|
|
4
|
+
import * as fs from "node:fs";
|
|
5
|
+
import * as path from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
var SECTION_HEADER = "# event4u/agent-config";
|
|
8
|
+
var SECTION_FOOTER = "# event4u/agent-config \u2014 END";
|
|
9
|
+
var DEFAULT_GITIGNORE = ".gitignore";
|
|
10
|
+
var _HERE = fileURLToPath(import.meta.url);
|
|
11
|
+
var DEFAULT_TEMPLATE = path.join(
|
|
12
|
+
path.dirname(_HERE),
|
|
13
|
+
"..",
|
|
14
|
+
"..",
|
|
15
|
+
"..",
|
|
16
|
+
"src",
|
|
17
|
+
"config",
|
|
18
|
+
"gitignore-block.txt"
|
|
19
|
+
);
|
|
20
|
+
var LEGACY_PATTERNS = [
|
|
21
|
+
".agent-chat-history",
|
|
22
|
+
".agent-chat-history.bak",
|
|
23
|
+
".agent-chat-history.*.bak",
|
|
24
|
+
".agent-prices.md",
|
|
25
|
+
".council-tmp/",
|
|
26
|
+
// 2.x intermediate: prices cache lived directly under agents/ before
|
|
27
|
+
// consolidating under agents/runtime/.
|
|
28
|
+
"agents/.agent-prices.md",
|
|
29
|
+
// Budget history JSONLs — previously listed explicitly at project
|
|
30
|
+
// root or under agents/; now covered by the /agents/runtime/
|
|
31
|
+
// catch-all in the managed block.
|
|
32
|
+
".augment-budget-history.jsonl",
|
|
33
|
+
".rule-budget-history.jsonl",
|
|
34
|
+
"agents/.augment-budget-history.jsonl",
|
|
35
|
+
"agents/.rule-budget-history.jsonl"
|
|
36
|
+
];
|
|
37
|
+
function _strip(ln) {
|
|
38
|
+
return ln.replace(/\n+$/, "").replace(/\s+$/, "");
|
|
39
|
+
}
|
|
40
|
+
function _is_entry(ln) {
|
|
41
|
+
const s = _strip(ln).replace(/^\s+/, "");
|
|
42
|
+
return Boolean(s) && !s.startsWith("#");
|
|
43
|
+
}
|
|
44
|
+
var TemplateNotFoundError = class extends Error {
|
|
45
|
+
constructor(p) {
|
|
46
|
+
super(`template not found: ${p}`);
|
|
47
|
+
this.name = "TemplateNotFoundError";
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
function _isFile(p) {
|
|
51
|
+
try {
|
|
52
|
+
return fs.statSync(p).isFile();
|
|
53
|
+
} catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function _splitlines(text) {
|
|
58
|
+
if (text === "") return [];
|
|
59
|
+
const parts = text.split(/\r\n|\r|\n/);
|
|
60
|
+
if (parts.length > 0 && parts[parts.length - 1] === "") parts.pop();
|
|
61
|
+
return parts;
|
|
62
|
+
}
|
|
63
|
+
function load_template(p) {
|
|
64
|
+
if (!_isFile(p)) {
|
|
65
|
+
throw new TemplateNotFoundError(p);
|
|
66
|
+
}
|
|
67
|
+
const text = fs.readFileSync(p, "utf-8");
|
|
68
|
+
return _splitlines(text).map(_strip);
|
|
69
|
+
}
|
|
70
|
+
function find_block(lines) {
|
|
71
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
72
|
+
if (_strip(lines[i]) === SECTION_HEADER) {
|
|
73
|
+
const start = i;
|
|
74
|
+
for (let j = i + 1; j < lines.length; j += 1) {
|
|
75
|
+
if (_strip(lines[j]) === SECTION_FOOTER) {
|
|
76
|
+
return [start, j + 1];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
let end = lines.length;
|
|
80
|
+
for (let j = i + 1; j < lines.length; j += 1) {
|
|
81
|
+
const s = _strip(lines[j]).replace(/^\s+/, "");
|
|
82
|
+
if (s.startsWith("#") && !s.startsWith("# Agent config") && s !== SECTION_HEADER) {
|
|
83
|
+
end = j;
|
|
84
|
+
while (end > i + 1 && _strip(lines[end - 1]) === "") {
|
|
85
|
+
end -= 1;
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return [start, end];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
function block_entries(block_lines) {
|
|
96
|
+
return block_lines.filter((ln) => _is_entry(ln)).map((ln) => _strip(ln).replace(/^\s+/, ""));
|
|
97
|
+
}
|
|
98
|
+
function template_entries(template_lines) {
|
|
99
|
+
return template_lines.filter((ln) => _is_entry(ln)).map((ln) => ln.replace(/^\s+/, ""));
|
|
100
|
+
}
|
|
101
|
+
function build_fresh_block(template_lines) {
|
|
102
|
+
return [SECTION_HEADER, ...template_lines, SECTION_FOOTER];
|
|
103
|
+
}
|
|
104
|
+
function sync_block(existing_lines, template_lines, options = {}) {
|
|
105
|
+
const replace = options.replace ?? false;
|
|
106
|
+
const loc = find_block(existing_lines);
|
|
107
|
+
const fresh = build_fresh_block(template_lines);
|
|
108
|
+
if (loc === null) {
|
|
109
|
+
const newLines = [...existing_lines];
|
|
110
|
+
if (newLines.length > 0 && _strip(newLines[newLines.length - 1]) !== "") {
|
|
111
|
+
newLines.push("");
|
|
112
|
+
}
|
|
113
|
+
newLines.push(...fresh);
|
|
114
|
+
return [newLines, template_entries(template_lines)];
|
|
115
|
+
}
|
|
116
|
+
const [start, end] = loc;
|
|
117
|
+
const head = existing_lines.slice(0, start);
|
|
118
|
+
let block = existing_lines.slice(start, end);
|
|
119
|
+
const tail = existing_lines.slice(end);
|
|
120
|
+
if (replace) {
|
|
121
|
+
const existing = new Set(block_entries(block));
|
|
122
|
+
const added = template_entries(template_lines).filter((e) => !existing.has(e));
|
|
123
|
+
return [[...head, ...fresh, ...tail], added];
|
|
124
|
+
}
|
|
125
|
+
const existing_entries = new Set(block_entries(block));
|
|
126
|
+
const missing = template_entries(template_lines).filter((e) => !existing_entries.has(e));
|
|
127
|
+
if (missing.length === 0) {
|
|
128
|
+
return [[...existing_lines], []];
|
|
129
|
+
}
|
|
130
|
+
let insert_at;
|
|
131
|
+
if (block.length > 0 && _strip(block[block.length - 1]) === SECTION_FOOTER) {
|
|
132
|
+
insert_at = block.length - 1;
|
|
133
|
+
} else {
|
|
134
|
+
block = [...block, SECTION_FOOTER];
|
|
135
|
+
insert_at = block.length - 1;
|
|
136
|
+
}
|
|
137
|
+
const new_block = [...block.slice(0, insert_at), ...missing, ...block.slice(insert_at)];
|
|
138
|
+
return [[...head, ...new_block, ...tail], missing];
|
|
139
|
+
}
|
|
140
|
+
function cleanup_legacy(lines) {
|
|
141
|
+
const legacy = new Set(LEGACY_PATTERNS);
|
|
142
|
+
const kept = [];
|
|
143
|
+
const removed = [];
|
|
144
|
+
for (const ln of lines) {
|
|
145
|
+
const s = _strip(ln).replace(/^\s+/, "");
|
|
146
|
+
if (legacy.has(s) || s.startsWith("/") && legacy.has(s.slice(1))) {
|
|
147
|
+
removed.push(s);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
kept.push(ln);
|
|
151
|
+
}
|
|
152
|
+
return [kept, removed];
|
|
153
|
+
}
|
|
154
|
+
function format_file(lines) {
|
|
155
|
+
const text = lines.join("\n");
|
|
156
|
+
return text.replace(/\n+$/, "") + "\n";
|
|
157
|
+
}
|
|
158
|
+
function write_managed_block(project_root, dry_run) {
|
|
159
|
+
const target = path.join(project_root, DEFAULT_GITIGNORE);
|
|
160
|
+
let template;
|
|
161
|
+
try {
|
|
162
|
+
template = load_template(DEFAULT_TEMPLATE);
|
|
163
|
+
} catch {
|
|
164
|
+
return 0;
|
|
165
|
+
}
|
|
166
|
+
let existing = [];
|
|
167
|
+
if (_isFile(target)) {
|
|
168
|
+
existing = _splitlines(fs.readFileSync(target, "utf-8"));
|
|
169
|
+
} else if (!_isFile(path.join(project_root, ".git")) && !_isDir(path.join(project_root, ".git"))) {
|
|
170
|
+
return 0;
|
|
171
|
+
}
|
|
172
|
+
const [lines, added] = sync_block(existing, template);
|
|
173
|
+
if (added.length === 0 || dry_run) return added.length;
|
|
174
|
+
try {
|
|
175
|
+
fs.writeFileSync(target, format_file(lines), "utf-8");
|
|
176
|
+
} catch {
|
|
177
|
+
return 0;
|
|
178
|
+
}
|
|
179
|
+
return added.length;
|
|
180
|
+
}
|
|
181
|
+
function _isDir(p) {
|
|
182
|
+
try {
|
|
183
|
+
return fs.statSync(p).isDirectory();
|
|
184
|
+
} catch {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export {
|
|
190
|
+
SECTION_HEADER,
|
|
191
|
+
SECTION_FOOTER,
|
|
192
|
+
DEFAULT_GITIGNORE,
|
|
193
|
+
DEFAULT_TEMPLATE,
|
|
194
|
+
LEGACY_PATTERNS,
|
|
195
|
+
_strip,
|
|
196
|
+
TemplateNotFoundError,
|
|
197
|
+
_isFile,
|
|
198
|
+
_splitlines,
|
|
199
|
+
load_template,
|
|
200
|
+
find_block,
|
|
201
|
+
block_entries,
|
|
202
|
+
template_entries,
|
|
203
|
+
build_fresh_block,
|
|
204
|
+
sync_block,
|
|
205
|
+
cleanup_legacy,
|
|
206
|
+
format_file,
|
|
207
|
+
write_managed_block
|
|
208
|
+
};
|
|
@@ -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,7 +1,7 @@
|
|
|
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-
|
|
4
|
+
} from "./chunk-JY2I2DXV.js";
|
|
5
5
|
import "./chunk-NDJLNC6Q.js";
|
|
6
6
|
import "./chunk-J55WI3RR.js";
|
|
7
7
|
|