@event4u/agent-config 14.7.0 → 14.9.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.
Files changed (230) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +175 -390
  3. package/README.md +1 -1
  4. package/agents/templates/.ai-council.yml.example +34 -4
  5. package/dist/agent-src/commands/evals/git-pr-merge.json +13 -0
  6. package/dist/agent-src/commands/evals/roadmap.json +17 -1
  7. package/dist/agent-src/commands/pr/create.md +14 -2
  8. package/dist/agent-src/commands/pr/merge.md +383 -0
  9. package/dist/agent-src/commands/review/changes.md +95 -14
  10. package/dist/agent-src/commands/roadmap/process-full.md +157 -3
  11. package/dist/agent-src/commands/roadmap.md +1 -1
  12. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +46 -36
  13. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +37 -2
  14. package/dist/agent-src/contexts/execution/host-capability-manifest.md +77 -0
  15. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +100 -2
  16. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +154 -2
  17. package/dist/agent-src/contexts/execution/subagent-response-contract.md +80 -0
  18. package/dist/agent-src/rules/artifact-drafting-protocol.md +5 -1
  19. package/dist/agent-src/rules/decision-revisit-gate.md +65 -33
  20. package/dist/agent-src/rules/recurring-criticism.md +1 -1
  21. package/dist/agent-src/rules/roadmap-progress-sync.md +19 -0
  22. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  23. package/dist/agent-src/rules/untrusted-input-defense.md +9 -3
  24. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +7 -4
  25. package/dist/agent-src/scripts/dashboard_mode.ts +212 -0
  26. package/dist/agent-src/scripts/update_roadmap_progress.ts +47 -48
  27. package/dist/agent-src/skills/adr-create/SKILL.md +124 -5
  28. package/dist/agent-src/skills/code-review/evals/evals.json +87 -46
  29. package/dist/agent-src/skills/decision-record/SKILL.md +61 -3
  30. package/dist/agent-src/skills/decision-review/SKILL.md +65 -0
  31. package/dist/agent-src/skills/humanizer/SKILL.md +39 -0
  32. package/dist/agent-src/skills/humanizer/evals/strip_fixtures.json +57 -0
  33. package/dist/agent-src/skills/humanizer/references/fixtures.md +54 -0
  34. package/dist/agent-src/skills/judge-spec-compliance/SKILL.md +154 -0
  35. package/dist/agent-src/skills/judge-synthesis/SKILL.md +45 -0
  36. package/dist/agent-src/skills/merge-conflicts/SKILL.md +26 -0
  37. package/dist/agent-src/skills/roadmap-writing/SKILL.md +18 -18
  38. package/dist/agent-src/skills/security/SKILL.md +8 -0
  39. package/dist/agent-src/skills/security-audit/SKILL.md +12 -1
  40. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  41. package/dist/agent-src/templates/roadmaps.md +28 -2
  42. package/dist/cli/registry.js +3 -0
  43. package/dist/cli/registry.js.map +1 -1
  44. package/dist/cli-delegate/{chunk-FBKL6JWT.js → chunk-77GR3VD4.js} +68 -43
  45. package/dist/cli-delegate/{chunk-JZ4NR2TW.js → chunk-7PRE6ZV2.js} +1 -1
  46. package/dist/cli-delegate/{chunk-UEZ7D35A.js → chunk-CYH5SP6M.js} +4 -23
  47. package/dist/cli-delegate/{chunk-Q26HT4QT.js → chunk-E46KPN6K.js} +251 -150
  48. package/dist/cli-delegate/{chunk-74E3TKWV.js → chunk-H4VIVD4C.js} +5 -5
  49. package/dist/cli-delegate/chunk-I3EIN2YG.js +36 -0
  50. package/dist/cli-delegate/{chunk-4VR4ORQ6.js → chunk-LPPWO5CE.js} +4 -3
  51. package/dist/cli-delegate/{chunk-7F3VYSM2.js → chunk-PLSG6UL5.js} +14 -14
  52. package/dist/cli-delegate/cmd_adr_effective.js +1162 -0
  53. package/dist/cli-delegate/cmd_conformance.js +101 -25
  54. package/dist/cli-delegate/cmd_converge.js +3 -3
  55. package/dist/cli-delegate/cmd_doctor.js +7 -7
  56. package/dist/cli-delegate/cmd_export.js +6 -6
  57. package/dist/cli-delegate/cmd_handoff.js +7 -6
  58. package/dist/cli-delegate/cmd_memory_get.js +2 -1
  59. package/dist/cli-delegate/cmd_migrate.js +2 -2
  60. package/dist/cli-delegate/cmd_preflight.js +5 -5
  61. package/dist/cli-delegate/cmd_prune.js +6 -6
  62. package/dist/cli-delegate/cmd_route_audit.js +6 -5
  63. package/dist/cli-delegate/cmd_route_explain.js +3 -3
  64. package/dist/cli-delegate/cmd_session_recycle.js +3 -3
  65. package/dist/cli-delegate/cmd_settings_get.js +4 -4
  66. package/dist/cli-delegate/cmd_settings_migrate.js +6 -6
  67. package/dist/cli-delegate/cmd_settings_set.js +1 -1
  68. package/dist/cli-delegate/cmd_sync.js +6 -6
  69. package/dist/cli-delegate/cmd_uninstall.js +6 -6
  70. package/dist/cli-delegate/cmd_update.js +3 -3
  71. package/dist/cli-delegate/cmd_upgrade.js +3 -3
  72. package/dist/cli-delegate/cmd_validate.js +6 -6
  73. package/dist/cli-delegate/cmd_versions.js +3 -3
  74. package/dist/discovery/deprecation-report.md +1 -1
  75. package/dist/discovery/discovery-manifest.json +83 -30
  76. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  77. package/dist/discovery/discovery-manifest.summary.md +4 -4
  78. package/dist/discovery/dormancy-report.md +1 -1
  79. package/dist/discovery/orphan-report.md +1 -1
  80. package/dist/discovery/packs.json +11 -9
  81. package/dist/discovery/trust-report.md +2 -2
  82. package/dist/discovery/workspaces.json +9 -7
  83. package/dist/hooks/dispatch.js +1295 -812
  84. package/dist/install/globalRuleLayers.js +169 -0
  85. package/dist/install/globalRuleLayers.js.map +1 -0
  86. package/dist/install/partitionEligibility.js +156 -0
  87. package/dist/install/partitionEligibility.js.map +1 -1
  88. package/dist/install/ruleLayerPartition.js +157 -0
  89. package/dist/install/ruleLayerPartition.js.map +1 -0
  90. package/dist/mcp/registry-manifest.json +3 -3
  91. package/dist/mcp/server.json +2 -2
  92. package/dist/mcp/server.mjs +1358 -805
  93. package/dist/scripts/_lib/claude_plugin.js +162 -0
  94. package/dist/scripts/_lib/claude_plugin.js.map +1 -0
  95. package/dist/scripts/_lib/environment_detector.js +397 -0
  96. package/dist/scripts/_lib/environment_detector.js.map +1 -0
  97. package/dist/scripts/_lib/prune_empty_dirs.js +85 -0
  98. package/dist/scripts/_lib/prune_empty_dirs.js.map +1 -0
  99. package/dist/scripts/_lib/spawn_env.js +129 -0
  100. package/dist/scripts/_lib/spawn_env.js.map +1 -0
  101. package/dist/scripts/ai_council/modes.js +199 -0
  102. package/dist/scripts/ai_council/modes.js.map +1 -0
  103. package/dist/scripts/ai_council/transport_resolver.js +418 -0
  104. package/dist/scripts/ai_council/transport_resolver.js.map +1 -0
  105. package/dist/scripts/condense.js +52 -89
  106. package/dist/scripts/condense.js.map +1 -1
  107. package/dist/server/routes/wizard.js +3 -2
  108. package/dist/server/routes/wizard.js.map +1 -1
  109. package/dist/ui/assets/index-Cxgy63kz.js +26 -0
  110. package/dist/ui/assets/index-Cxgy63kz.js.map +1 -0
  111. package/dist/ui/index.html +1 -1
  112. package/docs/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +45 -1
  113. package/docs/guidelines/agent-infra/false-green.md +47 -1
  114. package/docs/guidelines/agent-infra/traceability-field-mechanics.md +50 -0
  115. package/docs/guidelines/agent-infra/untrusted-input-spotlighting.md +17 -0
  116. package/package.json +7 -3
  117. package/src/agent-src/scripts/archive_completed_roadmaps.ts +7 -4
  118. package/src/agent-src/scripts/dashboard_mode.ts +212 -0
  119. package/src/agent-src/scripts/update_roadmap_progress.ts +47 -48
  120. package/src/config/ci-local-parity.yml +21 -0
  121. package/src/config/estate-count-budget.json +13 -471
  122. package/src/config/evaluator-budgets.json +4 -4
  123. package/src/config/gate-coverage.yml +458 -12
  124. package/src/config/gate-violation-baselines.json +18 -8
  125. package/src/config/gitignore-block.txt +15 -2
  126. package/src/config/hook-latency-budget.json +5 -0
  127. package/src/config/publish-surface.json +60 -0
  128. package/src/config/requirements-trace-budget.json +32 -0
  129. package/src/config/rule-stub-ceilings.json +25 -4
  130. package/src/install/globalRuleLayers.ts +197 -0
  131. package/src/install/partitionEligibility.ts +177 -0
  132. package/src/install/ruleLayerPartition.ts +212 -0
  133. package/src/scripts/_cli/cmd_adr_effective.ts +484 -0
  134. package/src/scripts/_dispatch.bash +18 -0
  135. package/src/scripts/_lib/adr_frontmatter.test.ts +365 -0
  136. package/src/scripts/_lib/adr_frontmatter.ts +459 -0
  137. package/src/scripts/_lib/base_tree.ts +175 -0
  138. package/src/scripts/_lib/billing_grant.ts +165 -0
  139. package/src/scripts/_lib/billing_grant_cli.ts +123 -0
  140. package/src/scripts/_lib/council_fallback_posture.ts +53 -6
  141. package/src/scripts/_lib/council_fallback_wiring.ts +61 -1
  142. package/src/scripts/_lib/envelope_grounding.ts +11 -1
  143. package/src/scripts/_lib/host_capability.ts +59 -5
  144. package/src/scripts/_lib/layer_overlap_notice.ts +11 -2
  145. package/src/scripts/_lib/prune_empty_dirs.ts +80 -0
  146. package/src/scripts/_lib/quota_parked.ts +133 -0
  147. package/src/scripts/_lib/retrieval_sanitize.ts +62 -0
  148. package/src/scripts/_lib/review_telemetry.ts +196 -0
  149. package/src/scripts/_lib/subagent_response.ts +92 -0
  150. package/src/scripts/adr/evidence_census.ts +899 -0
  151. package/src/scripts/adr/regenerate_index.ts +25 -38
  152. package/src/scripts/adr_cite_check.ts +540 -39
  153. package/src/scripts/ai_council/clients.ts +12 -1
  154. package/src/scripts/ai_council/config.ts +72 -115
  155. package/src/scripts/ai_council/fallback_config.ts +19 -7
  156. package/src/scripts/ai_council/mid_flight_fallback.ts +88 -7
  157. package/src/scripts/ai_council/orchestrator.ts +2 -2
  158. package/src/scripts/ai_council/py_format.ts +124 -0
  159. package/src/scripts/ai_council/transport_resolver.ts +65 -2
  160. package/src/scripts/audit_adr_coverage.ts +134 -21
  161. package/src/scripts/bench_hook_latency.ts +204 -0
  162. package/src/scripts/build_archive_index.ts +34 -0
  163. package/src/scripts/check_adr_frontmatter.ts +574 -39
  164. package/src/scripts/check_council_pin_staleness.ts +300 -0
  165. package/src/scripts/check_estate_count.ts +420 -293
  166. package/src/scripts/check_gate_coverage.ts +91 -0
  167. package/src/scripts/check_hook_bundle_content.ts +219 -0
  168. package/src/scripts/check_new_adr_evidence.ts +529 -0
  169. package/src/scripts/check_no_stub_inventory_table.ts +292 -0
  170. package/src/scripts/check_pack_size.ts +234 -1
  171. package/src/scripts/check_publish_surface.ts +297 -0
  172. package/src/scripts/check_references.ts +18 -0
  173. package/src/scripts/check_requirements_trace.ts +378 -0
  174. package/src/scripts/check_rule_layer_partition.ts +531 -0
  175. package/src/scripts/check_secret_leak.ts +166 -12
  176. package/src/scripts/check_single_delivery.ts +137 -4
  177. package/src/scripts/check_standing_rule_delivery.ts +8 -2
  178. package/src/scripts/code_graph/cli.ts +44 -5
  179. package/src/scripts/code_graph/extract.ts +87 -0
  180. package/src/scripts/condense.ts +61 -91
  181. package/src/scripts/council_cli.ts +12 -16
  182. package/src/scripts/detect_ai_tells.ts +87 -0
  183. package/src/scripts/dispatch_r2_reviewer.ts +42 -0
  184. package/src/scripts/external_sources_denylist.json +4 -1
  185. package/src/scripts/generate_capabilities_index.ts +41 -0
  186. package/src/scripts/git_authorization_hook.ts +54 -4
  187. package/src/scripts/hooks/block_unauthorized_git.ts +41 -3
  188. package/src/scripts/hooks/dispatch_hook.ts +154 -187
  189. package/src/scripts/hooks/dispatch_issues.ts +38 -19
  190. package/src/scripts/hooks/fallback_yaml.ts +66 -0
  191. package/src/scripts/hooks/host_semantics.ts +21 -0
  192. package/src/scripts/hooks/injection_budget.ts +13 -3
  193. package/src/scripts/hooks/py_json_dumps.ts +103 -0
  194. package/src/scripts/hooks/run_continuation_hook.ts +3 -1
  195. package/src/scripts/hooks/state_io.ts +88 -1
  196. package/src/scripts/hooks/stdin_failure_policy.ts +96 -0
  197. package/src/scripts/hooks/subagent_ledger_hook.ts +76 -11
  198. package/src/scripts/injection_scan_hook.ts +257 -15
  199. package/src/scripts/lint_adr_sweep_routing.ts +365 -0
  200. package/src/scripts/lint_hook_manifest.ts +49 -0
  201. package/src/scripts/lint_provenance_vocabulary.ts +472 -4
  202. package/src/scripts/lint_workflow_security.ts +53 -10
  203. package/src/scripts/lint_workflow_security_allowlist.json +2 -18
  204. package/src/scripts/report_envelope_rate.ts +166 -0
  205. package/src/scripts/review_axis_report.ts +218 -0
  206. package/src/scripts/routing_doctor.ts +5 -1
  207. package/src/scripts/run_supervise.ts +46 -1
  208. package/src/scripts/schemas/evals.schema.json +5 -0
  209. package/src/scripts/sync_pr_branch.ts +170 -20
  210. package/dist/cli/commands/commands.candidates.test.js +0 -257
  211. package/dist/cli/commands/commands.candidates.test.js.map +0 -1
  212. package/dist/cli/commands/profiles.test.js +0 -88
  213. package/dist/cli/commands/profiles.test.js.map +0 -1
  214. package/dist/cli/commands/recordTriggerEval.test.js +0 -113
  215. package/dist/cli/commands/recordTriggerEval.test.js.map +0 -1
  216. package/dist/cli/configRoot.test.js +0 -97
  217. package/dist/cli/configRoot.test.js.map +0 -1
  218. package/dist/cli/mcp/content.test.js +0 -54
  219. package/dist/cli/mcp/content.test.js.map +0 -1
  220. package/dist/cli/mcp/dispatch.test.js +0 -108
  221. package/dist/cli/mcp/dispatch.test.js.map +0 -1
  222. package/dist/server/writeRoot.test.js +0 -91
  223. package/dist/server/writeRoot.test.js.map +0 -1
  224. package/dist/shared/capabilities.test.js +0 -39
  225. package/dist/shared/capabilities.test.js.map +0 -1
  226. package/dist/ui/assets/index-C1pBRm1f.js +0 -26
  227. package/dist/ui/assets/index-C1pBRm1f.js.map +0 -1
  228. package/dist/cli-delegate/{chunk-PPQO4NGR.js → chunk-6RJA2F5A.js} +3 -3
  229. package/dist/cli-delegate/{chunk-6EOCNQAM.js → chunk-E4XIZDIB.js} +0 -0
  230. package/dist/cli-delegate/{chunk-GJ5BVHXM.js → chunk-PMEKGDED.js} +3 -3
