infra-kit 0.1.125 → 0.1.127

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 (318) hide show
  1. package/.eslintcache +1 -1
  2. package/.omc/state/agent-replay-036daa78-5fee-4c7d-9b44-53584acb0d87.jsonl +26 -0
  3. package/.omc/state/agent-replay-0a65ec83-9de7-458d-9d0f-e56e1a26c68e.jsonl +2 -0
  4. package/.omc/state/agent-replay-1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a.jsonl +17 -0
  5. package/.omc/state/agent-replay-2ac0dcd0-01f7-41a8-a8c9-f2195599817b.jsonl +5 -0
  6. package/.omc/state/agent-replay-d02e6565-5168-40c8-8629-de219a29fa43.jsonl +2 -0
  7. package/.omc/state/idle-notif-cooldown.json +1 -1
  8. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/last-tool-error-state.json +7 -0
  9. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/mission-state.json +129 -0
  10. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/pre-tool-advisory-throttle.json +34 -0
  11. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ralph-state.json +13 -0
  12. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ralplan-state.json +11 -0
  13. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/subagent-tracking-state.json +80 -0
  14. package/.omc/state/sessions/036daa78-5fee-4c7d-9b44-53584acb0d87/ultrawork-state.json +11 -0
  15. package/.omc/state/sessions/0a65ec83-9de7-458d-9d0f-e56e1a26c68e/pre-tool-advisory-throttle.json +18 -0
  16. package/.omc/state/sessions/0a65ec83-9de7-458d-9d0f-e56e1a26c68e/skill-active-state.json +15 -0
  17. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/last-tool-error-state.json +7 -0
  18. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/mission-state.json +139 -0
  19. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/pre-tool-advisory-throttle.json +50 -0
  20. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/ralplan-state.json +11 -0
  21. package/.omc/state/sessions/1b6ffc57-2d9b-4af4-b603-f1cef7e01b0a/subagent-tracking-state.json +90 -0
  22. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/last-tool-error-state.json +7 -0
  23. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/mission-state.json +79 -0
  24. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/pre-tool-advisory-throttle.json +10 -0
  25. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/skill-active-state.json +15 -0
  26. package/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/subagent-tracking-state.json +26 -0
  27. package/.omc/state/sessions/7772f972-4ec1-4287-bf42-a92c14cf3ffc/pre-tool-advisory-throttle.json +10 -0
  28. package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/last-tool-error-state.json +7 -0
  29. package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/mission-state.json +53 -0
  30. package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/pre-tool-advisory-throttle.json +18 -0
  31. package/.omc/state/sessions/d02e6565-5168-40c8-8629-de219a29fa43/subagent-tracking-state.json +17 -0
  32. package/.turbo/turbo-build.log +7 -6
  33. package/.turbo/turbo-eslint-check.log +2 -1
  34. package/.turbo/turbo-prettier-check.log +1 -1
  35. package/.turbo/turbo-test.log +406 -128
  36. package/.turbo/turbo-ts-check.log +1 -1
  37. package/coverage/base.css +224 -0
  38. package/coverage/block-navigation.js +87 -0
  39. package/coverage/cli/index.html +116 -0
  40. package/coverage/cli/package.json.html +283 -0
  41. package/coverage/cli/src/commands/audit/audit.ts.html +616 -0
  42. package/coverage/cli/src/commands/audit/index.html +131 -0
  43. package/coverage/cli/src/commands/audit/index.ts.html +88 -0
  44. package/coverage/cli/src/commands/doctor/doctor.ts.html +1654 -0
  45. package/coverage/cli/src/commands/doctor/index.html +131 -0
  46. package/coverage/cli/src/commands/doctor/index.ts.html +88 -0
  47. package/coverage/cli/src/commands/env-clear/env-clear.ts.html +370 -0
  48. package/coverage/cli/src/commands/env-clear/index.html +131 -0
  49. package/coverage/cli/src/commands/env-clear/index.ts.html +88 -0
  50. package/coverage/cli/src/commands/env-list/env-list.ts.html +229 -0
  51. package/coverage/cli/src/commands/env-list/index.html +131 -0
  52. package/coverage/cli/src/commands/env-list/index.ts.html +88 -0
  53. package/coverage/cli/src/commands/env-load/env-load.ts.html +1201 -0
  54. package/coverage/cli/src/commands/env-load/index.html +131 -0
  55. package/coverage/cli/src/commands/env-load/index.ts.html +91 -0
  56. package/coverage/cli/src/commands/env-status/env-status.ts.html +409 -0
  57. package/coverage/cli/src/commands/env-status/index.html +131 -0
  58. package/coverage/cli/src/commands/env-status/index.ts.html +88 -0
  59. package/coverage/cli/src/commands/gh-merge-dev/gh-merge-dev.ts.html +694 -0
  60. package/coverage/cli/src/commands/gh-merge-dev/index.html +131 -0
  61. package/coverage/cli/src/commands/gh-merge-dev/index.ts.html +88 -0
  62. package/coverage/cli/src/commands/gh-release-deliver/gh-release-deliver.ts.html +1495 -0
  63. package/coverage/cli/src/commands/gh-release-deliver/index.html +131 -0
  64. package/coverage/cli/src/commands/gh-release-deliver/index.ts.html +88 -0
  65. package/coverage/cli/src/commands/gh-release-deploy-all/gh-release-deploy-all.ts.html +706 -0
  66. package/coverage/cli/src/commands/gh-release-deploy-all/index.html +131 -0
  67. package/coverage/cli/src/commands/gh-release-deploy-all/index.ts.html +88 -0
  68. package/coverage/cli/src/commands/gh-release-deploy-selected/gh-release-deploy-selected.ts.html +994 -0
  69. package/coverage/cli/src/commands/gh-release-deploy-selected/index.html +131 -0
  70. package/coverage/cli/src/commands/gh-release-deploy-selected/index.ts.html +88 -0
  71. package/coverage/cli/src/commands/gh-release-list/gh-release-list.ts.html +355 -0
  72. package/coverage/cli/src/commands/gh-release-list/index.html +131 -0
  73. package/coverage/cli/src/commands/gh-release-list/index.ts.html +88 -0
  74. package/coverage/cli/src/commands/init/agent-files.ts.html +742 -0
  75. package/coverage/cli/src/commands/init/index.html +146 -0
  76. package/coverage/cli/src/commands/init/init.ts.html +1159 -0
  77. package/coverage/cli/src/commands/init/migrate-config.ts.html +1219 -0
  78. package/coverage/cli/src/commands/release-create/index.html +131 -0
  79. package/coverage/cli/src/commands/release-create/index.ts.html +88 -0
  80. package/coverage/cli/src/commands/release-create/release-create.ts.html +1426 -0
  81. package/coverage/cli/src/commands/release-desc-edit/index.html +131 -0
  82. package/coverage/cli/src/commands/release-desc-edit/index.ts.html +88 -0
  83. package/coverage/cli/src/commands/release-desc-edit/release-desc-edit.ts.html +766 -0
  84. package/coverage/cli/src/commands/vendor-check/index.html +131 -0
  85. package/coverage/cli/src/commands/vendor-check/index.ts.html +88 -0
  86. package/coverage/cli/src/commands/vendor-check/vendor-check.ts.html +466 -0
  87. package/coverage/cli/src/commands/vendor-config/index.html +116 -0
  88. package/coverage/cli/src/commands/vendor-config/vendor-config.ts.html +571 -0
  89. package/coverage/cli/src/commands/vendor-diff/index.html +131 -0
  90. package/coverage/cli/src/commands/vendor-diff/index.ts.html +88 -0
  91. package/coverage/cli/src/commands/vendor-diff/vendor-diff.ts.html +316 -0
  92. package/coverage/cli/src/commands/vendor-manifest/index.html +131 -0
  93. package/coverage/cli/src/commands/vendor-manifest/index.ts.html +88 -0
  94. package/coverage/cli/src/commands/vendor-manifest/vendor-manifest.ts.html +265 -0
  95. package/coverage/cli/src/commands/vendor-sync/index.html +131 -0
  96. package/coverage/cli/src/commands/vendor-sync/index.ts.html +88 -0
  97. package/coverage/cli/src/commands/vendor-sync/vendor-sync.ts.html +355 -0
  98. package/coverage/cli/src/commands/version/index.html +131 -0
  99. package/coverage/cli/src/commands/version/index.ts.html +88 -0
  100. package/coverage/cli/src/commands/version/version.ts.html +184 -0
  101. package/coverage/cli/src/commands/worktrees-add/index.html +131 -0
  102. package/coverage/cli/src/commands/worktrees-add/index.ts.html +88 -0
  103. package/coverage/cli/src/commands/worktrees-add/worktrees-add.ts.html +1183 -0
  104. package/coverage/cli/src/commands/worktrees-list/index.html +131 -0
  105. package/coverage/cli/src/commands/worktrees-list/index.ts.html +88 -0
  106. package/coverage/cli/src/commands/worktrees-list/worktrees-list.ts.html +400 -0
  107. package/coverage/cli/src/commands/worktrees-reload/index.html +131 -0
  108. package/coverage/cli/src/commands/worktrees-reload/index.ts.html +88 -0
  109. package/coverage/cli/src/commands/worktrees-reload/worktrees-reload.ts.html +775 -0
  110. package/coverage/cli/src/commands/worktrees-remove/index.html +131 -0
  111. package/coverage/cli/src/commands/worktrees-remove/index.ts.html +88 -0
  112. package/coverage/cli/src/commands/worktrees-remove/worktrees-remove.ts.html +682 -0
  113. package/coverage/cli/src/commands/worktrees-sync/index.html +131 -0
  114. package/coverage/cli/src/commands/worktrees-sync/index.ts.html +88 -0
  115. package/coverage/cli/src/commands/worktrees-sync/worktrees-sync.ts.html +679 -0
  116. package/coverage/cli/src/dev/__tests__/fixtures.ts.html +787 -0
  117. package/coverage/cli/src/dev/__tests__/index.html +116 -0
  118. package/coverage/cli/src/dev/dev-server.ts.html +1855 -0
  119. package/coverage/cli/src/dev/discovery.ts.html +598 -0
  120. package/coverage/cli/src/dev/index.html +191 -0
  121. package/coverage/cli/src/dev/interfaces.ts.html +223 -0
  122. package/coverage/cli/src/dev/logger.ts.html +1102 -0
  123. package/coverage/cli/src/dev/ports.ts.html +430 -0
  124. package/coverage/cli/src/dev/serverless-local-run.ts.html +916 -0
  125. package/coverage/cli/src/entry/dev-server.ts.html +409 -0
  126. package/coverage/cli/src/entry/index.html +116 -0
  127. package/coverage/cli/src/index.html +116 -0
  128. package/coverage/cli/src/integrations/cmux/canonicalize-cmux-title.ts.html +178 -0
  129. package/coverage/cli/src/integrations/cmux/close-workspace-by-title.ts.html +262 -0
  130. package/coverage/cli/src/integrations/cmux/index.html +191 -0
  131. package/coverage/cli/src/integrations/cmux/index.ts.html +100 -0
  132. package/coverage/cli/src/integrations/cmux/list-workspace-titles.ts.html +226 -0
  133. package/coverage/cli/src/integrations/cmux/open-workspace-with-layout.ts.html +325 -0
  134. package/coverage/cli/src/integrations/cmux/workspace-title.ts.html +154 -0
  135. package/coverage/cli/src/integrations/cursor/add-folders-to-workspace.ts.html +337 -0
  136. package/coverage/cli/src/integrations/cursor/index.html +206 -0
  137. package/coverage/cli/src/integrations/cursor/index.ts.html +103 -0
  138. package/coverage/cli/src/integrations/cursor/launch-cursor.ts.html +121 -0
  139. package/coverage/cli/src/integrations/cursor/open-cursor-workspace.ts.html +277 -0
  140. package/coverage/cli/src/integrations/cursor/reconcile-workspace-folders.ts.html +355 -0
  141. package/coverage/cli/src/integrations/cursor/remove-folders-from-workspace.ts.html +364 -0
  142. package/coverage/cli/src/integrations/cursor/resolve-workspace-path.ts.html +124 -0
  143. package/coverage/cli/src/integrations/doppler/doppler-cli-auth.ts.html +178 -0
  144. package/coverage/cli/src/integrations/doppler/doppler-errors.ts.html +349 -0
  145. package/coverage/cli/src/integrations/doppler/doppler-project.ts.html +355 -0
  146. package/coverage/cli/src/integrations/doppler/index.html +161 -0
  147. package/coverage/cli/src/integrations/doppler/index.ts.html +97 -0
  148. package/coverage/cli/src/integrations/gh/gh-cli-auth/gh-cli-auth.ts.html +172 -0
  149. package/coverage/cli/src/integrations/gh/gh-cli-auth/index.html +131 -0
  150. package/coverage/cli/src/integrations/gh/gh-cli-auth/index.ts.html +88 -0
  151. package/coverage/cli/src/integrations/gh/gh-release-prs/gh-release-prs.ts.html +703 -0
  152. package/coverage/cli/src/integrations/gh/gh-release-prs/index.html +131 -0
  153. package/coverage/cli/src/integrations/gh/gh-release-prs/index.ts.html +91 -0
  154. package/coverage/cli/src/integrations/gh/index.html +116 -0
  155. package/coverage/cli/src/integrations/gh/index.ts.html +94 -0
  156. package/coverage/cli/src/integrations/ide/add-ide-worktree-folders.ts.html +316 -0
  157. package/coverage/cli/src/integrations/ide/index.html +191 -0
  158. package/coverage/cli/src/integrations/ide/index.ts.html +103 -0
  159. package/coverage/cli/src/integrations/ide/open-ide-workspace.ts.html +238 -0
  160. package/coverage/cli/src/integrations/ide/provider-label.ts.html +157 -0
  161. package/coverage/cli/src/integrations/ide/remove-ide-worktree-folders.ts.html +520 -0
  162. package/coverage/cli/src/integrations/ide/types.ts.html +208 -0
  163. package/coverage/cli/src/integrations/jira/api.ts.html +1060 -0
  164. package/coverage/cli/src/integrations/jira/index.html +131 -0
  165. package/coverage/cli/src/integrations/jira/index.ts.html +142 -0
  166. package/coverage/cli/src/integrations/zed/add-folders-to-zed-workspace.ts.html +175 -0
  167. package/coverage/cli/src/integrations/zed/index.html +161 -0
  168. package/coverage/cli/src/integrations/zed/index.ts.html +94 -0
  169. package/coverage/cli/src/integrations/zed/open-zed-workspace.ts.html +238 -0
  170. package/coverage/cli/src/integrations/zed/reuse-zed-workspace.ts.html +256 -0
  171. package/coverage/cli/src/lib/assert-never/assert-never.ts.html +130 -0
  172. package/coverage/cli/src/lib/assert-never/index.html +131 -0
  173. package/coverage/cli/src/lib/assert-never/index.ts.html +88 -0
  174. package/coverage/cli/src/lib/command-catalog/command-catalog.ts.html +523 -0
  175. package/coverage/cli/src/lib/command-catalog/index.html +116 -0
  176. package/coverage/cli/src/lib/command-echo/command-echo.ts.html +319 -0
  177. package/coverage/cli/src/lib/command-echo/index.html +131 -0
  178. package/coverage/cli/src/lib/command-echo/index.ts.html +88 -0
  179. package/coverage/cli/src/lib/constants/constants.ts.html +472 -0
  180. package/coverage/cli/src/lib/constants/index.html +131 -0
  181. package/coverage/cli/src/lib/constants/index.ts.html +139 -0
  182. package/coverage/cli/src/lib/env-autoload/env-autoload.ts.html +1111 -0
  183. package/coverage/cli/src/lib/env-autoload/index.html +116 -0
  184. package/coverage/cli/src/lib/errors/format-zx-error.ts.html +247 -0
  185. package/coverage/cli/src/lib/errors/index.html +146 -0
  186. package/coverage/cli/src/lib/errors/is-prompt-cancellation.ts.html +199 -0
  187. package/coverage/cli/src/lib/errors/operation-error.ts.html +325 -0
  188. package/coverage/cli/src/lib/git-guard/git-guard.ts.html +250 -0
  189. package/coverage/cli/src/lib/git-guard/index.html +131 -0
  190. package/coverage/cli/src/lib/git-guard/index.ts.html +91 -0
  191. package/coverage/cli/src/lib/git-utils/git-utils.ts.html +622 -0
  192. package/coverage/cli/src/lib/git-utils/index.html +131 -0
  193. package/coverage/cli/src/lib/git-utils/index.ts.html +115 -0
  194. package/coverage/cli/src/lib/infra-kit-config/index.html +131 -0
  195. package/coverage/cli/src/lib/infra-kit-config/index.ts.html +142 -0
  196. package/coverage/cli/src/lib/infra-kit-config/infra-kit-config.ts.html +1447 -0
  197. package/coverage/cli/src/lib/json-output/index.html +116 -0
  198. package/coverage/cli/src/lib/json-output/json-output.ts.html +226 -0
  199. package/coverage/cli/src/lib/logger/index.html +116 -0
  200. package/coverage/cli/src/lib/logger/index.ts.html +205 -0
  201. package/coverage/cli/src/lib/managed-block/index.html +131 -0
  202. package/coverage/cli/src/lib/managed-block/index.ts.html +109 -0
  203. package/coverage/cli/src/lib/managed-block/managed-block.ts.html +520 -0
  204. package/coverage/cli/src/lib/package-config/index.html +146 -0
  205. package/coverage/cli/src/lib/package-config/index.ts.html +94 -0
  206. package/coverage/cli/src/lib/package-config/package-config-schema.ts.html +142 -0
  207. package/coverage/cli/src/lib/package-config/package-config.ts.html +376 -0
  208. package/coverage/cli/src/lib/package-validator/checks/config-check.ts.html +175 -0
  209. package/coverage/cli/src/lib/package-validator/checks/files-check.ts.html +172 -0
  210. package/coverage/cli/src/lib/package-validator/checks/index.html +176 -0
  211. package/coverage/cli/src/lib/package-validator/checks/index.ts.html +97 -0
  212. package/coverage/cli/src/lib/package-validator/checks/scripts-check.ts.html +154 -0
  213. package/coverage/cli/src/lib/package-validator/checks/turbo-check.ts.html +226 -0
  214. package/coverage/cli/src/lib/package-validator/fs-utils.ts.html +139 -0
  215. package/coverage/cli/src/lib/package-validator/index.html +146 -0
  216. package/coverage/cli/src/lib/package-validator/index.ts.html +94 -0
  217. package/coverage/cli/src/lib/package-validator/loader/config-loader.ts.html +316 -0
  218. package/coverage/cli/src/lib/package-validator/loader/index.html +146 -0
  219. package/coverage/cli/src/lib/package-validator/loader/index.ts.html +91 -0
  220. package/coverage/cli/src/lib/package-validator/loader/package-discovery.ts.html +379 -0
  221. package/coverage/cli/src/lib/package-validator/package-validator.ts.html +229 -0
  222. package/coverage/cli/src/lib/path-display/index.html +131 -0
  223. package/coverage/cli/src/lib/path-display/index.ts.html +88 -0
  224. package/coverage/cli/src/lib/path-display/path-display.ts.html +211 -0
  225. package/coverage/cli/src/lib/release-id/index.html +131 -0
  226. package/coverage/cli/src/lib/release-id/index.ts.html +130 -0
  227. package/coverage/cli/src/lib/release-id/release-id.ts.html +859 -0
  228. package/coverage/cli/src/lib/release-utils/index.html +131 -0
  229. package/coverage/cli/src/lib/release-utils/index.ts.html +130 -0
  230. package/coverage/cli/src/lib/release-utils/release-utils.ts.html +778 -0
  231. package/coverage/cli/src/lib/render/index.html +116 -0
  232. package/coverage/cli/src/lib/render/render.ts.html +157 -0
  233. package/coverage/cli/src/lib/vendor/__tests__/index.html +116 -0
  234. package/coverage/cli/src/lib/vendor/__tests__/zx-mock.ts.html +181 -0
  235. package/coverage/cli/src/lib/vendor/config-schema.ts.html +319 -0
  236. package/coverage/cli/src/lib/vendor/config.ts.html +259 -0
  237. package/coverage/cli/src/lib/vendor/factory-config-schema.ts.html +190 -0
  238. package/coverage/cli/src/lib/vendor/factory-config.ts.html +358 -0
  239. package/coverage/cli/src/lib/vendor/hash.ts.html +133 -0
  240. package/coverage/cli/src/lib/vendor/index.html +251 -0
  241. package/coverage/cli/src/lib/vendor/index.ts.html +154 -0
  242. package/coverage/cli/src/lib/vendor/manifest.ts.html +538 -0
  243. package/coverage/cli/src/lib/vendor/skip-sets.ts.html +229 -0
  244. package/coverage/cli/src/lib/vendor/sync-ops.ts.html +955 -0
  245. package/coverage/cli/src/lib/vendor/walk.ts.html +253 -0
  246. package/coverage/cli/src/lib/version-utils/index.html +161 -0
  247. package/coverage/cli/src/lib/version-utils/index.ts.html +139 -0
  248. package/coverage/cli/src/lib/version-utils/load-existing-versions.ts.html +343 -0
  249. package/coverage/cli/src/lib/version-utils/next-version.ts.html +934 -0
  250. package/coverage/cli/src/lib/version-utils/version-utils.ts.html +178 -0
  251. package/coverage/cli/src/lib/worktrees/index.html +131 -0
  252. package/coverage/cli/src/lib/worktrees/index.ts.html +88 -0
  253. package/coverage/cli/src/lib/worktrees/remove-worktrees.ts.html +283 -0
  254. package/coverage/cli/src/tui/boot.tsx.html +265 -0
  255. package/coverage/cli/src/tui/index.html +116 -0
  256. package/coverage/cli/src/tui/screens/command-palette.tsx.html +562 -0
  257. package/coverage/cli/src/tui/screens/index.html +116 -0
  258. package/coverage/cli/src/types.ts.html +283 -0
  259. package/coverage/clover.xml +4488 -0
  260. package/coverage/coverage-final.json +156 -0
  261. package/coverage/favicon.png +0 -0
  262. package/coverage/index.html +1076 -0
  263. package/coverage/prettify.css +1 -0
  264. package/coverage/prettify.js +2 -0
  265. package/coverage/sort-arrow-sprite.png +0 -0
  266. package/coverage/sorter.js +210 -0
  267. package/dist/chunk-DB6CTNBS.js +3 -0
  268. package/dist/chunk-DB6CTNBS.js.map +7 -0
  269. package/dist/chunk-SGR2XAVR.js +164 -0
  270. package/dist/chunk-SGR2XAVR.js.map +7 -0
  271. package/dist/cli.js +5 -5
  272. package/dist/cli.js.map +3 -3
  273. package/dist/dev-server.js +13 -0
  274. package/dist/dev-server.js.map +7 -0
  275. package/dist/mcp.js +1 -1
  276. package/dist/mcp.js.map +1 -1
  277. package/package.json +6 -1
  278. package/scripts/build.js +4 -4
  279. package/src/.omc/state/agent-replay-2ac0dcd0-01f7-41a8-a8c9-f2195599817b.jsonl +5 -0
  280. package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/mission-state.json +79 -0
  281. package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/pre-tool-advisory-throttle.json +26 -0
  282. package/src/.omc/state/sessions/2ac0dcd0-01f7-41a8-a8c9-f2195599817b/subagent-tracking-state.json +26 -0
  283. package/src/commands/doctor/doctor.ts +53 -0
  284. package/src/commands/env-autoload/env-autoload.ts +14 -2
  285. package/src/commands/env-clear/env-clear.ts +48 -7
  286. package/src/commands/env-load/env-load.ts +23 -1
  287. package/src/commands/init/__tests__/shell-body.test.ts +73 -3
  288. package/src/commands/init/init.ts +74 -7
  289. package/src/dev/__tests__/dev-server-options.test.ts +57 -0
  290. package/src/dev/__tests__/dev-server.test.ts +420 -0
  291. package/src/dev/__tests__/discovery.test.ts +181 -0
  292. package/src/dev/__tests__/fixtures.ts +257 -0
  293. package/src/dev/__tests__/ports.test.ts +98 -0
  294. package/src/dev/__tests__/serverless-local-run.test.ts +533 -0
  295. package/src/dev/dev-server.ts +796 -0
  296. package/src/dev/discovery.ts +229 -0
  297. package/src/dev/interfaces.ts +11 -0
  298. package/src/dev/managed-child.ts +73 -0
  299. package/src/dev/ports.ts +100 -0
  300. package/src/dev/serverless-local-run.ts +329 -0
  301. package/src/dev/turbo-watch.ts +62 -0
  302. package/src/dev/ui-dev.ts +62 -0
  303. package/src/entry/cli.ts +25 -6
  304. package/src/entry/dev-server.ts +103 -0
  305. package/src/lib/command-catalog/__tests__/__snapshots__/command-catalog.test.ts.snap +1 -0
  306. package/src/lib/command-catalog/command-catalog.ts +4 -0
  307. package/src/lib/constants/constants.ts +38 -0
  308. package/src/lib/constants/index.ts +4 -0
  309. package/src/lib/env-autoload/__tests__/env-autoload.test.ts +25 -0
  310. package/src/lib/env-autoload/env-autoload.ts +35 -4
  311. package/src/lib/infra-kit-config/index.ts +2 -0
  312. package/src/lib/infra-kit-config/infra-kit-config.ts +22 -0
  313. package/src/lib/warm-cache/__tests__/warm-cache.test.ts +164 -0
  314. package/src/lib/warm-cache/index.ts +7 -0
  315. package/src/lib/warm-cache/warm-cache.ts +136 -0
  316. package/tsconfig.tsbuildinfo +1 -1
  317. package/dist/chunk-VI7TEWVJ.js +0 -164
  318. package/dist/chunk-VI7TEWVJ.js.map +0 -7
