infra-kit 0.1.127 → 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.
Files changed (755) hide show
  1. package/dist/chunk-2PZRQHWF.js +2 -0
  2. package/dist/chunk-2PZRQHWF.js.map +7 -0
  3. package/dist/chunk-6RRAK2QO.js +5 -0
  4. package/dist/chunk-6RRAK2QO.js.map +7 -0
  5. package/dist/chunk-IX2A34UU.js +2 -0
  6. package/dist/chunk-IX2A34UU.js.map +7 -0
  7. package/dist/chunk-V5IDN7ZM.js +162 -0
  8. package/dist/chunk-V5IDN7ZM.js.map +7 -0
  9. package/dist/chunk-Z6KTUVIC.js +2 -0
  10. package/dist/chunk-Z6KTUVIC.js.map +7 -0
  11. package/dist/cli.js +4 -4
  12. package/dist/cli.js.map +3 -3
  13. package/dist/dev-server.js +15 -10
  14. package/dist/dev-server.js.map +4 -4
  15. package/dist/entry/index.d.ts +1 -1
  16. package/dist/entry/vite.d.ts +2 -0
  17. package/dist/index.js +1 -1
  18. package/dist/lib/package-config/package-config-schema.d.ts +35 -0
  19. package/dist/lib/package-config/package-config.d.ts +28 -0
  20. package/dist/lib/release-slug/release-slug.d.ts +19 -0
  21. package/dist/lib/vite/vite.d.ts +135 -0
  22. package/dist/mcp.js +1 -1
  23. package/dist/mcp.js.map +1 -1
  24. package/dist/vite.js +2 -0
  25. package/dist/vite.js.map +7 -0
  26. package/package.json +10 -2
  27. package/.eslintcache +0 -1
  28. package/.omc/state/agent-replay-036daa78-5fee-4c7d-9b44-53584acb0d87.jsonl +0 -26
  29. package/.omc/state/agent-replay-0a58307d-2a37-4c69-851c-83a646502d62.jsonl +0 -1
  30. package/.omc/state/agent-replay-0a65ec83-9de7-458d-9d0f-e56e1a26c68e.jsonl +0 -2
  31. package/.omc/state/agent-replay-0d1515ce-4ebe-4ce8-a865-2897f68de168.jsonl +0 -1
  32. package/.omc/state/agent-replay-11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc.jsonl +0 -16
  33. package/.omc/state/agent-replay-127837d3-a000-4656-9453-2324ab353723.jsonl +0 -5
  34. package/.omc/state/agent-replay-15c409af-24fa-4026-88d3-a82dd1e68b87.jsonl +0 -11
  35. package/.omc/state/agent-replay-1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a.jsonl +0 -17
  36. package/.omc/state/agent-replay-1fcfe0ec-7567-41c3-9bfd-501e99e86819.jsonl +0 -19
  37. package/.omc/state/agent-replay-2ac0dcd0-01f7-41a8-a8c9-f2195599817b.jsonl +0 -5
  38. package/.omc/state/agent-replay-2ccbd177-0d5d-4d4a-ab94-a22464786221.jsonl +0 -1
  39. package/.omc/state/agent-replay-36d91435-50b4-442f-9f4e-3cc68d776236.jsonl +0 -2
  40. package/.omc/state/agent-replay-38382db5-3088-4b5a-aff7-2561a60827c7.jsonl +0 -17
  41. package/.omc/state/agent-replay-4cf1c186-81b2-497c-b002-d7f84e7839f3.jsonl +0 -9
  42. package/.omc/state/agent-replay-50c36be9-a3a2-42b9-9c85-5a06d3e22f6a.jsonl +0 -5
  43. package/.omc/state/agent-replay-5c4ab554-64f1-42ae-83e3-21e0237e955c.jsonl +0 -11
  44. package/.omc/state/agent-replay-6be1264f-8069-4412-8119-86118ed1943e.jsonl +0 -3
  45. package/.omc/state/agent-replay-707b4784-2117-4b19-ae68-68a031f0d76d.jsonl +0 -2
  46. package/.omc/state/agent-replay-74afa912-1443-4011-b4f2-db9f055cdd9f.jsonl +0 -3
  47. package/.omc/state/agent-replay-8198b3e5-fad6-4ee0-9c59-ef773ad89af4.jsonl +0 -1
  48. package/.omc/state/agent-replay-8cd7652a-b8b5-49cf-9b1f-bee8e5972458.jsonl +0 -3
  49. package/.omc/state/agent-replay-8dd0ad2f-3a90-4158-b9de-ec8e19a7c983.jsonl +0 -3
  50. package/.omc/state/agent-replay-9bea518f-a9ee-4d14-bb53-a936ebaf647c.jsonl +0 -7
  51. package/.omc/state/agent-replay-a60ac2ec-afbd-449f-a540-6df287392fc2.jsonl +0 -1
  52. package/.omc/state/agent-replay-afc6290b-40d3-4bef-b3b6-14484c034ab9.jsonl +0 -14
  53. package/.omc/state/agent-replay-b52d89fb-0e24-4901-bc66-27e3c1697126.jsonl +0 -2
  54. package/.omc/state/agent-replay-be37e426-6fc8-47f4-8178-221c8494551c.jsonl +0 -3
  55. package/.omc/state/agent-replay-c967c819-3d1c-447b-ab48-56a8448ef9f8.jsonl +0 -2
  56. package/.omc/state/agent-replay-d02e6565-5168-40c8-8629-de219a29fa43.jsonl +0 -2
  57. package/.omc/state/agent-replay-d367c3be-9c2a-48e7-bcea-b45861af568c.jsonl +0 -2
  58. package/.omc/state/agent-replay-d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc.jsonl +0 -10
  59. package/.omc/state/agent-replay-e947a3c6-989d-4a60-91dd-6b0ddd827b2d.jsonl +0 -3
  60. package/.omc/state/agent-replay-eb44055b-c2fa-4e66-b491-a1d9b44f51c7.jsonl +0 -1
  61. package/.omc/state/agent-replay-f2846d8f-974c-486c-b16f-4bdaa28ca45f.jsonl +0 -2
  62. package/.omc/state/agent-replay-f581a1ae-0ee4-48a3-96f3-ce31a0633bb0.jsonl +0 -1
  63. package/.omc/state/agent-replay-f99d8dad-81d1-4987-8183-62edf0843d0c.jsonl +0 -2
  64. package/.omc/state/agent-replay-fe1057b4-9a25-4e8e-8c3f-3e11652ee697.jsonl +0 -5
  65. package/.omc/state/idle-notif-cooldown.json +0 -3
  66. package/.omc/state/last-tool-error.json +0 -7
  67. package/.omc/state/mission-state.json +0 -53
  68. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/last-tool-error-state.json +0 -7
  69. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/mission-state.json +0 -129
  70. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/pre-tool-advisory-throttle.json +0 -34
  71. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ralph-state.json +0 -13
  72. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ralplan-state.json +0 -11
  73. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/subagent-tracking-state.json +0 -80
  74. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ultrawork-state.json +0 -11
  75. package/.omc/state/sessions/0a58307d-2a37-4c69-851c-83a646502d62/pre-tool-advisory-throttle.json +0 -18
  76. package/.omc/state/sessions/0a58307d-2a37-4c69-851c-83a646502d62/subagent-tracking-state.json +0 -7
  77. package/.omc/state/sessions/0a65ec83-9de7-458d-9d0f-e56e1a26c68e/pre-tool-advisory-throttle.json +0 -18
  78. package/.omc/state/sessions/0a65ec83-9de7-458d-9d0f-e56e1a26c68e/skill-active-state.json +0 -15
  79. package/.omc/state/sessions/0d1515ce-4ebe-4ce8-a865-2897f68de168/pre-tool-advisory-throttle.json +0 -10
  80. package/.omc/state/sessions/11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc/last-tool-error-state.json +0 -7
  81. package/.omc/state/sessions/11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc/mission-state.json +0 -117
  82. package/.omc/state/sessions/11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc/pre-tool-advisory-throttle.json +0 -42
  83. package/.omc/state/sessions/11c41aa0-51fa-49e1-a1dc-26dcd6ac26cc/subagent-tracking-state.json +0 -53
  84. package/.omc/state/sessions/127837d3-a000-4656-9453-2324ab353723/mission-state.json +0 -61
  85. package/.omc/state/sessions/127837d3-a000-4656-9453-2324ab353723/pre-tool-advisory-throttle.json +0 -22
  86. package/.omc/state/sessions/127837d3-a000-4656-9453-2324ab353723/skill-active-state.json +0 -15
  87. package/.omc/state/sessions/127837d3-a000-4656-9453-2324ab353723/subagent-tracking-state.json +0 -26
  88. package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/last-tool-error-state.json +0 -7
  89. package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/mission-state.json +0 -89
  90. package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/pre-tool-advisory-throttle.json +0 -34
  91. package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/ralph-state.json +0 -13
  92. package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/skill-active-state.json +0 -15
  93. package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/subagent-tracking-state.json +0 -44
  94. package/.omc/state/sessions/15c409af-24fa-4026-88d3-a82dd1e68b87/ultrawork-state.json +0 -11
  95. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/last-tool-error-state.json +0 -7
  96. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/mission-state.json +0 -139
  97. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/pre-tool-advisory-throttle.json +0 -50
  98. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/ralplan-state.json +0 -11
  99. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/subagent-tracking-state.json +0 -90
  100. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/last-tool-error-state.json +0 -7
  101. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/mission-state.json +0 -109
  102. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/pre-tool-advisory-throttle.json +0 -42
  103. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/ralph-state.json +0 -13
  104. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/skill-active-state.json +0 -15
  105. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/subagent-tracking-state.json +0 -62
  106. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/ultrawork-state.json +0 -11
  107. package/.omc/state/sessions/23d0ff82-17e5-428b-8743-38f7979bb6f3/last-tool-error-state.json +0 -7
  108. package/.omc/state/sessions/23d0ff82-17e5-428b-8743-38f7979bb6f3/pre-tool-advisory-throttle.json +0 -18
  109. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/last-tool-error-state.json +0 -7
  110. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/mission-state.json +0 -79
  111. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/pre-tool-advisory-throttle.json +0 -10
  112. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/skill-active-state.json +0 -15
  113. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/subagent-tracking-state.json +0 -26
  114. package/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/pre-tool-advisory-throttle.json +0 -18
  115. package/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/subagent-tracking-state.json +0 -17
  116. package/.omc/state/sessions/36d91435-50b4-442f-9f4e-3cc68d776236/pre-tool-advisory-throttle.json +0 -18
  117. package/.omc/state/sessions/36d91435-50b4-442f-9f4e-3cc68d776236/subagent-tracking-state.json +0 -17
  118. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/last-tool-error-state.json +0 -7
  119. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/mission-state.json +0 -145
  120. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/pre-tool-advisory-throttle.json +0 -38
  121. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/ralplan-state.json +0 -11
  122. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/subagent-tracking-state.json +0 -98
  123. package/.omc/state/sessions/3a844fbd-ace8-4af1-8516-33d611839886/pre-tool-advisory-throttle.json +0 -18
  124. package/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/last-tool-error-state.json +0 -7
  125. package/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/pre-tool-advisory-throttle.json +0 -18
  126. package/.omc/state/sessions/4cf1c186-81b2-497c-b002-d7f84e7839f3/last-tool-error-state.json +0 -7
  127. package/.omc/state/sessions/4cf1c186-81b2-497c-b002-d7f84e7839f3/pre-tool-advisory-throttle.json +0 -18
  128. package/.omc/state/sessions/4cf1c186-81b2-497c-b002-d7f84e7839f3/subagent-tracking-state.json +0 -7
  129. package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/mission-state.json +0 -61
  130. package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/pre-tool-advisory-throttle.json +0 -22
  131. package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/skill-active-state.json +0 -15
  132. package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/subagent-tracking-state.json +0 -26
  133. package/.omc/state/sessions/560ea519-574a-4713-b134-5bf6cfaf3c33/pre-tool-advisory-throttle.json +0 -18
  134. package/.omc/state/sessions/5c4ab554-64f1-42ae-83e3-21e0237e955c/mission-state.json +0 -117
  135. package/.omc/state/sessions/5c4ab554-64f1-42ae-83e3-21e0237e955c/pre-tool-advisory-throttle.json +0 -18
  136. package/.omc/state/sessions/5c4ab554-64f1-42ae-83e3-21e0237e955c/subagent-tracking-state.json +0 -17
  137. package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/last-tool-error-state.json +0 -7
  138. package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/mission-state.json +0 -53
  139. package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/pre-tool-advisory-throttle.json +0 -22
  140. package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/skill-active-state.json +0 -15
  141. package/.omc/state/sessions/6be1264f-8069-4412-8119-86118ed1943e/subagent-tracking-state.json +0 -17
  142. package/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/pre-tool-advisory-throttle.json +0 -18
  143. package/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/subagent-tracking-state.json +0 -17
  144. package/.omc/state/sessions/74afa912-1443-4011-b4f2-db9f055cdd9f/pre-tool-advisory-throttle.json +0 -18
  145. package/.omc/state/sessions/74afa912-1443-4011-b4f2-db9f055cdd9f/skill-active-state.json +0 -15
  146. package/.omc/state/sessions/74afa912-1443-4011-b4f2-db9f055cdd9f/subagent-tracking-state.json +0 -17
  147. package/.omc/state/sessions/7772f972-4ec1-4287-bf42-a92c14cf3ffc/pre-tool-advisory-throttle.json +0 -10
  148. package/.omc/state/sessions/8198b3e5-fad6-4ee0-9c59-ef773ad89af4/pre-tool-advisory-throttle.json +0 -14
  149. package/.omc/state/sessions/8198b3e5-fad6-4ee0-9c59-ef773ad89af4/subagent-tracking-state.json +0 -17
  150. package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/pre-tool-advisory-throttle.json +0 -18
  151. package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/ralplan-state.json +0 -11
  152. package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/subagent-tracking-state.json +0 -35
  153. package/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -14
  154. package/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/ralph-state.json +0 -13
  155. package/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/subagent-tracking-state.json +0 -17
  156. package/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/ultrawork-state.json +0 -11
  157. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/last-tool-error-state.json +0 -7
  158. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/mission-state.json +0 -79
  159. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/pre-tool-advisory-throttle.json +0 -22
  160. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/progress.txt +0 -7
  161. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/skill-active-state.json +0 -15
  162. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/subagent-tracking-state.json +0 -26
  163. package/.omc/state/sessions/a60ac2ec-afbd-449f-a540-6df287392fc2/pre-tool-advisory-throttle.json +0 -18
  164. package/.omc/state/sessions/a60ac2ec-afbd-449f-a540-6df287392fc2/subagent-tracking-state.json +0 -7
  165. package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/last-tool-error-state.json +0 -7
  166. package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/mission-state.json +0 -89
  167. package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/pre-tool-advisory-throttle.json +0 -34
  168. package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/ralph-state.json +0 -13
  169. package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/skill-active-state.json +0 -15
  170. package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/subagent-tracking-state.json +0 -35
  171. package/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/ultrawork-state.json +0 -11
  172. package/.omc/state/sessions/b52d89fb-0e24-4901-bc66-27e3c1697126/pre-tool-advisory-throttle.json +0 -14
  173. package/.omc/state/sessions/b52d89fb-0e24-4901-bc66-27e3c1697126/subagent-tracking-state.json +0 -17
  174. package/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/pre-tool-advisory-throttle.json +0 -18
  175. package/.omc/state/sessions/c967c819-3d1c-447b-ab48-56a8448ef9f8/pre-tool-advisory-throttle.json +0 -10
  176. package/.omc/state/sessions/c967c819-3d1c-447b-ab48-56a8448ef9f8/subagent-tracking-state.json +0 -7
  177. package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/last-tool-error-state.json +0 -7
  178. package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/mission-state.json +0 -53
  179. package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/pre-tool-advisory-throttle.json +0 -18
  180. package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/subagent-tracking-state.json +0 -17
  181. package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/last-tool-error-state.json +0 -7
  182. package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/mission-state.json +0 -103
  183. package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/pre-tool-advisory-throttle.json +0 -30
  184. package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/ralph-state.json +0 -13
  185. package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/subagent-tracking-state.json +0 -62
  186. package/.omc/state/sessions/d5aae73c-340d-4aa2-9fe0-1bf2d79b69dc/ultrawork-state.json +0 -11
  187. package/.omc/state/sessions/e947a3c6-989d-4a60-91dd-6b0ddd827b2d/last-tool-error-state.json +0 -7
  188. package/.omc/state/sessions/e947a3c6-989d-4a60-91dd-6b0ddd827b2d/pre-tool-advisory-throttle.json +0 -10
  189. package/.omc/state/sessions/e947a3c6-989d-4a60-91dd-6b0ddd827b2d/subagent-tracking-state.json +0 -26
  190. package/.omc/state/sessions/eb44055b-c2fa-4e66-b491-a1d9b44f51c7/last-tool-error-state.json +0 -7
  191. package/.omc/state/sessions/eb44055b-c2fa-4e66-b491-a1d9b44f51c7/pre-tool-advisory-throttle.json +0 -18
  192. package/.omc/state/sessions/eb44055b-c2fa-4e66-b491-a1d9b44f51c7/subagent-tracking-state.json +0 -17
  193. package/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/pre-tool-advisory-throttle.json +0 -18
  194. package/.omc/state/sessions/f581a1ae-0ee4-48a3-96f3-ce31a0633bb0/pre-tool-advisory-throttle.json +0 -18
  195. package/.omc/state/sessions/f581a1ae-0ee4-48a3-96f3-ce31a0633bb0/subagent-tracking-state.json +0 -17
  196. package/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/pre-tool-advisory-throttle.json +0 -14
  197. package/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/ralph-state.json +0 -13
  198. package/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/ultrawork-state.json +0 -11
  199. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/last-tool-error-state.json +0 -7
  200. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/mission-state.json +0 -61
  201. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/prd.json +0 -22
  202. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/pre-tool-advisory-throttle.json +0 -22
  203. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/progress.txt +0 -22
  204. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/skill-active-state.json +0 -15
  205. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/subagent-tracking-state.json +0 -26
  206. package/.omc/state/subagent-tracking.json +0 -17
  207. package/.turbo/turbo-build.log +0 -7
  208. package/.turbo/turbo-check.log +0 -14
  209. package/.turbo/turbo-eslint-check.log +0 -2
  210. package/.turbo/turbo-eslint-fix.log +0 -1
  211. package/.turbo/turbo-prettier-check.log +0 -1
  212. package/.turbo/turbo-prettier-fix.log +0 -1
  213. package/.turbo/turbo-test.log +0 -406
  214. package/.turbo/turbo-ts-check.log +0 -1
  215. package/.turbo/turbo-validate.log +0 -14
  216. package/coverage/base.css +0 -224
  217. package/coverage/block-navigation.js +0 -87
  218. package/coverage/cli/index.html +0 -116
  219. package/coverage/cli/package.json.html +0 -283
  220. package/coverage/cli/src/commands/audit/audit.ts.html +0 -616
  221. package/coverage/cli/src/commands/audit/index.html +0 -131
  222. package/coverage/cli/src/commands/audit/index.ts.html +0 -88
  223. package/coverage/cli/src/commands/doctor/doctor.ts.html +0 -1654
  224. package/coverage/cli/src/commands/doctor/index.html +0 -131
  225. package/coverage/cli/src/commands/doctor/index.ts.html +0 -88
  226. package/coverage/cli/src/commands/env-clear/env-clear.ts.html +0 -370
  227. package/coverage/cli/src/commands/env-clear/index.html +0 -131
  228. package/coverage/cli/src/commands/env-clear/index.ts.html +0 -88
  229. package/coverage/cli/src/commands/env-list/env-list.ts.html +0 -229
  230. package/coverage/cli/src/commands/env-list/index.html +0 -131
  231. package/coverage/cli/src/commands/env-list/index.ts.html +0 -88
  232. package/coverage/cli/src/commands/env-load/env-load.ts.html +0 -1201
  233. package/coverage/cli/src/commands/env-load/index.html +0 -131
  234. package/coverage/cli/src/commands/env-load/index.ts.html +0 -91
  235. package/coverage/cli/src/commands/env-status/env-status.ts.html +0 -409
  236. package/coverage/cli/src/commands/env-status/index.html +0 -131
  237. package/coverage/cli/src/commands/env-status/index.ts.html +0 -88
  238. package/coverage/cli/src/commands/gh-merge-dev/gh-merge-dev.ts.html +0 -694
  239. package/coverage/cli/src/commands/gh-merge-dev/index.html +0 -131
  240. package/coverage/cli/src/commands/gh-merge-dev/index.ts.html +0 -88
  241. package/coverage/cli/src/commands/gh-release-deliver/gh-release-deliver.ts.html +0 -1495
  242. package/coverage/cli/src/commands/gh-release-deliver/index.html +0 -131
  243. package/coverage/cli/src/commands/gh-release-deliver/index.ts.html +0 -88
  244. package/coverage/cli/src/commands/gh-release-deploy-all/gh-release-deploy-all.ts.html +0 -706
  245. package/coverage/cli/src/commands/gh-release-deploy-all/index.html +0 -131
  246. package/coverage/cli/src/commands/gh-release-deploy-all/index.ts.html +0 -88
  247. package/coverage/cli/src/commands/gh-release-deploy-selected/gh-release-deploy-selected.ts.html +0 -994
  248. package/coverage/cli/src/commands/gh-release-deploy-selected/index.html +0 -131
  249. package/coverage/cli/src/commands/gh-release-deploy-selected/index.ts.html +0 -88
  250. package/coverage/cli/src/commands/gh-release-list/gh-release-list.ts.html +0 -355
  251. package/coverage/cli/src/commands/gh-release-list/index.html +0 -131
  252. package/coverage/cli/src/commands/gh-release-list/index.ts.html +0 -88
  253. package/coverage/cli/src/commands/init/agent-files.ts.html +0 -742
  254. package/coverage/cli/src/commands/init/index.html +0 -146
  255. package/coverage/cli/src/commands/init/init.ts.html +0 -1159
  256. package/coverage/cli/src/commands/init/migrate-config.ts.html +0 -1219
  257. package/coverage/cli/src/commands/release-create/index.html +0 -131
  258. package/coverage/cli/src/commands/release-create/index.ts.html +0 -88
  259. package/coverage/cli/src/commands/release-create/release-create.ts.html +0 -1426
  260. package/coverage/cli/src/commands/release-desc-edit/index.html +0 -131
  261. package/coverage/cli/src/commands/release-desc-edit/index.ts.html +0 -88
  262. package/coverage/cli/src/commands/release-desc-edit/release-desc-edit.ts.html +0 -766
  263. package/coverage/cli/src/commands/vendor-check/index.html +0 -131
  264. package/coverage/cli/src/commands/vendor-check/index.ts.html +0 -88
  265. package/coverage/cli/src/commands/vendor-check/vendor-check.ts.html +0 -466
  266. package/coverage/cli/src/commands/vendor-config/index.html +0 -116
  267. package/coverage/cli/src/commands/vendor-config/vendor-config.ts.html +0 -571
  268. package/coverage/cli/src/commands/vendor-diff/index.html +0 -131
  269. package/coverage/cli/src/commands/vendor-diff/index.ts.html +0 -88
  270. package/coverage/cli/src/commands/vendor-diff/vendor-diff.ts.html +0 -316
  271. package/coverage/cli/src/commands/vendor-manifest/index.html +0 -131
  272. package/coverage/cli/src/commands/vendor-manifest/index.ts.html +0 -88
  273. package/coverage/cli/src/commands/vendor-manifest/vendor-manifest.ts.html +0 -265
  274. package/coverage/cli/src/commands/vendor-sync/index.html +0 -131
  275. package/coverage/cli/src/commands/vendor-sync/index.ts.html +0 -88
  276. package/coverage/cli/src/commands/vendor-sync/vendor-sync.ts.html +0 -355
  277. package/coverage/cli/src/commands/version/index.html +0 -131
  278. package/coverage/cli/src/commands/version/index.ts.html +0 -88
  279. package/coverage/cli/src/commands/version/version.ts.html +0 -184
  280. package/coverage/cli/src/commands/worktrees-add/index.html +0 -131
  281. package/coverage/cli/src/commands/worktrees-add/index.ts.html +0 -88
  282. package/coverage/cli/src/commands/worktrees-add/worktrees-add.ts.html +0 -1183
  283. package/coverage/cli/src/commands/worktrees-list/index.html +0 -131
  284. package/coverage/cli/src/commands/worktrees-list/index.ts.html +0 -88
  285. package/coverage/cli/src/commands/worktrees-list/worktrees-list.ts.html +0 -400
  286. package/coverage/cli/src/commands/worktrees-reload/index.html +0 -131
  287. package/coverage/cli/src/commands/worktrees-reload/index.ts.html +0 -88
  288. package/coverage/cli/src/commands/worktrees-reload/worktrees-reload.ts.html +0 -775
  289. package/coverage/cli/src/commands/worktrees-remove/index.html +0 -131
  290. package/coverage/cli/src/commands/worktrees-remove/index.ts.html +0 -88
  291. package/coverage/cli/src/commands/worktrees-remove/worktrees-remove.ts.html +0 -682
  292. package/coverage/cli/src/commands/worktrees-sync/index.html +0 -131
  293. package/coverage/cli/src/commands/worktrees-sync/index.ts.html +0 -88
  294. package/coverage/cli/src/commands/worktrees-sync/worktrees-sync.ts.html +0 -679
  295. package/coverage/cli/src/dev/__tests__/fixtures.ts.html +0 -787
  296. package/coverage/cli/src/dev/__tests__/index.html +0 -116
  297. package/coverage/cli/src/dev/dev-server.ts.html +0 -1855
  298. package/coverage/cli/src/dev/discovery.ts.html +0 -598
  299. package/coverage/cli/src/dev/index.html +0 -191
  300. package/coverage/cli/src/dev/interfaces.ts.html +0 -223
  301. package/coverage/cli/src/dev/logger.ts.html +0 -1102
  302. package/coverage/cli/src/dev/ports.ts.html +0 -430
  303. package/coverage/cli/src/dev/serverless-local-run.ts.html +0 -916
  304. package/coverage/cli/src/entry/dev-server.ts.html +0 -409
  305. package/coverage/cli/src/entry/index.html +0 -116
  306. package/coverage/cli/src/index.html +0 -116
  307. package/coverage/cli/src/integrations/cmux/canonicalize-cmux-title.ts.html +0 -178
  308. package/coverage/cli/src/integrations/cmux/close-workspace-by-title.ts.html +0 -262
  309. package/coverage/cli/src/integrations/cmux/index.html +0 -191
  310. package/coverage/cli/src/integrations/cmux/index.ts.html +0 -100
  311. package/coverage/cli/src/integrations/cmux/list-workspace-titles.ts.html +0 -226
  312. package/coverage/cli/src/integrations/cmux/open-workspace-with-layout.ts.html +0 -325
  313. package/coverage/cli/src/integrations/cmux/workspace-title.ts.html +0 -154
  314. package/coverage/cli/src/integrations/cursor/add-folders-to-workspace.ts.html +0 -337
  315. package/coverage/cli/src/integrations/cursor/index.html +0 -206
  316. package/coverage/cli/src/integrations/cursor/index.ts.html +0 -103
  317. package/coverage/cli/src/integrations/cursor/launch-cursor.ts.html +0 -121
  318. package/coverage/cli/src/integrations/cursor/open-cursor-workspace.ts.html +0 -277
  319. package/coverage/cli/src/integrations/cursor/reconcile-workspace-folders.ts.html +0 -355
  320. package/coverage/cli/src/integrations/cursor/remove-folders-from-workspace.ts.html +0 -364
  321. package/coverage/cli/src/integrations/cursor/resolve-workspace-path.ts.html +0 -124
  322. package/coverage/cli/src/integrations/doppler/doppler-cli-auth.ts.html +0 -178
  323. package/coverage/cli/src/integrations/doppler/doppler-errors.ts.html +0 -349
  324. package/coverage/cli/src/integrations/doppler/doppler-project.ts.html +0 -355
  325. package/coverage/cli/src/integrations/doppler/index.html +0 -161
  326. package/coverage/cli/src/integrations/doppler/index.ts.html +0 -97
  327. package/coverage/cli/src/integrations/gh/gh-cli-auth/gh-cli-auth.ts.html +0 -172
  328. package/coverage/cli/src/integrations/gh/gh-cli-auth/index.html +0 -131
  329. package/coverage/cli/src/integrations/gh/gh-cli-auth/index.ts.html +0 -88
  330. package/coverage/cli/src/integrations/gh/gh-release-prs/gh-release-prs.ts.html +0 -703
  331. package/coverage/cli/src/integrations/gh/gh-release-prs/index.html +0 -131
  332. package/coverage/cli/src/integrations/gh/gh-release-prs/index.ts.html +0 -91
  333. package/coverage/cli/src/integrations/gh/index.html +0 -116
  334. package/coverage/cli/src/integrations/gh/index.ts.html +0 -94
  335. package/coverage/cli/src/integrations/ide/add-ide-worktree-folders.ts.html +0 -316
  336. package/coverage/cli/src/integrations/ide/index.html +0 -191
  337. package/coverage/cli/src/integrations/ide/index.ts.html +0 -103
  338. package/coverage/cli/src/integrations/ide/open-ide-workspace.ts.html +0 -238
  339. package/coverage/cli/src/integrations/ide/provider-label.ts.html +0 -157
  340. package/coverage/cli/src/integrations/ide/remove-ide-worktree-folders.ts.html +0 -520
  341. package/coverage/cli/src/integrations/ide/types.ts.html +0 -208
  342. package/coverage/cli/src/integrations/jira/api.ts.html +0 -1060
  343. package/coverage/cli/src/integrations/jira/index.html +0 -131
  344. package/coverage/cli/src/integrations/jira/index.ts.html +0 -142
  345. package/coverage/cli/src/integrations/zed/add-folders-to-zed-workspace.ts.html +0 -175
  346. package/coverage/cli/src/integrations/zed/index.html +0 -161
  347. package/coverage/cli/src/integrations/zed/index.ts.html +0 -94
  348. package/coverage/cli/src/integrations/zed/open-zed-workspace.ts.html +0 -238
  349. package/coverage/cli/src/integrations/zed/reuse-zed-workspace.ts.html +0 -256
  350. package/coverage/cli/src/lib/assert-never/assert-never.ts.html +0 -130
  351. package/coverage/cli/src/lib/assert-never/index.html +0 -131
  352. package/coverage/cli/src/lib/assert-never/index.ts.html +0 -88
  353. package/coverage/cli/src/lib/command-catalog/command-catalog.ts.html +0 -523
  354. package/coverage/cli/src/lib/command-catalog/index.html +0 -116
  355. package/coverage/cli/src/lib/command-echo/command-echo.ts.html +0 -319
  356. package/coverage/cli/src/lib/command-echo/index.html +0 -131
  357. package/coverage/cli/src/lib/command-echo/index.ts.html +0 -88
  358. package/coverage/cli/src/lib/constants/constants.ts.html +0 -472
  359. package/coverage/cli/src/lib/constants/index.html +0 -131
  360. package/coverage/cli/src/lib/constants/index.ts.html +0 -139
  361. package/coverage/cli/src/lib/env-autoload/env-autoload.ts.html +0 -1111
  362. package/coverage/cli/src/lib/env-autoload/index.html +0 -116
  363. package/coverage/cli/src/lib/errors/format-zx-error.ts.html +0 -247
  364. package/coverage/cli/src/lib/errors/index.html +0 -146
  365. package/coverage/cli/src/lib/errors/is-prompt-cancellation.ts.html +0 -199
  366. package/coverage/cli/src/lib/errors/operation-error.ts.html +0 -325
  367. package/coverage/cli/src/lib/git-guard/git-guard.ts.html +0 -250
  368. package/coverage/cli/src/lib/git-guard/index.html +0 -131
  369. package/coverage/cli/src/lib/git-guard/index.ts.html +0 -91
  370. package/coverage/cli/src/lib/git-utils/git-utils.ts.html +0 -622
  371. package/coverage/cli/src/lib/git-utils/index.html +0 -131
  372. package/coverage/cli/src/lib/git-utils/index.ts.html +0 -115
  373. package/coverage/cli/src/lib/infra-kit-config/index.html +0 -131
  374. package/coverage/cli/src/lib/infra-kit-config/index.ts.html +0 -142
  375. package/coverage/cli/src/lib/infra-kit-config/infra-kit-config.ts.html +0 -1447
  376. package/coverage/cli/src/lib/json-output/index.html +0 -116
  377. package/coverage/cli/src/lib/json-output/json-output.ts.html +0 -226
  378. package/coverage/cli/src/lib/logger/index.html +0 -116
  379. package/coverage/cli/src/lib/logger/index.ts.html +0 -205
  380. package/coverage/cli/src/lib/managed-block/index.html +0 -131
  381. package/coverage/cli/src/lib/managed-block/index.ts.html +0 -109
  382. package/coverage/cli/src/lib/managed-block/managed-block.ts.html +0 -520
  383. package/coverage/cli/src/lib/package-config/index.html +0 -146
  384. package/coverage/cli/src/lib/package-config/index.ts.html +0 -94
  385. package/coverage/cli/src/lib/package-config/package-config-schema.ts.html +0 -142
  386. package/coverage/cli/src/lib/package-config/package-config.ts.html +0 -376
  387. package/coverage/cli/src/lib/package-validator/checks/config-check.ts.html +0 -175
  388. package/coverage/cli/src/lib/package-validator/checks/files-check.ts.html +0 -172
  389. package/coverage/cli/src/lib/package-validator/checks/index.html +0 -176
  390. package/coverage/cli/src/lib/package-validator/checks/index.ts.html +0 -97
  391. package/coverage/cli/src/lib/package-validator/checks/scripts-check.ts.html +0 -154
  392. package/coverage/cli/src/lib/package-validator/checks/turbo-check.ts.html +0 -226
  393. package/coverage/cli/src/lib/package-validator/fs-utils.ts.html +0 -139
  394. package/coverage/cli/src/lib/package-validator/index.html +0 -146
  395. package/coverage/cli/src/lib/package-validator/index.ts.html +0 -94
  396. package/coverage/cli/src/lib/package-validator/loader/config-loader.ts.html +0 -316
  397. package/coverage/cli/src/lib/package-validator/loader/index.html +0 -146
  398. package/coverage/cli/src/lib/package-validator/loader/index.ts.html +0 -91
  399. package/coverage/cli/src/lib/package-validator/loader/package-discovery.ts.html +0 -379
  400. package/coverage/cli/src/lib/package-validator/package-validator.ts.html +0 -229
  401. package/coverage/cli/src/lib/path-display/index.html +0 -131
  402. package/coverage/cli/src/lib/path-display/index.ts.html +0 -88
  403. package/coverage/cli/src/lib/path-display/path-display.ts.html +0 -211
  404. package/coverage/cli/src/lib/release-id/index.html +0 -131
  405. package/coverage/cli/src/lib/release-id/index.ts.html +0 -130
  406. package/coverage/cli/src/lib/release-id/release-id.ts.html +0 -859
  407. package/coverage/cli/src/lib/release-utils/index.html +0 -131
  408. package/coverage/cli/src/lib/release-utils/index.ts.html +0 -130
  409. package/coverage/cli/src/lib/release-utils/release-utils.ts.html +0 -778
  410. package/coverage/cli/src/lib/render/index.html +0 -116
  411. package/coverage/cli/src/lib/render/render.ts.html +0 -157
  412. package/coverage/cli/src/lib/vendor/__tests__/index.html +0 -116
  413. package/coverage/cli/src/lib/vendor/__tests__/zx-mock.ts.html +0 -181
  414. package/coverage/cli/src/lib/vendor/config-schema.ts.html +0 -319
  415. package/coverage/cli/src/lib/vendor/config.ts.html +0 -259
  416. package/coverage/cli/src/lib/vendor/factory-config-schema.ts.html +0 -190
  417. package/coverage/cli/src/lib/vendor/factory-config.ts.html +0 -358
  418. package/coverage/cli/src/lib/vendor/hash.ts.html +0 -133
  419. package/coverage/cli/src/lib/vendor/index.html +0 -251
  420. package/coverage/cli/src/lib/vendor/index.ts.html +0 -154
  421. package/coverage/cli/src/lib/vendor/manifest.ts.html +0 -538
  422. package/coverage/cli/src/lib/vendor/skip-sets.ts.html +0 -229
  423. package/coverage/cli/src/lib/vendor/sync-ops.ts.html +0 -955
  424. package/coverage/cli/src/lib/vendor/walk.ts.html +0 -253
  425. package/coverage/cli/src/lib/version-utils/index.html +0 -161
  426. package/coverage/cli/src/lib/version-utils/index.ts.html +0 -139
  427. package/coverage/cli/src/lib/version-utils/load-existing-versions.ts.html +0 -343
  428. package/coverage/cli/src/lib/version-utils/next-version.ts.html +0 -934
  429. package/coverage/cli/src/lib/version-utils/version-utils.ts.html +0 -178
  430. package/coverage/cli/src/lib/worktrees/index.html +0 -131
  431. package/coverage/cli/src/lib/worktrees/index.ts.html +0 -88
  432. package/coverage/cli/src/lib/worktrees/remove-worktrees.ts.html +0 -283
  433. package/coverage/cli/src/tui/boot.tsx.html +0 -265
  434. package/coverage/cli/src/tui/index.html +0 -116
  435. package/coverage/cli/src/tui/screens/command-palette.tsx.html +0 -562
  436. package/coverage/cli/src/tui/screens/index.html +0 -116
  437. package/coverage/cli/src/types.ts.html +0 -283
  438. package/coverage/clover.xml +0 -4488
  439. package/coverage/coverage-final.json +0 -156
  440. package/coverage/favicon.png +0 -0
  441. package/coverage/index.html +0 -1076
  442. package/coverage/prettify.css +0 -1
  443. package/coverage/prettify.js +0 -2
  444. package/coverage/sort-arrow-sprite.png +0 -0
  445. package/coverage/sorter.js +0 -210
  446. package/dist/chunk-DB6CTNBS.js +0 -3
  447. package/dist/chunk-DB6CTNBS.js.map +0 -7
  448. package/dist/chunk-SGR2XAVR.js +0 -164
  449. package/dist/chunk-SGR2XAVR.js.map +0 -7
  450. package/dist/chunk-WA4BQRDC.js +0 -2
  451. package/dist/chunk-WA4BQRDC.js.map +0 -7
  452. package/eslint.config.js +0 -35
  453. package/infra-kit.config.ts +0 -5
  454. package/scripts/build.js +0 -75
  455. package/src/.omc/state/agent-replay-2ac0dcd0-01f7-41a8-a8c9-f2195599817b.jsonl +0 -5
  456. package/src/.omc/state/agent-replay-2ccbd177-0d5d-4d4a-ab94-a22464786221.jsonl +0 -2
  457. package/src/.omc/state/agent-replay-707b4784-2117-4b19-ae68-68a031f0d76d.jsonl +0 -2
  458. package/src/.omc/state/agent-replay-8dd0ad2f-3a90-4158-b9de-ec8e19a7c983.jsonl +0 -11
  459. package/src/.omc/state/agent-replay-c513ef38-cc3e-4a29-9c4c-1e0137245dd5.jsonl +0 -4
  460. package/src/.omc/state/agent-replay-ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a.jsonl +0 -2
  461. package/src/.omc/state/idle-notif-cooldown.json +0 -3
  462. package/src/.omc/state/sessions/0a58307d-2a37-4c69-851c-83a646502d62/pre-tool-advisory-throttle.json +0 -18
  463. package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/mission-state.json +0 -79
  464. package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/pre-tool-advisory-throttle.json +0 -26
  465. package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/subagent-tracking-state.json +0 -26
  466. package/src/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/last-tool-error-state.json +0 -7
  467. package/src/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/mission-state.json +0 -53
  468. package/src/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/pre-tool-advisory-throttle.json +0 -22
  469. package/src/.omc/state/sessions/2ccbd177-0d5d-4d4a-ab94-a22464786221/subagent-tracking-state.json +0 -17
  470. package/src/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/last-tool-error-state.json +0 -7
  471. package/src/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/mission-state.json +0 -53
  472. package/src/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/pre-tool-advisory-throttle.json +0 -22
  473. package/src/.omc/state/sessions/707b4784-2117-4b19-ae68-68a031f0d76d/subagent-tracking-state.json +0 -17
  474. package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/mission-state.json +0 -79
  475. package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -22
  476. package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/ralph-state.json +0 -13
  477. package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/subagent-tracking-state.json +0 -26
  478. package/src/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/ultrawork-state.json +0 -11
  479. package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/mission-state.json +0 -79
  480. package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/pre-tool-advisory-throttle.json +0 -22
  481. package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/subagent-tracking-state.json +0 -26
  482. package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/pre-tool-advisory-throttle.json +0 -18
  483. package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/ralph-state.json +0 -13
  484. package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/ultrawork-state.json +0 -11
  485. package/src/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/pre-tool-advisory-throttle.json +0 -14
  486. package/src/commands/.omc/state/sessions/afc6290b-40d3-4bef-b3b6-14484c034ab9/pre-tool-advisory-throttle.json +0 -14
  487. package/src/commands/.omc/state/sessions/c967c819-3d1c-447b-ab48-56a8448ef9f8/pre-tool-advisory-throttle.json +0 -18
  488. package/src/commands/.omc/state/sessions/f09f401f-56c6-42cd-97be-c742c1956468/pre-tool-advisory-throttle.json +0 -14
  489. package/src/commands/audit/__tests__/audit.test.ts +0 -59
  490. package/src/commands/audit/audit.ts +0 -177
  491. package/src/commands/audit/index.ts +0 -1
  492. package/src/commands/config/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/last-tool-error-state.json +0 -7
  493. package/src/commands/config/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/pre-tool-advisory-throttle.json +0 -18
  494. package/src/commands/config/config.ts +0 -137
  495. package/src/commands/config/index.ts +0 -1
  496. package/src/commands/doctor/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -14
  497. package/src/commands/doctor/__tests__/agent-files.test.ts +0 -88
  498. package/src/commands/doctor/__tests__/check-ide-installed.test.ts +0 -142
  499. package/src/commands/doctor/__tests__/check-legacy-user-global-config.test.ts +0 -110
  500. package/src/commands/doctor/doctor.ts +0 -576
  501. package/src/commands/doctor/index.ts +0 -1
  502. package/src/commands/env-autoload/env-autoload.ts +0 -24
  503. package/src/commands/env-autoload/index.ts +0 -1
  504. package/src/commands/env-clear/__tests__/env-clear.test.ts +0 -27
  505. package/src/commands/env-clear/env-clear.ts +0 -136
  506. package/src/commands/env-clear/index.ts +0 -1
  507. package/src/commands/env-list/env-list.ts +0 -48
  508. package/src/commands/env-list/index.ts +0 -1
  509. package/src/commands/env-load/__tests__/env-load.test.ts +0 -200
  510. package/src/commands/env-load/env-load.ts +0 -394
  511. package/src/commands/env-load/index.ts +0 -2
  512. package/src/commands/env-status/__tests__/env-status.test.ts +0 -78
  513. package/src/commands/env-status/env-status.ts +0 -108
  514. package/src/commands/env-status/index.ts +0 -1
  515. package/src/commands/gh-merge-dev/gh-merge-dev.ts +0 -203
  516. package/src/commands/gh-merge-dev/index.ts +0 -1
  517. package/src/commands/gh-release-deliver/gh-release-deliver.ts +0 -470
  518. package/src/commands/gh-release-deliver/index.ts +0 -1
  519. package/src/commands/gh-release-deploy-all/gh-release-deploy-all.ts +0 -207
  520. package/src/commands/gh-release-deploy-all/index.ts +0 -1
  521. package/src/commands/gh-release-deploy-selected/gh-release-deploy-selected.ts +0 -303
  522. package/src/commands/gh-release-deploy-selected/index.ts +0 -1
  523. package/src/commands/gh-release-list/gh-release-list.ts +0 -90
  524. package/src/commands/gh-release-list/index.ts +0 -1
  525. package/src/commands/init/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -18
  526. package/src/commands/init/__tests__/agent-files.test.ts +0 -265
  527. package/src/commands/init/__tests__/migrate-config.test.ts +0 -422
  528. package/src/commands/init/__tests__/migrate-factory-config.test.ts +0 -93
  529. package/src/commands/init/__tests__/seed-user-global-config.test.ts +0 -64
  530. package/src/commands/init/__tests__/shell-body.test.ts +0 -100
  531. package/src/commands/init/agent-files.ts +0 -219
  532. package/src/commands/init/index.ts +0 -8
  533. package/src/commands/init/init.ts +0 -425
  534. package/src/commands/init/migrate-config.ts +0 -378
  535. package/src/commands/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  536. package/src/commands/release-create/__tests__/release-create.test.ts +0 -92
  537. package/src/commands/release-create/index.ts +0 -1
  538. package/src/commands/release-create/release-create.ts +0 -447
  539. package/src/commands/release-desc-edit/index.ts +0 -1
  540. package/src/commands/release-desc-edit/release-desc-edit.ts +0 -227
  541. package/src/commands/vendor-check/__tests__/runtime-isolation.test.ts +0 -71
  542. package/src/commands/vendor-check/__tests__/vendor-check.test.ts +0 -87
  543. package/src/commands/vendor-check/index.ts +0 -1
  544. package/src/commands/vendor-check/vendor-check.ts +0 -127
  545. package/src/commands/vendor-config/__tests__/vendor-config.test.ts +0 -103
  546. package/src/commands/vendor-config/index.ts +0 -1
  547. package/src/commands/vendor-config/vendor-config.ts +0 -162
  548. package/src/commands/vendor-diff/__tests__/vendor-diff.test.ts +0 -74
  549. package/src/commands/vendor-diff/index.ts +0 -1
  550. package/src/commands/vendor-diff/vendor-diff.ts +0 -77
  551. package/src/commands/vendor-manifest/index.ts +0 -1
  552. package/src/commands/vendor-manifest/vendor-manifest.ts +0 -60
  553. package/src/commands/vendor-sync/__tests__/vendor-write.test.ts +0 -86
  554. package/src/commands/vendor-sync/index.ts +0 -1
  555. package/src/commands/vendor-sync/vendor-sync.ts +0 -90
  556. package/src/commands/version/index.ts +0 -1
  557. package/src/commands/version/version.ts +0 -33
  558. package/src/commands/worktrees-add/index.ts +0 -1
  559. package/src/commands/worktrees-add/worktrees-add.ts +0 -366
  560. package/src/commands/worktrees-list/index.ts +0 -1
  561. package/src/commands/worktrees-list/worktrees-list.ts +0 -105
  562. package/src/commands/worktrees-reload/__tests__/reload-cmux.test.ts +0 -119
  563. package/src/commands/worktrees-reload/index.ts +0 -1
  564. package/src/commands/worktrees-reload/worktrees-reload.ts +0 -230
  565. package/src/commands/worktrees-remove/index.ts +0 -1
  566. package/src/commands/worktrees-remove/worktrees-remove.ts +0 -199
  567. package/src/commands/worktrees-sync/index.ts +0 -1
  568. package/src/commands/worktrees-sync/worktrees-sync.ts +0 -198
  569. package/src/dev/__tests__/dev-server-options.test.ts +0 -57
  570. package/src/dev/__tests__/dev-server.test.ts +0 -420
  571. package/src/dev/__tests__/discovery.test.ts +0 -181
  572. package/src/dev/__tests__/fixtures.ts +0 -257
  573. package/src/dev/__tests__/ports.test.ts +0 -98
  574. package/src/dev/__tests__/serverless-local-run.test.ts +0 -533
  575. package/src/dev/dev-server.ts +0 -796
  576. package/src/dev/discovery.ts +0 -229
  577. package/src/dev/interfaces.ts +0 -11
  578. package/src/dev/managed-child.ts +0 -73
  579. package/src/dev/ports.ts +0 -100
  580. package/src/dev/serverless-local-run.ts +0 -329
  581. package/src/dev/turbo-watch.ts +0 -62
  582. package/src/dev/ui-dev.ts +0 -62
  583. package/src/entry/cli.ts +0 -630
  584. package/src/entry/dev-server.ts +0 -103
  585. package/src/entry/index.ts +0 -11
  586. package/src/entry/mcp.ts +0 -43
  587. package/src/integrations/cmux/__tests__/canonicalize-cmux-title.test.ts +0 -56
  588. package/src/integrations/cmux/__tests__/close-workspace-by-title.test.ts +0 -63
  589. package/src/integrations/cmux/__tests__/list-workspace-titles.test.ts +0 -65
  590. package/src/integrations/cmux/__tests__/open-workspace-with-layout.test.ts +0 -127
  591. package/src/integrations/cmux/canonicalize-cmux-title.ts +0 -31
  592. package/src/integrations/cmux/close-workspace-by-title.ts +0 -59
  593. package/src/integrations/cmux/index.ts +0 -5
  594. package/src/integrations/cmux/list-workspace-titles.ts +0 -47
  595. package/src/integrations/cmux/open-workspace-with-layout.ts +0 -80
  596. package/src/integrations/cmux/workspace-title.ts +0 -23
  597. package/src/integrations/cursor/.omc/state/agent-replay-f99d8dad-81d1-4987-8183-62edf0843d0c.jsonl +0 -2
  598. package/src/integrations/cursor/.omc/state/idle-notif-cooldown.json +0 -3
  599. package/src/integrations/cursor/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/pre-tool-advisory-throttle.json +0 -18
  600. package/src/integrations/cursor/.omc/state/sessions/f99d8dad-81d1-4987-8183-62edf0843d0c/subagent-tracking-state.json +0 -17
  601. package/src/integrations/cursor/add-folders-to-workspace.ts +0 -84
  602. package/src/integrations/cursor/index.ts +0 -6
  603. package/src/integrations/cursor/launch-cursor.ts +0 -12
  604. package/src/integrations/cursor/open-cursor-workspace.ts +0 -64
  605. package/src/integrations/cursor/reconcile-workspace-folders.ts +0 -90
  606. package/src/integrations/cursor/remove-folders-from-workspace.ts +0 -93
  607. package/src/integrations/cursor/resolve-workspace-path.ts +0 -13
  608. package/src/integrations/doppler/__tests__/doppler-errors.test.ts +0 -76
  609. package/src/integrations/doppler/doppler-cli-auth.ts +0 -31
  610. package/src/integrations/doppler/doppler-errors.ts +0 -88
  611. package/src/integrations/doppler/doppler-project.ts +0 -90
  612. package/src/integrations/doppler/index.ts +0 -4
  613. package/src/integrations/gh/gh-cli-auth/gh-cli-auth.ts +0 -29
  614. package/src/integrations/gh/gh-cli-auth/index.ts +0 -1
  615. package/src/integrations/gh/gh-release-prs/.omc/state/sessions/c6ed6186-1aac-48e0-aa2a-edc6da8e0410/pre-tool-advisory-throttle.json +0 -10
  616. package/src/integrations/gh/gh-release-prs/__tests__/gh-release-prs.test.ts +0 -198
  617. package/src/integrations/gh/gh-release-prs/gh-release-prs.ts +0 -206
  618. package/src/integrations/gh/gh-release-prs/index.ts +0 -2
  619. package/src/integrations/gh/index.ts +0 -3
  620. package/src/integrations/ide/__tests__/ide-facade.test.ts +0 -289
  621. package/src/integrations/ide/add-ide-worktree-folders.ts +0 -77
  622. package/src/integrations/ide/index.ts +0 -6
  623. package/src/integrations/ide/open-ide-workspace.ts +0 -51
  624. package/src/integrations/ide/provider-label.ts +0 -24
  625. package/src/integrations/ide/remove-ide-worktree-folders.ts +0 -145
  626. package/src/integrations/ide/types.ts +0 -41
  627. package/src/integrations/jira/api.ts +0 -325
  628. package/src/integrations/jira/index.ts +0 -19
  629. package/src/integrations/jira/types.ts +0 -85
  630. package/src/integrations/linear/.gitkeep +0 -0
  631. package/src/integrations/zed/__tests__/open-zed-workspace.test.ts +0 -69
  632. package/src/integrations/zed/__tests__/reuse-zed-workspace.test.ts +0 -86
  633. package/src/integrations/zed/add-folders-to-zed-workspace.ts +0 -30
  634. package/src/integrations/zed/index.ts +0 -3
  635. package/src/integrations/zed/open-zed-workspace.ts +0 -51
  636. package/src/integrations/zed/reuse-zed-workspace.ts +0 -57
  637. package/src/lib/assert-never/assert-never.ts +0 -15
  638. package/src/lib/assert-never/index.ts +0 -1
  639. package/src/lib/command-catalog/__tests__/__snapshots__/command-catalog.test.ts.snap +0 -213
  640. package/src/lib/command-catalog/__tests__/command-catalog.test.ts +0 -193
  641. package/src/lib/command-catalog/command-catalog.ts +0 -146
  642. package/src/lib/command-catalog/index.ts +0 -2
  643. package/src/lib/command-echo/__tests__/command-echo.test.ts +0 -127
  644. package/src/lib/command-echo/command-echo.ts +0 -78
  645. package/src/lib/command-echo/index.ts +0 -1
  646. package/src/lib/constants/__tests__/constants.test.ts +0 -182
  647. package/src/lib/constants/constants.ts +0 -167
  648. package/src/lib/constants/index.ts +0 -22
  649. package/src/lib/env-autoload/__tests__/env-autoload.test.ts +0 -327
  650. package/src/lib/env-autoload/env-autoload.ts +0 -373
  651. package/src/lib/env-autoload/index.ts +0 -9
  652. package/src/lib/error-handlers/index.ts +0 -36
  653. package/src/lib/errors/__tests__/is-prompt-cancellation.test.ts +0 -48
  654. package/src/lib/errors/__tests__/operation-error.test.ts +0 -62
  655. package/src/lib/errors/format-zx-error.ts +0 -54
  656. package/src/lib/errors/is-prompt-cancellation.ts +0 -38
  657. package/src/lib/errors/operation-error.ts +0 -80
  658. package/src/lib/git-guard/__tests__/git-guard.test.ts +0 -92
  659. package/src/lib/git-guard/git-guard.ts +0 -55
  660. package/src/lib/git-guard/index.ts +0 -2
  661. package/src/lib/git-utils/__tests__/git-primitives.test.ts +0 -217
  662. package/src/lib/git-utils/__tests__/git-utils.test.ts +0 -49
  663. package/src/lib/git-utils/git-utils.ts +0 -179
  664. package/src/lib/git-utils/index.ts +0 -10
  665. package/src/lib/infra-kit-config/.omc/state/sessions/8dd0ad2f-3a90-4158-b9de-ec8e19a7c983/pre-tool-advisory-throttle.json +0 -18
  666. package/src/lib/infra-kit-config/__tests__/env-autoload-schema.test.ts +0 -71
  667. package/src/lib/infra-kit-config/__tests__/infra-kit-config.test.ts +0 -504
  668. package/src/lib/infra-kit-config/index.ts +0 -19
  669. package/src/lib/infra-kit-config/infra-kit-config.ts +0 -454
  670. package/src/lib/json-output/__tests__/json-output.test.ts +0 -139
  671. package/src/lib/json-output/index.ts +0 -1
  672. package/src/lib/json-output/json-output.ts +0 -47
  673. package/src/lib/logger/index.ts +0 -40
  674. package/src/lib/managed-block/__tests__/managed-block.test.ts +0 -121
  675. package/src/lib/managed-block/index.ts +0 -8
  676. package/src/lib/managed-block/managed-block.ts +0 -145
  677. package/src/lib/package-config/.omc/state/sessions/dde22a92-a0e9-4948-905d-25c9a812ab35/last-tool-error-state.json +0 -7
  678. package/src/lib/package-config/.omc/state/sessions/dde22a92-a0e9-4948-905d-25c9a812ab35/pre-tool-advisory-throttle.json +0 -10
  679. package/src/lib/package-config/__tests__/package-config.test.ts +0 -95
  680. package/src/lib/package-config/index.ts +0 -3
  681. package/src/lib/package-config/package-config-schema.ts +0 -19
  682. package/src/lib/package-config/package-config.ts +0 -97
  683. package/src/lib/package-validator/__tests__/package-validator.test.ts +0 -263
  684. package/src/lib/package-validator/checks/__tests__/checks.test.ts +0 -130
  685. package/src/lib/package-validator/checks/config-check.ts +0 -30
  686. package/src/lib/package-validator/checks/files-check.ts +0 -29
  687. package/src/lib/package-validator/checks/index.ts +0 -4
  688. package/src/lib/package-validator/checks/scripts-check.ts +0 -23
  689. package/src/lib/package-validator/checks/turbo-check.ts +0 -47
  690. package/src/lib/package-validator/fs-utils.ts +0 -18
  691. package/src/lib/package-validator/index.ts +0 -3
  692. package/src/lib/package-validator/loader/config-loader.ts +0 -77
  693. package/src/lib/package-validator/loader/index.ts +0 -2
  694. package/src/lib/package-validator/loader/package-discovery.ts +0 -98
  695. package/src/lib/package-validator/package-validator.ts +0 -48
  696. package/src/lib/package-validator/types.ts +0 -15
  697. package/src/lib/path-display/index.ts +0 -1
  698. package/src/lib/path-display/path-display.ts +0 -42
  699. package/src/lib/release-id/__tests__/release-id.test.ts +0 -359
  700. package/src/lib/release-id/__tests__/versioned-regression.test.ts +0 -69
  701. package/src/lib/release-id/index.ts +0 -15
  702. package/src/lib/release-id/release-id.ts +0 -258
  703. package/src/lib/release-utils/__tests__/release-utils.test.ts +0 -122
  704. package/src/lib/release-utils/index.ts +0 -15
  705. package/src/lib/release-utils/release-utils.ts +0 -231
  706. package/src/lib/render/__tests__/render.test.ts +0 -48
  707. package/src/lib/render/index.ts +0 -1
  708. package/src/lib/render/render.ts +0 -24
  709. package/src/lib/tool-handler/index.ts +0 -1
  710. package/src/lib/tool-handler/tool-handler.ts +0 -30
  711. package/src/lib/vendor/.omc/state/sessions/f09f401f-56c6-42cd-97be-c742c1956468/pre-tool-advisory-throttle.json +0 -10
  712. package/src/lib/vendor/__tests__/config-schema.test.ts +0 -31
  713. package/src/lib/vendor/__tests__/config.test.ts +0 -63
  714. package/src/lib/vendor/__tests__/factory-config.test.ts +0 -92
  715. package/src/lib/vendor/__tests__/vendor-lib.test.ts +0 -158
  716. package/src/lib/vendor/__tests__/zx-mock.ts +0 -32
  717. package/src/lib/vendor/config-schema.ts +0 -78
  718. package/src/lib/vendor/config.ts +0 -58
  719. package/src/lib/vendor/factory-config-schema.ts +0 -35
  720. package/src/lib/vendor/factory-config.ts +0 -91
  721. package/src/lib/vendor/hash.ts +0 -16
  722. package/src/lib/vendor/index.ts +0 -23
  723. package/src/lib/vendor/manifest.ts +0 -151
  724. package/src/lib/vendor/skip-sets.ts +0 -48
  725. package/src/lib/vendor/sync-ops.ts +0 -290
  726. package/src/lib/vendor/walk.ts +0 -56
  727. package/src/lib/version-utils/__tests__/load-existing-versions.test.ts +0 -37
  728. package/src/lib/version-utils/__tests__/next-version.test.ts +0 -407
  729. package/src/lib/version-utils/index.ts +0 -18
  730. package/src/lib/version-utils/load-existing-versions.ts +0 -86
  731. package/src/lib/version-utils/next-version.ts +0 -283
  732. package/src/lib/version-utils/version-utils.ts +0 -31
  733. package/src/lib/warm-cache/__tests__/warm-cache.test.ts +0 -164
  734. package/src/lib/warm-cache/index.ts +0 -7
  735. package/src/lib/warm-cache/warm-cache.ts +0 -136
  736. package/src/lib/worktrees/__tests__/remove-worktrees.test.ts +0 -167
  737. package/src/lib/worktrees/index.ts +0 -1
  738. package/src/lib/worktrees/remove-worktrees.ts +0 -66
  739. package/src/mcp/prompts/index.ts +0 -3
  740. package/src/mcp/resources/index.ts +0 -3
  741. package/src/mcp/server.ts +0 -27
  742. package/src/mcp/tools/index.ts +0 -21
  743. package/src/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  744. package/src/sanity.test.tsx +0 -8
  745. package/src/tui/__tests__/boot.test.tsx +0 -61
  746. package/src/tui/__tests__/no-react-boundary.test.ts +0 -51
  747. package/src/tui/boot.tsx +0 -60
  748. package/src/tui/screens/__tests__/command-palette.test.tsx +0 -136
  749. package/src/tui/screens/command-palette.tsx +0 -159
  750. package/src/tui/types.ts +0 -8
  751. package/src/types.ts +0 -66
  752. package/tsconfig.json +0 -46
  753. package/tsconfig.tsbuildinfo +0 -1
  754. package/vitest.config.ts +0 -26
  755. package/vitest.setup.ts +0 -1