@@ -12,10 +12,13 @@ import {
12
12
  pendingCount,
13
13
  statePathFor,
14
14
  validateAssumption
15
- } from "./chunk-JZ4NR2TW.js";
15
+ } from "./chunk-7PRE6ZV2.js";
16
16
  import {
17
17
  readHookStdin
18
18
  } from "./chunk-F7DQWYR5.js";
19
+ import {
20
+ detectToolPresence
21
+ } from "./chunk-OMIVVCG2.js";
19
22
  import {
20
23
  ArgparseExit,
21
24
  STATUS_SYMBOLS,
@@ -33,13 +36,14 @@ import {
33
36
  frontmatterPaths,
34
37
  proseEqual,
35
38
  splitFrontmatter
36
- } from "./chunk-7F3VYSM2.js";
39
+ } from "./chunk-PLSG6UL5.js";
37
40
  import "./chunk-FTAISGDQ.js";
38
- import "./chunk-Q26HT4QT.js";
41
+ import "./chunk-M2DPGFZ4.js";
42
+ import "./chunk-E46KPN6K.js";
39
43
  import {
40
44
  projectStoreSlug,
41
45
  resolveSessionRole
42
- } from "./chunk-FBKL6JWT.js";
46
+ } from "./chunk-77GR3VD4.js";
43
47
  import {
44
48
  atomic_write_json,
45
49
  atomic_write_text,
@@ -49,29 +53,25 @@ import {
49
53
  prune_legacy_state_file,
50
54
  prune_stale_session_states,
51
55
  session_state_file
52
- } from "./chunk-6EOCNQAM.js";
53
- import "./chunk-M2DPGFZ4.js";
56
+ } from "./chunk-E4XIZDIB.js";
54
57
  import {
55
58
  atomicAppendLine,
56
59
  manifest_path,
57
60
  read_manifest
58
- } from "./chunk-GJ5BVHXM.js";
61
+ } from "./chunk-PMEKGDED.js";
59
62
  import "./chunk-MWRD5YOH.js";