@@ -0,0 +1,775 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for cli/src/commands/worktrees-reload/worktrees-reload.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/worktrees-reload</a> worktrees-reload.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">43.33% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>26/60</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">19.04% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>4/21</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">20% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/10</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">43.33% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>26/60</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-yes">2x</span>
334
+ <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-no">&nbsp;</span>
337
+ <span class="cline-any cline-no">&nbsp;</span>
338
+ <span class="cline-any cline-no">&nbsp;</span>
339
+ <span class="cline-any cline-no">&nbsp;</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-no">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-no">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-neutral">&nbsp;</span>
378
+ <span class="cline-any cline-no">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-neutral">&nbsp;</span>
382
+ <span class="cline-any cline-neutral">&nbsp;</span>
383
+ <span class="cline-any cline-no">&nbsp;</span>
384
+ <span class="cline-any cline-no">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-yes">2x</span>
403
+ <span class="cline-any cline-yes">4x</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-yes">4x</span>
406
+ <span class="cline-any cline-yes">1x</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-yes">3x</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-yes">3x</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-yes">3x</span>
414
+ <span class="cline-any cline-yes">6x</span>
415
+ <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-yes">6x</span>
419
+ <span class="cline-any cline-yes">3x</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-yes">3x</span>
423
+ <span class="cline-any cline-yes">3x</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-neutral">&nbsp;</span>
426
+ <span class="cline-any cline-yes">3x</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-neutral">&nbsp;</span>
429
+ <span class="cline-any cline-neutral">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-neutral">&nbsp;</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-yes">2x</span>
446
+ <span class="cline-any cline-yes">3x</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-yes">3x</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-yes">3x</span>
451
+ <span class="cline-any cline-yes">4x</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-yes">4x</span>
454
+ <span class="cline-any cline-yes">4x</span>
455
+ <span class="cline-any cline-yes">3x</span>
456
+ <span class="cline-any cline-neutral">&nbsp;</span>
457
+ <span class="cline-any cline-yes">1x</span>
458
+ <span class="cline-any cline-neutral">&nbsp;</span>
459
+ <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-neutral">&nbsp;</span>
461
+ <span class="cline-any cline-yes">3x</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-yes">2x</span>
469
+ <span class="cline-any cline-no">&nbsp;</span>
470
+ <span class="cline-any cline-no">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-no">&nbsp;</span>
474
+ <span class="cline-any cline-no">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-no">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-no">&nbsp;</span>
481
+ <span class="cline-any cline-no">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-no">&nbsp;</span>
485
+ <span class="cline-any cline-no">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-no">&nbsp;</span>
490
+ <span class="cline-any cline-no">&nbsp;</span>
491
+ <span class="cline-any cline-no">&nbsp;</span>
492
+ <span class="cline-any cline-no">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-no">&nbsp;</span>
497
+ <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-neutral">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-no">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-yes">2x</span>
509
+ <span class="cline-any cline-neutral">&nbsp;</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-neutral">&nbsp;</span>
513
+ <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></td><td class="text"><pre class="prettyprint lang-js">import { z } from 'zod'
527
+ &nbsp;
528
+ import {
529
+ buildCmuxWorkspaceTitle,
530
+ canonicalizeCmuxTitle,
531
+ closeCmuxWorkspaceByTitle,
532
+ listCmuxWorkspaceTitles,
533
+ openCmuxWorkspaceWithLayout,
534
+ } from 'src/integrations/cmux'
535
+ import { ideProviderLabel, openIdeWorkspace } from 'src/integrations/ide'
536
+ import type { IdeProvider } from 'src/integrations/ide'
537
+ import { commandEcho } from 'src/lib/command-echo'
538
+ import { WORKTREES_DIR_SUFFIX } from 'src/lib/constants'
539
+ import { OperationError } from 'src/lib/errors/operation-error'
540
+ import { getCurrentWorktrees, getProjectRoot, getRepoName } from 'src/lib/git-utils'
541
+ import { logger } from 'src/lib/logger'
542
+ import { defineMcpTool, textContent } from 'src/types'
543
+ &nbsp;
544
+ interface WorktreesReloadResult {
545
+ closedCmux: string[]
546
+ openedCmux: string[]
547
+ ideProviders: IdeProvider[]
548
+ ideFoldersAdded: number
549
+ ideFoldersRemoved: number
550
+ }
551
+ &nbsp;
552
+ /**
553
+ * Reload command: closes every open cmux workspace for the release worktrees on
554
+ * disk, then reopens the full set — cmux workspaces are recreated fresh and the
555
+ * configured editor workspace is reconciled and relaunched. The single
556
+ * window-restore command: also serves the cold-start case (editor + cmux closed),
557
+ * at the cost of tearing down any live cmux windows first.
558
+ *
559
+ * The editor has no per-window close primitive, so its "reload" is a reconcile +
560
+ * relaunch of the configured workspace. Safe to run from any branch
561
+ * (non-destructive to git — only cmux/editor view state is touched).
562
+ */
563
+ export const worktreesReload = <span class="fstat-no" title="function not covered" >async () =&gt; {</span>
564
+ <span class="cstat-no" title="statement not covered" > commandEcho.start('worktrees-reload')</span>
565
+ &nbsp;
566
+ <span class="cstat-no" title="statement not covered" > try {</span>
567
+ const projectRoot = <span class="cstat-no" title="statement not covered" >await getProjectRoot()</span>
568
+ const worktreeDir = <span class="cstat-no" title="statement not covered" >`${projectRoot}${WORKTREES_DIR_SUFFIX}`</span>
569
+ const currentBranches = <span class="cstat-no" title="statement not covered" >await getCurrentWorktrees('release')</span>
570
+ const repoName = <span class="cstat-no" title="statement not covered" >await getRepoName()</span>
571
+ &nbsp;
572
+ // Phase 1 — close (cmux only; Cursor has no per-window close).
573
+ const closedCmux = <span class="cstat-no" title="statement not covered" >await closeCmux({ currentBranches, repoName })</span>
574
+ &nbsp;
575
+ // Phase 2 — reopen. cmux and Cursor are independent surfaces, so reopen them
576
+ // concurrently to shrink the window where the just-closed cmux workspaces are gone.
577
+ const [ideOutcomes, { opened: openedCmux }] = <span class="cstat-no" title="statement not covered" >await Promise.all([</span>
578
+ openIdeWorkspace({ projectRoot, worktreeDir, currentBranches }),
579
+ reopenCmux({ worktreeDir, currentBranches, repoName }),
580
+ ])
581
+ &nbsp;
582
+ const result: WorktreesReloadResult = <span class="cstat-no" title="statement not covered" >{</span>
583
+ closedCmux,
584
+ openedCmux,
585
+ ideProviders: ideOutcomes
586
+ .<span class="fstat-no" title="function not covered" >filter((o</span>utcome) =&gt; {
587
+ <span class="cstat-no" title="statement not covered" > return outcome.ran</span>
588
+ })
589
+ .<span class="fstat-no" title="function not covered" >map((o</span>utcome) =&gt; {
590
+ <span class="cstat-no" title="statement not covered" > return outcome.provider</span>
591
+ }),
592
+ ideFoldersAdded: ideOutcomes.<span class="fstat-no" title="function not covered" >reduce((s</span>um, outcome) =&gt; {
593
+ <span class="cstat-no" title="statement not covered" > return sum + outcome.added</span>
594
+ }, 0),
595
+ ideFoldersRemoved: ideOutcomes.<span class="fstat-no" title="function not covered" >reduce((s</span>um, outcome) =&gt; {
596
+ <span class="cstat-no" title="statement not covered" > return sum + outcome.removed</span>
597
+ }, 0),
598
+ }
599
+ &nbsp;
600
+ <span class="cstat-no" title="statement not covered" > logResults(result, {</span>
601
+ ideRan: ideOutcomes.<span class="fstat-no" title="function not covered" >some((o</span>utcome) =&gt; {
602
+ <span class="cstat-no" title="statement not covered" > return outcome.ran</span>
603
+ }),
604
+ })
605
+ &nbsp;
606
+ <span class="cstat-no" title="statement not covered" > commandEcho.print()</span>
607
+ &nbsp;
608
+ <span class="cstat-no" title="statement not covered" > return {</span>
609
+ content: textContent(JSON.stringify(result, null, 2)),
610
+ structuredContent: { ...result },
611
+ }
612
+ } catch (error) {
613
+ <span class="cstat-no" title="statement not covered" > logger.error({ error }, '❌ Error reloading worktrees')</span>
614
+ <span class="cstat-no" title="statement not covered" > throw new OperationError(error, {</span>
615
+ operation: 'reload worktrees',
616
+ remediation: "run 'worktrees-list' to confirm the branches exist",
617
+ })
618
+ }
619
+ }
620
+ &nbsp;
621
+ interface CloseCmuxArgs {
622
+ currentBranches: string[]
623
+ repoName: string
624
+ }
625
+ &nbsp;
626
+ /**
627
+ * Close the cmux workspace for each release worktree that is currently open.
628
+ * Snapshots `listCmuxWorkspaceTitles()` up front purely so the returned list
629
+ * reflects which workspaces were actually open (the close itself is best-effort
630
+ * and per-title). Returns the titles a close was attempted for.
631
+ */
632
+ export const closeCmux = async (args: CloseCmuxArgs): Promise&lt;string[]&gt; =&gt; {
633
+ const { currentBranches, repoName } = args
634
+ &nbsp;
635
+ if (currentBranches.length === 0) {
636
+ return []
637
+ }
638
+ &nbsp;
639
+ const openBefore = await listCmuxWorkspaceTitles()
640
+ &nbsp;
641
+ const closed: string[] = []
642
+ &nbsp;
643
+ for (const branch of currentBranches) {
644
+ const title = buildCmuxWorkspaceTitle({ repoName, branch })
645
+ &nbsp;
646
+ // openBefore holds canonical keys; match the built title the same way so a
647
+ // workspace stored under a drifted title (whitespace / old v-prefix) resolves.
648
+ if (!openBefore.has(canonicalizeCmuxTitle(title))) {
649
+ continue
650
+ }
651
+ &nbsp;
652
+ await closeCmuxWorkspaceByTitle(title)
653
+ closed.push(title)
654
+ }
655
+ &nbsp;
656
+ return closed
657
+ }
658
+ &nbsp;
659
+ interface ReopenCmuxArgs {
660
+ worktreeDir: string
661
+ currentBranches: string[]
662
+ repoName: string
663
+ }
664
+ &nbsp;
665
+ interface ReopenCmuxOutcome {
666
+ opened: string[]
667
+ }
668
+ &nbsp;
669
+ /**
670
+ * Recreate a cmux workspace for every release worktree on disk. Force-opens each
671
+ * branch (no dedup against the live workspace list): reload has just awaited the
672
+ * close of these workspaces, so it favours liveness — guaranteeing every branch
673
+ * ends up open.
674
+ */
675
+ export const reopenCmux = async (args: ReopenCmuxArgs): Promise&lt;ReopenCmuxOutcome&gt; =&gt; {
676
+ const { worktreeDir, currentBranches, repoName } = args
677
+ &nbsp;
678
+ const opened: string[] = []
679
+ &nbsp;
680
+ for (const branch of currentBranches) {
681
+ const title = buildCmuxWorkspaceTitle({ repoName, branch })
682
+ &nbsp;
683
+ try {
684
+ await openCmuxWorkspaceWithLayout({ cwd: `${worktreeDir}/${branch}`, title })
685
+ opened.push(title)
686
+ } catch (error) {
687
+ logger.warn({ error, title }, `⚠️ Failed to reopen cmux workspace for ${branch}`)
688
+ }
689
+ }
690
+ &nbsp;
691
+ return { opened }
692
+ }
693
+ &nbsp;
694
+ interface LogResultsContext {
695
+ ideRan: boolean
696
+ }
697
+ &nbsp;
698
+ const <span class="fstat-no" title="function not covered" >logResults = (r</span>esult: WorktreesReloadResult, context: LogResultsContext): void =&gt; {
699
+ <span class="cstat-no" title="statement not covered" > if (result.closedCmux.length &gt; 0) {</span>
700
+ <span class="cstat-no" title="statement not covered" > logger.info(`🧹 Closed ${result.closedCmux.length} cmux workspace(s)`)</span>
701
+ }
702
+ &nbsp;
703
+ <span class="cstat-no" title="statement not covered" > if (context.ideRan) {</span>
704
+ const ideLabels = <span class="cstat-no" title="statement not covered" >result.ideProviders</span>
705
+ .<span class="fstat-no" title="function not covered" >map((p</span>rovider) =&gt; {
706
+ <span class="cstat-no" title="statement not covered" > return ideProviderLabel(provider)</span>
707
+ })
708
+ .join(', ')
709
+ &nbsp;
710
+ <span class="cstat-no" title="statement not covered" > if (result.ideFoldersAdded &gt; 0) {</span>
711
+ <span class="cstat-no" title="statement not covered" > logger.info(`✅ Added ${result.ideFoldersAdded} folder(s) to ${ideLabels} workspace(s)`)</span>
712
+ }
713
+ &nbsp;
714
+ <span class="cstat-no" title="statement not covered" > if (result.ideFoldersRemoved &gt; 0) {</span>
715
+ <span class="cstat-no" title="statement not covered" > logger.info(`🧹 Removed ${result.ideFoldersRemoved} dangling folder(s) from ${ideLabels} workspace(s)`)</span>
716
+ }
717
+ }
718
+ &nbsp;
719
+ <span class="cstat-no" title="statement not covered" > if (result.openedCmux.length &gt; 0) {</span>
720
+ <span class="cstat-no" title="statement not covered" > logger.info('✅ Reopened cmux workspaces:')</span>
721
+ <span class="cstat-no" title="statement not covered" > for (const title of result.openedCmux) {</span>
722
+ <span class="cstat-no" title="statement not covered" > logger.info(title)</span>
723
+ }
724
+ }
725
+ &nbsp;
726
+ <span class="cstat-no" title="statement not covered" > if (</span>
727
+ !context.ideRan &amp;&amp;
728
+ result.closedCmux.length === 0 &amp;&amp;
729
+ result.openedCmux.length === 0 &amp;&amp;
730
+ result.ideFoldersAdded === 0 &amp;&amp;
731
+ result.ideFoldersRemoved === 0
732
+ ) {
733
+ <span class="cstat-no" title="statement not covered" > logger.info('ℹ️ Nothing to reload')</span>
734
+ }
735
+ }
736
+ &nbsp;
737
+ // MCP Tool Registration
738
+ export const worktreesReloadMcpTool = defineMcpTool({
739
+ name: 'worktrees-reload',
740
+ description:
741
+ 'Close all open cmux workspaces for the current release worktrees, then reopen the full set — the single window-restore command. Every configured editor (Cursor and/or Zed) is reconciled + relaunched (no per-window close). Disruptive: closes live cmux windows first. Safe to run from any branch. Use to refresh stale windows or to restore everything after a cold start (editor + cmux closed).',
742
+ inputSchema: {},
743
+ outputSchema: {
744
+ closedCmux: z.array(z.string()).describe('Titles of cmux workspaces a close was attempted for (best-effort)'),
745
+ openedCmux: z.array(z.string()).describe('Titles of cmux workspaces reopened during this run'),
746
+ ideProviders: z
747
+ .array(z.string())
748
+ .describe('Configured IDE providers that were reloaded (cursor | zed); empty if none configured'),
749
+ ideFoldersAdded: z.number().describe('Total worktree folders added across all configured editor workspaces'),
750
+ ideFoldersRemoved: z
751
+ .number()
752
+ .describe('Total dangling worktree folders removed across all configured editor workspaces'),
753
+ },
754
+ handler: worktreesReload,
755
+ })
756
+ &nbsp;</pre></td></tr></table></pre>
757
+
758
+ <div class='push'></div><!-- for sticky footer -->
759
+ </div><!-- /wrapper -->
760
+ <div class='footer quiet pad2 space-top1 center small'>
761
+ Code coverage generated by
762
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
763
+ at 2026-07-02T09:20:45.872Z
764
+ </div>
765
+ <script src="../../../../prettify.js"></script>
766
+ <script>
767
+ window.onload = function () {
768
+ prettyPrint();
769
+ };
770
+ </script>
771
+ <script src="../../../../sorter.js"></script>
772
+ <script src="../../../../block-navigation.js"></script>
773
+ </body>
774
+ </html>
775
+