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,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Translate Doppler `secrets download` not-found failures into actionable,
|
|
3
|
-
* point-at-the-fix guidance. Pure (no I/O) so the classification + message policy
|
|
4
|
-
* is unit-testable without spawning the Doppler CLI — mirroring the pure-helper
|
|
5
|
-
* pattern in `commands/env-load/env-load.ts`.
|
|
6
|
-
*
|
|
7
|
-
* Observed Doppler output on a not-found download (verified 2026-06-27, doppler
|
|
8
|
-
* v3.76.0), exit 1, written to STDERR (stdout empty):
|
|
9
|
-
* Unable to download secrets
|
|
10
|
-
* Doppler Error: Could not find requested project 'name'
|
|
11
|
-
* Doppler Error: Could not find requested config 'name'
|
|
12
|
-
* Only the "Doppler Error:" prefix is ANSI-colored; the "Could not find requested
|
|
13
|
-
* ..." text is plain, so substring matching is color-safe. zx's
|
|
14
|
-
* `ProcessOutput.message` also concatenates stdout+stderr, so the same markers are
|
|
15
|
-
* matchable off `.message` when `.stderr` is unavailable.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/** Which kind of Doppler not-found a download failure represents (`unknown` = not a not-found error). */
|
|
19
|
-
export type DopplerNotFoundKind = 'project' | 'config' | 'unknown'
|
|
20
|
-
|
|
21
|
-
const PROJECT_NOT_FOUND_MARKER = 'Could not find requested project'
|
|
22
|
-
const CONFIG_NOT_FOUND_MARKER = 'Could not find requested config'
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Classify a Doppler download failure from its stderr/message text. Returns
|
|
26
|
-
* `'unknown'` for anything that isn't a recognized not-found error so the caller
|
|
27
|
-
* rethrows the original untouched (degrades to status quo, never worse).
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* classifyDopplerDownloadError("Doppler Error: Could not find requested project 'x'") // => 'project'
|
|
31
|
-
* classifyDopplerDownloadError("Doppler Error: Could not find requested config 'dev'") // => 'config'
|
|
32
|
-
* classifyDopplerDownloadError('network unreachable') // => 'unknown'
|
|
33
|
-
*/
|
|
34
|
-
export const classifyDopplerDownloadError = (stderr: string): DopplerNotFoundKind => {
|
|
35
|
-
if (stderr.includes(PROJECT_NOT_FOUND_MARKER)) return 'project'
|
|
36
|
-
|
|
37
|
-
if (stderr.includes(CONFIG_NOT_FOUND_MARKER)) return 'config'
|
|
38
|
-
|
|
39
|
-
return 'unknown'
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
interface DopplerNotFoundMessageArgs {
|
|
43
|
-
/** Whether the missing entity is the project or the config within it. */
|
|
44
|
-
kind: 'project' | 'config'
|
|
45
|
-
project: string
|
|
46
|
-
config: string
|
|
47
|
-
/**
|
|
48
|
-
* Names to suggest. `null` = lookup failed/unavailable, `[]` = none exist; both
|
|
49
|
-
* omit the suggestion line so a failed enrichment probe is never misreported as
|
|
50
|
-
* a definitive "none available".
|
|
51
|
-
*/
|
|
52
|
-
available?: string[] | null
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Build the actionable, multi-line error body for a Doppler not-found failure:
|
|
57
|
-
* states what's missing, points at the exact infra-kit.json field, lists available
|
|
58
|
-
* names when known, and gives a concrete fix.
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* buildDopplerNotFoundMessage({ kind: 'project', project: 'infra-kit', config: 'dev', available: ['nomadream'] })
|
|
62
|
-
* // => 'Doppler project "infra-kit" not found (set in infra-kit.json → envManagement.config.name).\nAvailable projects: nomadream.\nFix: ...'
|
|
63
|
-
*/
|
|
64
|
-
export const buildDopplerNotFoundMessage = ({
|
|
65
|
-
kind,
|
|
66
|
-
project,
|
|
67
|
-
config,
|
|
68
|
-
available,
|
|
69
|
-
}: DopplerNotFoundMessageArgs): string => {
|
|
70
|
-
const lines: string[] =
|
|
71
|
-
kind === 'project'
|
|
72
|
-
? [`Doppler project "${project}" not found (set in infra-kit.json → envManagement.config.name).`]
|
|
73
|
-
: [`Doppler config "${config}" not found in project "${project}" (set in infra-kit.json → environments).`]
|
|
74
|
-
|
|
75
|
-
if (available && available.length > 0) {
|
|
76
|
-
const label = kind === 'project' ? 'Available projects' : `Available configs in "${project}"`
|
|
77
|
-
|
|
78
|
-
lines.push(`${label}: ${available.join(', ')}.`)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
lines.push(
|
|
82
|
-
kind === 'project'
|
|
83
|
-
? 'Fix: update envManagement.config.name to an existing project, or create it in Doppler.'
|
|
84
|
-
: 'Fix: update environments to an existing config, or create it in Doppler.',
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
return lines.join('\n')
|
|
88
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { $ } from 'zx'
|
|
2
|
-
import type { ProcessPromise } from 'zx'
|
|
3
|
-
|
|
4
|
-
import { getInfraKitConfig } from 'src/lib/infra-kit-config'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Hard upper bound for the Doppler list probes. These run only on error/diagnostic
|
|
8
|
-
* paths (download-failure enrichment, `doctor`), but a hung VPN/connection must not
|
|
9
|
-
* stall them — mirrors the auth-probe budget in `doppler-cli-auth.ts`.
|
|
10
|
-
*/
|
|
11
|
-
const DOPPLER_LIST_TIMEOUT_MS = 5_000
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Resolve Doppler project name from infra-kit.json at the project root
|
|
15
|
-
*/
|
|
16
|
-
export const getDopplerProject = async (): Promise<string> => {
|
|
17
|
-
const { envManagement } = await getInfraKitConfig()
|
|
18
|
-
|
|
19
|
-
return envManagement.config.name
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* List the Doppler project names for the authenticated account, or `null` when the
|
|
24
|
-
* lookup itself fails (CLI missing, unauthenticated, network/timeout, malformed
|
|
25
|
-
* JSON). NEVER throws. Callers MUST distinguish `null` ("couldn't tell") from `[]`
|
|
26
|
-
* ("told: none exist") so an enrichment or diagnostic message never misreports a
|
|
27
|
-
* failed probe as "no projects available".
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* await listDopplerProjects() // => ['example-project', 'nomadream'] (or null on failure)
|
|
31
|
-
*/
|
|
32
|
-
export const listDopplerProjects = async (): Promise<string[] | null> => {
|
|
33
|
-
return runDopplerNameList(() => {
|
|
34
|
-
return $`doppler projects --json`
|
|
35
|
-
})
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* List the Doppler config names for a project, or `null` when the lookup itself
|
|
40
|
-
* fails (see {@link listDopplerProjects} for the `null` vs `[]` contract).
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* await listDopplerConfigs('nomadream') // => ['dev', 'oleg', 'prod', 'arthur'] (or null on failure)
|
|
44
|
-
*/
|
|
45
|
-
export const listDopplerConfigs = async (project: string): Promise<string[] | null> => {
|
|
46
|
-
return runDopplerNameList(() => {
|
|
47
|
-
return $`doppler configs --project ${project} --json`
|
|
48
|
-
})
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Run a `doppler ... --json` listing quietly + time-bounded and extract the `name`
|
|
53
|
-
* field of each entry. Returns `null` on any failure (subprocess error, timeout,
|
|
54
|
-
* non-array/malformed JSON) so the caller can tell a failed probe from an empty set.
|
|
55
|
-
*/
|
|
56
|
-
const runDopplerNameList = async (run: () => ProcessPromise): Promise<string[] | null> => {
|
|
57
|
-
const prevQuiet = $.quiet
|
|
58
|
-
|
|
59
|
-
$.quiet = true
|
|
60
|
-
try {
|
|
61
|
-
const result = await run().timeout(DOPPLER_LIST_TIMEOUT_MS)
|
|
62
|
-
|
|
63
|
-
return parseDopplerNames(result.stdout)
|
|
64
|
-
} catch {
|
|
65
|
-
return null
|
|
66
|
-
} finally {
|
|
67
|
-
$.quiet = prevQuiet
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/** Parse a Doppler `--json` array into its `name` strings, or `null` if the shape is unexpected. */
|
|
72
|
-
const parseDopplerNames = (stdout: string): string[] | null => {
|
|
73
|
-
let parsed: unknown
|
|
74
|
-
|
|
75
|
-
try {
|
|
76
|
-
parsed = JSON.parse(stdout)
|
|
77
|
-
} catch {
|
|
78
|
-
return null
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if (!Array.isArray(parsed)) return null
|
|
82
|
-
|
|
83
|
-
return parsed
|
|
84
|
-
.map((entry) => {
|
|
85
|
-
return entry !== null && typeof entry === 'object' ? (entry as { name?: unknown }).name : undefined
|
|
86
|
-
})
|
|
87
|
-
.filter((name): name is string => {
|
|
88
|
-
return typeof name === 'string'
|
|
89
|
-
})
|
|
90
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { validateDopplerCliAndAuth } from './doppler-cli-auth'
|
|
2
|
-
export { buildDopplerNotFoundMessage, classifyDopplerDownloadError } from './doppler-errors'
|
|
3
|
-
export type { DopplerNotFoundKind } from './doppler-errors'
|
|
4
|
-
export { getDopplerProject, listDopplerConfigs, listDopplerProjects } from './doppler-project'
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { $ } from 'zx'
|
|
2
|
-
|
|
3
|
-
import { OperationError } from 'src/lib/errors/operation-error'
|
|
4
|
-
import { logger } from 'src/lib/logger'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Validate GitHub CLI installation and authentication status and throw an error if not valid
|
|
8
|
-
*/
|
|
9
|
-
export const validateGitHubCliAndAuth = async () => {
|
|
10
|
-
try {
|
|
11
|
-
await $`gh --version`
|
|
12
|
-
} catch (error: unknown) {
|
|
13
|
-
logger.error({ error }, 'Error: GitHub CLI (gh) is not installed.')
|
|
14
|
-
throw new OperationError(error, {
|
|
15
|
-
operation: 'verify GitHub CLI is installed',
|
|
16
|
-
remediation: 'install gh from https://cli.github.com/',
|
|
17
|
-
})
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
try {
|
|
21
|
-
await $`gh auth status`
|
|
22
|
-
} catch (error: unknown) {
|
|
23
|
-
logger.error({ error }, 'Error: GitHub CLI (gh) is not authenticated.')
|
|
24
|
-
throw new OperationError(error, {
|
|
25
|
-
operation: 'verify GitHub CLI authentication',
|
|
26
|
-
remediation: 'run "gh auth login" (https://cli.github.com/manual/gh_auth_login)',
|
|
27
|
-
})
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { validateGitHubCliAndAuth } from './gh-cli-auth'
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 1,
|
|
3
|
-
"entries": {
|
|
4
|
-
"79a93d4a2f8f50b95f852280616242fee1855dc99a3c75211917f55e72e95fae": {
|
|
5
|
-
"last_emitted_at_ms": 1781518823336,
|
|
6
|
-
"message": "Use parallel execution for independent tasks. Use run_in_background for long operations (npm install, builds, tests)."
|
|
7
|
-
}
|
|
8
|
-
},
|
|
9
|
-
"updated_at": "2026-06-15T10:20:23.336Z"
|
|
10
|
-
}
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import { execFileSync } from 'node:child_process'
|
|
2
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
|
-
import { quote } from 'zx'
|
|
4
|
-
|
|
5
|
-
import { createReleaseBranch, getReleasePRs, getReleasePRsWithInfo } from '../gh-release-prs'
|
|
6
|
-
|
|
7
|
-
interface FakePR {
|
|
8
|
-
number: number
|
|
9
|
-
title: string
|
|
10
|
-
headRefName: string
|
|
11
|
-
state: string
|
|
12
|
-
baseRefName: string
|
|
13
|
-
createdAt: string
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const responses = vi.hoisted(() => {
|
|
17
|
-
return {
|
|
18
|
-
release: [] as FakePR[],
|
|
19
|
-
hotfix: [] as FakePR[],
|
|
20
|
-
calls: [] as { strings: string[]; values: unknown[] }[],
|
|
21
|
-
}
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
// Mock zx's tagged-template `$`: the gh pr list call for `--base dev` returns
|
|
25
|
-
// the "release" set, `--base main` returns the "hotfix" set, and `gh pr create`
|
|
26
|
-
// returns a fake PR URL. Every invocation is captured (template strings +
|
|
27
|
-
// interpolated values) so tests can reconstruct the exact command zx would run.
|
|
28
|
-
// Spreading `...actual` keeps zx's real `quote` available for that reconstruction.
|
|
29
|
-
vi.mock('zx', async (importOriginal) => {
|
|
30
|
-
const actual = await importOriginal<typeof import('zx')>()
|
|
31
|
-
|
|
32
|
-
return {
|
|
33
|
-
...actual,
|
|
34
|
-
$: vi.fn((strings: TemplateStringsArray, ...values: unknown[]) => {
|
|
35
|
-
const command = strings.join('')
|
|
36
|
-
|
|
37
|
-
responses.calls.push({ strings: [...strings], values })
|
|
38
|
-
|
|
39
|
-
if (command.includes('gh pr create')) {
|
|
40
|
-
return Promise.resolve({ stdout: 'https://github.com/acme/repo/pull/123' })
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (command.includes('--base main')) {
|
|
44
|
-
return Promise.resolve({ stdout: JSON.stringify(responses.hotfix) })
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return Promise.resolve({ stdout: JSON.stringify(responses.release) })
|
|
48
|
-
}),
|
|
49
|
-
}
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
const pr = (overrides: Partial<FakePR> & Pick<FakePR, 'headRefName' | 'createdAt'>): FakePR => {
|
|
53
|
-
return {
|
|
54
|
-
number: 1,
|
|
55
|
-
title: 'Release',
|
|
56
|
-
state: 'OPEN',
|
|
57
|
-
baseRefName: 'dev',
|
|
58
|
-
...overrides,
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
describe('getReleasePRs (discovery + sort)', () => {
|
|
63
|
-
beforeEach(() => {
|
|
64
|
-
responses.release = []
|
|
65
|
-
responses.hotfix = []
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
it('sorts version branches first by semver ascending (numeric, 1.9.0 < 1.10.0), then names by createdAt', async () => {
|
|
69
|
-
responses.release = [
|
|
70
|
-
pr({ headRefName: 'release/zeta-feature', createdAt: '2026-01-10T00:00:00Z', title: 'Release zeta-feature' }),
|
|
71
|
-
pr({ headRefName: 'release/v1.10.0', createdAt: '2026-01-02T00:00:00Z' }),
|
|
72
|
-
pr({ headRefName: 'release/alpha-feature', createdAt: '2026-01-05T00:00:00Z', title: 'Release alpha-feature' }),
|
|
73
|
-
pr({ headRefName: 'release/v1.9.0', createdAt: '2026-01-01T00:00:00Z' }),
|
|
74
|
-
]
|
|
75
|
-
|
|
76
|
-
await expect(getReleasePRs()).resolves.toEqual([
|
|
77
|
-
'release/v1.9.0',
|
|
78
|
-
'release/v1.10.0',
|
|
79
|
-
'release/alpha-feature',
|
|
80
|
-
'release/zeta-feature',
|
|
81
|
-
])
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
it('filters out unparseable junk branches instead of throwing or NaN-sorting', async () => {
|
|
85
|
-
responses.release = [
|
|
86
|
-
pr({ headRefName: 'release/Bad_Name', createdAt: '2026-01-01T00:00:00Z' }),
|
|
87
|
-
pr({ headRefName: 'release/v1.2.3', createdAt: '2026-01-02T00:00:00Z' }),
|
|
88
|
-
pr({ headRefName: 'totally-not-a-release', createdAt: '2026-01-03T00:00:00Z' }),
|
|
89
|
-
pr({
|
|
90
|
-
headRefName: 'release/checkout-redesign',
|
|
91
|
-
createdAt: '2026-01-04T00:00:00Z',
|
|
92
|
-
title: 'Release checkout-redesign',
|
|
93
|
-
}),
|
|
94
|
-
]
|
|
95
|
-
|
|
96
|
-
await expect(getReleasePRs()).resolves.toEqual(['release/v1.2.3', 'release/checkout-redesign'])
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
it('merges hotfix (base main) and release (base dev) sets', async () => {
|
|
100
|
-
responses.release = [pr({ headRefName: 'release/v2.0.0', createdAt: '2026-01-01T00:00:00Z' })]
|
|
101
|
-
responses.hotfix = [
|
|
102
|
-
pr({
|
|
103
|
-
headRefName: 'release/v1.9.9',
|
|
104
|
-
createdAt: '2026-01-02T00:00:00Z',
|
|
105
|
-
baseRefName: 'main',
|
|
106
|
-
title: 'Hotfix v1.9.9',
|
|
107
|
-
}),
|
|
108
|
-
]
|
|
109
|
-
|
|
110
|
-
await expect(getReleasePRs()).resolves.toEqual(['release/v1.9.9', 'release/v2.0.0'])
|
|
111
|
-
})
|
|
112
|
-
})
|
|
113
|
-
|
|
114
|
-
describe('getReleasePRsWithInfo (discovery + sort)', () => {
|
|
115
|
-
beforeEach(() => {
|
|
116
|
-
responses.release = []
|
|
117
|
-
responses.hotfix = []
|
|
118
|
-
})
|
|
119
|
-
|
|
120
|
-
it('returns branch/title/createdAt in the locked order with junk filtered', async () => {
|
|
121
|
-
responses.release = [
|
|
122
|
-
pr({ headRefName: 'release/beta-feature', createdAt: '2026-02-02T00:00:00Z', title: 'Release beta-feature' }),
|
|
123
|
-
pr({ headRefName: 'release/Bad_Name', createdAt: '2026-02-03T00:00:00Z', title: 'Release Bad_Name' }),
|
|
124
|
-
pr({ headRefName: 'release/v3.1.0', createdAt: '2026-02-01T00:00:00Z', title: 'Release v3.1.0' }),
|
|
125
|
-
]
|
|
126
|
-
|
|
127
|
-
await expect(getReleasePRsWithInfo()).resolves.toEqual([
|
|
128
|
-
{ branch: 'release/v3.1.0', title: 'Release v3.1.0', createdAt: '2026-02-01T00:00:00Z' },
|
|
129
|
-
{ branch: 'release/beta-feature', title: 'Release beta-feature', createdAt: '2026-02-02T00:00:00Z' },
|
|
130
|
-
])
|
|
131
|
-
})
|
|
132
|
-
})
|
|
133
|
-
|
|
134
|
-
describe('createReleaseBranch (gh pr create title quoting)', () => {
|
|
135
|
-
beforeEach(() => {
|
|
136
|
-
responses.calls = []
|
|
137
|
-
})
|
|
138
|
-
|
|
139
|
-
// Rebuild the exact command zx would have run: interleave each template
|
|
140
|
-
// string with the zx-quoted form of its interpolated value. This reflects
|
|
141
|
-
// what the shell actually receives, including zx's ANSI-C `$'...'` escaping
|
|
142
|
-
// for values containing spaces.
|
|
143
|
-
const reconstruct = (call: { strings: string[]; values: unknown[] }): string => {
|
|
144
|
-
return call.strings
|
|
145
|
-
.map((part, i) => {
|
|
146
|
-
return i < call.values.length ? part + quote(String(call.values[i])) : part
|
|
147
|
-
})
|
|
148
|
-
.join('')
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const findCreateCommand = (): string => {
|
|
152
|
-
const call = responses.calls.find((c) => {
|
|
153
|
-
return c.strings.join('').includes('gh pr create')
|
|
154
|
-
})
|
|
155
|
-
|
|
156
|
-
if (!call) throw new Error('gh pr create was not invoked')
|
|
157
|
-
|
|
158
|
-
return reconstruct(call)
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// Run the reconstructed command through a real shell with `gh pr create`
|
|
162
|
-
// replaced by a function that prints back the value the shell parsed for
|
|
163
|
-
// `--title`. This is the behavioral proof of what gh would receive.
|
|
164
|
-
const shellTitleArg = (command: string): string => {
|
|
165
|
-
const probe = command.replace(
|
|
166
|
-
'gh pr create',
|
|
167
|
-
'f(){ while [ "$#" -gt 0 ]; do if [ "$1" = "--title" ]; then printf %s "$2"; return 0; fi; shift; done; }; f',
|
|
168
|
-
)
|
|
169
|
-
|
|
170
|
-
// Absolute path (not PATH-resolved) keeps the lint's command-injection guard happy.
|
|
171
|
-
return execFileSync('/bin/sh', ['-c', probe]).toString()
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
it("delivers a spaced title to gh as the literal string, with no $'...' corruption", async () => {
|
|
175
|
-
const id = { kind: 'version', semver: { major: 1, minor: 89, patch: 1 }, raw: '1.89.1' } as const
|
|
176
|
-
|
|
177
|
-
await createReleaseBranch({ id, jiraVersionUrl: 'https://jira.example/v1.89.1', type: 'hotfix' })
|
|
178
|
-
|
|
179
|
-
const command = findCreateCommand()
|
|
180
|
-
|
|
181
|
-
// Behavioral: the shell parses --title to exactly the intended title.
|
|
182
|
-
expect(shellTitleArg(command)).toBe('Hotfix v1.89.1')
|
|
183
|
-
// The pre-fix bug wrapped zx's `$'...'` token in literal double quotes, so
|
|
184
|
-
// the shell passed the literal `$'Hotfix v1.89.1'` to gh. That marker must be absent.
|
|
185
|
-
expect(command).not.toContain('"$\'')
|
|
186
|
-
})
|
|
187
|
-
|
|
188
|
-
it('delivers a named release title to gh as the literal string', async () => {
|
|
189
|
-
const id = { kind: 'name', name: 'checkout-redesign', raw: 'checkout-redesign' } as const
|
|
190
|
-
|
|
191
|
-
await createReleaseBranch({ id, jiraVersionUrl: 'https://jira.example/checkout-redesign', type: 'regular' })
|
|
192
|
-
|
|
193
|
-
const command = findCreateCommand()
|
|
194
|
-
|
|
195
|
-
expect(shellTitleArg(command)).toBe('Release checkout-redesign')
|
|
196
|
-
expect(command).not.toContain('"$\'')
|
|
197
|
-
})
|
|
198
|
-
})
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { $ } from 'zx'
|
|
2
|
-
|
|
3
|
-
import { OperationError } from 'src/lib/errors/operation-error'
|
|
4
|
-
import { logger } from 'src/lib/logger'
|
|
5
|
-
import { compareReleaseIds, formatBranchName, formatPrTitle, parseBranchName } from 'src/lib/release-id'
|
|
6
|
-
import type { ReleaseId } from 'src/lib/release-id'
|
|
7
|
-
import { getBaseBranch } from 'src/lib/release-utils'
|
|
8
|
-
import type { ReleaseType } from 'src/lib/release-utils'
|
|
9
|
-
|
|
10
|
-
interface ReleasePR {
|
|
11
|
-
headRefName: string
|
|
12
|
-
number: number
|
|
13
|
-
state: string
|
|
14
|
-
title: string
|
|
15
|
-
baseRefName: string
|
|
16
|
-
createdAt: string
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface ReleasePRInfo {
|
|
20
|
-
branch: string
|
|
21
|
-
title: string
|
|
22
|
-
createdAt: string
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Sort release head refs in the locked deterministic order (versions block
|
|
27
|
-
* first by semver ascending, then names by PR creation date). Head refs that
|
|
28
|
-
* are not valid release branches (parseBranchName → null) are filtered out
|
|
29
|
-
* rather than throwing or NaN-sorting, so a stray junk branch can never break
|
|
30
|
-
* discovery. Carries each PR's createdAt for name ordering.
|
|
31
|
-
*/
|
|
32
|
-
const sortReleasePRs = (prs: ReleasePR[]): ReleasePR[] => {
|
|
33
|
-
return prs
|
|
34
|
-
.map((pr) => {
|
|
35
|
-
return { pr, id: parseBranchName(pr.headRefName) }
|
|
36
|
-
})
|
|
37
|
-
.filter((entry): entry is { pr: ReleasePR; id: NonNullable<typeof entry.id> } => {
|
|
38
|
-
return entry.id !== null
|
|
39
|
-
})
|
|
40
|
-
.sort((a, b) => {
|
|
41
|
-
return compareReleaseIds(a.id, b.id, { a: a.pr.createdAt, b: b.pr.createdAt })
|
|
42
|
-
})
|
|
43
|
-
.map((entry) => {
|
|
44
|
-
return entry.pr
|
|
45
|
-
})
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Fetch all open release/hotfix PRs from GitHub.
|
|
50
|
-
* Searches both dev (regular) and main (hotfix) base branches.
|
|
51
|
-
* Returns deduplicated ReleasePR objects.
|
|
52
|
-
*/
|
|
53
|
-
const fetchAllReleasePRs = async (): Promise<ReleasePR[]> => {
|
|
54
|
-
const releasePRs =
|
|
55
|
-
await $`gh pr list --search "Release in:title" --base dev --json number,title,headRefName,state,baseRefName,createdAt`
|
|
56
|
-
|
|
57
|
-
const hotfixPRs =
|
|
58
|
-
await $`gh pr list --search "Hotfix in:title" --base main --json number,title,headRefName,state,baseRefName,createdAt`
|
|
59
|
-
|
|
60
|
-
const all: ReleasePR[] = [...JSON.parse(releasePRs.stdout), ...JSON.parse(hotfixPRs.stdout)]
|
|
61
|
-
|
|
62
|
-
// Deduplicate by headRefName
|
|
63
|
-
const seen = new Set<string>()
|
|
64
|
-
|
|
65
|
-
return all.filter((pr) => {
|
|
66
|
-
if (seen.has(pr.headRefName)) return false
|
|
67
|
-
|
|
68
|
-
seen.add(pr.headRefName)
|
|
69
|
-
|
|
70
|
-
return true
|
|
71
|
-
})
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Fetch open release PRs from GitHub with 'Release' or 'Hotfix' in the title.
|
|
76
|
-
* Returns an array of headRefName strings in the locked deterministic order
|
|
77
|
-
* (version branches first by semver ascending, then named branches by PR
|
|
78
|
-
* creation date). Unparseable head refs are filtered out.
|
|
79
|
-
*
|
|
80
|
-
* @returns [release/v1.18.22, release/v1.18.23, release/checkout-redesign]
|
|
81
|
-
*/
|
|
82
|
-
export const getReleasePRs = async (): Promise<string[]> => {
|
|
83
|
-
try {
|
|
84
|
-
const prs = await fetchAllReleasePRs()
|
|
85
|
-
|
|
86
|
-
if (prs.length === 0) {
|
|
87
|
-
throw new OperationError(undefined, {
|
|
88
|
-
operation: 'find open release PRs',
|
|
89
|
-
remediation: 'open a release PR first, or check you are in the right repo',
|
|
90
|
-
})
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return sortReleasePRs(prs).map((pr) => {
|
|
94
|
-
return pr.headRefName
|
|
95
|
-
})
|
|
96
|
-
} catch (error) {
|
|
97
|
-
if (error instanceof OperationError) throw error
|
|
98
|
-
|
|
99
|
-
logger.error({ error }, '❌ Error fetching release PRs')
|
|
100
|
-
|
|
101
|
-
throw new OperationError(error, { operation: 'fetch release PRs' })
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Fetch open release PRs with title info (for detecting release type).
|
|
107
|
-
* Returns ReleasePRInfo objects in the locked deterministic order (version
|
|
108
|
-
* branches first by semver ascending, then named branches by PR creation
|
|
109
|
-
* date). Unparseable head refs are filtered out.
|
|
110
|
-
*/
|
|
111
|
-
export const getReleasePRsWithInfo = async (): Promise<ReleasePRInfo[]> => {
|
|
112
|
-
try {
|
|
113
|
-
const prs = await fetchAllReleasePRs()
|
|
114
|
-
|
|
115
|
-
if (prs.length === 0) {
|
|
116
|
-
throw new OperationError(undefined, {
|
|
117
|
-
operation: 'find open release PRs',
|
|
118
|
-
remediation: 'open a release PR first, or check you are in the right repo',
|
|
119
|
-
})
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return sortReleasePRs(prs).map((pr) => {
|
|
123
|
-
return {
|
|
124
|
-
branch: pr.headRefName,
|
|
125
|
-
title: pr.title,
|
|
126
|
-
createdAt: pr.createdAt,
|
|
127
|
-
}
|
|
128
|
-
})
|
|
129
|
-
} catch (error) {
|
|
130
|
-
if (error instanceof OperationError) throw error
|
|
131
|
-
|
|
132
|
-
logger.error({ error }, '❌ Error fetching release PRs')
|
|
133
|
-
|
|
134
|
-
throw new OperationError(error, { operation: 'fetch release PRs' })
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
interface UpdateReleasePRBodyArgs {
|
|
139
|
-
branch: string
|
|
140
|
-
body: string
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Update the body of an open release PR identified by its head branch.
|
|
145
|
-
*/
|
|
146
|
-
export const updateReleasePRBody = async (args: UpdateReleasePRBodyArgs): Promise<void> => {
|
|
147
|
-
const { branch, body } = args
|
|
148
|
-
|
|
149
|
-
try {
|
|
150
|
-
$.quiet = true
|
|
151
|
-
await $`gh pr edit ${branch} --body ${body}`
|
|
152
|
-
$.quiet = false
|
|
153
|
-
} catch (error: unknown) {
|
|
154
|
-
logger.error({ error, branch }, `Error updating release PR body for ${branch}`)
|
|
155
|
-
throw error
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
interface CreateReleaseBranchArgs {
|
|
160
|
-
id: ReleaseId
|
|
161
|
-
jiraVersionUrl: string
|
|
162
|
-
type: ReleaseType
|
|
163
|
-
description?: string
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Function to create a release branch
|
|
167
|
-
export const createReleaseBranch = async (
|
|
168
|
-
args: CreateReleaseBranchArgs,
|
|
169
|
-
): Promise<{ branchName: string; prUrl: string }> => {
|
|
170
|
-
const { id, jiraVersionUrl, type, description } = args
|
|
171
|
-
const prTitle = formatPrTitle(id, type)
|
|
172
|
-
const baseBranch = getBaseBranch(type)
|
|
173
|
-
|
|
174
|
-
const branchName = formatBranchName(id)
|
|
175
|
-
|
|
176
|
-
const body = description && description.trim() !== '' ? `${jiraVersionUrl}\n\n${description}` : `${jiraVersionUrl} \n`
|
|
177
|
-
|
|
178
|
-
try {
|
|
179
|
-
$.quiet = true
|
|
180
|
-
|
|
181
|
-
await $`git switch ${baseBranch}`
|
|
182
|
-
await $`git pull origin ${baseBranch}`
|
|
183
|
-
await $`git checkout -b ${branchName}`
|
|
184
|
-
await $`git push -u origin ${branchName}`
|
|
185
|
-
await $`git commit --allow-empty-message --allow-empty --message ''`
|
|
186
|
-
await $`git push origin ${branchName}`
|
|
187
|
-
|
|
188
|
-
// Create PR and capture URL
|
|
189
|
-
const prResult = await $`gh pr create --title ${prTitle} --body ${body} --base ${baseBranch} --head ${branchName}`
|
|
190
|
-
|
|
191
|
-
const prLink = prResult.stdout.trim()
|
|
192
|
-
|
|
193
|
-
await $`git switch ${baseBranch}`
|
|
194
|
-
|
|
195
|
-
$.quiet = false
|
|
196
|
-
|
|
197
|
-
return {
|
|
198
|
-
branchName,
|
|
199
|
-
prUrl: prLink,
|
|
200
|
-
}
|
|
201
|
-
} catch (error: unknown) {
|
|
202
|
-
logger.error({ error, branchName }, `Error creating release branch ${branchName}`)
|
|
203
|
-
|
|
204
|
-
throw error
|
|
205
|
-
}
|
|
206
|
-
}
|