60
63
  import "./chunk-T7L2QK3K.js";
61
64
  import "./chunk-G23AT6GD.js";
62
- import {
63
- load_agent_settings
64
- } from "./chunk-NLP54U3J.js";
65
- import "./chunk-NDJLNC6Q.js";
66
- import {
67
- detectToolPresence
68
- } from "./chunk-OMIVVCG2.js";
69
65
  import {
70
66
  require_dist
71
67
  } from "./chunk-OY53J6II.js";
72
68
  import {
73
69
  resolvePackageRoot
74
70
  } from "./chunk-MCJYCQPF.js";
71
+ import {
72
+ load_agent_settings
73
+ } from "./chunk-NLP54U3J.js";
74
+ import "./chunk-NDJLNC6Q.js";
75
75
  import {
76
76
  __toESM
77
77
  } from "./chunk-J55WI3RR.js";
@@ -704,6 +704,7 @@ var ALL_OPS = [
704
704
  "branch",
705
705
  "pr-create",
706
706
  "pr-merge",
707
+ "pr-merge-auto",
707
708
  "tag",
708
709
  "release",
709
710
  "publish"
@@ -717,8 +718,29 @@ var PHRASES = [
717
718
  op: "pr-create",
718
719
  re: /\b(erstell(e|en)?|mach(e|en)?|leg(e|en)?\s+an|(er)?(ö|oe)ffne|open|create|raise|aufmachen)\b[^.\n]{0,30}\b(pr|pull[- ]request)\b|\b(pr|pull[- ]request)\b[^.\n]{0,20}\b(erstellen|aufmachen|anlegen|(er)?(ö|oe)ffnen)\b/i
719
720
  },
720
- // `merge` as an ACTION, never as the noun in "merge conflict" / "merge commit".
721
- { op: "pr-merge", re: /\b(merge|merg(e|en|st|t)|zusammenf(ü|ue)hren|reinmergen)\b(?!\s*[- ]?(conflict|konflikt|commit|base|queue|state|status))/i },
721
+ // `merge` as an ACTION, never as the noun in "merge conflict" / "merge commit",
722
+ // and never under a NEGATION.
723
+ //
724
+ // The negation half closes a measured defect: probed directly against
725
+ // `classifyAuthorization`, "nicht mergen", "don't merge this" and
726
+ // "never auto-merge" each returned ["pr-merge"] — a prompt saying DO NOT
727
+ // MERGE authorized a merge. The noun-sense lookahead was never a negator.
728
+ //
729
+ // The lookBEHIND is line-scoped by `[^.!?\n]` on purpose, the same scoping
730
+ // `turn_end_gate_hook.ts` uses for its own negation exclusion (`:330`) and
731
+ // its negated-claim window (`:490-493`). A sentence boundary ends a
732
+ // negation's reach: "Do not push. Merge PR #12." is two instructions, and a
733
+ // guard that let the first suppress the second would silently stop
734
+ // authorizing merges the user DID order — the failure mode that is worse
735
+ // than the defect, because nothing happens and nothing says why.
736
+ //
737
+ // Reusing that vocabulary rather than inventing a third is deliberate: two
738
+ // negation vocabularies in one tree drift, and the drift is invisible until
739
+ // a prompt lands in the gap between them.
740
+ {
741
+ op: "pr-merge",
742
+ re: /(?<!\b(nicht|nichts|kein(e|en|em|er|es)?|niemals|nie|no|not|dont|don't|never|without|ohne)\b[^.!?\n]{0,30})\b(merge|merg(e|en|st|t)|zusammenf(ü|ue)hren|reinmergen)\b(?!\s*[- ]?(conflict|konflikt|commit|base|queue|state|status))/i
743
+ },
722
744
  // A tag is an ACTION here — bare "Tag" is the German word for day, and
723
745
  // "Version" is an ordinary noun. Both authorized a BLOCK op before this.
724
746
  { op: "tag", re: /\b(tagge(n|st)?|tag\s+(setzen|anlegen|erstellen)|git\s+tag|--tags|--follow-tags)\b/i },
@@ -761,6 +783,16 @@ var PASTED_COMMANDS = [
761
783
  { op: "publish", re: /\bnpm\s+publish\b/i },
762
784
  { op: "tag", re: /\bgit\s+push\s+[^\n]*--tags\b|\bgit\s+tag\s+-a\b/i },
763
785
  { op: "release", re: /\bgh\s+release\s+create\b/i },
786
+ // ORDER IS LOAD-BEARING: the auto variants precede the plain merge, because
787
+ // the first match wins and `gh pr merge 12 --auto` also matches the plain
788
+ // pattern. Same rule the block-side table states for `git push --tags`.
789
+ //
790
+ // The DE-ESCALATING forms come first of all, and they map to no op at all:
791
+ // `--disable-auto` and `disablePullRequestAutoMerge` turn the capability OFF.
792
+ // Requiring merge authorization to switch auto-merge off is a live deadlock,
793
+ // and it is why this cannot ship after the split rather than with it.
794
+ { op: null, re: /\bgh\s+pr\s+merge\b[^\n]*--disable-auto\b|\bdisablePullRequestAutoMerge\b/i },
795
+ { op: "pr-merge-auto", re: /\bgh\s+pr\s+merge\b[^\n]*--auto\b|\benablePullRequestAutoMerge\b/i },
764
796
  { op: "pr-merge", re: /\bgh\s+pr\s+merge\b/i },
765
797
  { op: "pr-create", re: /\bgh\s+pr\s+create\b/i },
766
798
  { op: "push", re: /\bgit\s+push\b/i },
@@ -796,10 +828,12 @@ function classifyAuthorization(prompt) {
796
828
  }
797
829
  for (const line of _commandLines(fence)) {
798
830
  for (const { op, re } of PASTED_COMMANDS) {
799
- if (re.test(line)) {
831
+ if (!re.test(line)) continue;
832
+ if (op !== null) {
800
833
  authorized.add(op);
801
834
  evidence[op] = `pasted command: "${line.slice(0, 80)}"`;
802
835
  }
836
+ break;
803
837
  }
804
838
  }
805
839
  }
@@ -933,7 +967,10 @@ var BLOCK_OPS = /* @__PURE__ */ new Set([
933
967
  "publish",
934
968
  "tag",
935
969
  "release",
936
- "pr-merge"
970
+ "pr-merge",
971
+ // Enabling auto-merge commits the outcome to a condition the agent does not
972
+ // control, so it is blocked on the same terms as the merge it schedules.
973
+ "pr-merge-auto"
937
974
  ]);
938
975
  var WARN_OPS = /* @__PURE__ */ new Set([
939
976
  "commit",
@@ -959,10 +996,25 @@ var COMMAND_OPS = [
959
996
  op: "tag",
960
997
  re: new RegExp(`${P}git\\s+${G}push\\b[^\\n;|&]*(--tags|--follow-tags|refs\\/tags\\/)`, "i")
961
998
  },
999
+ // ORDER IS LOAD-BEARING, per this table's own rule that the most specific
1000
+ // pattern wins: `gh pr merge 12 --auto` matches the plain merge pattern too.
1001
+ //
1002
+ // The GraphQL mutation needs its OWN pattern rather than a widening of
1003
+ // `ghApiWrite()`. That helper requires BOTH a REST-shaped path and an
1004
+ // explicit write method, and `gh api graphql -f query='mutation{...}'` has
1005
+ // neither — widening it to reach this would loosen every other op that uses
1006
+ // it, which is a bigger change than the defect.
1007
+ {
1008
+ op: "pr-merge-auto",
1009
+ re: new RegExp(
1010
+ `${P}gh\\s+pr\\s+merge\\b(?=[^\\n]*--auto\\b)|${P}gh\\s+api\\b(?=[^\\n]*enablePullRequestAutoMerge\\b)`,
1011
+ "i"
1012
+ )
1013
+ },
962
1014
  {
963
1015
  op: "pr-merge",
964
1016
  re: new RegExp(
965
- `${P}gh\\s+pr\\s+merge\\b|${ghApiWrite("\\/pulls\\/\\d+\\/merge\\b").source}`,
1017
+ `${P}gh\\s+pr\\s+merge\\b(?![^\\n]*--(auto|disable-auto)\\b)|${ghApiWrite("\\/pulls\\/\\d+\\/merge\\b").source}`,
966
1018
  "i"
967
1019
  )
968
1020
  },
@@ -1162,7 +1214,7 @@ function commandOp(command) {
1162
1214
  }
1163
1215
  return found;
1164
1216
  }
1165
- var LEDGER_MAX_AGE_MS = 6 * 60 * 60 * 1e3;
1217
+ var LEDGER_MAX_AGE_MS = 30 * 60 * 1e3;
1166
1218
  function _loadLedger(consumer_root, session_id, now) {
1167
1219
  const candidates = [ledgerFileFor(session_id)];
1168
1220
  if (!candidates.includes(STATE_FILE2)) {
@@ -1691,6 +1743,18 @@ var MAX_RESPONSE_ENTRIES = 40;
1691
1743
  var MAX_ARTIFACT_REF_CHARS = 200;
1692
1744
  var MAX_ENVELOPE_CHARS = 12e3;
1693
1745
  var CONFIDENCE = /* @__PURE__ */ new Set(["low", "medium", "high"]);
1746
+ var RESPONSE_REQUIRED_FIELDS = [
1747
+ "summary",
1748
+ "handoff",
1749
+ "confidence",
1750
+ "findings",
1751
+ "risks"
1752
+ ];
1753
+ function countContractFields(input) {
1754
+ if (input === null || typeof input !== "object") return 0;
1755
+ const r = input;
1756
+ return RESPONSE_REQUIRED_FIELDS.filter((k) => Object.hasOwn(r, k)).length;
1757
+ }
1694
1758
  function validateResponse(input) {
1695
1759
  const errors = [];
1696
1760
  if (input === null || typeof input !== "object") {
@@ -1804,16 +1868,25 @@ function extractParentId(payload, ownId) {
1804
1868
  return null;
1805
1869
  }
1806
1870
  function classifyEnvelope(message) {
1807
- if (message === null || !message.trim()) return { verdict: "no_message", error_count: 0 };
1871
+ if (message === null || !message.trim()) {
1872
+ return { verdict: "no_message", error_count: 0, field_hits: 0 };
1873
+ }
1808
1874
  const candidates = _jsonObjectCandidates(message);
1809
- if (candidates.length === 0) return { verdict: "no_envelope", error_count: 0 };
1875
+ if (candidates.length === 0) return { verdict: "no_envelope", error_count: 0, field_hits: 0 };
1810
1876
  let best = null;
1811
1877
  for (const candidate of candidates) {
1812
1878
  const result = validateResponse(candidate);
1813
- if (result.valid) return { verdict: "ok", error_count: 0 };
1814
- if (best === null) best = { verdict: "fail", error_count: result.errors.length };
1879
+ const fieldHits = countContractFields(candidate);
1880
+ if (result.valid) return { verdict: "ok", error_count: 0, field_hits: fieldHits };
1881
+ if (best === null || fieldHits > best.field_hits) {
1882
+ best = {
1883
+ verdict: fieldHits === 0 ? "foreign_object" : "fail",
1884
+ error_count: result.errors.length,
1885
+ field_hits: fieldHits
1886
+ };
1887
+ }
1815
1888
  }
1816
- return best ?? { verdict: "no_envelope", error_count: 0 };
1889
+ return best ?? { verdict: "no_envelope", error_count: 0, field_hits: 0 };
1817
1890
  }
1818
1891
  function _jsonObjectCandidates(message) {
1819
1892
  const texts = [];
@@ -2083,6 +2156,9 @@ function handleStop(root, payload, nowIso, sessionId) {
2083
2156
  start_seen: rec !== null,
2084
2157
  envelope_parse: parse2.verdict,
2085
2158
  envelope_error_count: parse2.error_count,
2159
+ // Beside the count, never instead of it: the count says how wrong the
2160
+ // candidate was, this says whether it was aimed at the envelope.
2161
+ envelope_field_hits: parse2.field_hits,
2086
2162
  concurrent_open: countOpen(root)
2087
2163
  });
2088
2164
  }
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env tsx
2
2
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
3
- import {
4
- write_target
5
- } from "./chunk-NDJLNC6Q.js";
6
3
  import {
7
4
  require_dist
8
5
  } from "./chunk-OY53J6II.js";
9
6
  import {
10
7
  resolvePackageRoot
11
8
  } from "./chunk-MCJYCQPF.js";
9
+ import {
10
+ write_target
11
+ } from "./chunk-NDJLNC6Q.js";
12
12
  import {
13
13
  __toESM
14
14
  } from "./chunk-J55WI3RR.js";
@@ -66,20 +66,20 @@ import {
66
66
  _wizard_state_path,
67
67
  main,
68
68
  shutilWhich
69
- } from "./chunk-7F3VYSM2.js";
69
+ } from "./chunk-PLSG6UL5.js";
70
70
  import "./chunk-FTAISGDQ.js";
71
- import "./chunk-Q26HT4QT.js";
72
- import "./chunk-FBKL6JWT.js";
73
- import "./chunk-6EOCNQAM.js";
74
71
  import "./chunk-M2DPGFZ4.js";
75
- import "./chunk-GJ5BVHXM.js";
72
+ import "./chunk-E46KPN6K.js";
73
+ import "./chunk-77GR3VD4.js";
74
+ import "./chunk-E4XIZDIB.js";
75
+ import "./chunk-PMEKGDED.js";
76
76
  import "./chunk-MWRD5YOH.js";
77
77
  import "./chunk-T7L2QK3K.js";
78
78
  import "./chunk-G23AT6GD.js";
79
- import "./chunk-NLP54U3J.js";
80
- import "./chunk-NDJLNC6Q.js";
81
79
  import "./chunk-OY53J6II.js";
82
80
  import "./chunk-MCJYCQPF.js";
81
+ import "./chunk-NLP54U3J.js";
82
+ import "./chunk-NDJLNC6Q.js";
83
83
  import "./chunk-J55WI3RR.js";
84
84
  export {
85
85
  ArgparseExit,
@@ -9,21 +9,21 @@ import {
9
9
  KIRO_MARKER,
10
10
  ROOCODE_MARKER,
11
11
  ZED_MARKER
12
- } from "./chunk-74E3TKWV.js";
12
+ } from "./chunk-H4VIVD4C.js";
13
13
  import "./chunk-YM4GZDJG.js";
14
- import "./chunk-PPQO4NGR.js";
14
+ import "./chunk-6RJA2F5A.js";
15
15
  import "./chunk-B2ERU2VA.js";
16
- import "./chunk-GJ5BVHXM.js";
16
+ import "./chunk-523HCFYO.js";
17
+ import "./chunk-PMEKGDED.js";
17
18
  import "./chunk-MWRD5YOH.js";
18
19
  import "./chunk-T7L2QK3K.js";
19
20
  import "./chunk-G23AT6GD.js";
20
- import "./chunk-NLP54U3J.js";
21
- import "./chunk-NDJLNC6Q.js";
22
- import "./chunk-523HCFYO.js";
23
21
  import "./chunk-OY53J6II.js";
24
22
  import {
25
23
  resolvePackageRoot
26
24
  } from "./chunk-MCJYCQPF.js";
25
+ import "./chunk-NLP54U3J.js";
26
+ import "./chunk-NDJLNC6Q.js";
27
27
  import "./chunk-J55WI3RR.js";
28
28
 
29
29
  // src/scripts/_cli/cmd_export.ts
@@ -11,14 +11,15 @@ import {
11
11
  RECYCLE_MAX_AGE_HOURS,
12
12
  collectRepoAnchor,
13
13
  describeDrift
14
- } from "./chunk-4VR4ORQ6.js";
15
- import "./chunk-UEZ7D35A.js";
14
+ } from "./chunk-LPPWO5CE.js";
15
+ import "./chunk-CYH5SP6M.js";
16
+ import "./chunk-I3EIN2YG.js";
16
17
  import {
17
18
  hasBoundaryMarker,
18
19
  scanEnvelopeDirectives,
19
20
  validateRecycleEnvelope,
20
21
  wrapAsPriorSessionData
21
- } from "./chunk-JZ4NR2TW.js";
22
+ } from "./chunk-7PRE6ZV2.js";
22
23
  import {
23
24
  readHookStdin
24
25
  } from "./chunk-F7DQWYR5.js";
@@ -26,11 +27,11 @@ import {
26
27
  _RAW_KEY_PREFIXES,
27
28
  hardenedSpawnEnv,
28
29
  projectStoreSlug
29
- } from "./chunk-FBKL6JWT.js";
30
- import "./chunk-6EOCNQAM.js";
30
+ } from "./chunk-77GR3VD4.js";
31
+ import "./chunk-E4XIZDIB.js";
32
+ import "./chunk-OY53J6II.js";
31
33
  import "./chunk-NLP54U3J.js";
32
34
  import "./chunk-NDJLNC6Q.js";
33
- import "./chunk-OY53J6II.js";
34
35
  import "./chunk-J55WI3RR.js";
35
36
 
36
37
  // src/scripts/_cli/cmd_handoff.ts
@@ -2,7 +2,8 @@
2
2
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
3
3
  import {
4
4
  memory_get_v1
5
- } from "./chunk-UEZ7D35A.js";
5
+ } from "./chunk-CYH5SP6M.js";
6
+ import "./chunk-I3EIN2YG.js";
6
7
  import "./chunk-OY53J6II.js";
7
8
  import "./chunk-J55WI3RR.js";
8
9
 
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
2
  import {
3
3
  main
4
- } from "./chunk-PPQO4NGR.js";
4
+ } from "./chunk-6RJA2F5A.js";
5
+ import "./chunk-MCJYCQPF.js";
5
6
  import "./chunk-NLP54U3J.js";
6
7
  import "./chunk-NDJLNC6Q.js";
7
- import "./chunk-MCJYCQPF.js";
8
8
  import "./chunk-J55WI3RR.js";
9
9
  export {
10
10
  main
@@ -1,15 +1,15 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
- import {
3
- GLOBAL_DEPLOY_SOURCES,
4
- expandWizardSources
5
- } from "./chunk-B2ERU2VA.js";
6
- import "./chunk-G23AT6GD.js";
7
2
  import {
8
3
  hasBlockingFinding,
9
4
  runPreflight
10
5
  } from "./chunk-HYWSRNUX.js";
11
6
  import "./chunk-OMIVVCG2.js";
7
+ import {
8
+ GLOBAL_DEPLOY_SOURCES,
9
+ expandWizardSources
10
+ } from "./chunk-B2ERU2VA.js";
12
11
  import "./chunk-523HCFYO.js";
12
+ import "./chunk-G23AT6GD.js";
13
13
  import "./chunk-OY53J6II.js";
14
14
  import {
15
15
  resolvePackageRoot
@@ -1,24 +1,24 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
2
  import {
3
3
  PROJECT_BRIDGE_MARKERS
4
- } from "./chunk-74E3TKWV.js";
4
+ } from "./chunk-H4VIVD4C.js";
5
5
  import "./chunk-YM4GZDJG.js";
6
- import "./chunk-PPQO4NGR.js";
6
+ import "./chunk-6RJA2F5A.js";
7
7
  import "./chunk-B2ERU2VA.js";
8
+ import "./chunk-523HCFYO.js";
8
9
  import {
9
10
  manifest_path,
10
11
  read_manifest
11
- } from "./chunk-GJ5BVHXM.js";
12
+ } from "./chunk-PMEKGDED.js";
12
13
  import "./chunk-MWRD5YOH.js";
13
14
  import "./chunk-T7L2QK3K.js";
14
15
  import "./chunk-G23AT6GD.js";
16
+ import "./chunk-OY53J6II.js";
17
+ import "./chunk-MCJYCQPF.js";
15
18
  import {
16
19
  resolve_project_root
17
20
  } from "./chunk-NLP54U3J.js";
18
21
  import "./chunk-NDJLNC6Q.js";
19
- import "./chunk-523HCFYO.js";
20
- import "./chunk-OY53J6II.js";
21
- import "./chunk-MCJYCQPF.js";
22
22
  import "./chunk-J55WI3RR.js";
23
23
 
24
24
  // src/scripts/_cli/cmd_prune.ts
@@ -3,19 +3,20 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
3
3
  import {
4
4
  read_entries
5
5
  } from "./chunk-PKOBQADP.js";
6
- import "./chunk-UEZ7D35A.js";
6
+ import "./chunk-CYH5SP6M.js";
7
+ import "./chunk-I3EIN2YG.js";
7
8
  import "./chunk-F7DQWYR5.js";
8
9
  import {
9
10
  match_prompt
10
11
  } from "./chunk-LF2KKJ4Q.js";
11
- import {
12
- load_agent_settings
13
- } from "./chunk-NLP54U3J.js";
14
- import "./chunk-NDJLNC6Q.js";
15
12
  import "./chunk-OY53J6II.js";
16
13
  import {
17
14
  resolvePackageRoot
18
15
  } from "./chunk-MCJYCQPF.js";
16
+ import {
17
+ load_agent_settings
18
+ } from "./chunk-NLP54U3J.js";
19
+ import "./chunk-NDJLNC6Q.js";
19
20
  import "./chunk-J55WI3RR.js";
20
21
 
21
22
  // src/scripts/_cli/cmd_route_audit.ts
@@ -4,13 +4,13 @@ import {
4
4
  _asRuleList,
5
5
  match_prompt
6
6
  } from "./chunk-LF2KKJ4Q.js";
7
+ import {
8
+ resolvePackageRoot
9
+ } from "./chunk-MCJYCQPF.js";
7
10
  import {
8
11
  load_agent_settings
9
12
  } from "./chunk-NLP54U3J.js";
10
13
  import "./chunk-NDJLNC6Q.js";
11
- import {
12
- resolvePackageRoot
13
- } from "./chunk-MCJYCQPF.js";
14
14
  import "./chunk-J55WI3RR.js";
15
15
 
16
16
  // src/scripts/_cli/cmd_route_explain.ts
@@ -3,7 +3,7 @@ import {
3
3
  RECYCLE_ENVELOPE_MAX_BYTES,
4
4
  RECYCLE_ENVELOPE_REL,
5
5
  collectGrounding
6
- } from "./chunk-4VR4ORQ6.js";
6
+ } from "./chunk-LPPWO5CE.js";
7
7
  import {
8
8
  pruneAgedRefusalState,
9
9
  readSessionCounts
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  CAPSULE_SCHEMA_VERSION,
13
13
  validateRecycleEnvelope
14
- } from "./chunk-JZ4NR2TW.js";
14
+ } from "./chunk-7PRE6ZV2.js";
15
15
  import {
16
16
  readHookStdin
17
17
  } from "./chunk-F7DQWYR5.js";