@@ -1,1426 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for cli/src/commands/release-create/release-create.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../../index.html">All files</a> / <a href="index.html">cli/src/commands/release-create</a> release-create.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">14.48% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>21/145</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">10.93% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>7/64</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">21.05% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>4/19</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">15% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>21/140</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-yes">2x</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-yes">2x</span>
547
- <span class="cline-any cline-no">&nbsp;</span>
548
- <span class="cline-any cline-no">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-no">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-no">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-yes">2x</span>
557
- <span class="cline-any cline-no">&nbsp;</span>
558
- <span class="cline-any cline-no">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-no">&nbsp;</span>
561
- <span class="cline-any cline-no">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-no">&nbsp;</span>
568
- <span class="cline-any cline-no">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-no">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-yes">2x</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-no">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
- <span class="cline-any cline-no">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-no">&nbsp;</span>
586
- <span class="cline-any cline-no">&nbsp;</span>
587
- <span class="cline-any cline-no">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-no">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-yes">2x</span>
594
- <span class="cline-any cline-no">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-no">&nbsp;</span>
597
- <span class="cline-any cline-no">&nbsp;</span>
598
- <span class="cline-any cline-no">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-no">&nbsp;</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-no">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-no">&nbsp;</span>
607
- <span class="cline-any cline-no">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-no">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-yes">2x</span>
614
- <span class="cline-any cline-no">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-no">&nbsp;</span>
617
- <span class="cline-any cline-no">&nbsp;</span>
618
- <span class="cline-any cline-no">&nbsp;</span>
619
- <span class="cline-any cline-no">&nbsp;</span>
620
- <span class="cline-any cline-no">&nbsp;</span>
621
- <span class="cline-any cline-no">&nbsp;</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-no">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-no">&nbsp;</span>
628
- <span class="cline-any cline-no">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-no">&nbsp;</span>
631
- <span class="cline-any cline-no">&nbsp;</span>
632
- <span class="cline-any cline-no">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-no">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-no">&nbsp;</span>
653
- <span class="cline-any cline-no">&nbsp;</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-no">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-no">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-no">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-no">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-no">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-no">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-no">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-no">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-yes">2x</span>
678
- <span class="cline-any cline-no">&nbsp;</span>
679
- <span class="cline-any cline-no">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-no">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-no">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-yes">2x</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-no">&nbsp;</span>
691
- <span class="cline-any cline-no">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-yes">2x</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-no">&nbsp;</span>
705
- <span class="cline-any cline-no">&nbsp;</span>
706
- <span class="cline-any cline-no">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-no">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-no">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-no">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-no">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-no">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-yes">2x</span>
727
- <span class="cline-any cline-yes">4x</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-yes">7x</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-neutral">&nbsp;</span>
733
- <span class="cline-any cline-yes">4x</span>
734
- <span class="cline-any cline-yes">2x</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-yes">2x</span>
743
- <span class="cline-any cline-no">&nbsp;</span>
744
- <span class="cline-any cline-no">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-no">&nbsp;</span>
751
- <span class="cline-any cline-no">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-no">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-no">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-neutral">&nbsp;</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
- <span class="cline-any cline-yes">2x</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-no">&nbsp;</span>
771
- <span class="cline-any cline-no">&nbsp;</span>
772
- <span class="cline-any cline-no">&nbsp;</span>
773
- <span class="cline-any cline-neutral">&nbsp;</span>
774
- <span class="cline-any cline-no">&nbsp;</span>
775
- <span class="cline-any cline-no">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-no">&nbsp;</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-neutral">&nbsp;</span>
782
- <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-no">&nbsp;</span>
785
- <span class="cline-any cline-no">&nbsp;</span>
786
- <span class="cline-any cline-no">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-no">&nbsp;</span>
789
- <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-no">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
- <span class="cline-any cline-neutral">&nbsp;</span>
800
- <span class="cline-any cline-neutral">&nbsp;</span>
801
- <span class="cline-any cline-yes">2x</span>
802
- <span class="cline-any cline-no">&nbsp;</span>
803
- <span class="cline-any cline-no">&nbsp;</span>
804
- <span class="cline-any cline-no">&nbsp;</span>
805
- <span class="cline-any cline-no">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-neutral">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-yes">2x</span>
820
- <span class="cline-any cline-no">&nbsp;</span>
821
- <span class="cline-any cline-neutral">&nbsp;</span>
822
- <span class="cline-any cline-no">&nbsp;</span>
823
- <span class="cline-any cline-neutral">&nbsp;</span>
824
- <span class="cline-any cline-no">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-no">&nbsp;</span>
827
- <span class="cline-any cline-no">&nbsp;</span>
828
- <span class="cline-any cline-no">&nbsp;</span>
829
- <span class="cline-any cline-neutral">&nbsp;</span>
830
- <span class="cline-any cline-no">&nbsp;</span>
831
- <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-neutral">&nbsp;</span>
833
- <span class="cline-any cline-no">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
- <span class="cline-any cline-no">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-neutral">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-no">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-no">&nbsp;</span>
851
- <span class="cline-any cline-neutral">&nbsp;</span>
852
- <span class="cline-any cline-no">&nbsp;</span>
853
- <span class="cline-any cline-no">&nbsp;</span>
854
- <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-no">&nbsp;</span>
856
- <span class="cline-any cline-no">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-no">&nbsp;</span>
859
- <span class="cline-any cline-no">&nbsp;</span>
860
- <span class="cline-any cline-neutral">&nbsp;</span>
861
- <span class="cline-any cline-neutral">&nbsp;</span>
862
- <span class="cline-any cline-no">&nbsp;</span>
863
- <span class="cline-any cline-neutral">&nbsp;</span>
864
- <span class="cline-any cline-no">&nbsp;</span>
865
- <span class="cline-any cline-neutral">&nbsp;</span>
866
- <span class="cline-any cline-no">&nbsp;</span>
867
- <span class="cline-any cline-neutral">&nbsp;</span>
868
- <span class="cline-any cline-no">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
- <span class="cline-any cline-neutral">&nbsp;</span>
872
- <span class="cline-any cline-neutral">&nbsp;</span>
873
- <span class="cline-any cline-neutral">&nbsp;</span>
874
- <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-neutral">&nbsp;</span>
876
- <span class="cline-any cline-no">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-neutral">&nbsp;</span>
880
- <span class="cline-any cline-neutral">&nbsp;</span>
881
- <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-neutral">&nbsp;</span>
883
- <span class="cline-any cline-yes">2x</span>
884
- <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-neutral">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-neutral">&nbsp;</span>
890
- <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-neutral">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-neutral">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-yes">6x</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-neutral">&nbsp;</span>
917
- <span class="cline-any cline-neutral">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-yes">4x</span>
921
- <span class="cline-any cline-neutral">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-neutral">&nbsp;</span>
934
- <span class="cline-any cline-neutral">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span>
945
- <span class="cline-any cline-neutral">&nbsp;</span>
946
- <span class="cline-any cline-neutral">&nbsp;</span>
947
- <span class="cline-any cline-neutral">&nbsp;</span>
948
- <span class="cline-any cline-neutral">&nbsp;</span>
949
- <span class="cline-any cline-neutral">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import confirm from '@inquirer/confirm'
961
- import select from '@inquirer/select'
962
- import process from 'node:process'
963
- import { z } from 'zod'
964
- import { question } from 'zx'
965
- &nbsp;
966
- import { loadJiraConfig } from 'src/integrations/jira'
967
- import { commandEcho } from 'src/lib/command-echo'
968
- import { OperationError } from 'src/lib/errors/operation-error'
969
- import { assertManagementContext } from 'src/lib/git-guard'
970
- import { logger } from 'src/lib/logger'
971
- import { InvalidReleaseNameError, displayLabel, validateName } from 'src/lib/release-id'
972
- import { createSingleRelease, getBaseBranch, prepareGitForRelease } from 'src/lib/release-utils'
973
- import type { ReleaseCreationResult, ReleaseType } from 'src/lib/release-utils'
974
- import {
975
- NoPriorVersionsError,
976
- computeNextVersion,
977
- formatReleaseSpec,
978
- hasNextToken,
979
- loadExistingVersions,
980
- parseVersion,
981
- resolveReleaseEntries,
982
- } from 'src/lib/version-utils'
983
- import type { ReleaseEntry, ReleaseInput, SemVer } from 'src/lib/version-utils'
984
- import { defineMcpTool, textContent } from 'src/types'
985
- import type { RequiredConfirmedOptionArg } from 'src/types'
986
- &nbsp;
987
- interface ReleaseCreateArgs extends RequiredConfirmedOptionArg {
988
- releases?: ReleaseInput[]
989
- }
990
- &nbsp;
991
- const VERSION_PROMPT_HINT = '"1.2.5" or "next"'
992
- &nbsp;
993
- const <span class="fstat-no" title="function not covered" >trySuggestNext = (k</span>nown: SemVer[], type: ReleaseType): string | null =&gt; {
994
- <span class="cstat-no" title="statement not covered" > try {</span>
995
- <span class="cstat-no" title="statement not covered" > return computeNextVersion(known, type)</span>
996
- } catch (err) {
997
- <span class="cstat-no" title="statement not covered" > if (err instanceof NoPriorVersionsError) <span class="cstat-no" title="statement not covered" >return null</span></span>
998
- &nbsp;
999
- <span class="cstat-no" title="statement not covered" > throw err</span>
1000
- }
1001
- }
1002
- &nbsp;
1003
- const <span class="fstat-no" title="function not covered" >resolveOrExit = (e</span>ntries: ReleaseInput[], known: SemVer[]): ReleaseEntry[] =&gt; {
1004
- <span class="cstat-no" title="statement not covered" > try {</span>
1005
- <span class="cstat-no" title="statement not covered" > return resolveReleaseEntries(entries, known)</span>
1006
- } catch (err) {
1007
- <span class="cstat-no" title="statement not covered" > if (err instanceof NoPriorVersionsError) {</span>
1008
- <span class="cstat-no" title="statement not covered" > throw new OperationError(err, {</span>
1009
- operation: 'resolve release version',
1010
- remediation: 'pass an explicit version (e.g. "1.2.5") instead of "next" when there are no prior versions',
1011
- })
1012
- }
1013
- &nbsp;
1014
- <span class="cstat-no" title="statement not covered" > if (err instanceof InvalidReleaseNameError) {</span>
1015
- <span class="cstat-no" title="statement not covered" > throw new OperationError(err, {</span>
1016
- operation: 'validate release name',
1017
- remediation:
1018
- 'use a kebab-case name like "checkout-redesign" (lowercase, digits, single hyphens, not a reserved word)',
1019
- })
1020
- }
1021
- &nbsp;
1022
- <span class="cstat-no" title="statement not covered" > throw err</span>
1023
- }
1024
- }
1025
- &nbsp;
1026
- const promptForVersionInput = <span class="fstat-no" title="function not covered" >async (r</span>unning: SemVer[], type: ReleaseType): Promise&lt;string&gt; =&gt; {
1027
- const suggestion = <span class="cstat-no" title="statement not covered" >trySuggestNext(running, type)</span>
1028
- const defaultHint = <span class="cstat-no" title="statement not covered" >suggestion ? ` [${suggestion}]` : ''</span>
1029
- const <span class="cstat-no" title="statement not covered" >versionAnswer = (await question(` Version (e.g. ${VERSION_PROMPT_HINT})${defaultHint}: `)).trim()</span>
1030
- const versionInput = <span class="cstat-no" title="statement not covered" >versionAnswer === '' ? (suggestion ?? '') : versionAnswer</span>
1031
- &nbsp;
1032
- <span class="cstat-no" title="statement not covered" > if (versionInput === '') {</span>
1033
- <span class="cstat-no" title="statement not covered" > logger.error('No version provided. Exiting...')</span>
1034
- <span class="cstat-no" title="statement not covered" > process.exit(1)</span>
1035
- }
1036
- &nbsp;
1037
- <span class="cstat-no" title="statement not covered" > return versionInput</span>
1038
- }
1039
- &nbsp;
1040
- const promptForNameInput = <span class="fstat-no" title="function not covered" >async (): Promise&lt;string&gt; =&gt; {</span>
1041
- const <span class="cstat-no" title="statement not covered" >name = (await question(' Name (kebab-case, e.g. "checkout-redesign"): ')).trim()</span>
1042
- &nbsp;
1043
- <span class="cstat-no" title="statement not covered" > if (name === '') {</span>
1044
- <span class="cstat-no" title="statement not covered" > logger.error('No name provided. Exiting...')</span>
1045
- <span class="cstat-no" title="statement not covered" > process.exit(1)</span>
1046
- }
1047
- &nbsp;
1048
- <span class="cstat-no" title="statement not covered" > try {</span>
1049
- <span class="cstat-no" title="statement not covered" > validateName(name)</span>
1050
- } catch (err) {
1051
- const reason = <span class="cstat-no" title="statement not covered" >err instanceof Error ? err.message : String(err)</span>
1052
- &nbsp;
1053
- <span class="cstat-no" title="statement not covered" > logger.error(`${reason} Exiting...`)</span>
1054
- <span class="cstat-no" title="statement not covered" > process.exit(1)</span>
1055
- }
1056
- &nbsp;
1057
- <span class="cstat-no" title="statement not covered" > return name</span>
1058
- }
1059
- &nbsp;
1060
- const promptForReleasesInteractive = <span class="fstat-no" title="function not covered" >async (e</span>nsureKnown: () =&gt; Promise&lt;SemVer[]&gt;): Promise&lt;ReleaseEntry[]&gt; =&gt; {
1061
- <span class="cstat-no" title="statement not covered" > commandEcho.setInteractive()</span>
1062
- &nbsp;
1063
- let baseKnown: SemVer[] | null = <span class="cstat-no" title="statement not covered" >null</span>
1064
- const running: SemVer[] = <span class="cstat-no" title="statement not covered" >[]</span>
1065
- const ensureRunning = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async (): Promise&lt;SemVer[]&gt; =&gt; {</span></span>
1066
- <span class="cstat-no" title="statement not covered" > if (baseKnown === null) {</span>
1067
- <span class="cstat-no" title="statement not covered" > baseKnown = await ensureKnown()</span>
1068
- <span class="cstat-no" title="statement not covered" > running.push(...baseKnown)</span>
1069
- }
1070
- &nbsp;
1071
- <span class="cstat-no" title="statement not covered" > return running</span>
1072
- }
1073
- &nbsp;
1074
- const entries: ReleaseEntry[] = <span class="cstat-no" title="statement not covered" >[]</span>
1075
- let addAnother = <span class="cstat-no" title="statement not covered" >true</span>
1076
- &nbsp;
1077
- <span class="cstat-no" title="statement not covered" > while (addAnother) {</span>
1078
- const ordinal = <span class="cstat-no" title="statement not covered" >entries.length + 1</span>
1079
- const kind = <span class="cstat-no" title="statement not covered" >await select&lt;'version' | 'name'&gt;({</span>
1080
- message: `Release #${ordinal} — version or name?`,
1081
- choices: [
1082
- { name: 'version (semver / next)', value: 'version' },
1083
- { name: 'name (free-form)', value: 'name' },
1084
- ],
1085
- default: 'version',
1086
- })
1087
- &nbsp;
1088
- const type = <span class="cstat-no" title="statement not covered" >await select&lt;ReleaseType&gt;({</span>
1089
- message: `Release #${ordinal} — select type:`,
1090
- choices: [
1091
- { name: 'regular', value: 'regular' },
1092
- { name: 'hotfix', value: 'hotfix' },
1093
- ],
1094
- default: 'regular',
1095
- })
1096
- &nbsp;
1097
- let resolved: ReleaseEntry
1098
- &nbsp;
1099
- <span class="cstat-no" title="statement not covered" > if (kind === 'name') {</span>
1100
- const name = <span class="cstat-no" title="statement not covered" >await promptForNameInput()</span>
1101
- &nbsp;
1102
- <span class="cstat-no" title="statement not covered" > resolved = resolveOrExit([{ name, type }], [])[0] as ReleaseEntry</span>
1103
- } else {
1104
- // Versions may need prior versions for "next"; load lazily.
1105
- const versionInput = <span class="cstat-no" title="statement not covered" >await promptForVersionInput(await ensureRunning(), type)</span>
1106
- &nbsp;
1107
- <span class="cstat-no" title="statement not covered" > resolved = resolveOrExit([{ version: versionInput, type }], running)[0] as ReleaseEntry</span>
1108
- &nbsp;
1109
- <span class="cstat-no" title="statement not covered" > if (resolved.id.kind === 'version') {</span>
1110
- <span class="cstat-no" title="statement not covered" > running.push(parseVersion(`v${resolved.id.raw}`))</span>
1111
- }
1112
- }
1113
- &nbsp;
1114
- const <span class="cstat-no" title="statement not covered" >description = (await question(' Description (optional, press Enter to skip): ')).trim()</span>
1115
- &nbsp;
1116
- <span class="cstat-no" title="statement not covered" > entries.push({ ...resolved, ...(description !== '' ? { description } : {}) })</span>
1117
- &nbsp;
1118
- <span class="cstat-no" title="statement not covered" > addAnother = await confirm({ message: 'Add another release?', default: false })</span>
1119
- }
1120
- &nbsp;
1121
- <span class="cstat-no" title="statement not covered" > return entries</span>
1122
- }
1123
- &nbsp;
1124
- const <span class="fstat-no" title="function not covered" >formatReleaseSummary = (e</span>ntry: ReleaseEntry): string =&gt; {
1125
- const label = <span class="cstat-no" title="statement not covered" >entry.id.kind === 'version' ? `v${entry.id.raw}` : entry.id.name</span>
1126
- const parts = <span class="cstat-no" title="statement not covered" >[label, entry.type]</span>
1127
- &nbsp;
1128
- <span class="cstat-no" title="statement not covered" > if (entry.description) <span class="cstat-no" title="statement not covered" >parts.push(entry.description)</span></span>
1129
- &nbsp;
1130
- <span class="cstat-no" title="statement not covered" > return parts.join(' · ')</span>
1131
- }
1132
- &nbsp;
1133
- const <span class="fstat-no" title="function not covered" >echoReleases = (e</span>ntries: ReleaseEntry[]): void =&gt; {
1134
- // Every entry — versions, "next" (resolved to a concrete version), and named
1135
- // releases alike — echoes through the single --release flag. formatReleaseSpec
1136
- // produces a spec that parseReleaseSpec parses back into the same entry.
1137
- <span class="cstat-no" title="statement not covered" > for (const entry of entries) {</span>
1138
- <span class="cstat-no" title="statement not covered" > commandEcho.addOption('--release', formatReleaseSpec(entry))</span>
1139
- }
1140
- }
1141
- &nbsp;
1142
- interface FailedRelease {
1143
- version: string
1144
- error: string
1145
- }
1146
- &nbsp;
1147
- const collectEntries = <span class="fstat-no" title="function not covered" >async (</span>
1148
- inputReleases: ReleaseInput[] | undefined,
1149
- ensureKnown: () =&gt; Promise&lt;SemVer[]&gt;,
1150
- ): Promise&lt;ReleaseEntry[]&gt; =&gt; {
1151
- <span class="cstat-no" title="statement not covered" > if (inputReleases &amp;&amp; inputReleases.length &gt; 0) {</span>
1152
- const <span class="cstat-no" title="statement not covered" >known = hasNextToken(inputReleases) ? await ensureKnown() : []</span>
1153
- const resolved = <span class="cstat-no" title="statement not covered" >resolveOrExit(inputReleases, known)</span>
1154
- &nbsp;
1155
- <span class="cstat-no" title="statement not covered" > echoReleases(resolved)</span>
1156
- &nbsp;
1157
- <span class="cstat-no" title="statement not covered" > return resolved</span>
1158
- }
1159
- &nbsp;
1160
- const interactive = <span class="cstat-no" title="statement not covered" >await promptForReleasesInteractive(ensureKnown)</span>
1161
- &nbsp;
1162
- <span class="cstat-no" title="statement not covered" > echoReleases(interactive)</span>
1163
- &nbsp;
1164
- <span class="cstat-no" title="statement not covered" > return interactive</span>
1165
- }
1166
- &nbsp;
1167
- /**
1168
- * Reject a batch that mixes regular and hotfix releases. They branch off
1169
- * different bases (dev vs main), so the batch has no single required branch for
1170
- * the management guard — they must be created in separate invocations.
1171
- * Exported for unit testing without running the side-effecting handler.
1172
- */
1173
- export const assertHomogeneousReleaseType = (entries: ReleaseEntry[]): void =&gt; {
1174
- const types = new Set(
1175
- entries.map((entry) =&gt; {
1176
- return entry.type
1177
- }),
1178
- )
1179
- &nbsp;
1180
- if (types.size &gt; 1) {
1181
- throw new OperationError(undefined, {
1182
- operation: 'create release',
1183
- remediation: 'create regular and hotfix releases in separate invocations',
1184
- stderrExcerpt: 'mixed regular and hotfix releases in one batch are not supported',
1185
- })
1186
- }
1187
- }
1188
- &nbsp;
1189
- const confirmReleases = <span class="fstat-no" title="function not covered" >async (e</span>ntries: ReleaseEntry[], confirmedCommand: boolean): Promise&lt;void&gt; =&gt; {
1190
- const summary = <span class="cstat-no" title="statement not covered" >entries.map(formatReleaseSummary).join('\n - ')</span>
1191
- const answer = <span class="cstat-no" title="statement not covered" >confirmedCommand</span>
1192
- ? true
1193
- : await confirm({
1194
- message: `Create the following ${entries.length} release(s)?\n - ${summary}\n`,
1195
- })
1196
- &nbsp;
1197
- <span class="cstat-no" title="statement not covered" > if (!confirmedCommand) {</span>
1198
- <span class="cstat-no" title="statement not covered" > commandEcho.setInteractive()</span>
1199
- }
1200
- &nbsp;
1201
- <span class="cstat-no" title="statement not covered" > if (!answer) {</span>
1202
- <span class="cstat-no" title="statement not covered" > logger.info('Operation cancelled. Exiting...')</span>
1203
- <span class="cstat-no" title="statement not covered" > process.exit(0)</span>
1204
- }
1205
- &nbsp;
1206
- <span class="cstat-no" title="statement not covered" > commandEcho.addOption('--yes', true)</span>
1207
- }
1208
- &nbsp;
1209
- interface ExecuteOneArgs {
1210
- entry: ReleaseEntry
1211
- jiraConfig: Awaited&lt;ReturnType&lt;typeof loadJiraConfig&gt;&gt;
1212
- }
1213
- &nbsp;
1214
- const executeOne = <span class="fstat-no" title="function not covered" >async (</span>
1215
- args: ExecuteOneArgs,
1216
- ): Promise&lt;{ result?: ReleaseCreationResult; failure?: FailedRelease }&gt; =&gt; {
1217
- const { entry, jiraConfig } = <span class="cstat-no" title="statement not covered" >args</span>
1218
- const <span class="cstat-no" title="statement not covered" >label = displayLabel(entry.id)</span>
1219
- const prTitleLabel = <span class="cstat-no" title="statement not covered" >entry.id.kind === 'version' ? `v${entry.id.raw}` : entry.id.name</span>
1220
- &nbsp;
1221
- <span class="cstat-no" title="statement not covered" > try {</span>
1222
- <span class="cstat-no" title="statement not covered" > await prepareGitForRelease(entry.type)</span>
1223
- &nbsp;
1224
- const result = <span class="cstat-no" title="statement not covered" >await createSingleRelease({</span>
1225
- id: entry.id,
1226
- jiraConfig,
1227
- description: entry.description,
1228
- type: entry.type,
1229
- })
1230
- &nbsp;
1231
- <span class="cstat-no" title="statement not covered" > logger.info(`✅ Successfully created release: ${prTitleLabel} (${entry.type})`)</span>
1232
- <span class="cstat-no" title="statement not covered" > logger.info(`🔗 GitHub PR: ${result.prUrl}`)</span>
1233
- <span class="cstat-no" title="statement not covered" > logger.info(`🔗 Jira Version: ${result.jiraVersionUrl}\n`)</span>
1234
- &nbsp;
1235
- <span class="cstat-no" title="statement not covered" > return { result }</span>
1236
- } catch (error) {
1237
- const err = <span class="cstat-no" title="statement not covered" >new OperationError(error, {</span>
1238
- operation: `create release ${prTitleLabel} (${entry.type})`,
1239
- remediation: 'verify the version or name is unique and the base branch is clean',
1240
- })
1241
- &nbsp;
1242
- <span class="cstat-no" title="statement not covered" > logger.error(`❌ ${err.message}\n`)</span>
1243
- &nbsp;
1244
- <span class="cstat-no" title="statement not covered" > return { failure: { version: label, error: err.message } }</span>
1245
- }
1246
- }
1247
- &nbsp;
1248
- const <span class="fstat-no" title="function not covered" >logFinalSummary = (t</span>otal: number, successCount: number, failureCount: number): void =&gt; {
1249
- <span class="cstat-no" title="statement not covered" > if (successCount === total) {</span>
1250
- <span class="cstat-no" title="statement not covered" > logger.info(`✅ All ${total} release branch(es) were created successfully.`)</span>
1251
- } else <span class="cstat-no" title="statement not covered" >if (successCount &gt; 0) {</span>
1252
- <span class="cstat-no" title="statement not covered" > logger.warn(`⚠️ ${successCount} of ${total} release branches were created successfully.`)</span>
1253
- <span class="cstat-no" title="statement not covered" > logger.warn(`❌ ${failureCount} release(s) failed.`)</span>
1254
- } else {
1255
- <span class="cstat-no" title="statement not covered" > logger.error(`❌ All ${total} release branch(es) failed to create.`)</span>
1256
- }
1257
- }
1258
- &nbsp;
1259
- /**
1260
- * Create one or more release branches. Each release carries its own type
1261
- * (regular/hotfix) and optional Jira description. All entries in a single
1262
- * invocation must share the same type — regular and hotfix releases branch off
1263
- * different bases (dev vs main), so mixed batches are rejected and must be
1264
- * created separately.
1265
- */
1266
- export const releaseCreate = <span class="fstat-no" title="function not covered" >async (a</span>rgs: ReleaseCreateArgs) =&gt; {
1267
- const { releases: inputReleases, confirmedCommand } = <span class="cstat-no" title="statement not covered" >args</span>
1268
- &nbsp;
1269
- <span class="cstat-no" title="statement not covered" > commandEcho.start('release-create')</span>
1270
- &nbsp;
1271
- const jiraConfig = <span class="cstat-no" title="statement not covered" >await loadJiraConfig()</span>
1272
- &nbsp;
1273
- let known: SemVer[] | null = <span class="cstat-no" title="statement not covered" >null</span>
1274
- const ensureKnown = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async (): Promise&lt;SemVer[]&gt; =&gt; {</span></span>
1275
- <span class="cstat-no" title="statement not covered" > if (known === null) <span class="cstat-no" title="statement not covered" >known = await loadExistingVersions()</span></span>
1276
- &nbsp;
1277
- <span class="cstat-no" title="statement not covered" > return known</span>
1278
- }
1279
- &nbsp;
1280
- const entries = <span class="cstat-no" title="statement not covered" >await collectEntries(inputReleases, ensureKnown)</span>
1281
- &nbsp;
1282
- <span class="cstat-no" title="statement not covered" > if (entries.length === 0) {</span>
1283
- <span class="cstat-no" title="statement not covered" > throw new OperationError(undefined, {</span>
1284
- operation: 'create release',
1285
- remediation: 'pass at least one entry in "releases" (e.g. [{ version: "1.2.5", type: "regular" }])',
1286
- stderrExcerpt: 'no releases provided',
1287
- })
1288
- }
1289
- &nbsp;
1290
- <span class="cstat-no" title="statement not covered" > assertHomogeneousReleaseType(entries)</span>
1291
- &nbsp;
1292
- <span class="cstat-no" title="statement not covered" > await assertManagementContext({</span>
1293
- operation: 'create release',
1294
- requiredBranch: getBaseBranch(entries[0]!.type),
1295
- })
1296
- &nbsp;
1297
- <span class="cstat-no" title="statement not covered" > await confirmReleases(entries, Boolean(confirmedCommand))</span>
1298
- &nbsp;
1299
- const created: ReleaseCreationResult[] = <span class="cstat-no" title="statement not covered" >[]</span>
1300
- const failed: FailedRelease[] = <span class="cstat-no" title="statement not covered" >[]</span>
1301
- &nbsp;
1302
- <span class="cstat-no" title="statement not covered" > for (const entry of entries) {</span>
1303
- const { result, failure } = <span class="cstat-no" title="statement not covered" >await executeOne({ entry, jiraConfig })</span>
1304
- &nbsp;
1305
- <span class="cstat-no" title="statement not covered" > if (result) <span class="cstat-no" title="statement not covered" >created.push(result)</span></span>
1306
- <span class="cstat-no" title="statement not covered" > if (failure) <span class="cstat-no" title="statement not covered" >failed.push(failure)</span></span>
1307
- }
1308
- &nbsp;
1309
- <span class="cstat-no" title="statement not covered" > logFinalSummary(entries.length, created.length, failed.length)</span>
1310
- &nbsp;
1311
- <span class="cstat-no" title="statement not covered" > commandEcho.print()</span>
1312
- &nbsp;
1313
- const structuredContent = <span class="cstat-no" title="statement not covered" >{</span>
1314
- createdBranches: created.<span class="fstat-no" title="function not covered" >map((r</span>) =&gt; {
1315
- <span class="cstat-no" title="statement not covered" > return r.branchName</span>
1316
- }),
1317
- successCount: created.length,
1318
- failureCount: failed.length,
1319
- releases: created,
1320
- failedReleases: failed,
1321
- }
1322
- &nbsp;
1323
- <span class="cstat-no" title="statement not covered" > return {</span>
1324
- content: textContent(JSON.stringify(structuredContent, null, 2)),
1325
- structuredContent,
1326
- }
1327
- }
1328
- &nbsp;
1329
- // MCP Tool Registration
1330
- export const releaseCreateMcpTool = defineMcpTool({
1331
- name: 'release-create',
1332
- description:
1333
- 'Create one or more releases in a single call. Each entry in "releases" carries EITHER a "version" (semver or the literal token "next") OR a "name" (free-form kebab-case identifier) — exactly one is required and they are mutually exclusive. Each entry also has its own type (regular|hotfix, default regular) and optional description; all entries in one call must share the same type — mixed regular+hotfix batches are rejected (create them in separate invocations). For each release this tool switches to the appropriate base branch (dev for regular, main for hotfix), cuts the release branch (release/v&lt;semver&gt; for versions, release/&lt;name&gt; for names), opens a GitHub release PR, and creates the matching Jira fix version (v&lt;semver&gt; for versions, &lt;name&gt; for names). The literal token "next" auto-increments from the union of remote release branches and Jira fix versions (regular bumps minor + resets patch; hotfix bumps patch on the highest minor); multiple "next" tokens advance sequentially. Named releases never auto-bump and "next" is version-only. Must be run from the main repository checkout (not a linked worktree) on the matching base branch with a clean working tree. Confirmation is auto-skipped for MCP calls, so the caller is responsible for gating. Continues on per-release failure and reports successes/failures.',
1334
- inputSchema: {
1335
- releases: z
1336
- .array(
1337
- z
1338
- .object({
1339
- version: z
1340
- .string()
1341
- .optional()
1342
- .describe(
1343
- 'Version to create (e.g., "1.2.5") or the literal token "next" for auto-increment. Mutually exclusive with "name".',
1344
- ),
1345
- name: z
1346
- .string()
1347
- .optional()
1348
- .describe(
1349
- 'Free-form kebab-case release name (e.g., "checkout-redesign"). Mutually exclusive with "version". Named releases never auto-bump.',
1350
- ),
1351
- type: z
1352
- .enum(['regular', 'hotfix'])
1353
- .optional()
1354
- .default('regular')
1355
- .describe('Release type: "regular" (branches off dev) or "hotfix" (branches off main).'),
1356
- description: z.string().optional().describe('Optional description for the Jira version.'),
1357
- })
1358
- .refine(
1359
- (entry) =&gt; {
1360
- return (entry.version === undefined) !== (entry.name === undefined)
1361
- },
1362
- {
1363
- message: 'Each release entry must have exactly one of "version" or "name" (they are mutually exclusive).',
1364
- },
1365
- )
1366
- .transform((entry): ReleaseInput =&gt; {
1367
- return entry.name !== undefined
1368
- ? { name: entry.name, type: entry.type, ...(entry.description ? { description: entry.description } : {}) }
1369
- : {
1370
- version: entry.version as string,
1371
- type: entry.type,
1372
- ...(entry.description ? <span class="branch-0 cbranch-no" title="branch not covered" >{ description: entry.description } : {</span>}),
1373
- }
1374
- }),
1375
- )
1376
- .min(1)
1377
- .describe(
1378
- 'One or more releases to create. Each entry has exactly one of "version" or "name", plus its own type and optional description.',
1379
- ),
1380
- },
1381
- outputSchema: {
1382
- createdBranches: z.array(z.string()).describe('List of created release branch names'),
1383
- successCount: z.number().describe('Number of releases created successfully'),
1384
- failureCount: z.number().describe('Number of releases that failed'),
1385
- releases: z
1386
- .array(
1387
- z.object({
1388
- version: z.string().describe('Version number'),
1389
- type: z.enum(['regular', 'hotfix']).describe('Release type'),
1390
- branchName: z.string().describe('Release branch name'),
1391
- prUrl: z.string().describe('GitHub PR URL'),
1392
- jiraVersionUrl: z.string().describe('Jira version URL'),
1393
- }),
1394
- )
1395
- .describe('Detailed information for each created release with URLs'),
1396
- failedReleases: z
1397
- .array(
1398
- z.object({
1399
- version: z.string().describe('Version number that failed'),
1400
- error: z.string().describe('Error message'),
1401
- }),
1402
- )
1403
- .describe('List of releases that failed with error messages'),
1404
- },
1405
- handler: releaseCreate,
1406
- })
1407
- &nbsp;</pre></td></tr></table></pre>
1408
-
1409
- <div class='push'></div><!-- for sticky footer -->
1410
- </div><!-- /wrapper -->
1411
- <div class='footer quiet pad2 space-top1 center small'>
1412
- Code coverage generated by
1413
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1414
- at 2026-07-02T09:20:45.872Z
1415
- </div>
1416
- <script src="../../../../prettify.js"></script>
1417
- <script>
1418
- window.onload = function () {
1419
- prettyPrint();
1420
- };
1421
- </script>
1422
- <script src="../../../../sorter.js"></script>
1423
- <script src="../../../../block-navigation.js"></script>
1424
- </body>
1425
- </html>
1426
-