infra-kit 0.1.128 → 0.1.129
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/dist/chunk-2PZRQHWF.js +2 -0
- package/dist/chunk-2PZRQHWF.js.map +7 -0
- package/dist/chunk-6RRAK2QO.js +5 -0
- package/dist/chunk-6RRAK2QO.js.map +7 -0
- package/dist/chunk-IX2A34UU.js +2 -0
- package/dist/chunk-IX2A34UU.js.map +7 -0
- package/dist/chunk-V5IDN7ZM.js +162 -0
- package/dist/chunk-V5IDN7ZM.js.map +7 -0
- package/dist/{chunk-YSBF5C7C.js → chunk-Z6KTUVIC.js} +2 -2
- package/dist/chunk-Z6KTUVIC.js.map +7 -0
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +3 -3
- package/dist/dev-server.js +15 -10
- package/dist/dev-server.js.map +4 -4
- package/dist/entry/index.d.ts +1 -1
- package/dist/entry/vite.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/lib/package-config/package-config-schema.d.ts +35 -0
- package/dist/lib/package-config/package-config.d.ts +28 -0
- package/dist/lib/release-slug/release-slug.d.ts +19 -0
- package/dist/lib/vite/vite.d.ts +135 -0
- package/dist/mcp.js +1 -1
- package/dist/mcp.js.map +1 -1
- package/dist/vite.js +2 -0
- package/dist/vite.js.map +7 -0
- package/package.json +10 -2
- package/.eslintcache +0 -1
- package/.omc/state/agent-replay-036daa78-5fee-4c7d-9b44-53584acb0d87.jsonl +0 -26
- package/.omc/state/agent-replay-0a58307d-2a37-4c69-851c-83a646502d62.jsonl +0 -1
- package/.omc/state/agent-replay-0a65ec83-9de7-458d-9d0f-e56e1a26c68e.jsonl +0 -2
- package/.omc/state/agent-replay-0d1515ce-4ebe-4ce8-a865-2897f68de168.jsonl +0 -1
- package/.omc/state/agent-replay-11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc.jsonl +0 -16
- package/.omc/state/agent-replay-127837d3-a000-4656-9453-2324ab353723.jsonl +0 -5
- package/.omc/state/agent-replay-15c409af-24fa-4026-88d3-a82dd1e68b87.jsonl +0 -11
- package/.omc/state/agent-replay-1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a.jsonl +0 -17
- package/.omc/state/agent-replay-1fcfe0ec-7567-41c3-9bfd-501e99e86819.jsonl +0 -19
- package/.omc/state/agent-replay-2ac0dcd0-01f7-41a8-a8c9-f2195599817b.jsonl +0 -5
- package/.omc/state/agent-replay-2ccbd177-0d5d-4d4a-ab94-a22464786221.jsonl +0 -1
- package/.omc/state/agent-replay-36d91435-50b4-442f-9f4e-3cc68d776236.jsonl +0 -2
- package/.omc/state/agent-replay-38382db5-3088-4b5a-aff7-2561a60827c7.jsonl +0 -17
- package/.omc/state/agent-replay-4cf1c186-81b2-497c-b002-d7f84e7839f3.jsonl +0 -9
- package/.omc/state/agent-replay-50c36be9-a3a2-42b9-9c85-5a06d3e22f6a.jsonl +0 -5
- package/.omc/state/agent-replay-5c4ab554-64f1-42ae-83e3-21e0237e955c.jsonl +0 -11
- package/.omc/state/agent-replay-6be1264f-8069-4412-8119-86118ed1943e.jsonl +0 -3
- package/.omc/state/agent-replay-707b4784-2117-4b19-ae68-68a031f0d76d.jsonl +0 -2
- package/.omc/state/agent-replay-74afa912-1443-4011-b4f2-db9f055cdd9f.jsonl +0 -3
- package/.omc/state/agent-replay-8198b3e5-fad6-4ee0-9c59-ef773ad89af4.jsonl +0 -1
- package/.omc/state/agent-replay-8cd7652a-b8b5-49cf-9b1f-bee8e5972458.jsonl +0 -3
- package/.omc/state/agent-replay-8dd0ad2f-3a90-4158-b9de-ec8e19a7c983.jsonl +0 -3
- package/.omc/state/agent-replay-9bea518f-a9ee-4d14-bb53-a936ebaf647c.jsonl +0 -7
- package/.omc/state/agent-replay-a60ac2ec-afbd-449f-a540-6df287392fc2.jsonl +0 -1
- package/.omc/state/agent-replay-afc6290b-40d3-4bef-b3b6-14484c034ab9.jsonl +0 -14
- package/.omc/state/agent-replay-b52d89fb-0e24-4901-bc66-27e3c1697126.jsonl +0 -2
- package/.omc/state/agent-replay-be37e426-6fc8-47f4-8178-221c8494551c.jsonl +0 -3
- package/.omc/state/agent-replay-c967c819-3d1c-447b-ab48-56a8448ef9f8.jsonl +0 -2
- package/.omc/state/agent-replay-d02e6565-5168-40c8-8629-de219a29fa43.jsonl +0 -2
- package/.omc/state/agent-replay-d367c3be-9c2a-48e7-bcea-b45861af568c.jsonl +0 -2
- package/.omc/state/agent-replay-d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc.jsonl +0 -10
- package/.omc/state/agent-replay-e947a3c6-989d-4a60-91dd-6b0ddd827b2d.jsonl +0 -3
- package/.omc/state/agent-replay-eb44055b-c2fa-4e66-b491-a1d9b44f51c7.jsonl +0 -1
- package/.omc/state/agent-replay-f2846d8f-974c-486c-b16f-4bdaa28ca45f.jsonl +0 -2
- package/.omc/state/agent-replay-f581a1ae-0ee4-48a3-96f3-ce31a0633bb0.jsonl +0 -1
- package/.omc/state/agent-replay-f99d8dad-81d1-4987-8183-62edf0843d0c.jsonl +0 -2
- package/.omc/state/agent-replay-fe1057b4-9a25-4e8e-8c3f-3e11652ee697.jsonl +0 -5
- package/.omc/state/idle-notif-cooldown.json +0 -3
- package/.omc/state/last-tool-error.json +0 -7
- package/.omc/state/mission-state.json +0 -53
- package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/mission-state.json +0 -129
- package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/pre-tool-advisory-throttle.json +0 -34
- package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ralph-state.json +0 -13
- package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ralplan-state.json +0 -11
- package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/subagent-tracking-state.json +0 -80
- package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ultrawork-state.json +0 -11
- package/.omc/state/sessions/0a58307d-2a37-4c69-851c-83a646502d62/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/0a58307d-2a37-4c69-851c-83a646502d62/subagent-tracking-state.json +0 -7
- package/.omc/state/sessions/0a65ec83-9de7-458d-9d0f-e56e1a26c68e/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/0a65ec83-9de7-458d-9d0f-e56e1a26c68e/skill-active-state.json +0 -15
- package/.omc/state/sessions/0d1515ce-4ebe-4ce8-a865-2897f68de168/pre-tool-advisory-throttle.json +0 -10
- package/.omc/state/sessions/11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc/mission-state.json +0 -117
- package/.omc/state/sessions/11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc/pre-tool-advisory-throttle.json +0 -42
- package/.omc/state/sessions/11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc/subagent-tracking-state.json +0 -53
- package/.omc/state/sessions/127837d3-a000-4656-9453-2324ab353723/mission-state.json +0 -61
- package/.omc/state/sessions/127837d3-a000-4656-9453-2324ab353723/pre-tool-advisory-throttle.json +0 -22
- package/.omc/state/sessions/127837d3-a000-4656-9453-2324ab353723/skill-active-state.json +0 -15
- package/.omc/state/sessions/127837d3-a000-4656-9453-2324ab353723/subagent-tracking-state.json +0 -26
- package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/mission-state.json +0 -89
- package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/pre-tool-advisory-throttle.json +0 -34
- package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/ralph-state.json +0 -13
- package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/skill-active-state.json +0 -15
- package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/subagent-tracking-state.json +0 -44
- package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/ultrawork-state.json +0 -11
- package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/mission-state.json +0 -139
- package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/pre-tool-advisory-throttle.json +0 -50
- package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/ralplan-state.json +0 -11
- package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/subagent-tracking-state.json +0 -90
- package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/mission-state.json +0 -109
- package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/pre-tool-advisory-throttle.json +0 -42
- package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/ralph-state.json +0 -13
- package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/skill-active-state.json +0 -15
- package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/subagent-tracking-state.json +0 -62
- package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/ultrawork-state.json +0 -11
- package/.omc/state/sessions/23d0ff82-17e5-428b-8743-38f7979bb6f3/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/23d0ff82-17e5-428b-8743-38f7979bb6f3/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/mission-state.json +0 -79
- package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/pre-tool-advisory-throttle.json +0 -10
- package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/skill-active-state.json +0 -15
- package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/subagent-tracking-state.json +0 -26
- package/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/36d91435-50b4-442f-9f4e-3cc68d776236/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/36d91435-50b4-442f-9f4e-3cc68d776236/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/mission-state.json +0 -145
- package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/pre-tool-advisory-throttle.json +0 -38
- package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/ralplan-state.json +0 -11
- package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/subagent-tracking-state.json +0 -98
- package/.omc/state/sessions/3a844fbd-ace8-4af1-8516-33d611839886/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/4cf1c186-81b2-497c-b002-d7f84e7839f3/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/4cf1c186-81b2-497c-b002-d7f84e7839f3/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/4cf1c186-81b2-497c-b002-d7f84e7839f3/subagent-tracking-state.json +0 -7
- package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/mission-state.json +0 -61
- package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/pre-tool-advisory-throttle.json +0 -22
- package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/skill-active-state.json +0 -15
- package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/subagent-tracking-state.json +0 -26
- package/.omc/state/sessions/560ea519-574a-4713-b134-5bf6cfaf3c33/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/5c4ab554-64f1-42ae-83e3-21e0237e955c/mission-state.json +0 -117
- package/.omc/state/sessions/5c4ab554-64f1-42ae-83e3-21e0237e955c/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/5c4ab554-64f1-42ae-83e3-21e0237e955c/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/mission-state.json +0 -53
- package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/pre-tool-advisory-throttle.json +0 -22
- package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/skill-active-state.json +0 -15
- package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/74afa912-1443-4011-b4f2-db9f055cdd9f/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/74afa912-1443-4011-b4f2-db9f055cdd9f/skill-active-state.json +0 -15
- package/.omc/state/sessions/74afa912-1443-4011-b4f2-db9f055cdd9f/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/7772f972-4ec1-4287-bf42-a92c14cf3ffc/pre-tool-advisory-throttle.json +0 -10
- package/.omc/state/sessions/8198b3e5-fad6-4ee0-9c59-ef773ad89af4/pre-tool-advisory-throttle.json +0 -14
- package/.omc/state/sessions/8198b3e5-fad6-4ee0-9c59-ef773ad89af4/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/ralplan-state.json +0 -11
- package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/subagent-tracking-state.json +0 -35
- package/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -14
- package/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/ralph-state.json +0 -13
- package/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/ultrawork-state.json +0 -11
- package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/mission-state.json +0 -79
- package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/pre-tool-advisory-throttle.json +0 -22
- package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/progress.txt +0 -7
- package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/skill-active-state.json +0 -15
- package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/subagent-tracking-state.json +0 -26
- package/.omc/state/sessions/a60ac2ec-afbd-449f-a540-6df287392fc2/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/a60ac2ec-afbd-449f-a540-6df287392fc2/subagent-tracking-state.json +0 -7
- package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/mission-state.json +0 -89
- package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/pre-tool-advisory-throttle.json +0 -34
- package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/ralph-state.json +0 -13
- package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/skill-active-state.json +0 -15
- package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/subagent-tracking-state.json +0 -35
- package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/ultrawork-state.json +0 -11
- package/.omc/state/sessions/b52d89fb-0e24-4901-bc66-27e3c1697126/pre-tool-advisory-throttle.json +0 -14
- package/.omc/state/sessions/b52d89fb-0e24-4901-bc66-27e3c1697126/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/c967c819-3d1c-447b-ab48-56a8448ef9f8/pre-tool-advisory-throttle.json +0 -10
- package/.omc/state/sessions/c967c819-3d1c-447b-ab48-56a8448ef9f8/subagent-tracking-state.json +0 -7
- package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/mission-state.json +0 -53
- package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/mission-state.json +0 -103
- package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/pre-tool-advisory-throttle.json +0 -30
- package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/ralph-state.json +0 -13
- package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/subagent-tracking-state.json +0 -62
- package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/ultrawork-state.json +0 -11
- package/.omc/state/sessions/e947a3c6-989d-4a60-91dd-6b0ddd827b2d/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/e947a3c6-989d-4a60-91dd-6b0ddd827b2d/pre-tool-advisory-throttle.json +0 -10
- package/.omc/state/sessions/e947a3c6-989d-4a60-91dd-6b0ddd827b2d/subagent-tracking-state.json +0 -26
- package/.omc/state/sessions/eb44055b-c2fa-4e66-b491-a1d9b44f51c7/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/eb44055b-c2fa-4e66-b491-a1d9b44f51c7/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/eb44055b-c2fa-4e66-b491-a1d9b44f51c7/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/f581a1ae-0ee4-48a3-96f3-ce31a0633bb0/pre-tool-advisory-throttle.json +0 -18
- package/.omc/state/sessions/f581a1ae-0ee4-48a3-96f3-ce31a0633bb0/subagent-tracking-state.json +0 -17
- package/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/pre-tool-advisory-throttle.json +0 -14
- package/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/ralph-state.json +0 -13
- package/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/ultrawork-state.json +0 -11
- package/.omc/state/sessions/f9c17a0e-2dd8-4f7d-badf-631f266c5d4c/pre-tool-advisory-throttle.json +0 -10
- package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/last-tool-error-state.json +0 -7
- package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/mission-state.json +0 -61
- package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/prd.json +0 -22
- package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/pre-tool-advisory-throttle.json +0 -22
- package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/progress.txt +0 -22
- package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/skill-active-state.json +0 -15
- package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/subagent-tracking-state.json +0 -26
- package/.omc/state/subagent-tracking.json +0 -17
- package/.turbo/turbo-build.log +0 -7
- package/.turbo/turbo-check.log +0 -14
- package/.turbo/turbo-eslint-check.log +0 -2
- package/.turbo/turbo-eslint-fix.log +0 -1
- package/.turbo/turbo-infra-kit-check.log +0 -14
- package/.turbo/turbo-prettier-check.log +0 -1
- package/.turbo/turbo-prettier-fix.log +0 -1
- package/.turbo/turbo-test.log +0 -406
- package/.turbo/turbo-ts-check.log +0 -1
- package/.turbo/turbo-validate.log +0 -14
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/cli/index.html +0 -116
- package/coverage/cli/package.json.html +0 -283
- package/coverage/cli/src/commands/audit/audit.ts.html +0 -616
- package/coverage/cli/src/commands/audit/index.html +0 -131
- package/coverage/cli/src/commands/audit/index.ts.html +0 -88
- package/coverage/cli/src/commands/doctor/doctor.ts.html +0 -1654
- package/coverage/cli/src/commands/doctor/index.html +0 -131
- package/coverage/cli/src/commands/doctor/index.ts.html +0 -88
- package/coverage/cli/src/commands/env-clear/env-clear.ts.html +0 -370
- package/coverage/cli/src/commands/env-clear/index.html +0 -131
- package/coverage/cli/src/commands/env-clear/index.ts.html +0 -88
- package/coverage/cli/src/commands/env-list/env-list.ts.html +0 -229
- package/coverage/cli/src/commands/env-list/index.html +0 -131
- package/coverage/cli/src/commands/env-list/index.ts.html +0 -88
- package/coverage/cli/src/commands/env-load/env-load.ts.html +0 -1201
- package/coverage/cli/src/commands/env-load/index.html +0 -131
- package/coverage/cli/src/commands/env-load/index.ts.html +0 -91
- package/coverage/cli/src/commands/env-status/env-status.ts.html +0 -409
- package/coverage/cli/src/commands/env-status/index.html +0 -131
- package/coverage/cli/src/commands/env-status/index.ts.html +0 -88
- package/coverage/cli/src/commands/gh-merge-dev/gh-merge-dev.ts.html +0 -694
- package/coverage/cli/src/commands/gh-merge-dev/index.html +0 -131
- package/coverage/cli/src/commands/gh-merge-dev/index.ts.html +0 -88
- package/coverage/cli/src/commands/gh-release-deliver/gh-release-deliver.ts.html +0 -1495
- package/coverage/cli/src/commands/gh-release-deliver/index.html +0 -131
- package/coverage/cli/src/commands/gh-release-deliver/index.ts.html +0 -88
- package/coverage/cli/src/commands/gh-release-deploy-all/gh-release-deploy-all.ts.html +0 -706
- package/coverage/cli/src/commands/gh-release-deploy-all/index.html +0 -131
- package/coverage/cli/src/commands/gh-release-deploy-all/index.ts.html +0 -88
- package/coverage/cli/src/commands/gh-release-deploy-selected/gh-release-deploy-selected.ts.html +0 -994
- package/coverage/cli/src/commands/gh-release-deploy-selected/index.html +0 -131
- package/coverage/cli/src/commands/gh-release-deploy-selected/index.ts.html +0 -88
- package/coverage/cli/src/commands/gh-release-list/gh-release-list.ts.html +0 -355
- package/coverage/cli/src/commands/gh-release-list/index.html +0 -131
- package/coverage/cli/src/commands/gh-release-list/index.ts.html +0 -88
- package/coverage/cli/src/commands/init/agent-files.ts.html +0 -742
- package/coverage/cli/src/commands/init/index.html +0 -146
- package/coverage/cli/src/commands/init/init.ts.html +0 -1159
- package/coverage/cli/src/commands/init/migrate-config.ts.html +0 -1219
- package/coverage/cli/src/commands/release-create/index.html +0 -131
- package/coverage/cli/src/commands/release-create/index.ts.html +0 -88
- package/coverage/cli/src/commands/release-create/release-create.ts.html +0 -1426
- package/coverage/cli/src/commands/release-desc-edit/index.html +0 -131
- package/coverage/cli/src/commands/release-desc-edit/index.ts.html +0 -88
- package/coverage/cli/src/commands/release-desc-edit/release-desc-edit.ts.html +0 -766
- package/coverage/cli/src/commands/vendor-check/index.html +0 -131
- package/coverage/cli/src/commands/vendor-check/index.ts.html +0 -88
- package/coverage/cli/src/commands/vendor-check/vendor-check.ts.html +0 -466
- package/coverage/cli/src/commands/vendor-config/index.html +0 -116
- package/coverage/cli/src/commands/vendor-config/vendor-config.ts.html +0 -571
- package/coverage/cli/src/commands/vendor-diff/index.html +0 -131
- package/coverage/cli/src/commands/vendor-diff/index.ts.html +0 -88
- package/coverage/cli/src/commands/vendor-diff/vendor-diff.ts.html +0 -316
- package/coverage/cli/src/commands/vendor-manifest/index.html +0 -131
- package/coverage/cli/src/commands/vendor-manifest/index.ts.html +0 -88
- package/coverage/cli/src/commands/vendor-manifest/vendor-manifest.ts.html +0 -265
- package/coverage/cli/src/commands/vendor-sync/index.html +0 -131
- package/coverage/cli/src/commands/vendor-sync/index.ts.html +0 -88
- package/coverage/cli/src/commands/vendor-sync/vendor-sync.ts.html +0 -355
- package/coverage/cli/src/commands/version/index.html +0 -131
- package/coverage/cli/src/commands/version/index.ts.html +0 -88
- package/coverage/cli/src/commands/version/version.ts.html +0 -184
- package/coverage/cli/src/commands/worktrees-add/index.html +0 -131
- package/coverage/cli/src/commands/worktrees-add/index.ts.html +0 -88
- package/coverage/cli/src/commands/worktrees-add/worktrees-add.ts.html +0 -1183
- package/coverage/cli/src/commands/worktrees-list/index.html +0 -131
- package/coverage/cli/src/commands/worktrees-list/index.ts.html +0 -88
- package/coverage/cli/src/commands/worktrees-list/worktrees-list.ts.html +0 -400
- package/coverage/cli/src/commands/worktrees-reload/index.html +0 -131
- package/coverage/cli/src/commands/worktrees-reload/index.ts.html +0 -88
- package/coverage/cli/src/commands/worktrees-reload/worktrees-reload.ts.html +0 -775
- package/coverage/cli/src/commands/worktrees-remove/index.html +0 -131
- package/coverage/cli/src/commands/worktrees-remove/index.ts.html +0 -88
- package/coverage/cli/src/commands/worktrees-remove/worktrees-remove.ts.html +0 -682
- package/coverage/cli/src/commands/worktrees-sync/index.html +0 -131
- package/coverage/cli/src/commands/worktrees-sync/index.ts.html +0 -88
- package/coverage/cli/src/commands/worktrees-sync/worktrees-sync.ts.html +0 -679
- package/coverage/cli/src/dev/__tests__/fixtures.ts.html +0 -787
- package/coverage/cli/src/dev/__tests__/index.html +0 -116
- package/coverage/cli/src/dev/dev-server.ts.html +0 -1855
- package/coverage/cli/src/dev/discovery.ts.html +0 -598
- package/coverage/cli/src/dev/index.html +0 -191
- package/coverage/cli/src/dev/interfaces.ts.html +0 -223
- package/coverage/cli/src/dev/logger.ts.html +0 -1102
- package/coverage/cli/src/dev/ports.ts.html +0 -430
- package/coverage/cli/src/dev/serverless-local-run.ts.html +0 -916
- package/coverage/cli/src/entry/dev-server.ts.html +0 -409
- package/coverage/cli/src/entry/index.html +0 -116
- package/coverage/cli/src/index.html +0 -116
- package/coverage/cli/src/integrations/cmux/canonicalize-cmux-title.ts.html +0 -178
- package/coverage/cli/src/integrations/cmux/close-workspace-by-title.ts.html +0 -262
- package/coverage/cli/src/integrations/cmux/index.html +0 -191
- package/coverage/cli/src/integrations/cmux/index.ts.html +0 -100
- package/coverage/cli/src/integrations/cmux/list-workspace-titles.ts.html +0 -226
- package/coverage/cli/src/integrations/cmux/open-workspace-with-layout.ts.html +0 -325
- package/coverage/cli/src/integrations/cmux/workspace-title.ts.html +0 -154
- package/coverage/cli/src/integrations/cursor/add-folders-to-workspace.ts.html +0 -337
- package/coverage/cli/src/integrations/cursor/index.html +0 -206
- package/coverage/cli/src/integrations/cursor/index.ts.html +0 -103
- package/coverage/cli/src/integrations/cursor/launch-cursor.ts.html +0 -121
- package/coverage/cli/src/integrations/cursor/open-cursor-workspace.ts.html +0 -277
- package/coverage/cli/src/integrations/cursor/reconcile-workspace-folders.ts.html +0 -355
- package/coverage/cli/src/integrations/cursor/remove-folders-from-workspace.ts.html +0 -364
- package/coverage/cli/src/integrations/cursor/resolve-workspace-path.ts.html +0 -124
- package/coverage/cli/src/integrations/doppler/doppler-cli-auth.ts.html +0 -178
- package/coverage/cli/src/integrations/doppler/doppler-errors.ts.html +0 -349
- package/coverage/cli/src/integrations/doppler/doppler-project.ts.html +0 -355
- package/coverage/cli/src/integrations/doppler/index.html +0 -161
- package/coverage/cli/src/integrations/doppler/index.ts.html +0 -97
- package/coverage/cli/src/integrations/gh/gh-cli-auth/gh-cli-auth.ts.html +0 -172
- package/coverage/cli/src/integrations/gh/gh-cli-auth/index.html +0 -131
- package/coverage/cli/src/integrations/gh/gh-cli-auth/index.ts.html +0 -88
- package/coverage/cli/src/integrations/gh/gh-release-prs/gh-release-prs.ts.html +0 -703
- package/coverage/cli/src/integrations/gh/gh-release-prs/index.html +0 -131
- package/coverage/cli/src/integrations/gh/gh-release-prs/index.ts.html +0 -91
- package/coverage/cli/src/integrations/gh/index.html +0 -116
- package/coverage/cli/src/integrations/gh/index.ts.html +0 -94
- package/coverage/cli/src/integrations/ide/add-ide-worktree-folders.ts.html +0 -316
- package/coverage/cli/src/integrations/ide/index.html +0 -191
- package/coverage/cli/src/integrations/ide/index.ts.html +0 -103
- package/coverage/cli/src/integrations/ide/open-ide-workspace.ts.html +0 -238
- package/coverage/cli/src/integrations/ide/provider-label.ts.html +0 -157
- package/coverage/cli/src/integrations/ide/remove-ide-worktree-folders.ts.html +0 -520
- package/coverage/cli/src/integrations/ide/types.ts.html +0 -208
- package/coverage/cli/src/integrations/jira/api.ts.html +0 -1060
- package/coverage/cli/src/integrations/jira/index.html +0 -131
- package/coverage/cli/src/integrations/jira/index.ts.html +0 -142
- package/coverage/cli/src/integrations/zed/add-folders-to-zed-workspace.ts.html +0 -175
- package/coverage/cli/src/integrations/zed/index.html +0 -161
- package/coverage/cli/src/integrations/zed/index.ts.html +0 -94
- package/coverage/cli/src/integrations/zed/open-zed-workspace.ts.html +0 -238
- package/coverage/cli/src/integrations/zed/reuse-zed-workspace.ts.html +0 -256
- package/coverage/cli/src/lib/assert-never/assert-never.ts.html +0 -130
- package/coverage/cli/src/lib/assert-never/index.html +0 -131
- package/coverage/cli/src/lib/assert-never/index.ts.html +0 -88
- package/coverage/cli/src/lib/command-catalog/command-catalog.ts.html +0 -523
- package/coverage/cli/src/lib/command-catalog/index.html +0 -116
- package/coverage/cli/src/lib/command-echo/command-echo.ts.html +0 -319
- package/coverage/cli/src/lib/command-echo/index.html +0 -131
- package/coverage/cli/src/lib/command-echo/index.ts.html +0 -88
- package/coverage/cli/src/lib/constants/constants.ts.html +0 -472
- package/coverage/cli/src/lib/constants/index.html +0 -131
- package/coverage/cli/src/lib/constants/index.ts.html +0 -139
- package/coverage/cli/src/lib/env-autoload/env-autoload.ts.html +0 -1111
- package/coverage/cli/src/lib/env-autoload/index.html +0 -116
- package/coverage/cli/src/lib/errors/format-zx-error.ts.html +0 -247
- package/coverage/cli/src/lib/errors/index.html +0 -146
- package/coverage/cli/src/lib/errors/is-prompt-cancellation.ts.html +0 -199
- package/coverage/cli/src/lib/errors/operation-error.ts.html +0 -325
- package/coverage/cli/src/lib/git-guard/git-guard.ts.html +0 -250
- package/coverage/cli/src/lib/git-guard/index.html +0 -131
- package/coverage/cli/src/lib/git-guard/index.ts.html +0 -91
- package/coverage/cli/src/lib/git-utils/git-utils.ts.html +0 -622
- package/coverage/cli/src/lib/git-utils/index.html +0 -131
- package/coverage/cli/src/lib/git-utils/index.ts.html +0 -115
- package/coverage/cli/src/lib/infra-kit-config/index.html +0 -131
- package/coverage/cli/src/lib/infra-kit-config/index.ts.html +0 -142
- package/coverage/cli/src/lib/infra-kit-config/infra-kit-config.ts.html +0 -1447
- package/coverage/cli/src/lib/json-output/index.html +0 -116
- package/coverage/cli/src/lib/json-output/json-output.ts.html +0 -226
- package/coverage/cli/src/lib/logger/index.html +0 -116
- package/coverage/cli/src/lib/logger/index.ts.html +0 -205
- package/coverage/cli/src/lib/managed-block/index.html +0 -131
- package/coverage/cli/src/lib/managed-block/index.ts.html +0 -109
- package/coverage/cli/src/lib/managed-block/managed-block.ts.html +0 -520
- package/coverage/cli/src/lib/package-config/index.html +0 -146
- package/coverage/cli/src/lib/package-config/index.ts.html +0 -94
- package/coverage/cli/src/lib/package-config/package-config-schema.ts.html +0 -142
- package/coverage/cli/src/lib/package-config/package-config.ts.html +0 -376
- package/coverage/cli/src/lib/package-validator/checks/config-check.ts.html +0 -175
- package/coverage/cli/src/lib/package-validator/checks/files-check.ts.html +0 -172
- package/coverage/cli/src/lib/package-validator/checks/index.html +0 -176
- package/coverage/cli/src/lib/package-validator/checks/index.ts.html +0 -97
- package/coverage/cli/src/lib/package-validator/checks/scripts-check.ts.html +0 -154
- package/coverage/cli/src/lib/package-validator/checks/turbo-check.ts.html +0 -226
- package/coverage/cli/src/lib/package-validator/fs-utils.ts.html +0 -139
- package/coverage/cli/src/lib/package-validator/index.html +0 -146
- package/coverage/cli/src/lib/package-validator/index.ts.html +0 -94
- package/coverage/cli/src/lib/package-validator/loader/config-loader.ts.html +0 -316
- package/coverage/cli/src/lib/package-validator/loader/index.html +0 -146
- package/coverage/cli/src/lib/package-validator/loader/index.ts.html +0 -91
- package/coverage/cli/src/lib/package-validator/loader/package-discovery.ts.html +0 -379
- package/coverage/cli/src/lib/package-validator/package-validator.ts.html +0 -229
- package/coverage/cli/src/lib/path-display/index.html +0 -131
- package/coverage/cli/src/lib/path-display/index.ts.html +0 -88
- package/coverage/cli/src/lib/path-display/path-display.ts.html +0 -211
- package/coverage/cli/src/lib/release-id/index.html +0 -131
- package/coverage/cli/src/lib/release-id/index.ts.html +0 -130
- package/coverage/cli/src/lib/release-id/release-id.ts.html +0 -859
- package/coverage/cli/src/lib/release-utils/index.html +0 -131
- package/coverage/cli/src/lib/release-utils/index.ts.html +0 -130
- package/coverage/cli/src/lib/release-utils/release-utils.ts.html +0 -778
- package/coverage/cli/src/lib/render/index.html +0 -116
- package/coverage/cli/src/lib/render/render.ts.html +0 -157
- package/coverage/cli/src/lib/vendor/__tests__/index.html +0 -116
- package/coverage/cli/src/lib/vendor/__tests__/zx-mock.ts.html +0 -181
- package/coverage/cli/src/lib/vendor/config-schema.ts.html +0 -319
- package/coverage/cli/src/lib/vendor/config.ts.html +0 -259
- package/coverage/cli/src/lib/vendor/factory-config-schema.ts.html +0 -190
- package/coverage/cli/src/lib/vendor/factory-config.ts.html +0 -358
- package/coverage/cli/src/lib/vendor/hash.ts.html +0 -133
- package/coverage/cli/src/lib/vendor/index.html +0 -251
- package/coverage/cli/src/lib/vendor/index.ts.html +0 -154
- package/coverage/cli/src/lib/vendor/manifest.ts.html +0 -538
- package/coverage/cli/src/lib/vendor/skip-sets.ts.html +0 -229
- package/coverage/cli/src/lib/vendor/sync-ops.ts.html +0 -955
- package/coverage/cli/src/lib/vendor/walk.ts.html +0 -253
- package/coverage/cli/src/lib/version-utils/index.html +0 -161
- package/coverage/cli/src/lib/version-utils/index.ts.html +0 -139
- package/coverage/cli/src/lib/version-utils/load-existing-versions.ts.html +0 -343
- package/coverage/cli/src/lib/version-utils/next-version.ts.html +0 -934
- package/coverage/cli/src/lib/version-utils/version-utils.ts.html +0 -178
- package/coverage/cli/src/lib/worktrees/index.html +0 -131
- package/coverage/cli/src/lib/worktrees/index.ts.html +0 -88
- package/coverage/cli/src/lib/worktrees/remove-worktrees.ts.html +0 -283
- package/coverage/cli/src/tui/boot.tsx.html +0 -265
- package/coverage/cli/src/tui/index.html +0 -116
- package/coverage/cli/src/tui/screens/command-palette.tsx.html +0 -562
- package/coverage/cli/src/tui/screens/index.html +0 -116
- package/coverage/cli/src/types.ts.html +0 -283
- package/coverage/clover.xml +0 -4488
- package/coverage/coverage-final.json +0 -156
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -1076
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/dist/chunk-DB6CTNBS.js +0 -3
- package/dist/chunk-DB6CTNBS.js.map +0 -7
- package/dist/chunk-QBHCWAAG.js +0 -164
- package/dist/chunk-QBHCWAAG.js.map +0 -7
- package/dist/chunk-YSBF5C7C.js.map +0 -7
- package/eslint.config.js +0 -35
- package/infra-kit.config.ts +0 -5
- package/scripts/build.js +0 -75
- package/src/.omc/state/agent-replay-2ac0dcd0-01f7-41a8-a8c9-f2195599817b.jsonl +0 -5
- package/src/.omc/state/agent-replay-2ccbd177-0d5d-4d4a-ab94-a22464786221.jsonl +0 -2
- package/src/.omc/state/agent-replay-707b4784-2117-4b19-ae68-68a031f0d76d.jsonl +0 -2
- package/src/.omc/state/agent-replay-8dd0ad2f-3a90-4158-b9de-ec8e19a7c983.jsonl +0 -11
- package/src/.omc/state/agent-replay-c513ef38-cc3e-4a29-9c4c-1e0137245dd5.jsonl +0 -4
- package/src/.omc/state/agent-replay-ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a.jsonl +0 -2
- package/src/.omc/state/idle-notif-cooldown.json +0 -3
- package/src/.omc/state/sessions/0a58307d-2a37-4c69-851c-83a646502d62/pre-tool-advisory-throttle.json +0 -18
- package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/mission-state.json +0 -79
- package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/pre-tool-advisory-throttle.json +0 -26
- package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/subagent-tracking-state.json +0 -26
- package/src/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/last-tool-error-state.json +0 -7
- package/src/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/mission-state.json +0 -53
- package/src/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/pre-tool-advisory-throttle.json +0 -22
- package/src/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/subagent-tracking-state.json +0 -17
- package/src/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/last-tool-error-state.json +0 -7
- package/src/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/mission-state.json +0 -53
- package/src/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/pre-tool-advisory-throttle.json +0 -22
- package/src/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/subagent-tracking-state.json +0 -17
- package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/mission-state.json +0 -79
- package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -22
- package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/ralph-state.json +0 -13
- package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/subagent-tracking-state.json +0 -26
- package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/ultrawork-state.json +0 -11
- package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/mission-state.json +0 -79
- package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/pre-tool-advisory-throttle.json +0 -22
- package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/subagent-tracking-state.json +0 -26
- package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/pre-tool-advisory-throttle.json +0 -18
- package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/ralph-state.json +0 -13
- package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/ultrawork-state.json +0 -11
- package/src/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/pre-tool-advisory-throttle.json +0 -14
- package/src/commands/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/pre-tool-advisory-throttle.json +0 -14
- package/src/commands/.omc/state/sessions/c967c819-3d1c-447b-ab48-56a8448ef9f8/pre-tool-advisory-throttle.json +0 -18
- package/src/commands/.omc/state/sessions/f09f401f-56c6-42cd-97be-c742c1956468/pre-tool-advisory-throttle.json +0 -14
- package/src/commands/audit/.omc/state/agent-replay-f9c17a0e-2dd8-4f7d-badf-631f266c5d4c.jsonl +0 -4
- package/src/commands/audit/.omc/state/sessions/f9c17a0e-2dd8-4f7d-badf-631f266c5d4c/mission-state.json +0 -79
- package/src/commands/audit/.omc/state/sessions/f9c17a0e-2dd8-4f7d-badf-631f266c5d4c/pre-tool-advisory-throttle.json +0 -22
- package/src/commands/audit/.omc/state/sessions/f9c17a0e-2dd8-4f7d-badf-631f266c5d4c/subagent-tracking-state.json +0 -26
- package/src/commands/audit/__tests__/audit.test.ts +0 -59
- package/src/commands/audit/audit.ts +0 -177
- package/src/commands/audit/index.ts +0 -1
- package/src/commands/config/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/last-tool-error-state.json +0 -7
- package/src/commands/config/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/pre-tool-advisory-throttle.json +0 -18
- package/src/commands/config/config.ts +0 -137
- package/src/commands/config/index.ts +0 -1
- package/src/commands/doctor/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -14
- package/src/commands/doctor/__tests__/agent-files.test.ts +0 -88
- package/src/commands/doctor/__tests__/check-ide-installed.test.ts +0 -142
- package/src/commands/doctor/__tests__/check-legacy-user-global-config.test.ts +0 -110
- package/src/commands/doctor/doctor.ts +0 -576
- package/src/commands/doctor/index.ts +0 -1
- package/src/commands/env-autoload/env-autoload.ts +0 -24
- package/src/commands/env-autoload/index.ts +0 -1
- package/src/commands/env-clear/__tests__/env-clear.test.ts +0 -27
- package/src/commands/env-clear/env-clear.ts +0 -136
- package/src/commands/env-clear/index.ts +0 -1
- package/src/commands/env-list/env-list.ts +0 -48
- package/src/commands/env-list/index.ts +0 -1
- package/src/commands/env-load/__tests__/env-load.test.ts +0 -200
- package/src/commands/env-load/env-load.ts +0 -394
- package/src/commands/env-load/index.ts +0 -2
- package/src/commands/env-status/__tests__/env-status.test.ts +0 -78
- package/src/commands/env-status/env-status.ts +0 -108
- package/src/commands/env-status/index.ts +0 -1
- package/src/commands/gh-merge-dev/gh-merge-dev.ts +0 -203
- package/src/commands/gh-merge-dev/index.ts +0 -1
- package/src/commands/gh-release-deliver/gh-release-deliver.ts +0 -470
- package/src/commands/gh-release-deliver/index.ts +0 -1
- package/src/commands/gh-release-deploy-all/gh-release-deploy-all.ts +0 -207
- package/src/commands/gh-release-deploy-all/index.ts +0 -1
- package/src/commands/gh-release-deploy-selected/gh-release-deploy-selected.ts +0 -303
- package/src/commands/gh-release-deploy-selected/index.ts +0 -1
- package/src/commands/gh-release-list/gh-release-list.ts +0 -90
- package/src/commands/gh-release-list/index.ts +0 -1
- package/src/commands/init/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -18
- package/src/commands/init/__tests__/agent-files.test.ts +0 -265
- package/src/commands/init/__tests__/migrate-config.test.ts +0 -422
- package/src/commands/init/__tests__/migrate-factory-config.test.ts +0 -93
- package/src/commands/init/__tests__/seed-user-global-config.test.ts +0 -64
- package/src/commands/init/__tests__/shell-body.test.ts +0 -131
- package/src/commands/init/agent-files.ts +0 -219
- package/src/commands/init/index.ts +0 -8
- package/src/commands/init/init.ts +0 -440
- package/src/commands/init/migrate-config.ts +0 -378
- package/src/commands/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
- package/src/commands/release-create/__tests__/release-create.test.ts +0 -92
- package/src/commands/release-create/index.ts +0 -1
- package/src/commands/release-create/release-create.ts +0 -447
- package/src/commands/release-desc-edit/index.ts +0 -1
- package/src/commands/release-desc-edit/release-desc-edit.ts +0 -227
- package/src/commands/vendor-check/__tests__/runtime-isolation.test.ts +0 -71
- package/src/commands/vendor-check/__tests__/vendor-check.test.ts +0 -87
- package/src/commands/vendor-check/index.ts +0 -1
- package/src/commands/vendor-check/vendor-check.ts +0 -127
- package/src/commands/vendor-config/__tests__/vendor-config.test.ts +0 -103
- package/src/commands/vendor-config/index.ts +0 -1
- package/src/commands/vendor-config/vendor-config.ts +0 -162
- package/src/commands/vendor-diff/__tests__/vendor-diff.test.ts +0 -74
- package/src/commands/vendor-diff/index.ts +0 -1
- package/src/commands/vendor-diff/vendor-diff.ts +0 -77
- package/src/commands/vendor-manifest/index.ts +0 -1
- package/src/commands/vendor-manifest/vendor-manifest.ts +0 -60
- package/src/commands/vendor-sync/__tests__/vendor-write.test.ts +0 -86
- package/src/commands/vendor-sync/index.ts +0 -1
- package/src/commands/vendor-sync/vendor-sync.ts +0 -90
- package/src/commands/version/index.ts +0 -1
- package/src/commands/version/version.ts +0 -33
- package/src/commands/worktrees-add/index.ts +0 -1
- package/src/commands/worktrees-add/worktrees-add.ts +0 -366
- package/src/commands/worktrees-list/index.ts +0 -1
- package/src/commands/worktrees-list/worktrees-list.ts +0 -105
- package/src/commands/worktrees-reload/__tests__/reload-cmux.test.ts +0 -119
- package/src/commands/worktrees-reload/index.ts +0 -1
- package/src/commands/worktrees-reload/worktrees-reload.ts +0 -230
- package/src/commands/worktrees-remove/index.ts +0 -1
- package/src/commands/worktrees-remove/worktrees-remove.ts +0 -199
- package/src/commands/worktrees-sync/index.ts +0 -1
- package/src/commands/worktrees-sync/worktrees-sync.ts +0 -198
- package/src/dev/__tests__/dev-server-options.test.ts +0 -57
- package/src/dev/__tests__/dev-server.test.ts +0 -420
- package/src/dev/__tests__/discovery.test.ts +0 -181
- package/src/dev/__tests__/fixtures.ts +0 -257
- package/src/dev/__tests__/ports.test.ts +0 -98
- package/src/dev/__tests__/serverless-local-run.test.ts +0 -533
- package/src/dev/dev-server.ts +0 -796
- package/src/dev/discovery.ts +0 -229
- package/src/dev/interfaces.ts +0 -11
- package/src/dev/managed-child.ts +0 -73
- package/src/dev/ports.ts +0 -100
- package/src/dev/serverless-local-run.ts +0 -329
- package/src/dev/turbo-watch.ts +0 -62
- package/src/dev/ui-dev.ts +0 -62
- package/src/entry/cli.ts +0 -630
- package/src/entry/dev-server.ts +0 -103
- package/src/entry/index.ts +0 -11
- package/src/entry/mcp.ts +0 -43
- package/src/integrations/cmux/__tests__/canonicalize-cmux-title.test.ts +0 -56
- package/src/integrations/cmux/__tests__/close-workspace-by-title.test.ts +0 -63
- package/src/integrations/cmux/__tests__/list-workspace-titles.test.ts +0 -65
- package/src/integrations/cmux/__tests__/open-workspace-with-layout.test.ts +0 -127
- package/src/integrations/cmux/canonicalize-cmux-title.ts +0 -31
- package/src/integrations/cmux/close-workspace-by-title.ts +0 -59
- package/src/integrations/cmux/index.ts +0 -5
- package/src/integrations/cmux/list-workspace-titles.ts +0 -47
- package/src/integrations/cmux/open-workspace-with-layout.ts +0 -80
- package/src/integrations/cmux/workspace-title.ts +0 -23
- package/src/integrations/cursor/.omc/state/agent-replay-f99d8dad-81d1-4987-8183-62edf0843d0c.jsonl +0 -2
- package/src/integrations/cursor/.omc/state/idle-notif-cooldown.json +0 -3
- package/src/integrations/cursor/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/pre-tool-advisory-throttle.json +0 -18
- package/src/integrations/cursor/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/subagent-tracking-state.json +0 -17
- package/src/integrations/cursor/add-folders-to-workspace.ts +0 -84
- package/src/integrations/cursor/index.ts +0 -6
- package/src/integrations/cursor/launch-cursor.ts +0 -12
- package/src/integrations/cursor/open-cursor-workspace.ts +0 -64
- package/src/integrations/cursor/reconcile-workspace-folders.ts +0 -90
- package/src/integrations/cursor/remove-folders-from-workspace.ts +0 -93
- package/src/integrations/cursor/resolve-workspace-path.ts +0 -13
- package/src/integrations/doppler/__tests__/doppler-errors.test.ts +0 -76
- package/src/integrations/doppler/doppler-cli-auth.ts +0 -31
- package/src/integrations/doppler/doppler-errors.ts +0 -88
- package/src/integrations/doppler/doppler-project.ts +0 -90
- package/src/integrations/doppler/index.ts +0 -4
- package/src/integrations/gh/gh-cli-auth/gh-cli-auth.ts +0 -29
- package/src/integrations/gh/gh-cli-auth/index.ts +0 -1
- package/src/integrations/gh/gh-release-prs/.omc/state/sessions/c6ed6186-1aac-48e0-aa2a-edc6da8e0410/pre-tool-advisory-throttle.json +0 -10
- package/src/integrations/gh/gh-release-prs/__tests__/gh-release-prs.test.ts +0 -198
- package/src/integrations/gh/gh-release-prs/gh-release-prs.ts +0 -206
- package/src/integrations/gh/gh-release-prs/index.ts +0 -2
- package/src/integrations/gh/index.ts +0 -3
- package/src/integrations/ide/__tests__/ide-facade.test.ts +0 -289
- package/src/integrations/ide/add-ide-worktree-folders.ts +0 -77
- package/src/integrations/ide/index.ts +0 -6
- package/src/integrations/ide/open-ide-workspace.ts +0 -51
- package/src/integrations/ide/provider-label.ts +0 -24
- package/src/integrations/ide/remove-ide-worktree-folders.ts +0 -145
- package/src/integrations/ide/types.ts +0 -41
- package/src/integrations/jira/api.ts +0 -325
- package/src/integrations/jira/index.ts +0 -19
- package/src/integrations/jira/types.ts +0 -85
- package/src/integrations/linear/.gitkeep +0 -0
- package/src/integrations/zed/__tests__/open-zed-workspace.test.ts +0 -69
- package/src/integrations/zed/__tests__/reuse-zed-workspace.test.ts +0 -86
- package/src/integrations/zed/add-folders-to-zed-workspace.ts +0 -30
- package/src/integrations/zed/index.ts +0 -3
- package/src/integrations/zed/open-zed-workspace.ts +0 -51
- package/src/integrations/zed/reuse-zed-workspace.ts +0 -57
- package/src/lib/.omc/state/sessions/f9c17a0e-2dd8-4f7d-badf-631f266c5d4c/pre-tool-advisory-throttle.json +0 -18
- package/src/lib/assert-never/assert-never.ts +0 -15
- package/src/lib/assert-never/index.ts +0 -1
- package/src/lib/command-catalog/__tests__/__snapshots__/command-catalog.test.ts.snap +0 -213
- package/src/lib/command-catalog/__tests__/command-catalog.test.ts +0 -193
- package/src/lib/command-catalog/command-catalog.ts +0 -146
- package/src/lib/command-catalog/index.ts +0 -2
- package/src/lib/command-echo/__tests__/command-echo.test.ts +0 -127
- package/src/lib/command-echo/command-echo.ts +0 -78
- package/src/lib/command-echo/index.ts +0 -1
- package/src/lib/constants/__tests__/constants.test.ts +0 -182
- package/src/lib/constants/constants.ts +0 -167
- package/src/lib/constants/index.ts +0 -22
- package/src/lib/env-autoload/__tests__/env-autoload.test.ts +0 -327
- package/src/lib/env-autoload/env-autoload.ts +0 -373
- package/src/lib/env-autoload/index.ts +0 -9
- package/src/lib/error-handlers/index.ts +0 -36
- package/src/lib/errors/__tests__/is-prompt-cancellation.test.ts +0 -48
- package/src/lib/errors/__tests__/operation-error.test.ts +0 -62
- package/src/lib/errors/format-zx-error.ts +0 -54
- package/src/lib/errors/is-prompt-cancellation.ts +0 -38
- package/src/lib/errors/operation-error.ts +0 -80
- package/src/lib/git-guard/__tests__/git-guard.test.ts +0 -92
- package/src/lib/git-guard/git-guard.ts +0 -55
- package/src/lib/git-guard/index.ts +0 -2
- package/src/lib/git-utils/__tests__/git-primitives.test.ts +0 -217
- package/src/lib/git-utils/__tests__/git-utils.test.ts +0 -49
- package/src/lib/git-utils/git-utils.ts +0 -179
- package/src/lib/git-utils/index.ts +0 -10
- package/src/lib/infra-kit-config/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -18
- package/src/lib/infra-kit-config/__tests__/env-autoload-schema.test.ts +0 -71
- package/src/lib/infra-kit-config/__tests__/infra-kit-config.test.ts +0 -504
- package/src/lib/infra-kit-config/index.ts +0 -19
- package/src/lib/infra-kit-config/infra-kit-config.ts +0 -454
- package/src/lib/json-output/__tests__/json-output.test.ts +0 -139
- package/src/lib/json-output/index.ts +0 -1
- package/src/lib/json-output/json-output.ts +0 -47
- package/src/lib/logger/index.ts +0 -40
- package/src/lib/managed-block/__tests__/managed-block.test.ts +0 -121
- package/src/lib/managed-block/index.ts +0 -8
- package/src/lib/managed-block/managed-block.ts +0 -145
- package/src/lib/package-config/.omc/state/sessions/dde22a92-a0e9-4948-905d-25c9a812ab35/last-tool-error-state.json +0 -7
- package/src/lib/package-config/.omc/state/sessions/dde22a92-a0e9-4948-905d-25c9a812ab35/pre-tool-advisory-throttle.json +0 -10
- package/src/lib/package-config/__tests__/package-config.test.ts +0 -95
- package/src/lib/package-config/index.ts +0 -3
- package/src/lib/package-config/package-config-schema.ts +0 -19
- package/src/lib/package-config/package-config.ts +0 -97
- package/src/lib/package-validator/.omc/state/sessions/f9c17a0e-2dd8-4f7d-badf-631f266c5d4c/pre-tool-advisory-throttle.json +0 -10
- package/src/lib/package-validator/__tests__/package-validator.test.ts +0 -270
- package/src/lib/package-validator/checks/__tests__/checks.test.ts +0 -130
- package/src/lib/package-validator/checks/config-check.ts +0 -30
- package/src/lib/package-validator/checks/files-check.ts +0 -29
- package/src/lib/package-validator/checks/index.ts +0 -4
- package/src/lib/package-validator/checks/scripts-check.ts +0 -23
- package/src/lib/package-validator/checks/turbo-check.ts +0 -47
- package/src/lib/package-validator/fs-utils.ts +0 -18
- package/src/lib/package-validator/index.ts +0 -3
- package/src/lib/package-validator/loader/config-loader.ts +0 -77
- package/src/lib/package-validator/loader/index.ts +0 -2
- package/src/lib/package-validator/loader/package-discovery.ts +0 -98
- package/src/lib/package-validator/package-validator.ts +0 -48
- package/src/lib/package-validator/types.ts +0 -15
- package/src/lib/path-display/index.ts +0 -1
- package/src/lib/path-display/path-display.ts +0 -42
- package/src/lib/release-id/__tests__/release-id.test.ts +0 -359
- package/src/lib/release-id/__tests__/versioned-regression.test.ts +0 -69
- package/src/lib/release-id/index.ts +0 -15
- package/src/lib/release-id/release-id.ts +0 -258
- package/src/lib/release-utils/__tests__/release-utils.test.ts +0 -122
- package/src/lib/release-utils/index.ts +0 -15
- package/src/lib/release-utils/release-utils.ts +0 -231
- package/src/lib/render/__tests__/render.test.ts +0 -48
- package/src/lib/render/index.ts +0 -1
- package/src/lib/render/render.ts +0 -24
- package/src/lib/tool-handler/index.ts +0 -1
- package/src/lib/tool-handler/tool-handler.ts +0 -30
- package/src/lib/vendor/.omc/state/sessions/f09f401f-56c6-42cd-97be-c742c1956468/pre-tool-advisory-throttle.json +0 -10
- package/src/lib/vendor/__tests__/config-schema.test.ts +0 -31
- package/src/lib/vendor/__tests__/config.test.ts +0 -63
- package/src/lib/vendor/__tests__/factory-config.test.ts +0 -92
- package/src/lib/vendor/__tests__/vendor-lib.test.ts +0 -158
- package/src/lib/vendor/__tests__/zx-mock.ts +0 -32
- package/src/lib/vendor/config-schema.ts +0 -78
- package/src/lib/vendor/config.ts +0 -58
- package/src/lib/vendor/factory-config-schema.ts +0 -35
- package/src/lib/vendor/factory-config.ts +0 -91
- package/src/lib/vendor/hash.ts +0 -16
- package/src/lib/vendor/index.ts +0 -23
- package/src/lib/vendor/manifest.ts +0 -151
- package/src/lib/vendor/skip-sets.ts +0 -48
- package/src/lib/vendor/sync-ops.ts +0 -290
- package/src/lib/vendor/walk.ts +0 -56
- package/src/lib/version-utils/__tests__/load-existing-versions.test.ts +0 -37
- package/src/lib/version-utils/__tests__/next-version.test.ts +0 -407
- package/src/lib/version-utils/index.ts +0 -18
- package/src/lib/version-utils/load-existing-versions.ts +0 -86
- package/src/lib/version-utils/next-version.ts +0 -283
- package/src/lib/version-utils/version-utils.ts +0 -31
- package/src/lib/warm-cache/__tests__/warm-cache.test.ts +0 -164
- package/src/lib/warm-cache/index.ts +0 -7
- package/src/lib/warm-cache/warm-cache.ts +0 -136
- package/src/lib/worktrees/__tests__/remove-worktrees.test.ts +0 -167
- package/src/lib/worktrees/index.ts +0 -1
- package/src/lib/worktrees/remove-worktrees.ts +0 -66
- package/src/mcp/prompts/index.ts +0 -3
- package/src/mcp/resources/index.ts +0 -3
- package/src/mcp/server.ts +0 -27
- package/src/mcp/tools/index.ts +0 -21
- package/src/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
- package/src/sanity.test.tsx +0 -8
- package/src/tui/__tests__/boot.test.tsx +0 -61
- package/src/tui/__tests__/no-react-boundary.test.ts +0 -51
- package/src/tui/boot.tsx +0 -60
- package/src/tui/screens/__tests__/command-palette.test.tsx +0 -136
- package/src/tui/screens/command-palette.tsx +0 -159
- package/src/tui/types.ts +0 -8
- package/src/types.ts +0 -66
- package/tsconfig.json +0 -46
- package/tsconfig.tsbuildinfo +0 -1
- package/vitest.config.ts +0 -26
- package/vitest.setup.ts +0 -1
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
/* eslint-disable sonarjs/cognitive-complexity */
|
|
2
|
-
import checkbox from '@inquirer/checkbox'
|
|
3
|
-
import confirm from '@inquirer/confirm'
|
|
4
|
-
import process from 'node:process'
|
|
5
|
-
import { z } from 'zod'
|
|
6
|
-
import { $ } from 'zx'
|
|
7
|
-
|
|
8
|
-
import { getReleasePRsWithInfo } from 'src/integrations/gh'
|
|
9
|
-
import { commandEcho } from 'src/lib/command-echo'
|
|
10
|
-
import { OperationError } from 'src/lib/errors/operation-error'
|
|
11
|
-
import { assertManagementContext } from 'src/lib/git-guard'
|
|
12
|
-
import { logger } from 'src/lib/logger'
|
|
13
|
-
import { detectReleaseType, formatBranchChoices, getJiraDescriptions, releaseBranchLabels } from 'src/lib/release-utils'
|
|
14
|
-
import { defineMcpTool, textContent } from 'src/types'
|
|
15
|
-
import type { RequiredConfirmedOptionArg } from 'src/types'
|
|
16
|
-
|
|
17
|
-
interface GhMergeDevArgs extends RequiredConfirmedOptionArg {
|
|
18
|
-
all?: boolean
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Merge dev into every release branch
|
|
23
|
-
*/
|
|
24
|
-
export const ghMergeDev = async (args: GhMergeDevArgs) => {
|
|
25
|
-
const { all, confirmedCommand } = args
|
|
26
|
-
|
|
27
|
-
commandEcho.start('merge-dev')
|
|
28
|
-
|
|
29
|
-
await assertManagementContext({ operation: 'merge dev into release branches', requiredBranch: 'dev' })
|
|
30
|
-
|
|
31
|
-
// Only merge dev into regular releases (not hotfixes, which target main)
|
|
32
|
-
const allPRs = await getReleasePRsWithInfo()
|
|
33
|
-
const releasePRsList = allPRs
|
|
34
|
-
.filter((pr) => {
|
|
35
|
-
return detectReleaseType(pr.title) === 'regular'
|
|
36
|
-
})
|
|
37
|
-
.map((pr) => {
|
|
38
|
-
return pr.branch
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
if (releasePRsList.length === 0) {
|
|
42
|
-
logger.info('ℹ️ No open release branches found')
|
|
43
|
-
|
|
44
|
-
commandEcho.print()
|
|
45
|
-
|
|
46
|
-
return {
|
|
47
|
-
content: textContent(
|
|
48
|
-
JSON.stringify({ successfulMerges: 0, failedMerges: 0, failedBranches: [], totalBranches: 0 }, null, 2),
|
|
49
|
-
),
|
|
50
|
-
structuredContent: { successfulMerges: 0, failedMerges: 0, failedBranches: [], totalBranches: 0 },
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
let selectedReleaseBranches: string[] = []
|
|
55
|
-
|
|
56
|
-
if (all) {
|
|
57
|
-
selectedReleaseBranches = releasePRsList
|
|
58
|
-
} else {
|
|
59
|
-
commandEcho.setInteractive()
|
|
60
|
-
|
|
61
|
-
const descriptions = await getJiraDescriptions()
|
|
62
|
-
|
|
63
|
-
selectedReleaseBranches = await checkbox({
|
|
64
|
-
required: true,
|
|
65
|
-
message: '🌿 Select release branches',
|
|
66
|
-
choices: formatBranchChoices({ branches: releasePRsList, descriptions }),
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Track --all flag if all branches were selected (either via flag or interactively)
|
|
71
|
-
const allSelected = selectedReleaseBranches.length === releasePRsList.length
|
|
72
|
-
|
|
73
|
-
if (allSelected) {
|
|
74
|
-
commandEcho.addOption('--all', true)
|
|
75
|
-
} else {
|
|
76
|
-
commandEcho.addOption('--versions', releaseBranchLabels(selectedReleaseBranches))
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Validate input
|
|
80
|
-
// if (selectedReleaseBranches.length === 0) {
|
|
81
|
-
// console.error('No branches provided. Exiting...')
|
|
82
|
-
// process.exit(1)
|
|
83
|
-
// }
|
|
84
|
-
|
|
85
|
-
const answer = confirmedCommand
|
|
86
|
-
? true
|
|
87
|
-
: await confirm({
|
|
88
|
-
message: `Are you sure you want to merge dev into these branches: ${selectedReleaseBranches.join(', ')}?`,
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
if (!confirmedCommand) {
|
|
92
|
-
commandEcho.setInteractive()
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (!answer) {
|
|
96
|
-
logger.info('Operation cancelled. Exiting...')
|
|
97
|
-
process.exit(0)
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// Track --yes flag if confirmation was interactive (user confirmed)
|
|
101
|
-
if (!confirmedCommand) {
|
|
102
|
-
commandEcho.addOption('--yes', true)
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
$.quiet = true
|
|
106
|
-
|
|
107
|
-
await $`git fetch origin`
|
|
108
|
-
await $`git switch dev`
|
|
109
|
-
await $`git pull origin dev`
|
|
110
|
-
|
|
111
|
-
const failedBranches: string[] = []
|
|
112
|
-
|
|
113
|
-
// Merge dev into each branch
|
|
114
|
-
for (const branch of selectedReleaseBranches) {
|
|
115
|
-
const success = await mergeDev(branch)
|
|
116
|
-
|
|
117
|
-
if (!success) {
|
|
118
|
-
failedBranches.push(branch)
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
$.quiet = false
|
|
123
|
-
|
|
124
|
-
if (failedBranches.length > 0) {
|
|
125
|
-
logger.info(`\n⚠️ ${failedBranches.length} branch(es) failed to merge automatically.\n`)
|
|
126
|
-
logger.info('📋 Manual merge script for failed branches:')
|
|
127
|
-
for (const branch of failedBranches) {
|
|
128
|
-
logger.info(
|
|
129
|
-
`# Merge dev into ${branch} and resolve conflicts if any \n\ngit switch ${branch} && git pull origin ${branch} && git merge origin/dev\ngit push origin ${branch} && git switch dev\n`,
|
|
130
|
-
)
|
|
131
|
-
}
|
|
132
|
-
logger.info(
|
|
133
|
-
`✅ ${selectedReleaseBranches.length - failedBranches.length}/${selectedReleaseBranches.length} merges completed successfully.`,
|
|
134
|
-
)
|
|
135
|
-
} else {
|
|
136
|
-
logger.info('✅ All merges completed successfully!\n')
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
commandEcho.print()
|
|
140
|
-
|
|
141
|
-
const structuredContent = {
|
|
142
|
-
successfulMerges: selectedReleaseBranches.length - failedBranches.length,
|
|
143
|
-
failedMerges: failedBranches.length,
|
|
144
|
-
failedBranches,
|
|
145
|
-
totalBranches: selectedReleaseBranches.length,
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return {
|
|
149
|
-
content: textContent(JSON.stringify(structuredContent, null, 2)),
|
|
150
|
-
structuredContent,
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
const mergeDev = async (branch: string): Promise<boolean> => {
|
|
155
|
-
try {
|
|
156
|
-
await $`git switch ${branch}`
|
|
157
|
-
|
|
158
|
-
await $`git pull origin ${branch}`
|
|
159
|
-
|
|
160
|
-
await $`git merge origin/dev --no-edit`
|
|
161
|
-
|
|
162
|
-
await $`git push origin ${branch}`
|
|
163
|
-
|
|
164
|
-
await $`git switch dev`
|
|
165
|
-
|
|
166
|
-
logger.info(`Successfully merged dev into ${branch}`)
|
|
167
|
-
|
|
168
|
-
return true
|
|
169
|
-
} catch (error: unknown) {
|
|
170
|
-
const err = new OperationError(error, {
|
|
171
|
-
operation: `merge dev into ${branch}`,
|
|
172
|
-
remediation: "resolve conflicts manually or rerun after 'git fetch origin'",
|
|
173
|
-
})
|
|
174
|
-
|
|
175
|
-
logger.error({ error, branch, msg: err.message })
|
|
176
|
-
|
|
177
|
-
await $`git reset --merge HEAD~1`
|
|
178
|
-
|
|
179
|
-
return false
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// MCP Tool Registration
|
|
184
|
-
export const ghMergeDevMcpTool = defineMcpTool({
|
|
185
|
-
name: 'gh-merge-dev',
|
|
186
|
-
description:
|
|
187
|
-
'Merge origin/dev into every open regular (non-hotfix) release branch and push the result. Mutates local git state and the remote release branches. When invoked via MCP, pass all=true — the branch picker is unreachable without a TTY, and the confirmation prompt is auto-skipped for MCP calls, so the caller is responsible for gating. Irreversible once pushed.',
|
|
188
|
-
inputSchema: {
|
|
189
|
-
all: z
|
|
190
|
-
.boolean()
|
|
191
|
-
.optional()
|
|
192
|
-
.describe(
|
|
193
|
-
'Target every open regular release branch. Must be true for MCP calls (the interactive picker is unavailable without a TTY).',
|
|
194
|
-
),
|
|
195
|
-
},
|
|
196
|
-
outputSchema: {
|
|
197
|
-
successfulMerges: z.number().describe('Number of successful merges'),
|
|
198
|
-
failedMerges: z.number().describe('Number of failed merges'),
|
|
199
|
-
failedBranches: z.array(z.string()).describe('List of branches that failed to merge'),
|
|
200
|
-
totalBranches: z.number().describe('Total number of branches processed'),
|
|
201
|
-
},
|
|
202
|
-
handler: ghMergeDev,
|
|
203
|
-
})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { ghMergeDev, ghMergeDevMcpTool } from './gh-merge-dev'
|
|
@@ -1,470 +0,0 @@
|
|
|
1
|
-
import confirm from '@inquirer/confirm'
|
|
2
|
-
import select from '@inquirer/select'
|
|
3
|
-
import process from 'node:process'
|
|
4
|
-
import { z } from 'zod'
|
|
5
|
-
import { $ } from 'zx'
|
|
6
|
-
|
|
7
|
-
import { getReleasePRsWithInfo } from 'src/integrations/gh'
|
|
8
|
-
import { deliverJiraRelease, loadJiraConfigOptional } from 'src/integrations/jira'
|
|
9
|
-
import { commandEcho } from 'src/lib/command-echo'
|
|
10
|
-
import { WORKTREES_DIR_SUFFIX } from 'src/lib/constants'
|
|
11
|
-
import { formatZxError } from 'src/lib/errors/format-zx-error'
|
|
12
|
-
import { OperationError } from 'src/lib/errors/operation-error'
|
|
13
|
-
import { assertManagementContext } from 'src/lib/git-guard'
|
|
14
|
-
import {
|
|
15
|
-
deleteLocalBranch,
|
|
16
|
-
deleteRemoteBranch,
|
|
17
|
-
getCurrentWorktrees,
|
|
18
|
-
getProjectRoot,
|
|
19
|
-
getRepoName,
|
|
20
|
-
} from 'src/lib/git-utils'
|
|
21
|
-
import { logger } from 'src/lib/logger'
|
|
22
|
-
import { displayLabel, formatJiraName, formatRcTitle, parseBranchName } from 'src/lib/release-id'
|
|
23
|
-
import type { ReleaseId } from 'src/lib/release-id'
|
|
24
|
-
import {
|
|
25
|
-
detectReleaseType,
|
|
26
|
-
formatBranchChoices,
|
|
27
|
-
getJiraDescriptions,
|
|
28
|
-
resolveReleaseBranch,
|
|
29
|
-
} from 'src/lib/release-utils'
|
|
30
|
-
import type { ReleaseType } from 'src/lib/release-utils'
|
|
31
|
-
import { removeWorktrees } from 'src/lib/worktrees'
|
|
32
|
-
import { defineMcpTool, textContent } from 'src/types'
|
|
33
|
-
import type { RequiredConfirmedOptionArg } from 'src/types'
|
|
34
|
-
|
|
35
|
-
interface GhReleaseDeliverArgs extends RequiredConfirmedOptionArg {
|
|
36
|
-
version: string
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
type PRState = 'OPEN' | 'MERGED' | 'CLOSED'
|
|
40
|
-
|
|
41
|
-
interface PRStatus {
|
|
42
|
-
number: number
|
|
43
|
-
state: PRState
|
|
44
|
-
title: string
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Wrap a delivery step so its failure logs structured zx fields and surfaces
|
|
49
|
-
* an `OperationError` whose message names the actual step that failed —
|
|
50
|
-
* instead of the previous blanket "merging release branch into dev" message.
|
|
51
|
-
*/
|
|
52
|
-
const runStep = async <T>(operation: string, remediation: string, fn: () => Promise<T>): Promise<T> => {
|
|
53
|
-
try {
|
|
54
|
-
return await fn()
|
|
55
|
-
} catch (error) {
|
|
56
|
-
logger.error({ err: formatZxError(error) }, `❌ Failed to ${operation}`)
|
|
57
|
-
throw new OperationError(error, { operation, remediation })
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Fetch the (most-recent) PR for the given head branch, across all states, so
|
|
63
|
-
* we can resume a partially-completed delivery: a PR merged on a prior attempt
|
|
64
|
-
* still appears here as `state: 'MERGED'`, letting the caller skip the merge.
|
|
65
|
-
*/
|
|
66
|
-
const fetchPRByHead = async (head: string): Promise<PRStatus | null> => {
|
|
67
|
-
const result = await $`gh pr list --head ${head} --state all --json number,state,title --limit 1`
|
|
68
|
-
const prs = JSON.parse(result.stdout) as PRStatus[]
|
|
69
|
-
|
|
70
|
-
return prs[0] ?? null
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Find a MERGED RC PR (dev → main) whose title matches the given version, used
|
|
75
|
-
* to detect that a prior delivery run already merged the RC and we should skip
|
|
76
|
-
* the merge step on resume. Title-matched on purpose: an older MERGED RC PR
|
|
77
|
-
* from a different release must not short-circuit this version's flow.
|
|
78
|
-
*/
|
|
79
|
-
const fetchMergedRcPRForVersion = async (id: ReleaseId): Promise<PRStatus | null> => {
|
|
80
|
-
const expectedTitle = formatRcTitle(id)
|
|
81
|
-
const result = await $`gh pr list --head dev --base main --state merged --json number,state,title --limit 20`
|
|
82
|
-
const prs = JSON.parse(result.stdout) as PRStatus[]
|
|
83
|
-
const match = prs.find((pr) => {
|
|
84
|
-
return pr.title === expectedTitle
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
return match ?? null
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Find an open dev → main PR, if any. GitHub allows at most one open PR per
|
|
92
|
-
* head/base pair, so an existing open PR here is the RC PR for this release —
|
|
93
|
-
* even if its title was set by a previous (failed) delivery run. Adopting it
|
|
94
|
-
* is what makes the flow recoverable after a mid-run failure.
|
|
95
|
-
*/
|
|
96
|
-
const fetchOpenDevToMainPR = async (): Promise<PRStatus | null> => {
|
|
97
|
-
const result = await $`gh pr list --head dev --base main --state open --json number,state,title --limit 5`
|
|
98
|
-
const prs = JSON.parse(result.stdout) as PRStatus[]
|
|
99
|
-
|
|
100
|
-
return prs[0] ?? null
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
interface ResolvedTarget {
|
|
104
|
-
selectedReleaseBranch: string
|
|
105
|
-
releasePrTitle: string
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const resolveTargetFromVersion = async (version: string): Promise<ResolvedTarget> => {
|
|
109
|
-
const selectedReleaseBranch = resolveReleaseBranch(version)
|
|
110
|
-
const pr = await fetchPRByHead(selectedReleaseBranch)
|
|
111
|
-
|
|
112
|
-
if (!pr) {
|
|
113
|
-
logger.error(`❌ No PR found for branch ${selectedReleaseBranch}.`)
|
|
114
|
-
throw new OperationError(undefined, {
|
|
115
|
-
operation: `deliver release ${selectedReleaseBranch}`,
|
|
116
|
-
remediation: `confirm a PR exists ('gh pr list --head ${selectedReleaseBranch} --state all')`,
|
|
117
|
-
})
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return { selectedReleaseBranch, releasePrTitle: pr.title }
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const resolveTargetInteractively = async (): Promise<ResolvedTarget> => {
|
|
124
|
-
const releasePRsInfo = await getReleasePRsWithInfo()
|
|
125
|
-
|
|
126
|
-
const branches = releasePRsInfo.map((pr) => {
|
|
127
|
-
return pr.branch
|
|
128
|
-
})
|
|
129
|
-
|
|
130
|
-
const releaseTypes = new Map<string, ReleaseType>(
|
|
131
|
-
releasePRsInfo.map((pr) => {
|
|
132
|
-
return [pr.branch, detectReleaseType(pr.title)]
|
|
133
|
-
}),
|
|
134
|
-
)
|
|
135
|
-
|
|
136
|
-
commandEcho.setInteractive()
|
|
137
|
-
|
|
138
|
-
const descriptions = await getJiraDescriptions()
|
|
139
|
-
|
|
140
|
-
const selectedReleaseBranch = await select({
|
|
141
|
-
message: '🌿 Select release branch',
|
|
142
|
-
choices: formatBranchChoices({ branches, descriptions, types: releaseTypes }),
|
|
143
|
-
})
|
|
144
|
-
|
|
145
|
-
const prInfo = releasePRsInfo.find((pr) => {
|
|
146
|
-
return pr.branch === selectedReleaseBranch
|
|
147
|
-
})
|
|
148
|
-
|
|
149
|
-
if (!prInfo) {
|
|
150
|
-
logger.error(`❌ Release branch ${selectedReleaseBranch} not found in open PRs.`)
|
|
151
|
-
throw new OperationError(undefined, {
|
|
152
|
-
operation: `deliver release ${selectedReleaseBranch}`,
|
|
153
|
-
remediation: `confirm an open PR exists for ${selectedReleaseBranch} ('gh pr list')`,
|
|
154
|
-
})
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return { selectedReleaseBranch, releasePrTitle: prInfo.title }
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* `gh pr merge --delete-branch` also deletes the local branch, which fails if a
|
|
162
|
-
* worktree has it checked out (the actual root cause of the "Failed to merge
|
|
163
|
-
* release PR" surface error). Pre-remove any worktree for the release branch
|
|
164
|
-
* so the local delete can succeed.
|
|
165
|
-
*/
|
|
166
|
-
const removeReleaseWorktreeIfPresent = async (releaseBranch: string): Promise<void> => {
|
|
167
|
-
const worktreeBranches = await getCurrentWorktrees('release')
|
|
168
|
-
|
|
169
|
-
if (!worktreeBranches.includes(releaseBranch)) return
|
|
170
|
-
|
|
171
|
-
const [projectRoot, repoName] = await Promise.all([getProjectRoot(), getRepoName()])
|
|
172
|
-
const worktreeDir = `${projectRoot}${WORKTREES_DIR_SUFFIX}`
|
|
173
|
-
|
|
174
|
-
const removed = await removeWorktrees({ branches: [releaseBranch], worktreeDir, repoName })
|
|
175
|
-
|
|
176
|
-
if (removed.length === 0) {
|
|
177
|
-
throw new OperationError(undefined, {
|
|
178
|
-
operation: `remove worktree for ${releaseBranch} before merge`,
|
|
179
|
-
remediation: `run manually: git worktree remove ${worktreeDir}/${releaseBranch} (use --force if uncommitted changes)`,
|
|
180
|
-
})
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
interface MergeReleasePRArgs {
|
|
185
|
-
selectedReleaseBranch: string
|
|
186
|
-
releaseType: ReleaseType
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
const mergeReleasePR = async (args: MergeReleasePRArgs): Promise<void> => {
|
|
190
|
-
const { selectedReleaseBranch, releaseType } = args
|
|
191
|
-
|
|
192
|
-
const mergeTarget = releaseType === 'hotfix' ? 'main' : 'dev'
|
|
193
|
-
|
|
194
|
-
const releasePr = await fetchPRByHead(selectedReleaseBranch)
|
|
195
|
-
|
|
196
|
-
if (!releasePr) {
|
|
197
|
-
throw new OperationError(undefined, {
|
|
198
|
-
operation: `look up release PR for ${selectedReleaseBranch}`,
|
|
199
|
-
remediation: `verify the PR exists in GitHub`,
|
|
200
|
-
})
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
if (releasePr.state === 'MERGED') {
|
|
204
|
-
logger.info(`✓ Release PR ${selectedReleaseBranch} already merged — skipping`)
|
|
205
|
-
|
|
206
|
-
return
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
if (releasePr.state === 'CLOSED') {
|
|
210
|
-
throw new OperationError(undefined, {
|
|
211
|
-
operation: `merge release PR ${selectedReleaseBranch} into ${mergeTarget}`,
|
|
212
|
-
remediation: `the PR is closed without merge; reopen it or create a new release`,
|
|
213
|
-
})
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
await runStep(
|
|
217
|
-
`merge release PR ${selectedReleaseBranch} into ${mergeTarget}`,
|
|
218
|
-
`check 'gh pr view ${selectedReleaseBranch}' for mergeability and required reviews`,
|
|
219
|
-
async () => {
|
|
220
|
-
await $`gh pr merge ${selectedReleaseBranch} --squash --admin --delete-branch`
|
|
221
|
-
},
|
|
222
|
-
)
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
const resolveRcPRNumber = async (id: ReleaseId): Promise<number> => {
|
|
226
|
-
const selectedLabel = displayLabel(id)
|
|
227
|
-
const expectedTitle = formatRcTitle(id)
|
|
228
|
-
const existingOpen = await fetchOpenDevToMainPR()
|
|
229
|
-
|
|
230
|
-
// Adopt any existing open dev→main PR. GitHub permits only one open PR per
|
|
231
|
-
// head/base pair, so a stale open RC PR (left behind by a prior failed run
|
|
232
|
-
// — the single most common cause of "Error merging release branch into
|
|
233
|
-
// dev") blocks `gh pr create`. Retitle it instead of fighting it.
|
|
234
|
-
if (existingOpen) {
|
|
235
|
-
const rcNumber = existingOpen.number
|
|
236
|
-
|
|
237
|
-
if (existingOpen.title !== expectedTitle) {
|
|
238
|
-
logger.info(
|
|
239
|
-
`Adopting open dev → main PR #${rcNumber} ("${existingOpen.title}") and retitling for ${selectedLabel}`,
|
|
240
|
-
)
|
|
241
|
-
await runStep(
|
|
242
|
-
`retitle dev → main PR #${rcNumber} to "${expectedTitle}"`,
|
|
243
|
-
`update manually: gh pr edit ${rcNumber} --title "${expectedTitle}"`,
|
|
244
|
-
async () => {
|
|
245
|
-
await $`gh pr edit ${rcNumber} --title ${expectedTitle}`
|
|
246
|
-
},
|
|
247
|
-
)
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
return rcNumber
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
await runStep(
|
|
254
|
-
`create RC PR (dev → main) for ${selectedLabel}`,
|
|
255
|
-
`run 'gh pr create --base main --head dev' manually to surface the underlying error (e.g. no commits between dev and main)`,
|
|
256
|
-
async () => {
|
|
257
|
-
await $`gh pr create --base main --head dev --title ${expectedTitle} --body ""`
|
|
258
|
-
},
|
|
259
|
-
)
|
|
260
|
-
|
|
261
|
-
const created = await fetchOpenDevToMainPR()
|
|
262
|
-
|
|
263
|
-
if (!created) {
|
|
264
|
-
throw new OperationError(undefined, {
|
|
265
|
-
operation: `look up RC PR for ${selectedLabel}`,
|
|
266
|
-
remediation: `verify the RC PR was created ('gh pr list --head dev --base main')`,
|
|
267
|
-
})
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
return created.number
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
const ensureRcPRMerged = async (id: ReleaseId): Promise<void> => {
|
|
274
|
-
const selectedLabel = displayLabel(id)
|
|
275
|
-
const alreadyMerged = await fetchMergedRcPRForVersion(id)
|
|
276
|
-
|
|
277
|
-
if (alreadyMerged) {
|
|
278
|
-
logger.info(`✓ RC PR for ${selectedLabel} already merged into main — skipping`)
|
|
279
|
-
|
|
280
|
-
return
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
const rcNumber = await resolveRcPRNumber(id)
|
|
284
|
-
|
|
285
|
-
await runStep(
|
|
286
|
-
`merge RC PR #${rcNumber} (dev → main) for ${selectedLabel}`,
|
|
287
|
-
`check 'gh pr view ${rcNumber}' for mergeability and required reviews`,
|
|
288
|
-
async () => {
|
|
289
|
-
await $`gh pr merge ${rcNumber} --squash --admin`
|
|
290
|
-
},
|
|
291
|
-
)
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
const dispatchDeployWorkflow = async (): Promise<void> => {
|
|
295
|
-
$.quiet = false
|
|
296
|
-
|
|
297
|
-
await runStep(
|
|
298
|
-
`dispatch deploy-all workflow on main`,
|
|
299
|
-
`check 'gh workflow list' and that you have permission to dispatch deploy-all.yml`,
|
|
300
|
-
async () => {
|
|
301
|
-
await $`gh workflow run deploy-all.yml --ref main -f environment=prod`
|
|
302
|
-
},
|
|
303
|
-
)
|
|
304
|
-
|
|
305
|
-
$.quiet = true
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
const syncMainIntoDev = async (): Promise<void> => {
|
|
309
|
-
await runStep(
|
|
310
|
-
`sync main back into dev`,
|
|
311
|
-
`run manually: git switch main && git pull && git switch dev && git pull && git merge main --no-edit && git push`,
|
|
312
|
-
async () => {
|
|
313
|
-
await $`git switch main && git pull && git switch dev && git pull && git merge main --no-edit && git push`
|
|
314
|
-
},
|
|
315
|
-
)
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* Best-effort cleanup of the delivered release branch, locally and on `origin`.
|
|
320
|
-
*
|
|
321
|
-
* Idempotent backstop to `gh pr merge --delete-branch` (in `mergeReleasePR`):
|
|
322
|
-
* that flag is skipped when the release PR was already merged on a prior
|
|
323
|
-
* attempt, so an idempotent re-run would otherwise leave the branch behind.
|
|
324
|
-
* Each delete is isolated — a failure (e.g. the branch checked out in a stray
|
|
325
|
-
* worktree, or a remote hiccup) logs a warning naming the branch and never
|
|
326
|
-
* aborts delivery, since the irreversible merge and deploy already happened.
|
|
327
|
-
*/
|
|
328
|
-
const removeDeliveredReleaseBranch = async (branch: string): Promise<void> => {
|
|
329
|
-
try {
|
|
330
|
-
await deleteLocalBranch(branch)
|
|
331
|
-
} catch (error) {
|
|
332
|
-
logger.warn({ err: formatZxError(error) }, `Failed to delete local branch ${branch} (non-blocking)`)
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
try {
|
|
336
|
-
await deleteRemoteBranch(branch)
|
|
337
|
-
} catch (error) {
|
|
338
|
-
logger.warn({ err: formatZxError(error) }, `Failed to delete remote branch ${branch} (non-blocking)`)
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
const deliverJiraReleaseSafely = async (id: ReleaseId): Promise<void> => {
|
|
343
|
-
const jiraConfig = await loadJiraConfigOptional()
|
|
344
|
-
|
|
345
|
-
if (!jiraConfig) {
|
|
346
|
-
logger.info('🔔 Jira is not configured, skipping Jira release delivery')
|
|
347
|
-
|
|
348
|
-
return
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
try {
|
|
352
|
-
// Jira fix version name: `v1.2.3` | `<name>` — must match create-time formatJiraName.
|
|
353
|
-
const versionName = formatJiraName(id)
|
|
354
|
-
|
|
355
|
-
await deliverJiraRelease({ versionName }, jiraConfig)
|
|
356
|
-
} catch (error) {
|
|
357
|
-
logger.error({ err: formatZxError(error) }, 'Failed to deliver Jira release (non-blocking)')
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Deliver a release branch to production. Each network/git step is run inside
|
|
363
|
-
* `runStep` so the surfaced error names the failing operation and includes the
|
|
364
|
-
* subprocess stderr. PR-merge steps are idempotent: if the release PR or RC PR
|
|
365
|
-
* is already MERGED, the step is skipped, so re-running after a mid-flight
|
|
366
|
-
* failure picks up where it stopped.
|
|
367
|
-
*/
|
|
368
|
-
export const ghReleaseDeliver = async (args: GhReleaseDeliverArgs) => {
|
|
369
|
-
const { version, confirmedCommand } = args
|
|
370
|
-
|
|
371
|
-
commandEcho.start('release-deliver')
|
|
372
|
-
|
|
373
|
-
// Branch-agnostic (operates on release/RC PRs via gh and self-switches), so
|
|
374
|
-
// only the worktree + clean-tree legs apply.
|
|
375
|
-
await assertManagementContext({ operation: 'deliver release' })
|
|
376
|
-
|
|
377
|
-
const { selectedReleaseBranch, releasePrTitle } = version
|
|
378
|
-
? await resolveTargetFromVersion(version)
|
|
379
|
-
: await resolveTargetInteractively()
|
|
380
|
-
|
|
381
|
-
// selectedReleaseBranch is always a release branch (operator ref strictly
|
|
382
|
-
// parsed, or picked from discovery-filtered choices) so this cannot be null.
|
|
383
|
-
const releaseId = parseBranchName(selectedReleaseBranch)
|
|
384
|
-
|
|
385
|
-
if (!releaseId) {
|
|
386
|
-
throw new OperationError(undefined, {
|
|
387
|
-
operation: `deliver release ${selectedReleaseBranch}`,
|
|
388
|
-
remediation: 'pass a version (e.g. "1.2.5") or a release name (e.g. "checkout-redesign")',
|
|
389
|
-
})
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
const selectedVersion = displayLabel(releaseId)
|
|
393
|
-
|
|
394
|
-
commandEcho.addOption('--version', selectedVersion)
|
|
395
|
-
logger.info(`Delivering ${releaseId.kind === 'name' ? 'named release' : 'version'} ${selectedReleaseBranch}`)
|
|
396
|
-
|
|
397
|
-
const releaseType: ReleaseType = detectReleaseType(releasePrTitle)
|
|
398
|
-
|
|
399
|
-
const answer = confirmedCommand
|
|
400
|
-
? true
|
|
401
|
-
: await confirm({
|
|
402
|
-
message: `Are you sure you want to deliver version ${selectedReleaseBranch} to production?`,
|
|
403
|
-
})
|
|
404
|
-
|
|
405
|
-
if (!confirmedCommand) {
|
|
406
|
-
commandEcho.setInteractive()
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
if (!answer) {
|
|
410
|
-
logger.info('Operation cancelled. Exiting...')
|
|
411
|
-
process.exit(0)
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
// Track --yes flag if confirmation was interactive (user confirmed)
|
|
415
|
-
commandEcho.addOption('--yes', true)
|
|
416
|
-
|
|
417
|
-
$.quiet = true
|
|
418
|
-
|
|
419
|
-
await removeReleaseWorktreeIfPresent(selectedReleaseBranch)
|
|
420
|
-
await mergeReleasePR({ selectedReleaseBranch, releaseType })
|
|
421
|
-
|
|
422
|
-
if (releaseType !== 'hotfix') {
|
|
423
|
-
await ensureRcPRMerged(releaseId)
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
await dispatchDeployWorkflow()
|
|
427
|
-
await syncMainIntoDev()
|
|
428
|
-
await removeDeliveredReleaseBranch(selectedReleaseBranch)
|
|
429
|
-
|
|
430
|
-
$.quiet = false
|
|
431
|
-
|
|
432
|
-
await deliverJiraReleaseSafely(releaseId)
|
|
433
|
-
|
|
434
|
-
logger.info(`Successfully delivered ${selectedReleaseBranch} to production!`)
|
|
435
|
-
|
|
436
|
-
commandEcho.print()
|
|
437
|
-
|
|
438
|
-
const structuredContent = {
|
|
439
|
-
releaseBranch: selectedReleaseBranch,
|
|
440
|
-
version: selectedVersion,
|
|
441
|
-
type: releaseType,
|
|
442
|
-
success: true,
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
return {
|
|
446
|
-
content: textContent(JSON.stringify(structuredContent, null, 2)),
|
|
447
|
-
structuredContent,
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
// MCP Tool Registration
|
|
452
|
-
export const ghReleaseDeliverMcpTool = defineMcpTool({
|
|
453
|
-
name: 'gh-release-deliver',
|
|
454
|
-
description:
|
|
455
|
-
'Deliver a release to production. For hotfixes: squash-merges the release branch to main and dispatches the deploy-all workflow. For regular releases: squash-merges to dev, opens an RC PR, merges dev into main, dispatches the deploy-all workflow, then syncs main back to dev. Also releases the matching Jira fix version if Jira is configured. Dispatches the deploy workflow fire-and-forget — the tool returns once the workflow is accepted by GitHub, not when the deployment finishes. PR-merge steps are idempotent: re-running after a partial failure skips PRs that are already merged. Irreversible production operation: the confirmation prompt is auto-skipped for MCP calls, so the caller is responsible for gating. "version" is required when invoked via MCP (the picker is unreachable without a TTY).',
|
|
456
|
-
inputSchema: {
|
|
457
|
-
version: z
|
|
458
|
-
.string()
|
|
459
|
-
.describe(
|
|
460
|
-
'Accepts a release version (e.g. "1.2.5") OR a release name (e.g. "checkout-redesign") to deliver to production. Required for MCP calls.',
|
|
461
|
-
),
|
|
462
|
-
},
|
|
463
|
-
outputSchema: {
|
|
464
|
-
releaseBranch: z.string().describe('The release branch that was delivered'),
|
|
465
|
-
version: z.string().describe('The version that was delivered'),
|
|
466
|
-
type: z.enum(['regular', 'hotfix']).describe('Release type'),
|
|
467
|
-
success: z.boolean().describe('Whether the delivery was successful'),
|
|
468
|
-
},
|
|
469
|
-
handler: ghReleaseDeliver,
|
|
470
|
-
})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { ghReleaseDeliver, ghReleaseDeliverMcpTool } from './gh-release-deliver'
|