@@ -20,7 +20,7 @@ import {
20
20
  current_branch,
21
21
  git_common_dir,
22
22
  git_dir
23
- } from "./chunk-6EOCNQAM.js";
23
+ } from "./chunk-E4XIZDIB.js";
24
24
  import {
25
25
  write_atomic
26
26
  } from "./chunk-MWRD5YOH.js";
@@ -7,7 +7,10 @@ import {
7
7
  } from "./chunk-BWMXLD4B.js";
8
8
  import {
9
9
  load
10
- } from "./chunk-Q26HT4QT.js";
10
+ } from "./chunk-E46KPN6K.js";
11
+ import {
12
+ resolvePackageRoot
13
+ } from "./chunk-MCJYCQPF.js";
11
14
  import {
12
15
  MERGEABLE_KEYS,
13
16
  SETTINGS_CARVE_OUT,
@@ -19,9 +22,6 @@ import {
19
22
  resolve_with_fallback,
20
23
  write_target
21
24
  } from "./chunk-NDJLNC6Q.js";
22
- import {
23
- resolvePackageRoot
24
- } from "./chunk-MCJYCQPF.js";
25
25
  import "./chunk-J55WI3RR.js";
26
26
 
27
27
  // src/scripts/_cli/cmd_settings_get.ts
@@ -3,19 +3,19 @@ import {
3
3
  GLOBAL_AGENT_SETTINGS_PATH,
4
4
  GLOBAL_USER_SETTINGS_PATH,
5
5
  SETTINGS_FILE
6
- } from "./chunk-74E3TKWV.js";
6
+ } from "./chunk-H4VIVD4C.js";
7
7
  import "./chunk-YM4GZDJG.js";
8
- import "./chunk-PPQO4NGR.js";
8
+ import "./chunk-6RJA2F5A.js";
9
9
  import "./chunk-B2ERU2VA.js";
10
- import "./chunk-GJ5BVHXM.js";
10
+ import "./chunk-523HCFYO.js";
11
+ import "./chunk-PMEKGDED.js";
11
12
  import "./chunk-MWRD5YOH.js";
12
13
  import "./chunk-T7L2QK3K.js";
13
14
  import "./chunk-G23AT6GD.js";
14
- import "./chunk-NLP54U3J.js";
15
- import "./chunk-NDJLNC6Q.js";
16
- import "./chunk-523HCFYO.js";
17
15
  import "./chunk-OY53J6II.js";
18
16
  import "./chunk-MCJYCQPF.js";
17
+ import "./chunk-NLP54U3J.js";
18
+ import "./chunk-NDJLNC6Q.js";
19
19
  import "./chunk-J55WI3RR.js";
20
20
 
21
21
  // src/scripts/_cli/cmd_settings_migrate.ts
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  dump,
9
9
  load
10
- } from "./chunk-Q26HT4QT.js";
10
+ } from "./chunk-E46KPN6K.js";
11
11
  import {
12
12
  external_exports,
13
13
  settingsSchema
@@ -1,24 +1,24 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
2
  import {
3
3
  main
4
- } from "./chunk-74E3TKWV.js";
4
+ } from "./chunk-H4VIVD4C.js";
5
5
  import "./chunk-YM4GZDJG.js";
6
- import "./chunk-PPQO4NGR.js";
6
+ import "./chunk-6RJA2F5A.js";
7
7
  import "./chunk-B2ERU2VA.js";
8
+ import "./chunk-523HCFYO.js";
8
9
  import {
9
10
  manifest_path,
10
11
  read_manifest
11
- } from "./chunk-GJ5BVHXM.js";
12
+ } from "./chunk-PMEKGDED.js";
12
13
  import "./chunk-MWRD5YOH.js";
13
14
  import "./chunk-T7L2QK3K.js";
14
15
  import "./chunk-G23AT6GD.js";
16
+ import "./chunk-OY53J6II.js";
17
+ import "./chunk-MCJYCQPF.js";
15
18
  import {
16
19
  resolve_project_root
17
20
  } from "./chunk-NLP54U3J.js";
18
21
  import "./chunk-NDJLNC6Q.js";
19
- import "./chunk-523HCFYO.js";
20
- import "./chunk-OY53J6II.js";
21
- import "./chunk-MCJYCQPF.js";
22
22
  import "./chunk-J55WI3RR.js";
23
23
 
24
24
  // src/scripts/_cli/cmd_sync.ts
@@ -3,16 +3,17 @@ import {
3
3
  PROJECT_BRIDGE_MARKERS,
4
4
  USER_SCOPE_PATHS,
5
5
  subtract_pointers
6
- } from "./chunk-74E3TKWV.js";
6
+ } from "./chunk-H4VIVD4C.js";
7
7
  import "./chunk-YM4GZDJG.js";
8
- import "./chunk-PPQO4NGR.js";
8
+ import "./chunk-6RJA2F5A.js";
9
9
  import "./chunk-B2ERU2VA.js";
10
+ import "./chunk-523HCFYO.js";
10
11
  import {
11
12
  manifest_path,
12
13
  read_manifest,
13
14
  remove_managed_hooks,
14
15
  write_manifest
15
- } from "./chunk-GJ5BVHXM.js";
16
+ } from "./chunk-PMEKGDED.js";
16
17
  import {
17
18
  write_atomic
18
19
  } from "./chunk-MWRD5YOH.js";
@@ -23,13 +24,12 @@ import {
23
24
  write_lockfile
24
25
  } from "./chunk-T7L2QK3K.js";
25
26
  import "./chunk-G23AT6GD.js";
27
+ import "./chunk-OY53J6II.js";
28
+ import "./chunk-MCJYCQPF.js";
26
29
  import {
27
30
  resolve_project_root
28
31
  } from "./chunk-NLP54U3J.js";
29
32
  import "./chunk-NDJLNC6Q.js";
30
- import "./chunk-523HCFYO.js";
31
- import "./chunk-OY53J6II.js";
32
- import "./chunk-MCJYCQPF.js";
33
33
  import "./chunk-J55WI3RR.js";
34
34
 
35
35
  // src/scripts/_cli/cmd_uninstall.ts
@@ -10,6 +10,9 @@ import {
10
10
  read_lockfile,
11
11
  write_lockfile
12
12
  } from "./chunk-T7L2QK3K.js";
13
+ import {
14
+ resolvePackageRoot
15
+ } from "./chunk-MCJYCQPF.js";
13
16
  import {
14
17
  DEFAULT_PROJECT_FILE,
15
18
  LOCAL_PROJECT_FILE,
@@ -18,9 +21,6 @@ import {
18
21
  resolve_project_root
19
22
  } from "./chunk-NLP54U3J.js";
20
23
  import "./chunk-NDJLNC6Q.js";
21
- import {
22
- resolvePackageRoot
23
- } from "./chunk-MCJYCQPF.js";
24
24
  import "./chunk-J55WI3RR.js";
25
25
 
26
26
  // src/scripts/_cli/cmd_update.ts
@@ -17,6 +17,9 @@ import {
17
17
  import {
18
18
  read_lockfile
19
19
  } from "./chunk-T7L2QK3K.js";
20
+ import {
21
+ resolvePackageRoot
22
+ } from "./chunk-MCJYCQPF.js";
20
23
  import {
21
24
  project_settings_path
22
25
  } from "./chunk-NLP54U3J.js";
@@ -24,9 +27,6 @@ import {
24
27
  event4u_root,
25
28
  write_target
26
29
  } from "./chunk-NDJLNC6Q.js";
27
- import {
28
- resolvePackageRoot
29
- } from "./chunk-MCJYCQPF.js";
30
30
  import "./chunk-J55WI3RR.js";
31
31
 
32
32
  // src/scripts/_cli/cmd_upgrade.ts